diff options
author | Razvan Becheriu <razvan@isc.org> | 2021-03-19 08:24:54 +0100 |
---|---|---|
committer | Razvan Becheriu <razvan@isc.org> | 2021-03-29 20:11:29 +0200 |
commit | 2a06054b555f73808ecf67f31ed5e6b36ad2d81a (patch) | |
tree | 07d368bef276ac3adc2af96d089e63ae4515f5e5 /src | |
parent | [#1621] addressed comments (diff) | |
download | kea-2a06054b555f73808ecf67f31ed5e6b36ad2d81a.tar.xz kea-2a06054b555f73808ecf67f31ed5e6b36ad2d81a.zip |
[#1621] add enable-connection-recovery parameter to configure connection recovery
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/dhcp4/ctrl_dhcp4_srv.cc | 4 | ||||
-rw-r--r-- | src/bin/dhcp4/dhcp4_lexer.ll | 11 | ||||
-rw-r--r-- | src/bin/dhcp4/dhcp4_parser.yy | 8 | ||||
-rw-r--r-- | src/bin/dhcp6/ctrl_dhcp6_srv.cc | 4 | ||||
-rw-r--r-- | src/bin/dhcp6/dhcp6_lexer.cc | 2060 | ||||
-rw-r--r-- | src/bin/dhcp6/dhcp6_lexer.ll | 11 | ||||
-rw-r--r-- | src/bin/dhcp6/dhcp6_parser.cc | 3750 | ||||
-rw-r--r-- | src/bin/dhcp6/dhcp6_parser.h | 458 | ||||
-rw-r--r-- | src/bin/dhcp6/dhcp6_parser.yy | 8 | ||||
-rw-r--r-- | src/lib/database/database_connection.cc | 17 | ||||
-rw-r--r-- | src/lib/database/database_connection.h | 41 | ||||
-rw-r--r-- | src/lib/mysql/mysql_connection.h | 7 | ||||
-rw-r--r-- | src/lib/pgsql/pgsql_connection.h | 7 |
13 files changed, 3254 insertions, 3132 deletions
diff --git a/src/bin/dhcp4/ctrl_dhcp4_srv.cc b/src/bin/dhcp4/ctrl_dhcp4_srv.cc index 10951e3fd1..2d8a61e073 100644 --- a/src/bin/dhcp4/ctrl_dhcp4_srv.cc +++ b/src/bin/dhcp4/ctrl_dhcp4_srv.cc @@ -1244,7 +1244,7 @@ ControlledDhcpv4Srv::dbLostCallback(ReconnectCtlPtr db_reconnect_ctl) { // Disable service until the connection is recovered. if (db_reconnect_ctl->retriesLeft() == db_reconnect_ctl->maxRetries() && - db_reconnect_ctl->disableDHCP()) { + db_reconnect_ctl->alterDHCPState()) { network_state_->disableService(NetworkState::Origin::DB_CONNECTION); } @@ -1272,7 +1272,7 @@ ControlledDhcpv4Srv::dbRecoveredCallback(ReconnectCtlPtr db_reconnect_ctl) { } // Enable service after the connection is recovered. - if (db_reconnect_ctl->disableDHCP()) { + if (db_reconnect_ctl->alterDHCPState()) { network_state_->enableService(NetworkState::Origin::DB_CONNECTION); } diff --git a/src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll index 90c0f9dc31..2f531b7b34 100644 --- a/src/bin/dhcp4/dhcp4_lexer.ll +++ b/src/bin/dhcp4/dhcp4_lexer.ll @@ -538,6 +538,17 @@ ControlCharacterFill [^"\\]|\\["\\/bfnrtu] } } +\"enable-connection-recovery\" { + 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_ENABLE_CONNECTION_RECOVERY(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("enable-connection-recovery", driver.loc_); + } +} + \"request-timeout\" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: diff --git a/src/bin/dhcp4/dhcp4_parser.yy b/src/bin/dhcp4/dhcp4_parser.yy index 87f10783b7..d217ca138d 100644 --- a/src/bin/dhcp4/dhcp4_parser.yy +++ b/src/bin/dhcp4/dhcp4_parser.yy @@ -98,6 +98,7 @@ using namespace std; MAX_RECONNECT_TRIES "max-reconnect-tries" RECONNECT_WAIT_TIME "reconnect-wait-time" DISABLE_DHCP_ON_DB_LOSS "disable-dhcp-on-db-loss" + ENABLE_CONNECTION_RECOVERY "enable-connection-recovery" REQUEST_TIMEOUT "request-timeout" TCP_KEEPALIVE "tcp-keepalive" TCP_NODELAY "tcp-nodelay" @@ -910,6 +911,7 @@ database_map_param: database_type | max_reconnect_tries | reconnect_wait_time | disable_dhcp_on_db_loss + | enable_connection_recovery | request_timeout | tcp_keepalive | tcp_nodelay @@ -1072,6 +1074,12 @@ disable_dhcp_on_db_loss: DISABLE_DHCP_ON_DB_LOSS COLON BOOLEAN { ctx.stack_.back()->set("disable-dhcp-on-db-loss", n); }; +enable_connection_recovery: ENABLE_CONNECTION_RECOVERY COLON BOOLEAN { + ctx.unique("enable-connection-recovery", ctx.loc2pos(@1)); + ElementPtr n(new BoolElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("enable-connection-recovery", n); +}; + max_row_errors: MAX_ROW_ERRORS COLON INTEGER { ctx.unique("max-row-errors", ctx.loc2pos(@1)); ElementPtr n(new IntElement($3, ctx.loc2pos(@3))); diff --git a/src/bin/dhcp6/ctrl_dhcp6_srv.cc b/src/bin/dhcp6/ctrl_dhcp6_srv.cc index 1366e663d5..9e34ce9e02 100644 --- a/src/bin/dhcp6/ctrl_dhcp6_srv.cc +++ b/src/bin/dhcp6/ctrl_dhcp6_srv.cc @@ -1263,7 +1263,7 @@ ControlledDhcpv6Srv::dbLostCallback(ReconnectCtlPtr db_reconnect_ctl) { // Disable service until the connection is recovered. if (db_reconnect_ctl->retriesLeft() == db_reconnect_ctl->maxRetries() && - db_reconnect_ctl->disableDHCP()) { + db_reconnect_ctl->alterDHCPState()) { network_state_->disableService(NetworkState::Origin::DB_CONNECTION); } @@ -1291,7 +1291,7 @@ ControlledDhcpv6Srv::dbRecoveredCallback(ReconnectCtlPtr db_reconnect_ctl) { } // Enable service after the connection is recovered. - if (db_reconnect_ctl->disableDHCP()) { + if (db_reconnect_ctl->alterDHCPState()) { network_state_->enableService(NetworkState::Origin::DB_CONNECTION); } diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index d5c31cbd5f..5d04221dff 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 214 -#define YY_END_OF_BUFFER 215 +#define YY_NUM_RULES 215 +#define YY_END_OF_BUFFER 216 /* 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[1970] = +static const flex_int16_t yy_accept[1990] = { 0, - 207, 207, 0, 0, 0, 0, 0, 0, 0, 0, - 215, 213, 10, 11, 213, 1, 207, 204, 207, 207, - 213, 206, 205, 213, 213, 213, 213, 213, 200, 201, - 213, 213, 213, 202, 203, 5, 5, 5, 213, 213, - 213, 10, 11, 0, 0, 195, 0, 0, 0, 0, + 208, 208, 0, 0, 0, 0, 0, 0, 0, 0, + 216, 214, 10, 11, 214, 1, 208, 205, 208, 208, + 214, 207, 206, 214, 214, 214, 214, 214, 201, 202, + 214, 214, 214, 203, 204, 5, 5, 5, 214, 214, + 214, 10, 11, 0, 0, 196, 0, 0, 0, 0, 0, 0, 0, 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, 207, 207, - 0, 206, 207, 3, 2, 6, 0, 207, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 9, 0, 196, + 0, 0, 0, 0, 0, 0, 0, 1, 208, 208, + 0, 207, 208, 3, 2, 6, 0, 208, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 9, 0, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 198, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -722,202 +722,204 @@ static const flex_int16_t yy_accept[1970] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 8, 0, 0, 168, 0, 0, 169, 0, 0, 0, + 8, 0, 0, 169, 0, 0, 170, 0, 0, 0, - 0, 0, 0, 0, 197, 199, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 212, 210, 0, - 209, 208, 0, 0, 0, 0, 0, 167, 0, 28, - 0, 27, 0, 0, 122, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 213, 211, 0, + 210, 209, 0, 0, 0, 0, 0, 168, 0, 28, + 0, 27, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 211, 208, 0, 0, 0, 0, 29, 0, 31, - 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, - 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, - 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, + 0, 212, 209, 0, 0, 0, 0, 29, 0, 31, + 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, + 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, + 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, + 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 147, 0, 172, 51, 0, + 0, 0, 0, 0, 0, 148, 0, 173, 51, 0, 56, 0, 0, 0, 0, 37, 34, 33, 0, 0, - 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, - 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 139, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, + 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 162, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, + 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, 0, 0, 0, - 0, 0, 0, 140, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, + 0, 0, 0, 141, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, + 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 165, 135, - 0, 0, 0, 0, 0, 0, 0, 139, 52, 0, + 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, + 136, 0, 0, 0, 0, 0, 0, 0, 140, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 141, 0, 60, 0, 0, 0, 0, 0, + 0, 0, 0, 142, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, + 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 154, 0, 0, 0, 0, 0, 0, 0, 63, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 57, 103, 0, 0, 0, 151, 0, 0, - 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 57, 104, 0, 0, 0, 152, + 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 194, 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, 0, 114, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, - 0, 166, 14, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 0, 0, 167, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, - 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 158, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 153, 170, 0, 40, 0, 162, 0, 0, 0, + 0, 0, 0, 0, 0, 154, 171, 0, 40, 0, + 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, + 98, 0, 0, 0, 0, 0, 165, 54, 0, 106, + 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, + 0, 0, 0, 132, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, + 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 20, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 164, 54, 0, 105, 0, 191, 0, 0, + 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 83, 0, 0, 0, 0, 0, 131, - 132, 0, 0, 0, 0, 0, 0, 0, 0, 101, - 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 99, 121, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, + 0, 0, 0, 17, 0, 15, 0, 189, 188, 0, + 0, 0, 71, 0, 0, 0, 0, 0, 30, 0, + 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, + 0, 182, 0, 0, 0, 191, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 115, 0, 151, + 0, 43, 0, 61, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, + 0, 0, 117, 82, 0, 0, 159, 0, 0, 0, + 0, 0, 150, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 111, 0, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 98, 120, 0, + 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, + 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 80, 0, 0, 0, 0, 0, 0, 17, 0, - 15, 0, 188, 187, 0, 0, 0, 70, 0, 0, - 0, 0, 0, 30, 0, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 181, 0, 0, 190, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 114, 0, 150, 0, 43, 0, 61, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, - 0, 0, 0, 0, 0, 0, 116, 81, 0, 0, - 158, 0, 0, 0, 0, 0, 149, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 110, 0, 0, 134, + 42, 0, 0, 0, 0, 70, 0, 0, 0, 0, + 0, 0, 145, 47, 0, 0, 0, 72, 187, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, - 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 45, 0, 0, 0, 44, 0, 18, + 0, 0, 0, 74, 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 78, 0, 134, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 42, 0, 0, 0, 0, 69, 0, - 0, 0, 0, 0, 0, 144, 47, 0, 0, 0, - 71, 186, 38, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 45, 0, 0, 0, 44, - 0, 18, 0, 0, 0, 73, 0, 0, 0, 0, - 0, 136, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 107, 0, 0, 0, 0, 0, 164, 0, 0, + 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 69, 0, 0, 0, 0, 0, 0, 97, + 0, 0, 0, 0, 36, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, - 0, 0, 0, 77, 0, 133, 0, 0, 0, 62, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 106, 0, 0, 0, 0, 0, 163, 0, - 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, - 96, 0, 0, 0, 0, 36, 0, 48, 0, 0, + 0, 0, 0, 180, 0, 0, 0, 0, 149, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, + 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, + 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, + 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 186, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, - 0, 0, 0, 179, 0, 0, 0, 0, 148, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, - 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 39, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, - 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 179, 0, 80, + + 0, 79, 0, 21, 75, 0, 0, 0, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 189, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 178, 0, 79, 0, 78, - 0, 21, 74, 0, 0, 0, 0, 0, 0, 0, - - 0, 65, 0, 0, 0, 130, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, - 177, 0, 0, 0, 0, 72, 0, 0, 0, 66, - 0, 23, 0, 123, 0, 0, 0, 95, 0, 0, - 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, + 108, 0, 0, 178, 0, 0, 0, 0, 73, 0, + 0, 0, 66, 0, 23, 0, 124, 0, 0, 0, + 96, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 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, 0, 0, 0, 0, - 49, 0, 0, 91, 0, 0, 0, 0, 183, 0, - - 0, 0, 0, 194, 76, 75, 22, 0, 128, 145, - 124, 0, 0, 0, 0, 87, 0, 0, 0, 67, - 0, 0, 0, 0, 175, 0, 0, 180, 0, 89, - 0, 82, 0, 0, 0, 0, 125, 0, 0, 0, - 174, 0, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 88, 0, 0, 0, 0, 0, 93, 0, - 129, 85, 0, 0, 0, 0, 84, 176, 0 + + 0, 0, 0, 0, 0, 49, 0, 0, 92, 0, + 0, 0, 0, 0, 184, 0, 0, 0, 0, 195, + 77, 76, 22, 0, 129, 146, 125, 0, 0, 0, + 0, 88, 0, 0, 0, 67, 0, 0, 0, 0, + 0, 176, 0, 0, 181, 0, 90, 0, 83, 0, + 0, 0, 0, 0, 126, 0, 0, 0, 0, 175, + 0, 0, 26, 0, 0, 0, 0, 68, 0, 0, + 0, 0, 89, 0, 0, 0, 0, 0, 94, 0, + 130, 86, 0, 0, 0, 0, 85, 177, 0 } ; static const YY_CHAR yy_ec[256] = @@ -964,454 +966,460 @@ static const YY_CHAR yy_meta[74] = 1, 1, 1 } ; -static const flex_int16_t yy_base[1978] = +static const flex_int16_t yy_base[1998] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 2356, 2357, 34, 2352, 145, 0, 207, 2357, 214, 221, - 13, 228, 2357, 2332, 118, 25, 2, 6, 2357, 2357, - 73, 11, 17, 2357, 2357, 2357, 104, 2340, 2293, 0, - 2330, 108, 2347, 24, 256, 2357, 67, 2296, 2316, 84, - 75, 2316, 88, 226, 91, 89, 284, 196, 203, 279, - 193, 224, 216, 60, 242, 2296, 286, 288, 314, 300, - 319, 2279, 204, 324, 356, 329, 2298, 0, 380, 400, - 420, 427, 406, 2357, 0, 2357, 385, 443, 238, 241, - 310, 269, 299, 314, 2357, 2295, 2336, 2357, 405, 2357, - - 419, 400, 2293, 2334, 326, 10, 262, 407, 224, 409, - 352, 206, 2333, 0, 480, 412, 2275, 415, 2283, 406, - 2279, 2268, 2269, 2274, 442, 2284, 2267, 2276, 327, 431, - 226, 2270, 2268, 452, 2257, 2315, 399, 2260, 2313, 2253, - 2276, 2273, 2273, 2267, 339, 2260, 2258, 2259, 2251, 2256, - 2250, 414, 2261, 2254, 2245, 2244, 2258, 454, 2296, 2243, - 450, 2255, 421, 2243, 476, 2244, 480, 2256, 2253, 2254, - 293, 2252, 2287, 2286, 439, 2232, 2232, 2236, 2232, 2224, - 2241, 2233, 0, 447, 484, 401, 457, 489, 498, 2232, - 2357, 509, 2227, 2357, 498, 504, 2357, 2281, 515, 2280, - - 517, 2279, 513, 2278, 2357, 2357, 559, 2277, 533, 2236, - 2228, 2232, 2233, 2228, 2227, 2218, 529, 2269, 2263, 2227, - 2208, 2205, 2213, 2219, 2207, 2221, 2217, 2218, 2218, 2213, - 2205, 2207, 2191, 2195, 2208, 2210, 2207, 2199, 2189, 2192, - 2206, 2357, 2192, 2200, 80, 2185, 2184, 2236, 2183, 2193, - 2233, 490, 2192, 2231, 2176, 2178, 2189, 2227, 531, 2231, - 2166, 2181, 538, 2171, 2177, 2186, 2167, 2165, 2168, 2164, - 2170, 2161, 2160, 2173, 2166, 2156, 2167, 2171, 2170, 2164, - 220, 2171, 2166, 2158, 2148, 2163, 2158, 2162, 497, 2160, - 2146, 2152, 2159, 2141, 2142, 2145, 2142, 2141, 555, 2136, - - 2150, 2149, 2148, 2151, 2133, 2141, 541, 2357, 2357, 542, - 2357, 2357, 2128, 519, 2175, 551, 2186, 2357, 535, 2357, - 2185, 2357, 2179, 597, 2357, 530, 2119, 2138, 2121, 2138, - 2126, 2178, 2133, 2128, 2131, 2126, 556, 2357, 2128, 584, - 2167, 2125, 2122, 2123, 542, 2127, 2167, 2115, 2110, 2107, - 2103, 2105, 2156, 2113, 2102, 2118, 2152, 2098, 620, 2111, - 2111, 2094, 2095, 2108, 2106, 2094, 2104, 2099, 2106, 2101, - 2086, 566, 2095, 2098, 2093, 536, 2092, 2088, 2138, 579, - 569, 2357, 2132, 2082, 2081, 2074, 2076, 2088, 2079, 2068, - 2085, 2074, 2079, 590, 2126, 2079, 584, 2076, 2079, 2079, - - 2077, 2066, 2066, 2078, 576, 2053, 2054, 2075, 587, 2057, - 2054, 2068, 2071, 2066, 2052, 2064, 2063, 2062, 2057, 2060, - 2059, 2058, 2057, 432, 2100, 2059, 2098, 2097, 2039, 644, - 2052, 2357, 2357, 2051, 600, 2093, 2092, 2357, 2091, 2357, - 617, 671, 606, 2090, 2084, 2037, 2039, 2027, 2357, 2032, - 2038, 2041, 2024, 2039, 2026, 2025, 2357, 2035, 605, 2026, - 2023, 2035, 604, 2020, 2022, 2357, 2028, 2013, 2015, 2026, - 2024, 2019, 650, 2026, 2014, 2007, 2058, 2357, 2005, 2021, - 2055, 2059, 2015, 2009, 2011, 2012, 1996, 2013, 2047, 1998, - 1993, 1992, 1994, 1990, 1986, 602, 2005, 1979, 1986, 1991, - - 1984, 2000, 2034, 2038, 2357, 1983, 1979, 2035, 1986, 1980, - 1987, 1972, 1982, 1970, 1984, 1973, 1969, 1971, 1966, 2357, - 2023, 2357, 1965, 1964, 1957, 1974, 2013, 2012, 1957, 1962, - 1971, 1965, 1959, 1968, 652, 2005, 1967, 1950, 1950, 1945, - 1941, 1947, 1952, 1945, 1953, 1957, 1940, 1998, 1939, 1991, - 1936, 1937, 1936, 1948, 1937, 2357, 1947, 2357, 2357, 1936, - 2357, 1946, 1982, 1942, 1985, 2357, 2357, 2357, 640, 639, - 666, 2357, 617, 1944, 1924, 1977, 1922, 1975, 1920, 1919, - 1918, 1925, 1918, 1926, 1929, 1911, 1911, 1926, 1925, 619, - 1924, 1923, 1907, 1922, 1904, 1951, 1918, 1956, 1900, 1902, - - 1914, 1914, 1913, 2357, 1898, 1895, 1953, 1908, 1900, 1906, - 1897, 1905, 2357, 1890, 1901, 1905, 1887, 1899, 1900, 568, - 1882, 1876, 1881, 1878, 1893, 1892, 1893, 1872, 1882, 1888, - 1931, 1886, 1885, 1877, 1868, 2357, 1869, 1871, 2357, 1879, - 1918, 1917, 16, 1878, 1915, 1860, 1861, 1864, 1865, 1856, - 2357, 1870, 1856, 695, 1848, 1852, 1868, 1865, 1857, 1902, - 1854, 1861, 1899, 2357, 1845, 1843, 1857, 1841, 1855, 1858, - 1892, 1891, 1890, 1889, 1834, 1887, 1886, 2357, 1831, 1845, - 675, 1846, 1845, 1842, 1842, 1879, 1839, 1828, 1830, 2357, - 2357, 666, 663, 1822, 1839, 1831, 1818, 1812, 1833, 1874, - - 656, 1868, 1828, 1866, 1865, 1817, 1811, 1814, 1822, 1825, - 1809, 1810, 1819, 1817, 1799, 1854, 1814, 1804, 1812, 1850, - 680, 650, 1803, 1805, 1805, 20, 135, 170, 225, 2357, - 296, 309, 486, 502, 572, 609, 606, 644, 659, 647, - 661, 661, 669, 673, 718, 719, 663, 676, 662, 673, - 721, 680, 729, 2357, 730, 686, 684, 686, 682, 676, - 731, 694, 683, 2357, 686, 697, 686, 699, 701, 745, - 688, 747, 690, 705, 2357, 699, 693, 704, 689, 700, - 713, 692, 698, 753, 717, 701, 701, 714, 758, 759, - 760, 707, 725, 720, 727, 722, 707, 719, 720, 726, - - 713, 2357, 778, 736, 738, 728, 740, 730, 743, 734, - 740, 784, 760, 747, 729, 736, 750, 795, 745, 2357, - 743, 758, 755, 741, 748, 747, 745, 764, 761, 762, - 750, 757, 758, 767, 771, 807, 769, 759, 772, 758, - 757, 764, 777, 821, 762, 763, 769, 785, 768, 822, - 777, 2357, 787, 787, 780, 791, 789, 834, 776, 778, - 793, 794, 782, 780, 842, 799, 785, 788, 2357, 2357, - 804, 803, 804, 809, 797, 807, 809, 2357, 2357, 809, - 811, 798, 816, 803, 801, 819, 806, 806, 857, 804, - 808, 866, 2357, 867, 2357, 812, 826, 826, 871, 819, - - 818, 822, 816, 876, 829, 819, 820, 816, 826, 830, - 841, 825, 843, 838, 840, 833, 835, 836, 848, 838, - 853, 894, 851, 856, 833, 856, 840, 2357, 847, 848, - 862, 853, 851, 901, 848, 863, 881, 889, 858, 907, - 869, 909, 2357, 875, 863, 858, 859, 871, 878, 867, - 868, 864, 882, 868, 869, 879, 888, 924, 871, 889, - 881, 877, 930, 937, 894, 885, 893, 2357, 890, 898, - 900, 885, 901, 891, 903, 897, 944, 910, 894, 895, - 2357, 911, 914, 897, 899, 957, 900, 919, 2357, 918, - 921, 902, 920, 908, 961, 919, 915, 912, 965, 914, - - 967, 929, 915, 933, 932, 918, 933, 925, 921, 939, - 938, 925, 2357, 2357, 933, 980, 933, 2357, 941, 944, - 937, 990, 2357, 939, 945, 989, 940, 941, 953, 947, - 951, 949, 947, 958, 1003, 947, 952, 1006, 1007, 951, - 963, 2357, 951, 959, 957, 1008, 970, 957, 958, 967, - 979, 966, 964, 978, 979, 995, 1000, 982, 987, 970, - 970, 972, 972, 992, 991, 982, 971, 988, 995, 1038, - 980, 1000, 993, 997, 1001, 984, 1001, 992, 1047, 994, - 998, 2357, 1045, 994, 1012, 996, 996, 1017, 1014, 1054, - 1003, 1021, 1022, 1008, 1016, 1025, 1005, 1020, 1027, 1069, - - 1070, 2357, 1023, 1072, 1073, 1015, 1025, 1035, 1038, 1021, - 1023, 1023, 1030, 1039, 1027, 1034, 1029, 1036, 1048, 1089, - 1036, 1035, 1052, 1093, 1043, 1047, 1045, 1043, 1038, 1099, - 1100, 1050, 1102, 1098, 1104, 1057, 2357, 1062, 1055, 1046, - 1065, 1059, 1054, 1064, 1061, 1066, 1062, 1074, 2357, 1059, - 1061, 2357, 2357, 1061, 1121, 1060, 1079, 1080, 1082, 1073, - 1127, 1128, 1081, 1066, 1080, 1088, 1070, 1075, 1114, 1105, - 1137, 1092, 1092, 1096, 1083, 1085, 1102, 1097, 1101, 1146, - 1094, 1098, 2357, 1095, 1091, 1108, 1088, 1109, 1099, 1150, - 1103, 2357, 1116, 1115, 1118, 1102, 1107, 1115, 1121, 1107, - - 1167, 1120, 1125, 1112, 1123, 1115, 1121, 1117, 1135, 1136, - 1137, 2357, 2357, 1135, 2357, 1137, 2357, 1122, 1133, 1124, - 1143, 1133, 1185, 1142, 1139, 1183, 1147, 1136, 1143, 1148, - 1145, 1151, 2357, 1144, 1136, 1197, 2357, 1198, 1145, 1152, - 1196, 1158, 2357, 2357, 1155, 2357, 1146, 2357, 1146, 1149, - 1163, 1168, 1151, 1162, 1211, 1168, 1169, 1170, 1210, 1166, - 1217, 1170, 1219, 2357, 1166, 1221, 1222, 1179, 1181, 2357, - 2357, 1164, 1226, 1222, 1186, 1170, 1182, 1201, 1232, 2357, - 1189, 1180, 1191, 1236, 1183, 1198, 1234, 1186, 2357, 1182, - 1198, 1186, 1200, 1201, 1198, 1242, 1205, 1195, 1205, 1211, - - 1199, 1199, 1254, 1250, 1251, 1257, 1214, 2357, 1217, 1216, - 1218, 1211, 1220, 1221, 1218, 1208, 1212, 1212, 1271, 1218, - 1273, 1220, 1275, 1218, 1277, 2357, 1235, 1214, 1230, 1223, - 1226, 1239, 1242, 1241, 1239, 1288, 1242, 2357, 2357, 1238, - 1248, 1233, 1289, 1250, 1236, 1297, 1298, 1242, 1252, 1301, - 1258, 2357, 1250, 1250, 1252, 1254, 1307, 1250, 2357, 1251, - 2357, 1253, 2357, 2357, 1266, 1269, 1270, 2357, 1257, 1265, - 1317, 1266, 1298, 2357, 1320, 1270, 1317, 2357, 1265, 1273, - 1267, 1264, 1267, 1270, 1270, 1266, 1288, 1327, 1280, 1292, - 1295, 1283, 1286, 1279, 1339, 1287, 2357, 1287, 1284, 2357, - - 1286, 1345, 1298, 1289, 1304, 1304, 1307, 1307, 1304, 1348, - 1310, 2357, 1302, 2357, 1303, 2357, 1313, 2357, 1353, 1315, - 1316, 1313, 1357, 1305, 1320, 1360, 1322, 1314, 2357, 1311, - 1311, 1317, 1316, 1314, 1329, 1329, 2357, 2357, 1370, 1317, - 2357, 1334, 1319, 1319, 1321, 1327, 2357, 1336, 1383, 1326, - 1336, 1347, 1345, 1389, 1343, 1352, 2357, 1349, 1368, 2357, - 1352, 1337, 1397, 1398, 1355, 1360, 1342, 1402, 1403, 1404, - 1400, 1364, 1361, 1357, 1350, 1405, 1363, 1364, 2357, 1354, - 1361, 1368, 1416, 2357, 1355, 1414, 1377, 1374, 1418, 1366, - 1371, 1369, 1428, 1384, 1372, 1431, 1381, 1433, 1394, 1383, - - 1377, 1437, 1379, 1388, 1381, 1395, 1398, 1443, 1385, 1402, - 1398, 1388, 1403, 1387, 1445, 1446, 1447, 1394, 1449, 1412, - 1405, 1404, 1398, 2357, 1415, 1402, 1401, 1457, 2357, 1398, - 1416, 1465, 1435, 1467, 1420, 2357, 2357, 1411, 1422, 1471, - 2357, 2357, 2357, 1417, 1422, 1420, 1470, 1428, 1433, 1421, - 1437, 1426, 1424, 1477, 1426, 2357, 1484, 1430, 1482, 1425, - 1431, 1491, 1439, 1449, 1451, 2357, 1496, 1449, 1493, 2357, - 1451, 2357, 1442, 1457, 1445, 2357, 1455, 1456, 1457, 1506, - 1464, 2357, 1503, 1469, 1445, 1463, 1464, 1473, 1455, 1461, - 1463, 1517, 1476, 1475, 1466, 1516, 1463, 1470, 1524, 1474, - - 1478, 1483, 1476, 2357, 1529, 2357, 1478, 1531, 1473, 2357, - 1476, 1486, 1530, 1478, 1493, 1480, 1495, 1481, 1488, 1488, - 1500, 1500, 2357, 1494, 1489, 1488, 1548, 1501, 2357, 1545, - 1496, 1493, 2357, 1507, 1494, 1510, 1512, 1557, 1510, 1507, - 1515, 1509, 2357, 1562, 1503, 1505, 1521, 1514, 1504, 1520, - 1521, 1515, 1531, 2357, 1521, 1573, 1533, 1517, 1571, 1535, - 2357, 1519, 1526, 1580, 1576, 2357, 1538, 2357, 1578, 1540, - 1541, 1526, 1527, 1535, 1589, 1537, 1586, 1587, 1542, 1553, - 1555, 1552, 1543, 1550, 2357, 1547, 1552, 1550, 1602, 1603, - 1551, 1561, 1548, 2357, 1563, 1564, 1565, 1566, 2357, 1556, - - 1568, 1613, 1570, 1615, 1557, 1565, 1559, 1567, 1580, 2357, - 1581, 1562, 1569, 1560, 1620, 1581, 2357, 1585, 1570, 1570, - 1585, 1578, 1577, 1588, 1575, 2357, 1591, 1579, 1582, 1638, - 1634, 1597, 1588, 1600, 1591, 1600, 1602, 1606, 2357, 2357, - 1599, 1589, 1649, 1592, 1651, 1593, 1653, 1611, 1655, 2357, - 1656, 2357, 1652, 1614, 1611, 1616, 1603, 1611, 1622, 1619, - 1665, 1608, 1613, 1604, 1669, 1622, 1623, 1613, 1630, 1629, - 1670, 1614, 1633, 1634, 2357, 1628, 1632, 1681, 1638, 1639, - 1684, 1641, 1644, 1631, 1640, 2357, 1689, 2357, 1642, 2357, - 1651, 2357, 2357, 1633, 1693, 1640, 1695, 1638, 1697, 1645, - - 1694, 2357, 1660, 1701, 1660, 2357, 1651, 1641, 1700, 1666, - 1659, 1655, 1709, 1652, 1654, 1658, 1660, 2357, 1656, 1658, - 2357, 1663, 1673, 1658, 1667, 2357, 1668, 1662, 1674, 2357, - 1670, 2357, 1680, 2357, 1681, 1671, 1675, 2357, 1677, 1685, - 1730, 1671, 1673, 1670, 1694, 2357, 1681, 1688, 1679, 1692, - 1681, 1735, 1682, 1690, 1699, 1700, 1701, 1702, 1695, 1690, - 1691, 1691, 1697, 1697, 1709, 1754, 2357, 1700, 1712, 1757, - 1706, 1708, 1706, 1703, 1762, 1715, 1702, 1717, 1722, 1767, - 1768, 1769, 1770, 1727, 1772, 1773, 1774, 1721, 1725, 1719, - 2357, 1735, 1779, 2357, 1736, 1721, 1739, 1783, 2357, 1731, - - 1745, 1741, 1734, 2357, 2357, 2357, 2357, 1788, 2357, 2357, - 2357, 1738, 1746, 1791, 1752, 2357, 1793, 1735, 1795, 2357, - 1750, 1749, 1750, 1740, 2357, 1800, 1796, 2357, 1743, 2357, - 1755, 2357, 1804, 1746, 1762, 1807, 2357, 1768, 1765, 1757, - 2357, 1807, 1756, 2357, 1768, 1761, 1816, 1764, 1759, 1761, - 1776, 1761, 2357, 1822, 1775, 1824, 1825, 1773, 2357, 1775, - 2357, 2357, 1769, 1785, 1830, 1831, 2357, 2357, 2357, 1837, - 1840, 1843, 1844, 1846, 1849, 1852, 1855 + 2376, 2377, 34, 2372, 145, 0, 207, 2377, 214, 221, + 13, 228, 2377, 2352, 118, 25, 2, 6, 2377, 2377, + 73, 11, 17, 2377, 2377, 2377, 104, 2360, 2313, 0, + 2350, 108, 2367, 24, 256, 2377, 67, 2316, 2336, 84, + 75, 2336, 88, 226, 91, 89, 284, 196, 203, 279, + 193, 224, 216, 60, 242, 2316, 286, 288, 314, 300, + 319, 2299, 204, 324, 356, 329, 2318, 0, 380, 400, + 420, 427, 406, 2377, 0, 2377, 385, 443, 238, 241, + 310, 269, 299, 314, 2377, 2315, 2356, 2377, 405, 2377, + + 419, 400, 2313, 2354, 326, 10, 262, 407, 224, 409, + 352, 206, 2353, 0, 480, 412, 2295, 415, 2303, 406, + 2299, 2288, 2289, 2294, 442, 2304, 2287, 2296, 327, 431, + 226, 2290, 2288, 452, 2277, 2335, 399, 2280, 2333, 2273, + 2296, 2293, 2293, 2287, 339, 2280, 2278, 2279, 2271, 2276, + 2270, 414, 2281, 2274, 2265, 2264, 2278, 454, 2316, 2263, + 450, 2275, 421, 2263, 476, 2264, 480, 2276, 2273, 2274, + 293, 2272, 2307, 2306, 439, 2252, 2252, 2256, 2252, 2244, + 2261, 2253, 0, 447, 484, 401, 457, 489, 498, 2252, + 2377, 509, 2247, 2377, 498, 504, 2377, 2301, 515, 2300, + + 517, 2299, 513, 2298, 2377, 2377, 559, 2297, 533, 2256, + 2248, 2252, 2253, 2248, 2247, 2238, 529, 2289, 2283, 2247, + 2228, 2225, 2233, 2239, 2227, 2241, 2237, 2238, 2238, 2233, + 2225, 2227, 2211, 2215, 2228, 2230, 2227, 2219, 2209, 2212, + 2226, 2377, 2212, 2220, 80, 2205, 2204, 2256, 2203, 2213, + 2253, 490, 2212, 2251, 2196, 2198, 2209, 2247, 531, 2251, + 2186, 2201, 538, 2191, 2197, 2206, 2187, 2185, 2188, 2184, + 2190, 2181, 2180, 2193, 2186, 2176, 2187, 2191, 2190, 2184, + 220, 2191, 2186, 2178, 2168, 2183, 2178, 2182, 497, 2180, + 2166, 2172, 2179, 2161, 2162, 2165, 2162, 2161, 555, 2156, + + 2170, 2169, 2168, 2171, 2153, 2161, 541, 2377, 2377, 542, + 2377, 2377, 2148, 519, 2195, 551, 2206, 2377, 535, 2377, + 2205, 2377, 2199, 597, 2377, 530, 2139, 2158, 2141, 2158, + 2146, 2198, 2153, 2148, 2151, 2146, 556, 2377, 2148, 584, + 2187, 2145, 2142, 2143, 542, 2147, 2187, 2135, 2130, 2127, + 2123, 2125, 2176, 2133, 2122, 2138, 2172, 2118, 620, 2131, + 2131, 2114, 2115, 2128, 2126, 2114, 2124, 2119, 2126, 2121, + 2106, 566, 2115, 2118, 2113, 536, 2112, 2108, 2158, 579, + 569, 2377, 2152, 2102, 2101, 2094, 2096, 2108, 2099, 2088, + 2105, 2094, 2099, 590, 2146, 2099, 584, 2096, 2099, 2099, + + 2097, 2086, 2086, 2098, 576, 2073, 2074, 2095, 587, 2077, + 2074, 2088, 2091, 2086, 2072, 2084, 2083, 2082, 2077, 2080, + 2079, 2078, 2077, 432, 2120, 2079, 2118, 2117, 2059, 644, + 2072, 2377, 2377, 2071, 600, 2113, 2112, 2377, 2111, 2377, + 617, 671, 606, 2110, 2104, 2057, 2059, 2047, 2377, 2052, + 2058, 2061, 2044, 2059, 2046, 2045, 2377, 2055, 605, 2046, + 2043, 2055, 604, 2040, 2042, 2377, 2048, 2033, 2035, 2046, + 2044, 2039, 650, 2046, 2034, 2027, 2078, 2377, 2025, 2041, + 2075, 2079, 2035, 2029, 2031, 2032, 2016, 2033, 2067, 2018, + 2013, 2012, 2014, 2010, 2006, 602, 2025, 1999, 2006, 2011, + + 2004, 2020, 2054, 2058, 2377, 2003, 1999, 2055, 2006, 2000, + 2007, 1992, 2002, 1990, 2004, 1993, 1989, 1991, 1986, 2377, + 2043, 2377, 1985, 1984, 1977, 1994, 2033, 2032, 1977, 1982, + 1991, 1985, 1979, 1988, 652, 2025, 1987, 1970, 1970, 1965, + 1961, 1967, 1972, 1965, 1973, 1977, 1960, 2018, 1959, 2011, + 1956, 1957, 1956, 1968, 1957, 2377, 1967, 2377, 2377, 1956, + 2377, 1966, 2002, 1962, 2005, 2377, 2377, 2377, 640, 639, + 666, 2377, 617, 1964, 1944, 1997, 1942, 1995, 1940, 1939, + 1938, 1945, 1938, 1946, 1949, 1931, 1931, 1946, 1945, 619, + 1944, 1943, 1927, 1942, 1924, 1971, 1938, 1976, 1920, 1922, + + 1934, 1934, 1933, 2377, 1918, 1915, 1973, 1928, 1920, 1926, + 1917, 1925, 2377, 1910, 1921, 1925, 1907, 1919, 1920, 568, + 1902, 1896, 1901, 1898, 1913, 1912, 1913, 1892, 1902, 1908, + 1951, 1906, 1905, 1897, 1888, 2377, 1889, 1891, 2377, 1899, + 1938, 1937, 16, 1898, 1935, 1880, 1881, 1884, 1885, 1876, + 2377, 1890, 1876, 695, 1868, 1872, 1888, 1885, 1877, 1922, + 1874, 1881, 1919, 2377, 1865, 1863, 1877, 1861, 1875, 1878, + 1912, 1911, 1910, 1909, 1854, 1907, 1906, 2377, 1851, 1865, + 675, 1866, 1865, 1862, 1862, 1899, 1859, 1848, 1850, 2377, + 2377, 666, 663, 1842, 1859, 1851, 1838, 1832, 1853, 1894, + + 656, 1888, 1848, 1886, 1885, 1837, 1831, 1834, 1842, 1845, + 1829, 1830, 1839, 1837, 1819, 1874, 1834, 1824, 1832, 1870, + 680, 666, 1823, 1825, 1825, 20, 135, 170, 225, 2377, + 296, 309, 486, 502, 572, 609, 606, 644, 658, 646, + 660, 658, 666, 665, 710, 717, 662, 675, 661, 673, + 723, 681, 730, 2377, 731, 687, 685, 687, 683, 677, + 732, 695, 685, 2377, 687, 698, 687, 700, 702, 746, + 689, 748, 691, 706, 2377, 700, 694, 705, 690, 701, + 714, 693, 699, 754, 718, 702, 702, 715, 759, 760, + 761, 708, 726, 721, 728, 723, 708, 720, 721, 727, + + 714, 2377, 779, 737, 739, 729, 741, 731, 744, 735, + 741, 785, 761, 748, 730, 737, 751, 796, 746, 2377, + 744, 759, 756, 742, 749, 748, 746, 765, 762, 763, + 751, 758, 759, 768, 772, 808, 770, 760, 773, 759, + 758, 765, 778, 822, 769, 764, 765, 771, 787, 770, + 824, 779, 2377, 789, 789, 782, 793, 791, 836, 778, + 780, 795, 796, 784, 782, 844, 801, 787, 790, 2377, + 2377, 806, 805, 806, 811, 799, 809, 811, 2377, 2377, + 811, 813, 800, 818, 805, 803, 821, 808, 808, 859, + 806, 810, 868, 2377, 869, 2377, 814, 828, 828, 873, + + 821, 820, 824, 818, 878, 831, 821, 822, 818, 828, + 832, 843, 827, 845, 840, 842, 835, 837, 838, 850, + 840, 855, 896, 853, 858, 835, 858, 842, 2377, 849, + 850, 864, 855, 853, 903, 850, 865, 883, 891, 860, + 909, 871, 911, 2377, 877, 865, 860, 861, 873, 880, + 869, 870, 866, 884, 870, 871, 881, 890, 926, 873, + 891, 883, 879, 932, 939, 896, 887, 895, 2377, 890, + 893, 901, 903, 888, 904, 894, 906, 900, 947, 913, + 897, 898, 2377, 914, 917, 900, 902, 960, 903, 922, + 2377, 921, 924, 905, 923, 911, 964, 922, 918, 915, + + 968, 917, 970, 932, 918, 936, 935, 921, 936, 928, + 924, 942, 941, 928, 2377, 2377, 936, 983, 936, 2377, + 944, 947, 940, 993, 2377, 942, 948, 992, 943, 944, + 956, 950, 954, 952, 950, 961, 1006, 950, 955, 1009, + 1010, 954, 966, 2377, 954, 962, 960, 1011, 973, 960, + 961, 970, 982, 969, 967, 981, 982, 998, 1003, 985, + 990, 973, 973, 975, 975, 995, 994, 985, 974, 991, + 998, 1041, 983, 1003, 996, 1000, 1004, 987, 1004, 995, + 1050, 997, 1001, 2377, 1048, 997, 1015, 1005, 1000, 1000, + 1021, 1018, 1058, 1007, 1025, 1026, 1012, 1020, 1029, 1009, + + 1024, 1031, 1073, 1074, 2377, 1027, 1076, 1077, 1019, 1029, + 1039, 1042, 1025, 1027, 1027, 1034, 1043, 1031, 1038, 1033, + 1040, 1052, 1093, 1040, 1039, 1056, 1097, 1047, 1051, 1049, + 1047, 1042, 1103, 1104, 1054, 1106, 1102, 1108, 1061, 2377, + 1066, 1059, 1050, 1069, 1063, 1058, 1068, 1065, 1070, 1066, + 1078, 2377, 1063, 1065, 2377, 2377, 1065, 1125, 1064, 1083, + 1084, 1086, 1077, 1131, 1132, 1085, 1070, 1084, 1092, 1074, + 1079, 1118, 1109, 1141, 1096, 1096, 1100, 1087, 1089, 1106, + 1101, 1105, 1150, 1098, 1102, 2377, 1099, 1095, 1112, 1092, + 1113, 1103, 1154, 1107, 2377, 1120, 1119, 1122, 1106, 1111, + + 1123, 1121, 1126, 1112, 1172, 1125, 1130, 1117, 1128, 1120, + 1126, 1122, 1140, 1141, 1142, 2377, 2377, 1140, 2377, 1142, + 2377, 1127, 1138, 1129, 1148, 1138, 1190, 1147, 1144, 1188, + 1152, 1141, 1148, 1153, 1150, 1156, 2377, 1149, 1141, 1202, + 2377, 1203, 1150, 1157, 1201, 1163, 2377, 2377, 1160, 2377, + 1151, 2377, 1151, 1154, 1168, 1173, 1156, 1167, 1216, 1173, + 1174, 1175, 1215, 1171, 1222, 1175, 1224, 2377, 1171, 1226, + 1227, 1184, 1186, 2377, 2377, 1169, 1231, 1227, 1191, 1175, + 1187, 1206, 1237, 2377, 1194, 1185, 1196, 1241, 1188, 1203, + 1239, 1191, 2377, 1187, 1203, 1191, 1205, 1206, 1203, 1247, + + 1210, 1200, 1210, 1216, 1204, 1204, 1259, 1255, 1219, 1257, + 1263, 1221, 2377, 1223, 1222, 1224, 1217, 1226, 1227, 1224, + 1215, 1218, 1218, 1277, 1224, 1279, 1226, 1281, 1224, 1283, + 2377, 1241, 1221, 1236, 1229, 1232, 1245, 1248, 1247, 1245, + 1294, 1248, 2377, 2377, 1244, 1254, 1239, 1295, 1256, 1242, + 1303, 1304, 1248, 1258, 1307, 1264, 2377, 1256, 1256, 1258, + 1260, 1313, 1256, 2377, 1257, 2377, 1259, 2377, 2377, 1272, + 1275, 1276, 2377, 1263, 1271, 1323, 1272, 1304, 2377, 1326, + 1276, 1323, 2377, 1271, 1279, 1273, 1270, 1273, 1276, 1276, + 1272, 1294, 1333, 1286, 1298, 1301, 1289, 1292, 1285, 1345, + + 1293, 2377, 1293, 1290, 1291, 2377, 1293, 1352, 1305, 1296, + 1311, 1311, 1314, 1314, 1311, 1355, 1317, 2377, 1309, 2377, + 1310, 2377, 1320, 2377, 1360, 1322, 1323, 1320, 1364, 1312, + 1327, 1367, 1329, 1321, 2377, 1318, 1318, 1324, 1323, 1321, + 1336, 1336, 2377, 2377, 1377, 1324, 2377, 1341, 1326, 1326, + 1328, 1334, 2377, 1343, 1390, 1333, 1343, 1354, 1352, 1396, + 1350, 1359, 2377, 1356, 1375, 2377, 1359, 1344, 1404, 1405, + 1362, 1367, 1349, 1409, 1410, 1411, 1407, 1371, 1368, 1364, + 1357, 1412, 1370, 1371, 2377, 1361, 1368, 1374, 1376, 1425, + 2377, 1363, 1422, 1386, 1382, 1426, 1374, 1379, 1377, 1436, + + 1392, 1380, 1439, 1389, 1441, 1402, 1391, 1385, 1445, 1387, + 1396, 1389, 1403, 1406, 1451, 1393, 1410, 1406, 1396, 1411, + 1395, 1453, 1454, 1455, 1402, 1457, 1420, 1413, 1412, 1406, + 2377, 1423, 1410, 1409, 1465, 2377, 1406, 1424, 1473, 1443, + 1475, 1428, 2377, 2377, 1419, 1430, 1479, 2377, 2377, 2377, + 1425, 1430, 1428, 1478, 1436, 1441, 1429, 1445, 1434, 1432, + 1485, 1437, 1435, 2377, 1493, 1440, 1491, 1434, 1440, 1500, + 1448, 1459, 1460, 2377, 1505, 1458, 1502, 2377, 1460, 2377, + 1451, 1466, 1454, 2377, 1464, 1465, 1466, 1515, 1473, 2377, + 1512, 1478, 1454, 1472, 1473, 1482, 1464, 1470, 1472, 1526, + + 1485, 1484, 1475, 1525, 1472, 1479, 1533, 1483, 1487, 1492, + 1485, 2377, 1538, 2377, 1487, 1540, 1482, 2377, 1485, 1495, + 1539, 1487, 1502, 1489, 1504, 1490, 1497, 1497, 1509, 1500, + 1510, 2377, 1504, 1499, 1498, 1558, 1511, 2377, 1555, 1506, + 1503, 2377, 1517, 1504, 1520, 1522, 1567, 1520, 1517, 1525, + 1519, 2377, 1572, 1513, 1515, 1531, 1524, 1514, 1530, 1531, + 1525, 1541, 2377, 1531, 1583, 1543, 1527, 1581, 1545, 2377, + 1529, 1536, 1590, 1586, 2377, 1548, 2377, 1588, 1550, 1551, + 1536, 1537, 1545, 1599, 1547, 1596, 1597, 1552, 1563, 1600, + 1566, 1563, 1554, 1561, 2377, 1558, 1563, 1561, 1613, 1614, + + 1562, 1572, 1559, 2377, 1574, 1575, 1576, 1577, 2377, 1567, + 1579, 1624, 1581, 1626, 1568, 1576, 1570, 1578, 1591, 2377, + 1592, 1573, 1580, 1571, 1631, 1592, 2377, 1596, 1581, 1581, + 1596, 1589, 1588, 1599, 1586, 2377, 1602, 1590, 1593, 1649, + 1645, 1594, 1609, 1600, 1612, 1603, 1612, 1614, 1618, 2377, + 2377, 1611, 1601, 1661, 1604, 1663, 1605, 1665, 1623, 1667, + 2377, 1668, 2377, 1664, 1626, 1623, 1628, 1615, 1623, 1634, + 1631, 1677, 1620, 1625, 1616, 1681, 1634, 1635, 1625, 1642, + 1641, 1682, 1626, 1645, 1646, 2377, 1640, 1648, 1645, 1694, + 1651, 1652, 1697, 1654, 1657, 1644, 1653, 2377, 1702, 2377, + + 1655, 2377, 1664, 2377, 2377, 1646, 1706, 1653, 1708, 1651, + 1710, 1658, 1707, 2377, 1673, 1714, 1673, 2377, 1664, 1654, + 1713, 1679, 1672, 1668, 1722, 1665, 1667, 1671, 1684, 1674, + 2377, 1670, 1672, 2377, 1677, 1687, 1672, 1681, 2377, 1682, + 1676, 1688, 2377, 1684, 2377, 1694, 2377, 1695, 1685, 1689, + 2377, 1691, 1699, 1744, 1685, 1687, 1684, 1708, 2377, 1695, + 1702, 1693, 1698, 1707, 1696, 1750, 1697, 1705, 1714, 1715, + 1716, 1717, 1710, 1705, 1706, 1706, 1712, 1712, 1724, 1769, + 2377, 1715, 1727, 1772, 1721, 1723, 1721, 1718, 1716, 1778, + 1731, 1718, 1733, 1738, 1783, 1784, 1785, 1786, 1743, 1788, + + 1789, 1790, 1737, 1741, 1735, 2377, 1751, 1795, 2377, 1752, + 1737, 1755, 1799, 1756, 2377, 1748, 1762, 1758, 1751, 2377, + 2377, 2377, 2377, 1805, 2377, 2377, 2377, 1755, 1763, 1808, + 1769, 2377, 1810, 1752, 1812, 2377, 1756, 1768, 1767, 1768, + 1758, 2377, 1818, 1814, 2377, 1761, 2377, 1773, 2377, 1758, + 1823, 1765, 1781, 1826, 2377, 1787, 1784, 1776, 1831, 2377, + 1827, 1776, 2377, 1788, 1781, 1836, 1784, 2377, 1779, 1781, + 1796, 1781, 2377, 1842, 1795, 1844, 1845, 1793, 2377, 1795, + 2377, 2377, 1789, 1805, 1850, 1851, 2377, 2377, 2377, 1857, + 1860, 1863, 1864, 1866, 1869, 1872, 1875 + } ; -static const flex_int16_t yy_def[1978] = +static const flex_int16_t yy_def[1998] = { 0, - 1970, 1970, 1971, 1971, 1970, 1970, 1970, 1970, 1970, 1970, - 1969, 1969, 1969, 1969, 1969, 1972, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1973, - 1969, 1969, 1969, 1974, 15, 1969, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1975, 45, 45, 45, + 1990, 1990, 1991, 1991, 1990, 1990, 1990, 1990, 1990, 1990, + 1989, 1989, 1989, 1989, 1989, 1992, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1993, + 1989, 1989, 1989, 1994, 15, 1989, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1995, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1972, 1969, 1969, - 1969, 1969, 1969, 1969, 1976, 1969, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1973, 1969, 1974, 1969, + 45, 45, 45, 45, 45, 45, 45, 1992, 1989, 1989, + 1989, 1989, 1989, 1989, 1996, 1989, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1993, 1989, 1994, 1989, - 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1977, 45, 1975, 45, 45, 45, 45, 45, + 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1997, 45, 1995, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1976, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - 1969, 45, 45, 1969, 45, 45, 1969, 45, 45, 45, + 45, 45, 1996, 1989, 1989, 1989, 1989, 1989, 1989, 1989, + 1989, 45, 45, 1989, 45, 45, 1989, 45, 45, 45, - 45, 45, 45, 1977, 1969, 1969, 115, 45, 45, 45, + 45, 45, 45, 1997, 1989, 1989, 115, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 45, 45, 45, 45, 1969, 45, 1969, - 45, 1969, 45, 115, 1969, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, + 45, 45, 45, 45, 45, 45, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 45, 45, 45, 45, 1989, 45, 1989, + 45, 1989, 45, 115, 1989, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1969, 1969, 1969, 45, 45, 45, 1969, 45, 1969, - 45, 115, 45, 45, 45, 45, 45, 45, 1969, 45, - 45, 45, 45, 45, 45, 45, 1969, 45, 45, 45, - 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, + 45, 1989, 1989, 1989, 45, 45, 45, 1989, 45, 1989, + 45, 115, 45, 45, 45, 45, 45, 45, 1989, 45, + 45, 45, 45, 45, 45, 45, 1989, 45, 45, 45, + 45, 45, 45, 45, 45, 1989, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1969, - 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1989, + 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1969, 45, 1969, 1969, 45, - 1969, 45, 45, 1969, 45, 1969, 1969, 1969, 45, 45, - 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1989, 45, 1989, 1989, 45, + 1989, 45, 45, 1989, 45, 1989, 1989, 1989, 45, 45, + 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, - 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, + 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1969, 45, 45, 1969, 45, + 45, 45, 45, 45, 45, 1989, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1969, - 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1989, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1989, + 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1969, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, + 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1969, + 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1969, 1969, - 45, 45, 45, 45, 45, 45, 45, 1969, 1969, 45, + 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1989, + 1989, 45, 45, 45, 45, 45, 45, 45, 1989, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1969, 45, 1969, 45, 45, 45, 45, 45, + 45, 45, 45, 1989, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, + 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1969, 45, 45, 45, 45, 45, 45, 45, 1969, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, + 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1969, 1969, 45, 45, 45, 1969, 45, 45, - 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1989, 1989, 45, 45, 45, 1989, + 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1969, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1969, 45, - 45, 1969, 1969, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1989, 45, 45, 1989, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, - 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1989, 45, 45, 45, 45, + 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1969, 1969, 45, 1969, 45, 1969, 45, 45, 45, + 45, 45, 45, 45, 45, 1989, 1989, 45, 1989, 45, + 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1989, 45, 45, 45, + 1989, 45, 45, 45, 45, 45, 1989, 1989, 45, 1989, + 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1989, 45, 45, + 45, 45, 45, 1989, 1989, 45, 45, 45, 45, 45, + 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, + 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1969, 45, 45, 45, 1969, 45, 45, 45, - 45, 45, 1969, 1969, 45, 1969, 45, 1969, 45, 45, + 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1969, 45, 45, 45, 45, 45, 1969, - 1969, 45, 45, 45, 45, 45, 45, 45, 45, 1969, - 45, 45, 45, 45, 45, 45, 45, 45, 1969, 45, + 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1989, 1989, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1989, 45, 45, 45, + 45, 45, 45, 1989, 45, 1989, 45, 1989, 1989, 45, + 45, 45, 1989, 45, 45, 45, 45, 45, 1989, 45, + 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, + 45, 1989, 45, 45, 45, 1989, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1989, 45, 1989, + 45, 1989, 45, 1989, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, + 45, 45, 1989, 1989, 45, 45, 1989, 45, 45, 45, + 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1989, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1969, 1969, 45, + 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, + 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1969, 45, 45, 45, 45, 45, 45, 1969, 45, - 1969, 45, 1969, 1969, 45, 45, 45, 1969, 45, 45, - 45, 45, 45, 1969, 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1969, 45, 45, 1969, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1969, 45, 1969, 45, 1969, 45, 1969, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1969, 45, - 45, 45, 45, 45, 45, 45, 1969, 1969, 45, 45, - 1969, 45, 45, 45, 45, 45, 1969, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1969, 45, 45, 1969, + 1989, 45, 45, 45, 45, 1989, 45, 45, 45, 45, + 45, 45, 1989, 1989, 45, 45, 45, 1989, 1989, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1969, 45, - 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1989, 45, 45, 45, 1989, 45, 1989, + 45, 45, 45, 1989, 45, 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1989, 45, 1989, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1969, 45, 45, 45, 45, 1969, 45, - 45, 45, 45, 45, 45, 1969, 1969, 45, 45, 45, - 1969, 1969, 1969, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1969, 45, 45, 45, 1969, - 45, 1969, 45, 45, 45, 1969, 45, 45, 45, 45, - 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1989, 45, 45, 45, 45, 45, 1989, 45, 45, + 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1989, 45, 45, 45, 45, 45, 45, 1989, + 45, 45, 45, 45, 1989, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 1969, 45, 1969, 45, 45, 45, 1969, + 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, + + 45, 45, 45, 1989, 45, 45, 45, 45, 1989, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1989, + 45, 45, 45, 45, 45, 45, 1989, 45, 45, 45, + 45, 45, 45, 45, 45, 1989, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1989, + 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1989, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1969, 45, 45, 45, 45, 45, 1969, 45, - 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, - 1969, 45, 45, 45, 45, 1969, 45, 1969, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, - 45, 45, 45, 1969, 45, 45, 45, 45, 1969, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1969, - 45, 45, 45, 45, 45, 45, 1969, 45, 45, 45, - 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1969, 1969, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1969, - 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1989, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1989, 45, 1989, + + 45, 1989, 45, 1989, 1989, 45, 45, 45, 45, 45, + 45, 45, 45, 1989, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1969, 45, 1969, 45, 1969, - 45, 1969, 1969, 45, 45, 45, 45, 45, 45, 45, - - 45, 1969, 45, 45, 45, 1969, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, - 1969, 45, 45, 45, 45, 1969, 45, 45, 45, 1969, - 45, 1969, 45, 1969, 45, 45, 45, 1969, 45, 45, - 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, + 1989, 45, 45, 1989, 45, 45, 45, 45, 1989, 45, + 45, 45, 1989, 45, 1989, 45, 1989, 45, 45, 45, + 1989, 45, 45, 45, 45, 45, 45, 45, 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1989, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1969, 45, 45, 1969, 45, 45, 45, 45, 1969, 45, - - 45, 45, 45, 1969, 1969, 1969, 1969, 45, 1969, 1969, - 1969, 45, 45, 45, 45, 1969, 45, 45, 45, 1969, - 45, 45, 45, 45, 1969, 45, 45, 1969, 45, 1969, - 45, 1969, 45, 45, 45, 45, 1969, 45, 45, 45, - 1969, 45, 45, 1969, 45, 45, 45, 45, 45, 45, - 45, 45, 1969, 45, 45, 45, 45, 45, 1969, 45, - 1969, 1969, 45, 45, 45, 45, 1969, 1969, 0, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969 + + 45, 45, 45, 45, 45, 1989, 45, 45, 1989, 45, + 45, 45, 45, 45, 1989, 45, 45, 45, 45, 1989, + 1989, 1989, 1989, 45, 1989, 1989, 1989, 45, 45, 45, + 45, 1989, 45, 45, 45, 1989, 45, 45, 45, 45, + 45, 1989, 45, 45, 1989, 45, 1989, 45, 1989, 45, + 45, 45, 45, 45, 1989, 45, 45, 45, 45, 1989, + 45, 45, 1989, 45, 45, 45, 45, 1989, 45, 45, + 45, 45, 1989, 45, 45, 45, 45, 45, 1989, 45, + 1989, 1989, 45, 45, 45, 45, 1989, 1989, 0, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989 + } ; -static const flex_int16_t yy_nxt[2431] = +static const flex_int16_t yy_nxt[2451] = { 0, - 1969, 13, 14, 13, 1969, 15, 16, 1969, 17, 18, + 1989, 13, 14, 13, 1989, 15, 16, 1989, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 84, 764, 37, 14, 37, 85, 25, 26, 38, 100, - 851, 27, 37, 14, 37, 42, 28, 42, 38, 90, + 852, 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, 765, 13, 14, 13, 33, 40, 101, 90, 91, 196, @@ -1423,7 +1431,7 @@ static const flex_int16_t yy_nxt[2431] = 106, 42, 41, 29, 108, 30, 111, 112, 92, 134, 41, 25, 31, 102, 135, 364, 87, 136, 87, 105, 32, 88, 88, 88, 88, 88, 33, 108, 106, 111, - 852, 112, 365, 34, 35, 44, 44, 44, 45, 45, + 853, 112, 365, 34, 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 45, 48, 49, 50, 45, 51, 52, 53, 45, 45, 45, @@ -1431,13 +1439,13 @@ static const flex_int16_t yy_nxt[2431] = 58, 45, 59, 60, 61, 62, 63, 64, 65, 51, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 56, 45, 45, 45, 45, 45, 79, 853, + 76, 77, 56, 45, 45, 45, 45, 45, 79, 854, 80, 80, 80, 80, 80, 79, 102, 82, 82, 82, 82, 82, 203, 81, 83, 83, 83, 83, 83, 79, 81, 82, 82, 82, 82, 82, 105, 81, 118, 164, 109, 129, 116, 165, 81, 203, 81, 200, 117, 119, 110, 130, 120, 81, 121, 132, 122, 197, 184, 105, - 81, 185, 133, 109, 854, 233, 404, 81, 45, 405, + 81, 185, 133, 109, 855, 233, 404, 81, 45, 405, 131, 45, 45, 45, 200, 45, 45, 45, 110, 114, 137, 234, 45, 45, 184, 45, 45, 185, 198, 184, @@ -1445,9 +1453,9 @@ static const flex_int16_t yy_nxt[2431] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 123, 187, 45, 124, 125, 185, 45, 126, 127, 145, 45, 141, 142, 146, 294, 143, - 108, 147, 45, 855, 128, 144, 45, 186, 45, 115, + 108, 147, 45, 856, 128, 144, 45, 186, 45, 115, 153, 186, 295, 148, 111, 188, 195, 149, 154, 150, - 155, 151, 856, 152, 158, 156, 157, 159, 160, 166, + 155, 151, 857, 152, 158, 156, 157, 159, 160, 166, 173, 174, 228, 167, 229, 186, 168, 111, 161, 189, 109, 162, 195, 169, 170, 202, 251, 180, 171, 172, 110, 230, 181, 83, 83, 83, 83, 83, 88, 88, @@ -1467,113 +1475,113 @@ static const flex_int16_t yy_nxt[2431] = 307, 238, 272, 273, 308, 239, 266, 267, 268, 308, 310, 279, 280, 281, 309, 207, 207, 207, 207, 207, 207, 314, 282, 316, 283, 317, 284, 285, 288, 286, - 308, 319, 289, 321, 323, 311, 290, 312, 385, 857, - 413, 858, 463, 373, 314, 314, 374, 319, 464, 435, + 308, 319, 289, 321, 323, 311, 290, 312, 385, 858, + 413, 859, 463, 373, 314, 314, 374, 319, 464, 435, 320, 316, 317, 414, 319, 424, 321, 432, 432, 439, 435, 323, 324, 324, 324, 324, 324, 437, 326, 334, 381, 324, 324, 324, 324, 324, 324, 335, 435, 457, 432, 433, 336, 337, 458, 520, 501, 439, 386, 443, 437, 454, 502, 439, 324, 324, 324, 324, 324, 324, - 442, 442, 442, 442, 442, 742, 743, 859, 455, 442, + 442, 442, 442, 442, 442, 742, 743, 860, 455, 442, 442, 442, 442, 442, 442, 478, 494, 495, 496, 506, 479, 508, 497, 524, 533, 565, 538, 525, 534, 507, 539, 565, 442, 442, 442, 442, 442, 442, 569, 561, - 570, 627, 594, 521, 562, 604, 585, 664, 860, 861, + 570, 627, 594, 521, 562, 604, 585, 664, 861, 862, 605, 628, 665, 565, 586, 595, 587, 588, 589, 571, 590, 691, 692, 693, 695, 569, 694, 570, 480, 713, 802, 696, 714, 481, 45, 45, 45, 45, 45, 813, - 843, 862, 803, 45, 45, 45, 45, 45, 45, 692, + 843, 863, 803, 45, 45, 45, 45, 45, 45, 692, - 775, 693, 812, 821, 822, 776, 823, 845, 863, 864, - 865, 846, 813, 866, 867, 847, 45, 45, 45, 45, - 45, 45, 868, 869, 870, 871, 872, 873, 844, 874, - 812, 876, 875, 877, 878, 879, 880, 881, 882, 883, + 775, 693, 812, 821, 822, 776, 823, 864, 865, 866, + 867, 868, 813, 845, 869, 870, 45, 45, 45, 45, + 45, 45, 871, 846, 872, 873, 874, 847, 844, 875, + 812, 848, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 777, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, - 913, 914, 915, 916, 918, 919, 922, 923, 924, 926, - 917, 927, 920, 928, 925, 929, 921, 930, 931, 932, + 913, 914, 915, 916, 917, 919, 920, 923, 924, 925, + 927, 918, 928, 921, 929, 926, 930, 922, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, - 963, 964, 965, 938, 966, 967, 968, 969, 970, 971, + 963, 964, 965, 966, 939, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, - 983, 984, 985, 986, 982, 987, 988, 989, 990, 991, + 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, + 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1010, 1011, 1012, + 1009, 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, 1040, 1041, 1042, + 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1042, - 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1039, 1051, - 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, + 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, + 1041, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, - 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1057, 1080, - 1081, 1056, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, + 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, + 1059, 1082, 1083, 1058, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, - 1100, 1101, 1102, 1105, 1106, 1107, 1108, 1103, 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, + 1100, 1101, 1102, 1103, 1104, 1105, 1108, 1109, 1110, 1111, + 1106, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, + 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, + 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, - 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, + 1131, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, - 1104, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, - 1171, 1170, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, + 1161, 1162, 1163, 1107, 1164, 1165, 1166, 1167, 1168, 1169, + 1170, 1171, 1172, 1174, 1173, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, - 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1169, 1170, 1197, - 1198, 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, + 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, + 1172, 1173, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, + 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, + 1218, 1219, 1221, 1223, 1224, 1225, 1220, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, - 1259, 1260, 1218, 1261, 1262, 1263, 1264, 1265, 1266, 1267, + 1259, 1260, 1261, 1262, 1263, 1264, 1222, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, - 1298, 1299, 1300, 1278, 1301, 1302, 1303, 1304, 1305, 1279, - 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, + 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1282, 1305, 1306, + 1307, 1308, 1309, 1283, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, - 1356, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, + 1356, 1357, 1358, 1359, 1360, 1361, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, - 1377, 1378, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, + 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, - 1398, 1399, 1400, 1401, 1373, 1402, 1403, 1404, 1405, 1406, - 1407, 1408, 1409, 1357, 1410, 1411, 1412, 1413, 1414, 1415, - 1416, 1417, 1418, 1419, 1420, 1379, 1421, 1423, 1424, 1425, - 1426, 1427, 1428, 1429, 1422, 1430, 1431, 1432, 1433, 1434, - - 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, - 1445, 1446, 1447, 1449, 1450, 1451, 1452, 1448, 1453, 1454, - 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, + 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1378, + 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1362, 1415, + 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, + 1384, 1426, 1427, 1429, 1430, 1431, 1432, 1433, 1434, 1435, + + 1428, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, + 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1455, + 1456, 1457, 1458, 1454, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, - 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1459, 1482, 1483, - 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, + 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, + 1485, 1486, 1487, 1465, 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, 1524, 1522, - 1525, 1526, 1527, 1528, 1529, 1523, 1530, 1531, 1532, 1533, - - 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, - 1544, 1545, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, - 1555, 1556, 1546, 1557, 1558, 1559, 1533, 1560, 1561, 1562, - 1563, 1564, 1565, 1566, 1568, 1569, 1570, 1571, 1572, 1573, - 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, + 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, + 1524, 1525, 1526, 1527, 1528, 1531, 1529, 1532, 1533, 1534, + + 1535, 1536, 1530, 1537, 1538, 1539, 1540, 1541, 1542, 1543, + 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1554, + 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1553, + 1564, 1565, 1566, 1540, 1567, 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, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, - 1625, 1567, 1626, 1627, 1624, 1628, 1629, 1630, 1631, 1605, + 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1575, - 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, + 1634, 1635, 1636, 1633, 1637, 1638, 1639, 1613, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, @@ -1607,16 +1615,18 @@ static const flex_int16_t yy_nxt[2431] = 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, - 1942, 1943, 1944, 1945, 1947, 1946, 1948, 1949, 1950, 1951, + 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, - 1962, 1963, 1964, 1965, 1966, 1967, 1968, 12, 12, 12, + 1962, 1963, 1964, 1966, 1965, 1967, 1968, 1969, 1970, 1971, + 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, + 1982, 1983, 1984, 1985, 1986, 1987, 1988, 12, 12, 12, 36, 36, 36, 78, 97, 78, 99, 99, 99, 113, - 113, 113, 183, 850, 183, 204, 204, 204, 849, 848, + 113, 113, 183, 851, 183, 204, 204, 204, 850, 849, 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, 824, 820, + 819, 818, 817, 816, 815, 814, 811, 810, 809, 808, 807, 806, 805, 804, 801, 800, 799, 798, 797, 796, - 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, 774, 773, 772, 771, 770, 769, 768, 767, 766, 763, 762, 761, @@ -1625,9 +1635,9 @@ static const flex_int16_t yy_nxt[2431] = 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 712, 711, 710, 709, 708, 707, + 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, - 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, @@ -1636,9 +1646,9 @@ static const flex_int16_t yy_nxt[2431] = 629, 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 603, 602, 601, 600, 599, 598, 597, 596, + 593, 592, 591, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 568, 567, 566, 564, - 563, 560, 559, 558, 557, 556, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 537, 536, 535, 532, 531, 530, 529, 528, 527, 526, @@ -1647,9 +1657,9 @@ static const flex_int16_t yy_nxt[2431] = 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 462, 461, 460, 459, 456, 453, + 452, 451, 450, 449, 448, 447, 446, 445, 444, 441, 440, 438, 436, 434, 431, 430, 429, 428, 427, 426, - 425, 423, 422, 421, 420, 419, 418, 417, 416, 415, 412, 411, 410, 409, 408, 407, 406, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, @@ -1658,26 +1668,26 @@ static const flex_int16_t yy_nxt[2431] = 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 333, 332, 331, 330, 329, + 328, 327, 325, 205, 322, 320, 318, 315, 313, 306, 305, 304, 303, 302, 301, 300, 298, 297, 296, 293, - 292, 291, 287, 277, 274, 270, 269, 264, 263, 262, 261, 260, 258, 257, 256, 255, 254, 253, 250, 249, 248, 247, 246, 245, 244, 241, 240, 236, 235, 227, 226, 225, 221, 220, 219, 218, 214, 210, 205, 194, 193, 191, 190, 182, 163, 140, 107, 104, 103, 43, - 98, 96, 95, 86, 43, 1969, 11, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969 + 98, 96, 95, 86, 43, 1989, 11, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, + + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989 } ; -static const flex_int16_t yy_chk[2431] = +static const flex_int16_t yy_chk[2451] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1756,138 +1766,140 @@ static const flex_int16_t yy_chk[2431] = 681, 573, 590, 359, 442, 442, 442, 442, 442, 693, 721, 738, 681, 442, 442, 442, 442, 442, 442, 569, - 654, 570, 692, 701, 701, 654, 701, 722, 739, 740, - 741, 722, 693, 742, 743, 722, 442, 442, 442, 442, - 442, 442, 744, 745, 746, 747, 748, 749, 721, 750, - 692, 751, 750, 752, 753, 755, 756, 757, 758, 759, - 760, 761, 762, 763, 654, 765, 766, 767, 768, 769, - 770, 771, 772, 773, 774, 776, 777, 778, 779, 780, - 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, - 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, - 794, 801, 796, 803, 799, 804, 796, 805, 806, 807, - 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, - - 818, 819, 821, 822, 823, 824, 825, 826, 827, 828, - 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, - 839, 840, 841, 813, 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, - 868, 871, 872, 873, 874, 875, 876, 877, 880, 881, - 882, 883, 884, 885, 886, 887, 888, 889, 886, 890, - 891, 892, 894, 896, 897, 898, 899, 900, 901, 902, - 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, - 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, - - 923, 924, 925, 926, 927, 929, 930, 931, 919, 932, - 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, - 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, - 954, 955, 956, 957, 958, 959, 960, 961, 938, 962, - 963, 937, 964, 965, 966, 967, 969, 970, 971, 972, - 973, 974, 975, 976, 977, 978, 979, 980, 982, 983, - 984, 985, 986, 987, 988, 990, 991, 986, 992, 993, - 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, - 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1015, - 1016, 1017, 1019, 1020, 1021, 1022, 1024, 1010, 1025, 1026, - - 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, - 1037, 1038, 1039, 1040, 1041, 1043, 1044, 1045, 1046, 1047, - 986, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, - 1058, 1057, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, - 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, - 1077, 1078, 1079, 1080, 1081, 1083, 1084, 1056, 1057, 1085, - 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, - 1096, 1097, 1098, 1099, 1100, 1101, 1103, 1104, 1105, 1106, - 1107, 1108, 1104, 1109, 1110, 1111, 1112, 1113, 1114, 1115, - 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, - - 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, - 1136, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, - 1147, 1148, 1105, 1150, 1151, 1154, 1155, 1156, 1157, 1158, - 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, - 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, - 1179, 1180, 1181, 1182, 1184, 1185, 1186, 1187, 1188, 1189, - 1190, 1191, 1193, 1169, 1194, 1195, 1196, 1197, 1198, 1170, - 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, - 1209, 1210, 1211, 1214, 1216, 1218, 1219, 1220, 1221, 1222, - 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, - - 1234, 1235, 1236, 1238, 1239, 1240, 1241, 1242, 1245, 1247, - 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, - 1259, 1260, 1261, 1262, 1263, 1265, 1266, 1267, 1268, 1269, - 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1281, 1282, - 1283, 1284, 1285, 1286, 1287, 1288, 1290, 1291, 1292, 1293, - 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, - 1304, 1305, 1306, 1307, 1278, 1309, 1310, 1311, 1312, 1313, - 1314, 1315, 1316, 1259, 1317, 1318, 1319, 1320, 1321, 1322, - 1323, 1324, 1325, 1327, 1328, 1284, 1329, 1330, 1331, 1332, - 1333, 1334, 1335, 1336, 1329, 1337, 1340, 1341, 1342, 1343, - - 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1353, 1354, - 1355, 1356, 1357, 1358, 1360, 1362, 1365, 1357, 1366, 1367, - 1369, 1370, 1371, 1372, 1373, 1375, 1376, 1377, 1379, 1380, - 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, - 1391, 1392, 1393, 1394, 1395, 1396, 1398, 1373, 1399, 1401, - 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, - 1413, 1415, 1417, 1419, 1420, 1421, 1422, 1423, 1424, 1425, - 1426, 1427, 1428, 1430, 1431, 1432, 1433, 1434, 1435, 1436, - 1439, 1440, 1442, 1443, 1444, 1445, 1446, 1448, 1449, 1448, - 1450, 1451, 1452, 1453, 1454, 1448, 1455, 1456, 1458, 1459, - - 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, - 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1480, 1481, - 1482, 1483, 1472, 1485, 1486, 1487, 1459, 1488, 1489, 1490, - 1491, 1492, 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, 1525, 1526, 1527, 1528, 1530, 1531, - 1532, 1533, 1534, 1535, 1538, 1539, 1540, 1544, 1545, 1546, - 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1557, - 1558, 1493, 1559, 1560, 1557, 1561, 1562, 1563, 1564, 1533, - - 1565, 1567, 1568, 1569, 1571, 1573, 1574, 1575, 1577, 1578, - 1579, 1580, 1581, 1583, 1584, 1585, 1586, 1587, 1588, 1589, - 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, - 1600, 1601, 1602, 1603, 1605, 1607, 1608, 1609, 1611, 1612, - 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, - 1624, 1625, 1626, 1627, 1628, 1630, 1631, 1632, 1634, 1635, - 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1644, 1645, 1646, - 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1655, 1656, 1657, - 1658, 1659, 1660, 1662, 1663, 1664, 1665, 1667, 1669, 1670, - 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, - - 1681, 1682, 1683, 1684, 1686, 1687, 1688, 1689, 1690, 1691, - 1692, 1693, 1695, 1696, 1697, 1698, 1700, 1701, 1702, 1703, - 1704, 1705, 1706, 1707, 1708, 1709, 1711, 1712, 1713, 1714, - 1715, 1716, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, - 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, - 1737, 1738, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, - 1749, 1751, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, - 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, - 1771, 1772, 1773, 1774, 1776, 1777, 1778, 1779, 1780, 1781, - 1782, 1783, 1784, 1785, 1787, 1789, 1791, 1794, 1795, 1796, - - 1797, 1798, 1799, 1800, 1801, 1803, 1804, 1805, 1807, 1808, - 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1819, - 1820, 1822, 1823, 1824, 1825, 1827, 1828, 1829, 1831, 1833, - 1835, 1836, 1837, 1839, 1840, 1841, 1842, 1843, 1844, 1845, - 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, - 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, - 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, - 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, - 1888, 1889, 1890, 1892, 1893, 1895, 1896, 1897, 1898, 1900, - 1901, 1902, 1903, 1908, 1912, 1913, 1914, 1915, 1917, 1918, - - 1919, 1921, 1922, 1923, 1924, 1926, 1927, 1929, 1931, 1933, - 1934, 1935, 1936, 1938, 1939, 1938, 1940, 1942, 1943, 1945, - 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1954, 1955, 1956, - 1957, 1958, 1960, 1963, 1964, 1965, 1966, 1970, 1970, 1970, - 1971, 1971, 1971, 1972, 1973, 1972, 1974, 1974, 1974, 1975, - 1975, 1975, 1976, 725, 1976, 1977, 1977, 1977, 724, 723, + 654, 570, 692, 701, 701, 654, 701, 739, 740, 741, + 742, 743, 693, 722, 744, 745, 442, 442, 442, 442, + 442, 442, 746, 722, 747, 748, 749, 722, 721, 750, + 692, 722, 750, 751, 752, 753, 755, 756, 757, 758, + 759, 760, 761, 762, 654, 763, 765, 766, 767, 768, + 769, 770, 771, 772, 773, 774, 776, 777, 778, 779, + 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, + 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, + 800, 794, 801, 796, 803, 799, 804, 796, 805, 806, + 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, + + 817, 818, 819, 821, 822, 823, 824, 825, 826, 827, + 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, + 838, 839, 840, 841, 813, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 854, 855, 856, 857, + 858, 859, 860, 861, 862, 863, 859, 864, 865, 866, + 867, 868, 869, 872, 873, 874, 875, 876, 877, 878, + 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, + 887, 891, 892, 893, 895, 897, 898, 899, 900, 901, + 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, + 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, + + 922, 923, 924, 925, 926, 927, 928, 930, 931, 932, + 920, 933, 934, 935, 936, 937, 938, 939, 940, 941, + 942, 943, 945, 946, 947, 948, 949, 950, 951, 952, + 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, + 939, 963, 964, 938, 965, 966, 967, 968, 970, 971, + 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, + 982, 984, 985, 986, 987, 988, 989, 990, 992, 993, + 988, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, + 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, + 1013, 1014, 1017, 1018, 1019, 1021, 1022, 1023, 1024, 1026, + + 1012, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, + 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1045, 1046, + 1047, 1048, 1049, 988, 1050, 1051, 1052, 1053, 1054, 1055, + 1056, 1057, 1058, 1060, 1059, 1061, 1062, 1063, 1064, 1065, + 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, + 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1085, 1086, + 1058, 1059, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, + 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, + 1106, 1107, 1108, 1109, 1110, 1111, 1107, 1112, 1113, 1114, + 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, + + 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, + 1135, 1136, 1137, 1138, 1139, 1141, 1142, 1143, 1144, 1145, + 1146, 1147, 1148, 1149, 1150, 1151, 1108, 1153, 1154, 1157, + 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, + 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, + 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1187, 1188, + 1189, 1190, 1191, 1192, 1193, 1194, 1196, 1172, 1197, 1198, + 1199, 1200, 1201, 1173, 1202, 1203, 1204, 1205, 1206, 1207, + 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1218, 1220, + 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, + + 1232, 1233, 1234, 1235, 1236, 1238, 1239, 1240, 1242, 1243, + 1244, 1245, 1246, 1249, 1251, 1253, 1254, 1255, 1256, 1257, + 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, + 1269, 1270, 1271, 1272, 1273, 1276, 1277, 1278, 1279, 1280, + 1281, 1282, 1283, 1285, 1286, 1287, 1288, 1289, 1290, 1291, + 1292, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, + 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1282, + 1312, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1263, 1321, + 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1332, + 1288, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, + + 1334, 1342, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, + 1353, 1354, 1355, 1356, 1358, 1359, 1360, 1361, 1362, 1363, + 1365, 1367, 1370, 1362, 1371, 1372, 1374, 1375, 1376, 1377, + 1378, 1380, 1381, 1382, 1384, 1385, 1386, 1387, 1388, 1389, + 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, + 1400, 1401, 1403, 1378, 1404, 1405, 1407, 1408, 1409, 1410, + 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1419, 1421, 1423, + 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, + 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1445, 1446, 1448, + 1449, 1450, 1451, 1452, 1454, 1455, 1454, 1456, 1457, 1458, + + 1459, 1460, 1454, 1461, 1462, 1464, 1465, 1467, 1468, 1469, + 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, + 1480, 1481, 1482, 1483, 1484, 1486, 1487, 1488, 1489, 1478, + 1490, 1492, 1493, 1465, 1494, 1495, 1496, 1497, 1498, 1499, + 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, + 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, + 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, + 1529, 1530, 1532, 1533, 1534, 1535, 1537, 1538, 1539, 1540, + 1541, 1542, 1545, 1546, 1547, 1551, 1552, 1553, 1554, 1555, + 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1565, 1500, + + 1566, 1567, 1568, 1565, 1569, 1570, 1571, 1540, 1572, 1573, + 1575, 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, 1613, 1615, 1616, 1617, 1619, 1620, 1621, + 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, + 1633, 1634, 1635, 1636, 1637, 1639, 1640, 1641, 1643, 1644, + 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1653, 1654, 1655, + 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1664, 1665, 1666, + 1667, 1668, 1669, 1671, 1672, 1673, 1674, 1676, 1678, 1679, + + 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, + 1690, 1691, 1692, 1693, 1694, 1696, 1697, 1698, 1699, 1700, + 1701, 1702, 1703, 1705, 1706, 1707, 1708, 1710, 1711, 1712, + 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1721, 1722, 1723, + 1724, 1725, 1726, 1728, 1729, 1730, 1731, 1732, 1733, 1734, + 1735, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, + 1746, 1747, 1748, 1749, 1752, 1753, 1754, 1755, 1756, 1757, + 1758, 1759, 1760, 1762, 1764, 1765, 1766, 1767, 1768, 1769, + 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, + 1780, 1781, 1782, 1783, 1784, 1785, 1787, 1788, 1789, 1790, + + 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1799, 1801, 1803, + 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1815, 1816, + 1817, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, + 1828, 1829, 1830, 1832, 1833, 1835, 1836, 1837, 1838, 1840, + 1841, 1842, 1844, 1846, 1848, 1849, 1850, 1852, 1853, 1854, + 1855, 1856, 1857, 1858, 1860, 1861, 1862, 1863, 1864, 1865, + 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, + 1876, 1877, 1878, 1879, 1880, 1882, 1883, 1884, 1885, 1886, + 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, + 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1907, + + 1908, 1910, 1911, 1912, 1913, 1914, 1916, 1917, 1918, 1919, + 1924, 1928, 1929, 1930, 1931, 1933, 1934, 1935, 1937, 1938, + 1939, 1940, 1941, 1943, 1944, 1946, 1948, 1950, 1951, 1952, + 1953, 1954, 1956, 1957, 1956, 1958, 1959, 1961, 1962, 1964, + 1965, 1966, 1967, 1969, 1970, 1971, 1972, 1974, 1975, 1976, + 1977, 1978, 1980, 1983, 1984, 1985, 1986, 1990, 1990, 1990, + 1991, 1991, 1991, 1992, 1993, 1992, 1994, 1994, 1994, 1995, + 1995, 1995, 1996, 725, 1996, 1997, 1997, 1997, 724, 723, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 700, + 699, 698, 697, 696, 695, 694, 689, 688, 687, 686, 685, 684, 683, 682, 680, 679, 677, 676, 675, 674, - 673, 672, 671, 670, 669, 668, 667, 666, 665, 663, 662, 661, 660, 659, 658, 657, 656, 655, 653, 652, 650, 649, 648, 647, 646, 645, 644, 642, 641, 640, @@ -1896,9 +1908,9 @@ static const flex_int16_t yy_chk[2431] = 616, 615, 614, 612, 611, 610, 609, 608, 607, 606, 605, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 589, 588, 587, 586, 585, 584, + 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 565, 564, 563, 562, 560, 557, 555, 554, 553, 552, - 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 521, 519, @@ -1907,9 +1919,9 @@ static const flex_int16_t yy_chk[2431] = 497, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 477, 476, 475, 474, 472, 471, 470, 469, 468, 467, 465, 464, + 462, 461, 460, 458, 456, 455, 454, 453, 452, 451, 450, 448, 447, 446, 445, 444, 439, 437, 436, 434, - 431, 429, 428, 427, 426, 425, 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 408, 407, 406, 404, 403, 402, 401, 400, 399, 398, @@ -1918,9 +1930,9 @@ static const flex_int16_t yy_chk[2431] = 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 344, 343, 342, 341, 339, 336, + 335, 334, 333, 332, 331, 330, 329, 328, 327, 323, 321, 317, 315, 313, 306, 305, 304, 303, 302, 301, - 300, 298, 297, 296, 295, 294, 293, 292, 291, 290, 288, 287, 286, 285, 284, 283, 282, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, @@ -1929,23 +1941,23 @@ static const flex_int16_t yy_chk[2431] = 243, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 216, 215, 214, 213, 212, + 211, 210, 208, 204, 202, 200, 198, 193, 190, 182, 181, 180, 179, 178, 177, 176, 174, 173, 172, 170, - 169, 168, 166, 164, 162, 160, 159, 157, 156, 155, 154, 153, 151, 150, 149, 148, 147, 146, 144, 143, 142, 141, 140, 139, 138, 136, 135, 133, 132, 128, 127, 126, 124, 123, 122, 121, 119, 117, 113, 104, 103, 97, 96, 77, 72, 66, 52, 49, 48, 43, - 41, 39, 38, 24, 14, 11, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969 + 41, 39, 38, 24, 14, 11, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, + + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, + 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989 } ; static yy_state_type yy_last_accepting_state; @@ -1954,7 +1966,7 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[214] = +static const flex_int16_t yy_rule_linenum[215] = { 0, 148, 150, 152, 157, 158, 163, 164, 165, 177, 180, 185, 192, 201, 210, 219, 228, 237, 246, 255, 264, @@ -1963,23 +1975,23 @@ static const flex_int16_t yy_rule_linenum[214] = 468, 477, 486, 495, 504, 513, 522, 531, 540, 549, 558, 571, 580, 589, 598, 607, 618, 629, 640, 651, 663, 674, 685, 696, 707, 718, 729, 740, 751, 762, - 773, 784, 795, 804, 815, 826, 837, 848, 859, 870, - 881, 892, 901, 910, 919, 928, 939, 950, 961, 972, - 983, 994, 1005, 1017, 1027, 1038, 1047, 1056, 1071, 1087, - - 1096, 1105, 1114, 1123, 1132, 1141, 1150, 1159, 1168, 1177, - 1201, 1225, 1234, 1244, 1254, 1263, 1273, 1284, 1293, 1302, - 1311, 1320, 1329, 1340, 1351, 1362, 1372, 1381, 1390, 1399, - 1410, 1421, 1432, 1443, 1454, 1463, 1472, 1481, 1490, 1499, - 1508, 1517, 1526, 1535, 1545, 1557, 1570, 1579, 1588, 1598, - 1608, 1617, 1628, 1638, 1647, 1657, 1667, 1676, 1685, 1694, - 1703, 1713, 1722, 1731, 1740, 1749, 1758, 1767, 1776, 1785, - 1794, 1803, 1812, 1821, 1830, 1839, 1848, 1857, 1866, 1875, - 1884, 1893, 1902, 1911, 1920, 1929, 1938, 1947, 1956, 1965, - 1974, 1983, 1992, 2001, 2010, 2111, 2127, 2176, 2184, 2199, - - 2200, 2201, 2202, 2203, 2204, 2206, 2224, 2237, 2242, 2246, - 2248, 2250, 2252 + 773, 784, 795, 806, 815, 826, 837, 848, 859, 870, + 881, 892, 903, 912, 921, 930, 939, 950, 961, 972, + 983, 994, 1005, 1016, 1028, 1038, 1049, 1058, 1067, 1082, + + 1098, 1107, 1116, 1125, 1134, 1143, 1152, 1161, 1170, 1179, + 1188, 1212, 1236, 1245, 1255, 1265, 1274, 1284, 1295, 1304, + 1313, 1322, 1331, 1340, 1351, 1362, 1373, 1383, 1392, 1401, + 1410, 1421, 1432, 1443, 1454, 1465, 1474, 1483, 1492, 1501, + 1510, 1519, 1528, 1537, 1546, 1556, 1568, 1581, 1590, 1599, + 1609, 1619, 1628, 1639, 1649, 1658, 1668, 1678, 1687, 1696, + 1705, 1714, 1724, 1733, 1742, 1751, 1760, 1769, 1778, 1787, + 1796, 1805, 1814, 1823, 1832, 1841, 1850, 1859, 1868, 1877, + 1886, 1895, 1904, 1913, 1922, 1931, 1940, 1949, 1958, 1967, + 1976, 1985, 1994, 2003, 2012, 2021, 2122, 2138, 2187, 2195, + + 2210, 2211, 2212, 2213, 2214, 2215, 2217, 2235, 2248, 2253, + 2257, 2259, 2261, 2263 } ; /* The intent behind this definition is that it'll catch @@ -2033,7 +2045,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) -#line 2037 "dhcp6_lexer.cc" +#line 2049 "dhcp6_lexer.cc" /* noyywrap disables automatic rewinding for the next file to parse. Since we always parse only a single string, there's no need to do any wraps. And using yywrap requires linking with -lfl, which provides the default yywrap @@ -2059,8 +2071,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 2063 "dhcp6_lexer.cc" -#line 2064 "dhcp6_lexer.cc" +#line 2075 "dhcp6_lexer.cc" +#line 2076 "dhcp6_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2390,7 +2402,7 @@ YY_DECL } -#line 2394 "dhcp6_lexer.cc" +#line 2406 "dhcp6_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2419,13 +2431,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 >= 1970 ) + if ( yy_current_state >= 1990 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1969 ); + while ( yy_current_state != 1989 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2444,13 +2456,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 < 214 ) + else if ( yy_act < 215 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 214 ) + else if ( yy_act == 215 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 215 ) + else if ( yy_act == 216 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3278,9 +3290,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_REQUEST_TIMEOUT(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_ENABLE_CONNECTION_RECOVERY(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("request-timeout", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("enable-connection-recovery", driver.loc_); } } YY_BREAK @@ -3292,9 +3304,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_TCP_KEEPALIVE(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_REQUEST_TIMEOUT(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("tcp-keepalive", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("request-timeout", driver.loc_); } } YY_BREAK @@ -3306,9 +3318,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_TCP_NODELAY(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_TCP_KEEPALIVE(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("tcp-nodelay", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("tcp-keepalive", driver.loc_); } } YY_BREAK @@ -3320,9 +3332,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_CONTACT_POINTS(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_TCP_NODELAY(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("contact-points", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("tcp-nodelay", driver.loc_); } } YY_BREAK @@ -3334,9 +3346,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_MAX_RECONNECT_TRIES(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_CONTACT_POINTS(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("contact-points", driver.loc_); } } YY_BREAK @@ -3346,15 +3358,29 @@ YY_RULE_SETUP { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp6Parser::make_MAX_RECONNECT_TRIES(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_); + } +} + YY_BREAK +case 74: +YY_RULE_SETUP +#line 806 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: return isc::dhcp::Dhcp6Parser::make_MAX_ROW_ERRORS(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("max_row_errors", driver.loc_); } } YY_BREAK -case 74: +case 75: YY_RULE_SETUP -#line 804 "dhcp6_lexer.ll" +#line 815 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3366,9 +3392,9 @@ YY_RULE_SETUP } } YY_BREAK -case 75: +case 76: YY_RULE_SETUP -#line 815 "dhcp6_lexer.ll" +#line 826 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3380,9 +3406,9 @@ YY_RULE_SETUP } } YY_BREAK -case 76: +case 77: YY_RULE_SETUP -#line 826 "dhcp6_lexer.ll" +#line 837 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3394,9 +3420,9 @@ YY_RULE_SETUP } } YY_BREAK -case 77: +case 78: YY_RULE_SETUP -#line 837 "dhcp6_lexer.ll" +#line 848 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3408,9 +3434,9 @@ YY_RULE_SETUP } } YY_BREAK -case 78: +case 79: YY_RULE_SETUP -#line 848 "dhcp6_lexer.ll" +#line 859 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3422,9 +3448,9 @@ YY_RULE_SETUP } } YY_BREAK -case 79: +case 80: YY_RULE_SETUP -#line 859 "dhcp6_lexer.ll" +#line 870 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3436,9 +3462,9 @@ YY_RULE_SETUP } } YY_BREAK -case 80: +case 81: YY_RULE_SETUP -#line 870 "dhcp6_lexer.ll" +#line 881 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3450,9 +3476,9 @@ YY_RULE_SETUP } } YY_BREAK -case 81: +case 82: YY_RULE_SETUP -#line 881 "dhcp6_lexer.ll" +#line 892 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3464,9 +3490,9 @@ YY_RULE_SETUP } } YY_BREAK -case 82: +case 83: YY_RULE_SETUP -#line 892 "dhcp6_lexer.ll" +#line 903 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3476,9 +3502,9 @@ YY_RULE_SETUP } } YY_BREAK -case 83: +case 84: YY_RULE_SETUP -#line 901 "dhcp6_lexer.ll" +#line 912 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3488,9 +3514,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 85: YY_RULE_SETUP -#line 910 "dhcp6_lexer.ll" +#line 921 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3500,9 +3526,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 86: YY_RULE_SETUP -#line 919 "dhcp6_lexer.ll" +#line 930 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3512,9 +3538,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 87: YY_RULE_SETUP -#line 928 "dhcp6_lexer.ll" +#line 939 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3526,9 +3552,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 88: YY_RULE_SETUP -#line 939 "dhcp6_lexer.ll" +#line 950 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3540,9 +3566,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 89: YY_RULE_SETUP -#line 950 "dhcp6_lexer.ll" +#line 961 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3554,9 +3580,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 90: YY_RULE_SETUP -#line 961 "dhcp6_lexer.ll" +#line 972 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3568,9 +3594,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 91: YY_RULE_SETUP -#line 972 "dhcp6_lexer.ll" +#line 983 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3582,9 +3608,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 92: YY_RULE_SETUP -#line 983 "dhcp6_lexer.ll" +#line 994 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3596,9 +3622,9 @@ YY_RULE_SETUP } } YY_BREAK -case 92: +case 93: YY_RULE_SETUP -#line 994 "dhcp6_lexer.ll" +#line 1005 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3610,9 +3636,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 94: YY_RULE_SETUP -#line 1005 "dhcp6_lexer.ll" +#line 1016 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3624,9 +3650,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 95: YY_RULE_SETUP -#line 1017 "dhcp6_lexer.ll" +#line 1028 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3637,9 +3663,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 96: YY_RULE_SETUP -#line 1027 "dhcp6_lexer.ll" +#line 1038 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3651,9 +3677,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 97: YY_RULE_SETUP -#line 1038 "dhcp6_lexer.ll" +#line 1049 "dhcp6_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3663,9 +3689,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 98: YY_RULE_SETUP -#line 1047 "dhcp6_lexer.ll" +#line 1058 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3675,9 +3701,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 99: YY_RULE_SETUP -#line 1056 "dhcp6_lexer.ll" +#line 1067 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3693,9 +3719,9 @@ YY_RULE_SETUP } } YY_BREAK -case 99: +case 100: YY_RULE_SETUP -#line 1071 "dhcp6_lexer.ll" +#line 1082 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3712,9 +3738,9 @@ YY_RULE_SETUP } } YY_BREAK -case 100: +case 101: YY_RULE_SETUP -#line 1087 "dhcp6_lexer.ll" +#line 1098 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3724,9 +3750,9 @@ YY_RULE_SETUP } } YY_BREAK -case 101: +case 102: YY_RULE_SETUP -#line 1096 "dhcp6_lexer.ll" +#line 1107 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3736,9 +3762,9 @@ YY_RULE_SETUP } } YY_BREAK -case 102: +case 103: YY_RULE_SETUP -#line 1105 "dhcp6_lexer.ll" +#line 1116 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3748,9 +3774,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 104: YY_RULE_SETUP -#line 1114 "dhcp6_lexer.ll" +#line 1125 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3760,9 +3786,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 105: YY_RULE_SETUP -#line 1123 "dhcp6_lexer.ll" +#line 1134 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3772,9 +3798,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 106: YY_RULE_SETUP -#line 1132 "dhcp6_lexer.ll" +#line 1143 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3784,9 +3810,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 107: YY_RULE_SETUP -#line 1141 "dhcp6_lexer.ll" +#line 1152 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3796,9 +3822,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 108: YY_RULE_SETUP -#line 1150 "dhcp6_lexer.ll" +#line 1161 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3808,9 +3834,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 1159 "dhcp6_lexer.ll" +#line 1170 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3820,9 +3846,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 110: YY_RULE_SETUP -#line 1168 "dhcp6_lexer.ll" +#line 1179 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::POOLS: @@ -3832,9 +3858,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 111: YY_RULE_SETUP -#line 1177 "dhcp6_lexer.ll" +#line 1188 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3859,9 +3885,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 112: YY_RULE_SETUP -#line 1201 "dhcp6_lexer.ll" +#line 1212 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3886,9 +3912,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 113: YY_RULE_SETUP -#line 1225 "dhcp6_lexer.ll" +#line 1236 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3898,9 +3924,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 114: YY_RULE_SETUP -#line 1234 "dhcp6_lexer.ll" +#line 1245 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3911,9 +3937,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 115: YY_RULE_SETUP -#line 1244 "dhcp6_lexer.ll" +#line 1255 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3924,9 +3950,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 116: YY_RULE_SETUP -#line 1254 "dhcp6_lexer.ll" +#line 1265 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3936,9 +3962,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 117: YY_RULE_SETUP -#line 1263 "dhcp6_lexer.ll" +#line 1274 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3949,9 +3975,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 118: YY_RULE_SETUP -#line 1273 "dhcp6_lexer.ll" +#line 1284 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3963,9 +3989,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 119: YY_RULE_SETUP -#line 1284 "dhcp6_lexer.ll" +#line 1295 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3975,9 +4001,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 120: YY_RULE_SETUP -#line 1293 "dhcp6_lexer.ll" +#line 1304 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3987,9 +4013,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 121: YY_RULE_SETUP -#line 1302 "dhcp6_lexer.ll" +#line 1313 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3999,9 +4025,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 122: YY_RULE_SETUP -#line 1311 "dhcp6_lexer.ll" +#line 1322 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -4011,9 +4037,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 123: YY_RULE_SETUP -#line 1320 "dhcp6_lexer.ll" +#line 1331 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -4023,9 +4049,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 124: YY_RULE_SETUP -#line 1329 "dhcp6_lexer.ll" +#line 1340 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4037,9 +4063,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 125: YY_RULE_SETUP -#line 1340 "dhcp6_lexer.ll" +#line 1351 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4051,9 +4077,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 126: YY_RULE_SETUP -#line 1351 "dhcp6_lexer.ll" +#line 1362 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4065,9 +4091,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 127: YY_RULE_SETUP -#line 1362 "dhcp6_lexer.ll" +#line 1373 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4078,9 +4104,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 128: YY_RULE_SETUP -#line 1372 "dhcp6_lexer.ll" +#line 1383 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4090,9 +4116,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 129: YY_RULE_SETUP -#line 1381 "dhcp6_lexer.ll" +#line 1392 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4102,9 +4128,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 130: YY_RULE_SETUP -#line 1390 "dhcp6_lexer.ll" +#line 1401 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4114,9 +4140,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 131: YY_RULE_SETUP -#line 1399 "dhcp6_lexer.ll" +#line 1410 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4128,9 +4154,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 132: YY_RULE_SETUP -#line 1410 "dhcp6_lexer.ll" +#line 1421 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4142,9 +4168,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 133: YY_RULE_SETUP -#line 1421 "dhcp6_lexer.ll" +#line 1432 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4156,9 +4182,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 134: YY_RULE_SETUP -#line 1432 "dhcp6_lexer.ll" +#line 1443 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4170,9 +4196,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 135: YY_RULE_SETUP -#line 1443 "dhcp6_lexer.ll" +#line 1454 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4184,9 +4210,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 136: YY_RULE_SETUP -#line 1454 "dhcp6_lexer.ll" +#line 1465 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4196,9 +4222,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 137: YY_RULE_SETUP -#line 1463 "dhcp6_lexer.ll" +#line 1474 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4208,9 +4234,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 138: YY_RULE_SETUP -#line 1472 "dhcp6_lexer.ll" +#line 1483 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4220,9 +4246,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 139: YY_RULE_SETUP -#line 1481 "dhcp6_lexer.ll" +#line 1492 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4232,9 +4258,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 140: YY_RULE_SETUP -#line 1490 "dhcp6_lexer.ll" +#line 1501 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4244,9 +4270,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 141: YY_RULE_SETUP -#line 1499 "dhcp6_lexer.ll" +#line 1510 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4256,9 +4282,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 142: YY_RULE_SETUP -#line 1508 "dhcp6_lexer.ll" +#line 1519 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4268,9 +4294,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 143: YY_RULE_SETUP -#line 1517 "dhcp6_lexer.ll" +#line 1528 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4280,9 +4306,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 144: YY_RULE_SETUP -#line 1526 "dhcp6_lexer.ll" +#line 1537 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4292,9 +4318,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 145: YY_RULE_SETUP -#line 1535 "dhcp6_lexer.ll" +#line 1546 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4305,9 +4331,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 146: YY_RULE_SETUP -#line 1545 "dhcp6_lexer.ll" +#line 1556 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4320,9 +4346,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 147: YY_RULE_SETUP -#line 1557 "dhcp6_lexer.ll" +#line 1568 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4336,9 +4362,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 148: YY_RULE_SETUP -#line 1570 "dhcp6_lexer.ll" +#line 1581 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4348,9 +4374,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 149: YY_RULE_SETUP -#line 1579 "dhcp6_lexer.ll" +#line 1590 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4360,9 +4386,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 150: YY_RULE_SETUP -#line 1588 "dhcp6_lexer.ll" +#line 1599 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4373,9 +4399,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 151: YY_RULE_SETUP -#line 1598 "dhcp6_lexer.ll" +#line 1609 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4386,9 +4412,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 152: YY_RULE_SETUP -#line 1608 "dhcp6_lexer.ll" +#line 1619 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4398,9 +4424,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 153: YY_RULE_SETUP -#line 1617 "dhcp6_lexer.ll" +#line 1628 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -4412,9 +4438,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 154: YY_RULE_SETUP -#line 1628 "dhcp6_lexer.ll" +#line 1639 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4425,9 +4451,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 155: YY_RULE_SETUP -#line 1638 "dhcp6_lexer.ll" +#line 1649 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4437,9 +4463,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 156: YY_RULE_SETUP -#line 1647 "dhcp6_lexer.ll" +#line 1658 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4450,9 +4476,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 157: YY_RULE_SETUP -#line 1657 "dhcp6_lexer.ll" +#line 1668 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4463,9 +4489,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 158: YY_RULE_SETUP -#line 1667 "dhcp6_lexer.ll" +#line 1678 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4475,9 +4501,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 159: YY_RULE_SETUP -#line 1676 "dhcp6_lexer.ll" +#line 1687 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4487,9 +4513,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 160: YY_RULE_SETUP -#line 1685 "dhcp6_lexer.ll" +#line 1696 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4499,9 +4525,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 161: YY_RULE_SETUP -#line 1694 "dhcp6_lexer.ll" +#line 1705 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4511,9 +4537,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 162: YY_RULE_SETUP -#line 1703 "dhcp6_lexer.ll" +#line 1714 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4524,9 +4550,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 163: YY_RULE_SETUP -#line 1713 "dhcp6_lexer.ll" +#line 1724 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RELAY: @@ -4536,9 +4562,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 164: YY_RULE_SETUP -#line 1722 "dhcp6_lexer.ll" +#line 1733 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4548,9 +4574,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 165: YY_RULE_SETUP -#line 1731 "dhcp6_lexer.ll" +#line 1742 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4560,9 +4586,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 166: YY_RULE_SETUP -#line 1740 "dhcp6_lexer.ll" +#line 1751 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4572,9 +4598,9 @@ YY_RULE_SETUP } } YY_BREAK -case 166: +case 167: YY_RULE_SETUP -#line 1749 "dhcp6_lexer.ll" +#line 1760 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4584,9 +4610,9 @@ YY_RULE_SETUP } } YY_BREAK -case 167: +case 168: YY_RULE_SETUP -#line 1758 "dhcp6_lexer.ll" +#line 1769 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4596,9 +4622,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 169: YY_RULE_SETUP -#line 1767 "dhcp6_lexer.ll" +#line 1778 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4608,9 +4634,9 @@ YY_RULE_SETUP } } YY_BREAK -case 169: +case 170: YY_RULE_SETUP -#line 1776 "dhcp6_lexer.ll" +#line 1787 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4620,9 +4646,9 @@ YY_RULE_SETUP } } YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 1785 "dhcp6_lexer.ll" +#line 1796 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4632,9 +4658,9 @@ YY_RULE_SETUP } } YY_BREAK -case 171: +case 172: YY_RULE_SETUP -#line 1794 "dhcp6_lexer.ll" +#line 1805 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4644,9 +4670,9 @@ YY_RULE_SETUP } } YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 1803 "dhcp6_lexer.ll" +#line 1814 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4656,9 +4682,9 @@ YY_RULE_SETUP } } YY_BREAK -case 173: +case 174: YY_RULE_SETUP -#line 1812 "dhcp6_lexer.ll" +#line 1823 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4668,9 +4694,9 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 175: YY_RULE_SETUP -#line 1821 "dhcp6_lexer.ll" +#line 1832 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4680,9 +4706,9 @@ YY_RULE_SETUP } } YY_BREAK -case 175: +case 176: YY_RULE_SETUP -#line 1830 "dhcp6_lexer.ll" +#line 1841 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4692,9 +4718,9 @@ YY_RULE_SETUP } } YY_BREAK -case 176: +case 177: YY_RULE_SETUP -#line 1839 "dhcp6_lexer.ll" +#line 1850 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4704,9 +4730,9 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 178: YY_RULE_SETUP -#line 1848 "dhcp6_lexer.ll" +#line 1859 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4716,9 +4742,9 @@ YY_RULE_SETUP } } YY_BREAK -case 178: +case 179: YY_RULE_SETUP -#line 1857 "dhcp6_lexer.ll" +#line 1868 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4728,9 +4754,9 @@ YY_RULE_SETUP } } YY_BREAK -case 179: +case 180: YY_RULE_SETUP -#line 1866 "dhcp6_lexer.ll" +#line 1877 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4740,9 +4766,9 @@ YY_RULE_SETUP } } YY_BREAK -case 180: +case 181: YY_RULE_SETUP -#line 1875 "dhcp6_lexer.ll" +#line 1886 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4752,9 +4778,9 @@ YY_RULE_SETUP } } YY_BREAK -case 181: +case 182: YY_RULE_SETUP -#line 1884 "dhcp6_lexer.ll" +#line 1895 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4764,9 +4790,9 @@ YY_RULE_SETUP } } YY_BREAK -case 182: +case 183: YY_RULE_SETUP -#line 1893 "dhcp6_lexer.ll" +#line 1904 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4776,9 +4802,9 @@ YY_RULE_SETUP } } YY_BREAK -case 183: +case 184: YY_RULE_SETUP -#line 1902 "dhcp6_lexer.ll" +#line 1913 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -4788,9 +4814,9 @@ YY_RULE_SETUP } } YY_BREAK -case 184: +case 185: YY_RULE_SETUP -#line 1911 "dhcp6_lexer.ll" +#line 1922 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -4800,9 +4826,9 @@ YY_RULE_SETUP } } YY_BREAK -case 185: +case 186: YY_RULE_SETUP -#line 1920 "dhcp6_lexer.ll" +#line 1931 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -4812,9 +4838,9 @@ YY_RULE_SETUP } } YY_BREAK -case 186: +case 187: YY_RULE_SETUP -#line 1929 "dhcp6_lexer.ll" +#line 1940 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4824,9 +4850,9 @@ YY_RULE_SETUP } } YY_BREAK -case 187: +case 188: YY_RULE_SETUP -#line 1938 "dhcp6_lexer.ll" +#line 1949 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4836,9 +4862,9 @@ YY_RULE_SETUP } } YY_BREAK -case 188: +case 189: YY_RULE_SETUP -#line 1947 "dhcp6_lexer.ll" +#line 1958 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4848,9 +4874,9 @@ YY_RULE_SETUP } } YY_BREAK -case 189: +case 190: YY_RULE_SETUP -#line 1956 "dhcp6_lexer.ll" +#line 1967 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4860,9 +4886,9 @@ YY_RULE_SETUP } } YY_BREAK -case 190: +case 191: YY_RULE_SETUP -#line 1965 "dhcp6_lexer.ll" +#line 1976 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4872,9 +4898,9 @@ YY_RULE_SETUP } } YY_BREAK -case 191: +case 192: YY_RULE_SETUP -#line 1974 "dhcp6_lexer.ll" +#line 1985 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4884,9 +4910,9 @@ YY_RULE_SETUP } } YY_BREAK -case 192: +case 193: YY_RULE_SETUP -#line 1983 "dhcp6_lexer.ll" +#line 1994 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4896,9 +4922,9 @@ YY_RULE_SETUP } } YY_BREAK -case 193: +case 194: YY_RULE_SETUP -#line 1992 "dhcp6_lexer.ll" +#line 2003 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4908,9 +4934,9 @@ YY_RULE_SETUP } } YY_BREAK -case 194: +case 195: YY_RULE_SETUP -#line 2001 "dhcp6_lexer.ll" +#line 2012 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4920,9 +4946,9 @@ YY_RULE_SETUP } } YY_BREAK -case 195: +case 196: YY_RULE_SETUP -#line 2010 "dhcp6_lexer.ll" +#line 2021 "dhcp6_lexer.ll" { /* A string has been matched. It contains the actual string and single quotes. We need to get those quotes out of the way and just use its content, e.g. @@ -5024,10 +5050,10 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 196: -/* rule 196 can match eol */ +case 197: +/* rule 197 can match eol */ YY_RULE_SETUP -#line 2111 "dhcp6_lexer.ll" +#line 2122 "dhcp6_lexer.ll" { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -5044,10 +5070,10 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 197: -/* rule 197 can match eol */ +case 198: +/* rule 198 can match eol */ YY_RULE_SETUP -#line 2127 "dhcp6_lexer.ll" +#line 2138 "dhcp6_lexer.ll" { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -5097,9 +5123,9 @@ YY_RULE_SETUP pos); } YY_BREAK -case 198: +case 199: YY_RULE_SETUP -#line 2176 "dhcp6_lexer.ll" +#line 2187 "dhcp6_lexer.ll" { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -5108,9 +5134,9 @@ YY_RULE_SETUP raw.size() + 1); } YY_BREAK -case 199: +case 200: YY_RULE_SETUP -#line 2184 "dhcp6_lexer.ll" +#line 2195 "dhcp6_lexer.ll" { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5126,39 +5152,39 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 200: +case 201: YY_RULE_SETUP -#line 2199 "dhcp6_lexer.ll" +#line 2210 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 201: +case 202: YY_RULE_SETUP -#line 2200 "dhcp6_lexer.ll" +#line 2211 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 202: +case 203: YY_RULE_SETUP -#line 2201 "dhcp6_lexer.ll" +#line 2212 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 203: +case 204: YY_RULE_SETUP -#line 2202 "dhcp6_lexer.ll" +#line 2213 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 204: +case 205: YY_RULE_SETUP -#line 2203 "dhcp6_lexer.ll" +#line 2214 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } YY_BREAK -case 205: +case 206: YY_RULE_SETUP -#line 2204 "dhcp6_lexer.ll" +#line 2215 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } YY_BREAK -case 206: +case 207: YY_RULE_SETUP -#line 2206 "dhcp6_lexer.ll" +#line 2217 "dhcp6_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -5177,9 +5203,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 207: +case 208: YY_RULE_SETUP -#line 2224 "dhcp6_lexer.ll" +#line 2235 "dhcp6_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -5193,43 +5219,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 208: +case 209: YY_RULE_SETUP -#line 2237 "dhcp6_lexer.ll" +#line 2248 "dhcp6_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 209: +case 210: YY_RULE_SETUP -#line 2242 "dhcp6_lexer.ll" +#line 2253 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 210: +case 211: YY_RULE_SETUP -#line 2246 "dhcp6_lexer.ll" +#line 2257 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 211: +case 212: YY_RULE_SETUP -#line 2248 "dhcp6_lexer.ll" +#line 2259 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 212: +case 213: YY_RULE_SETUP -#line 2250 "dhcp6_lexer.ll" +#line 2261 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 213: +case 214: YY_RULE_SETUP -#line 2252 "dhcp6_lexer.ll" +#line 2263 "dhcp6_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2254 "dhcp6_lexer.ll" +#line 2265 "dhcp6_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -5253,12 +5279,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 214: +case 215: YY_RULE_SETUP -#line 2277 "dhcp6_lexer.ll" +#line 2288 "dhcp6_lexer.ll" ECHO; YY_BREAK -#line 5262 "dhcp6_lexer.cc" +#line 5288 "dhcp6_lexer.cc" case YY_END_OF_BUFFER: { @@ -5577,7 +5603,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 >= 1970 ) + if ( yy_current_state >= 1990 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5610,11 +5636,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 >= 1970 ) + if ( yy_current_state >= 1990 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1969); + yy_is_jam = (yy_current_state == 1989); return yy_is_jam ? 0 : yy_current_state; } @@ -6363,7 +6389,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2277 "dhcp6_lexer.ll" +#line 2288 "dhcp6_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp6/dhcp6_lexer.ll b/src/bin/dhcp6/dhcp6_lexer.ll index 16a39b4c93..17daece151 100644 --- a/src/bin/dhcp6/dhcp6_lexer.ll +++ b/src/bin/dhcp6/dhcp6_lexer.ll @@ -736,6 +736,17 @@ ControlCharacterFill [^"\\]|\\["\\/bfnrtu] } } +\"enable-connection-recovery\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp6Parser::make_ENABLE_CONNECTION_RECOVERY(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("enable-connection-recovery", driver.loc_); + } +} + \"request-timeout\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index c742a525c0..605f56c48a 100644 --- a/src/bin/dhcp6/dhcp6_parser.cc +++ b/src/bin/dhcp6/dhcp6_parser.cc @@ -249,29 +249,29 @@ namespace isc { namespace dhcp { { switch (that.type_get ()) { - case 223: // value - case 227: // map_value - case 268: // ddns_replace_client_name_value - case 308: // db_type - case 413: // hr_mode - case 549: // duid_type - case 592: // ncr_protocol_value + case 224: // value + case 228: // map_value + case 269: // ddns_replace_client_name_value + case 309: // db_type + case 415: // hr_mode + case 551: // duid_type + case 594: // ncr_protocol_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; - case 206: // "boolean" + case 207: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case 205: // "floating point" + case 206: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); break; - case 204: // "integer" + case 205: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); break; - case 203: // "constant string" + case 204: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; @@ -290,29 +290,29 @@ namespace isc { namespace dhcp { { switch (that.type_get ()) { - case 223: // value - case 227: // map_value - case 268: // ddns_replace_client_name_value - case 308: // db_type - case 413: // hr_mode - case 549: // duid_type - case 592: // ncr_protocol_value + case 224: // value + case 228: // map_value + case 269: // ddns_replace_client_name_value + case 309: // db_type + case 415: // hr_mode + case 551: // duid_type + case 594: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (that.value)); break; - case 206: // "boolean" + case 207: // "boolean" value.move< bool > (YY_MOVE (that.value)); break; - case 205: // "floating point" + case 206: // "floating point" value.move< double > (YY_MOVE (that.value)); break; - case 204: // "integer" + case 205: // "integer" value.move< int64_t > (YY_MOVE (that.value)); break; - case 203: // "constant string" + case 204: // "constant string" value.move< std::string > (YY_MOVE (that.value)); break; @@ -331,29 +331,29 @@ namespace isc { namespace dhcp { state = that.state; switch (that.type_get ()) { - case 223: // value - case 227: // map_value - case 268: // ddns_replace_client_name_value - case 308: // db_type - case 413: // hr_mode - case 549: // duid_type - case 592: // ncr_protocol_value + case 224: // value + case 228: // map_value + case 269: // ddns_replace_client_name_value + case 309: // db_type + case 415: // hr_mode + case 551: // duid_type + case 594: // ncr_protocol_value value.copy< ElementPtr > (that.value); break; - case 206: // "boolean" + case 207: // "boolean" value.copy< bool > (that.value); break; - case 205: // "floating point" + case 206: // "floating point" value.copy< double > (that.value); break; - case 204: // "integer" + case 205: // "integer" value.copy< int64_t > (that.value); break; - case 203: // "constant string" + case 204: // "constant string" value.copy< std::string > (that.value); break; @@ -371,29 +371,29 @@ namespace isc { namespace dhcp { state = that.state; switch (that.type_get ()) { - case 223: // value - case 227: // map_value - case 268: // ddns_replace_client_name_value - case 308: // db_type - case 413: // hr_mode - case 549: // duid_type - case 592: // ncr_protocol_value + case 224: // value + case 228: // map_value + case 269: // ddns_replace_client_name_value + case 309: // db_type + case 415: // hr_mode + case 551: // duid_type + case 594: // ncr_protocol_value value.move< ElementPtr > (that.value); break; - case 206: // "boolean" + case 207: // "boolean" value.move< bool > (that.value); break; - case 205: // "floating point" + case 206: // "floating point" value.move< double > (that.value); break; - case 204: // "integer" + case 205: // "integer" value.move< int64_t > (that.value); break; - case 203: // "constant string" + case 204: // "constant string" value.move< std::string > (that.value); break; @@ -436,68 +436,68 @@ namespace isc { namespace dhcp { << yysym.location << ": "; switch (yytype) { - case 203: // "constant string" -#line 284 "dhcp6_parser.yy" + case 204: // "constant string" +#line 285 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 443 "dhcp6_parser.cc" break; - case 204: // "integer" -#line 284 "dhcp6_parser.yy" + case 205: // "integer" +#line 285 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 449 "dhcp6_parser.cc" break; - case 205: // "floating point" -#line 284 "dhcp6_parser.yy" + case 206: // "floating point" +#line 285 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 455 "dhcp6_parser.cc" break; - case 206: // "boolean" -#line 284 "dhcp6_parser.yy" + case 207: // "boolean" +#line 285 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 461 "dhcp6_parser.cc" break; - case 223: // value -#line 284 "dhcp6_parser.yy" + case 224: // value +#line 285 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 467 "dhcp6_parser.cc" break; - case 227: // map_value -#line 284 "dhcp6_parser.yy" + case 228: // map_value +#line 285 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 473 "dhcp6_parser.cc" break; - case 268: // ddns_replace_client_name_value -#line 284 "dhcp6_parser.yy" + case 269: // ddns_replace_client_name_value +#line 285 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 479 "dhcp6_parser.cc" break; - case 308: // db_type -#line 284 "dhcp6_parser.yy" + case 309: // db_type +#line 285 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 485 "dhcp6_parser.cc" break; - case 413: // hr_mode -#line 284 "dhcp6_parser.yy" + case 415: // hr_mode +#line 285 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 491 "dhcp6_parser.cc" break; - case 549: // duid_type -#line 284 "dhcp6_parser.yy" + case 551: // duid_type +#line 285 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 497 "dhcp6_parser.cc" break; - case 592: // ncr_protocol_value -#line 284 "dhcp6_parser.yy" + case 594: // ncr_protocol_value +#line 285 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 503 "dhcp6_parser.cc" break; @@ -717,29 +717,29 @@ namespace isc { namespace dhcp { when using variants. */ switch (yyr1_[yyn]) { - case 223: // value - case 227: // map_value - case 268: // ddns_replace_client_name_value - case 308: // db_type - case 413: // hr_mode - case 549: // duid_type - case 592: // ncr_protocol_value + case 224: // value + case 228: // map_value + case 269: // ddns_replace_client_name_value + case 309: // db_type + case 415: // hr_mode + case 551: // duid_type + case 594: // ncr_protocol_value yylhs.value.emplace< ElementPtr > (); break; - case 206: // "boolean" + case 207: // "boolean" yylhs.value.emplace< bool > (); break; - case 205: // "floating point" + case 206: // "floating point" yylhs.value.emplace< double > (); break; - case 204: // "integer" + case 205: // "integer" yylhs.value.emplace< int64_t > (); break; - case 203: // "constant string" + case 204: // "constant string" yylhs.value.emplace< std::string > (); break; @@ -764,133 +764,133 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: -#line 293 "dhcp6_parser.yy" +#line 294 "dhcp6_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 770 "dhcp6_parser.cc" break; case 4: -#line 294 "dhcp6_parser.yy" +#line 295 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 776 "dhcp6_parser.cc" break; case 6: -#line 295 "dhcp6_parser.yy" +#line 296 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP6; } #line 782 "dhcp6_parser.cc" break; case 8: -#line 296 "dhcp6_parser.yy" +#line 297 "dhcp6_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 788 "dhcp6_parser.cc" break; case 10: -#line 297 "dhcp6_parser.yy" +#line 298 "dhcp6_parser.yy" { ctx.ctx_ = ctx.SUBNET6; } #line 794 "dhcp6_parser.cc" break; case 12: -#line 298 "dhcp6_parser.yy" +#line 299 "dhcp6_parser.yy" { ctx.ctx_ = ctx.POOLS; } #line 800 "dhcp6_parser.cc" break; case 14: -#line 299 "dhcp6_parser.yy" +#line 300 "dhcp6_parser.yy" { ctx.ctx_ = ctx.PD_POOLS; } #line 806 "dhcp6_parser.cc" break; case 16: -#line 300 "dhcp6_parser.yy" +#line 301 "dhcp6_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } #line 812 "dhcp6_parser.cc" break; case 18: -#line 301 "dhcp6_parser.yy" +#line 302 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP6; } #line 818 "dhcp6_parser.cc" break; case 20: -#line 302 "dhcp6_parser.yy" +#line 303 "dhcp6_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } #line 824 "dhcp6_parser.cc" break; case 22: -#line 303 "dhcp6_parser.yy" +#line 304 "dhcp6_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } #line 830 "dhcp6_parser.cc" break; case 24: -#line 304 "dhcp6_parser.yy" +#line 305 "dhcp6_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 836 "dhcp6_parser.cc" break; case 26: -#line 305 "dhcp6_parser.yy" +#line 306 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } #line 842 "dhcp6_parser.cc" break; case 28: -#line 306 "dhcp6_parser.yy" +#line 307 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 848 "dhcp6_parser.cc" break; case 30: -#line 314 "dhcp6_parser.yy" +#line 315 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 854 "dhcp6_parser.cc" break; case 31: -#line 315 "dhcp6_parser.yy" +#line 316 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 860 "dhcp6_parser.cc" break; case 32: -#line 316 "dhcp6_parser.yy" +#line 317 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 866 "dhcp6_parser.cc" break; case 33: -#line 317 "dhcp6_parser.yy" +#line 318 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 872 "dhcp6_parser.cc" break; case 34: -#line 318 "dhcp6_parser.yy" +#line 319 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 878 "dhcp6_parser.cc" break; case 35: -#line 319 "dhcp6_parser.yy" +#line 320 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 884 "dhcp6_parser.cc" break; case 36: -#line 320 "dhcp6_parser.yy" +#line 321 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 890 "dhcp6_parser.cc" break; case 37: -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); @@ -899,7 +899,7 @@ namespace isc { namespace dhcp { break; case 38: -#line 328 "dhcp6_parser.yy" +#line 329 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -910,7 +910,7 @@ namespace isc { namespace dhcp { break; case 39: -#line 333 "dhcp6_parser.yy" +#line 334 "dhcp6_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -920,13 +920,13 @@ namespace isc { namespace dhcp { break; case 40: -#line 339 "dhcp6_parser.yy" +#line 340 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 926 "dhcp6_parser.cc" break; case 43: -#line 346 "dhcp6_parser.yy" +#line 347 "dhcp6_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); @@ -936,7 +936,7 @@ namespace isc { namespace dhcp { break; case 44: -#line 351 "dhcp6_parser.yy" +#line 352 "dhcp6_parser.yy" { // map consisting of a shorter map followed by // comma and string:value @@ -947,7 +947,7 @@ namespace isc { namespace dhcp { break; case 45: -#line 359 "dhcp6_parser.yy" +#line 360 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -956,7 +956,7 @@ namespace isc { namespace dhcp { break; case 46: -#line 362 "dhcp6_parser.yy" +#line 363 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here } @@ -964,7 +964,7 @@ namespace isc { namespace dhcp { break; case 49: -#line 370 "dhcp6_parser.yy" +#line 371 "dhcp6_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -973,7 +973,7 @@ namespace isc { namespace dhcp { break; case 50: -#line 374 "dhcp6_parser.yy" +#line 375 "dhcp6_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -982,7 +982,7 @@ namespace isc { namespace dhcp { break; case 51: -#line 381 "dhcp6_parser.yy" +#line 382 "dhcp6_parser.yy" { // List parsing about to start } @@ -990,7 +990,7 @@ namespace isc { namespace dhcp { break; case 52: -#line 383 "dhcp6_parser.yy" +#line 384 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -999,7 +999,7 @@ namespace isc { namespace dhcp { break; case 55: -#line 392 "dhcp6_parser.yy" +#line 393 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1008,7 +1008,7 @@ namespace isc { namespace dhcp { break; case 56: -#line 396 "dhcp6_parser.yy" +#line 397 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1017,7 +1017,7 @@ namespace isc { namespace dhcp { break; case 57: -#line 407 "dhcp6_parser.yy" +#line 408 "dhcp6_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); @@ -1028,7 +1028,7 @@ namespace isc { namespace dhcp { break; case 58: -#line 416 "dhcp6_parser.yy" +#line 417 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1039,7 +1039,7 @@ namespace isc { namespace dhcp { break; case 59: -#line 421 "dhcp6_parser.yy" +#line 422 "dhcp6_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1052,7 +1052,7 @@ namespace isc { namespace dhcp { break; case 60: -#line 431 "dhcp6_parser.yy" +#line 432 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1067,7 +1067,7 @@ namespace isc { namespace dhcp { break; case 61: -#line 440 "dhcp6_parser.yy" +#line 441 "dhcp6_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); @@ -1077,7 +1077,7 @@ namespace isc { namespace dhcp { break; case 62: -#line 448 "dhcp6_parser.yy" +#line 449 "dhcp6_parser.yy" { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1087,7 +1087,7 @@ namespace isc { namespace dhcp { break; case 63: -#line 452 "dhcp6_parser.yy" +#line 453 "dhcp6_parser.yy" { // No global parameter is required // parsing completed @@ -1096,7 +1096,7 @@ namespace isc { namespace dhcp { break; case 127: -#line 526 "dhcp6_parser.yy" +#line 527 "dhcp6_parser.yy" { ctx.unique("data-directory", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1105,7 +1105,7 @@ namespace isc { namespace dhcp { break; case 128: -#line 529 "dhcp6_parser.yy" +#line 530 "dhcp6_parser.yy" { ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data-directory", datadir); @@ -1115,7 +1115,7 @@ namespace isc { namespace dhcp { break; case 129: -#line 535 "dhcp6_parser.yy" +#line 536 "dhcp6_parser.yy" { ctx.unique("preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1125,7 +1125,7 @@ namespace isc { namespace dhcp { break; case 130: -#line 541 "dhcp6_parser.yy" +#line 542 "dhcp6_parser.yy" { ctx.unique("min-preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1135,7 +1135,7 @@ namespace isc { namespace dhcp { break; case 131: -#line 547 "dhcp6_parser.yy" +#line 548 "dhcp6_parser.yy" { ctx.unique("max-preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1145,7 +1145,7 @@ namespace isc { namespace dhcp { break; case 132: -#line 553 "dhcp6_parser.yy" +#line 554 "dhcp6_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))); @@ -1155,7 +1155,7 @@ namespace isc { namespace dhcp { break; case 133: -#line 559 "dhcp6_parser.yy" +#line 560 "dhcp6_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))); @@ -1165,7 +1165,7 @@ namespace isc { namespace dhcp { break; case 134: -#line 565 "dhcp6_parser.yy" +#line 566 "dhcp6_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))); @@ -1175,7 +1175,7 @@ namespace isc { namespace dhcp { break; case 135: -#line 571 "dhcp6_parser.yy" +#line 572 "dhcp6_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))); @@ -1185,7 +1185,7 @@ namespace isc { namespace dhcp { break; case 136: -#line 577 "dhcp6_parser.yy" +#line 578 "dhcp6_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))); @@ -1195,7 +1195,7 @@ namespace isc { namespace dhcp { break; case 137: -#line 583 "dhcp6_parser.yy" +#line 584 "dhcp6_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))); @@ -1205,7 +1205,7 @@ namespace isc { namespace dhcp { break; case 138: -#line 589 "dhcp6_parser.yy" +#line 590 "dhcp6_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))); @@ -1215,7 +1215,7 @@ namespace isc { namespace dhcp { break; case 139: -#line 595 "dhcp6_parser.yy" +#line 596 "dhcp6_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))); @@ -1225,7 +1225,7 @@ namespace isc { namespace dhcp { break; case 140: -#line 601 "dhcp6_parser.yy" +#line 602 "dhcp6_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))); @@ -1235,7 +1235,7 @@ namespace isc { namespace dhcp { break; case 141: -#line 607 "dhcp6_parser.yy" +#line 608 "dhcp6_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))); @@ -1245,7 +1245,7 @@ namespace isc { namespace dhcp { break; case 142: -#line 613 "dhcp6_parser.yy" +#line 614 "dhcp6_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))); @@ -1255,7 +1255,7 @@ namespace isc { namespace dhcp { break; case 143: -#line 619 "dhcp6_parser.yy" +#line 620 "dhcp6_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))); @@ -1265,7 +1265,7 @@ namespace isc { namespace dhcp { break; case 144: -#line 625 "dhcp6_parser.yy" +#line 626 "dhcp6_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))); @@ -1275,7 +1275,7 @@ namespace isc { namespace dhcp { break; case 145: -#line 631 "dhcp6_parser.yy" +#line 632 "dhcp6_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))); @@ -1285,7 +1285,7 @@ namespace isc { namespace dhcp { break; case 146: -#line 637 "dhcp6_parser.yy" +#line 638 "dhcp6_parser.yy" { ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); @@ -1294,7 +1294,7 @@ namespace isc { namespace dhcp { break; case 147: -#line 640 "dhcp6_parser.yy" +#line 641 "dhcp6_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1303,7 +1303,7 @@ namespace isc { namespace dhcp { break; case 148: -#line 646 "dhcp6_parser.yy" +#line 647 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } @@ -1311,7 +1311,7 @@ namespace isc { namespace dhcp { break; case 149: -#line 649 "dhcp6_parser.yy" +#line 650 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } @@ -1319,7 +1319,7 @@ namespace isc { namespace dhcp { break; case 150: -#line 652 "dhcp6_parser.yy" +#line 653 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } @@ -1327,7 +1327,7 @@ namespace isc { namespace dhcp { break; case 151: -#line 655 "dhcp6_parser.yy" +#line 656 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } @@ -1335,7 +1335,7 @@ namespace isc { namespace dhcp { break; case 152: -#line 658 "dhcp6_parser.yy" +#line 659 "dhcp6_parser.yy" { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); @@ -1344,7 +1344,7 @@ namespace isc { namespace dhcp { break; case 153: -#line 664 "dhcp6_parser.yy" +#line 665 "dhcp6_parser.yy" { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1353,7 +1353,7 @@ namespace isc { namespace dhcp { break; case 154: -#line 667 "dhcp6_parser.yy" +#line 668 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-generated-prefix", s); @@ -1363,7 +1363,7 @@ namespace isc { namespace dhcp { break; case 155: -#line 673 "dhcp6_parser.yy" +#line 674 "dhcp6_parser.yy" { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1372,7 +1372,7 @@ namespace isc { namespace dhcp { break; case 156: -#line 676 "dhcp6_parser.yy" +#line 677 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-qualifying-suffix", s); @@ -1382,7 +1382,7 @@ namespace isc { namespace dhcp { break; case 157: -#line 682 "dhcp6_parser.yy" +#line 683 "dhcp6_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))); @@ -1392,7 +1392,7 @@ namespace isc { namespace dhcp { break; case 158: -#line 688 "dhcp6_parser.yy" +#line 689 "dhcp6_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))); @@ -1402,7 +1402,7 @@ namespace isc { namespace dhcp { break; case 159: -#line 694 "dhcp6_parser.yy" +#line 695 "dhcp6_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1411,7 +1411,7 @@ namespace isc { namespace dhcp { break; case 160: -#line 697 "dhcp6_parser.yy" +#line 698 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); @@ -1421,7 +1421,7 @@ namespace isc { namespace dhcp { break; case 161: -#line 703 "dhcp6_parser.yy" +#line 704 "dhcp6_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1430,7 +1430,7 @@ namespace isc { namespace dhcp { break; case 162: -#line 706 "dhcp6_parser.yy" +#line 707 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); @@ -1440,7 +1440,7 @@ namespace isc { namespace dhcp { break; case 163: -#line 712 "dhcp6_parser.yy" +#line 713 "dhcp6_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))); @@ -1450,7 +1450,7 @@ namespace isc { namespace dhcp { break; case 164: -#line 718 "dhcp6_parser.yy" +#line 719 "dhcp6_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))); @@ -1460,7 +1460,7 @@ namespace isc { namespace dhcp { break; case 165: -#line 724 "dhcp6_parser.yy" +#line 725 "dhcp6_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))); @@ -1470,7 +1470,7 @@ namespace isc { namespace dhcp { break; case 166: -#line 730 "dhcp6_parser.yy" +#line 731 "dhcp6_parser.yy" { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1479,7 +1479,7 @@ namespace isc { namespace dhcp { break; case 167: -#line 733 "dhcp6_parser.yy" +#line 734 "dhcp6_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); @@ -1489,7 +1489,7 @@ namespace isc { namespace dhcp { break; case 168: -#line 739 "dhcp6_parser.yy" +#line 740 "dhcp6_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))); @@ -1499,7 +1499,7 @@ namespace isc { namespace dhcp { break; case 169: -#line 745 "dhcp6_parser.yy" +#line 746 "dhcp6_parser.yy" { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1511,7 +1511,7 @@ namespace isc { namespace dhcp { break; case 170: -#line 751 "dhcp6_parser.yy" +#line 752 "dhcp6_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); @@ -1521,7 +1521,7 @@ namespace isc { namespace dhcp { break; case 171: -#line 757 "dhcp6_parser.yy" +#line 758 "dhcp6_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1531,7 +1531,7 @@ namespace isc { namespace dhcp { break; case 172: -#line 761 "dhcp6_parser.yy" +#line 762 "dhcp6_parser.yy" { // No interfaces config param is required // parsing completed @@ -1540,7 +1540,7 @@ namespace isc { namespace dhcp { break; case 180: -#line 777 "dhcp6_parser.yy" +#line 778 "dhcp6_parser.yy" { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1552,7 +1552,7 @@ namespace isc { namespace dhcp { break; case 181: -#line 783 "dhcp6_parser.yy" +#line 784 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1561,7 +1561,7 @@ namespace isc { namespace dhcp { break; case 182: -#line 788 "dhcp6_parser.yy" +#line 789 "dhcp6_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))); @@ -1571,7 +1571,7 @@ namespace isc { namespace dhcp { break; case 183: -#line 794 "dhcp6_parser.yy" +#line 795 "dhcp6_parser.yy" { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1583,7 +1583,7 @@ namespace isc { namespace dhcp { break; case 184: -#line 800 "dhcp6_parser.yy" +#line 801 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1594,7 +1594,7 @@ namespace isc { namespace dhcp { break; case 185: -#line 807 "dhcp6_parser.yy" +#line 808 "dhcp6_parser.yy" { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1606,7 +1606,7 @@ namespace isc { namespace dhcp { break; case 186: -#line 813 "dhcp6_parser.yy" +#line 814 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1617,7 +1617,7 @@ namespace isc { namespace dhcp { break; case 187: -#line 820 "dhcp6_parser.yy" +#line 821 "dhcp6_parser.yy" { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1629,7 +1629,7 @@ namespace isc { namespace dhcp { break; case 188: -#line 826 "dhcp6_parser.yy" +#line 827 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1638,7 +1638,7 @@ namespace isc { namespace dhcp { break; case 193: -#line 839 "dhcp6_parser.yy" +#line 840 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -1648,7 +1648,7 @@ namespace isc { namespace dhcp { break; case 194: -#line 843 "dhcp6_parser.yy" +#line 844 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -1657,8 +1657,8 @@ namespace isc { namespace dhcp { #line 1658 "dhcp6_parser.cc" break; - case 219: -#line 877 "dhcp6_parser.yy" + case 220: +#line 879 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_TYPE); @@ -1666,8 +1666,8 @@ namespace isc { namespace dhcp { #line 1667 "dhcp6_parser.cc" break; - case 220: -#line 880 "dhcp6_parser.yy" + case 221: +#line 882 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1675,32 +1675,32 @@ namespace isc { namespace dhcp { #line 1676 "dhcp6_parser.cc" break; - case 221: -#line 885 "dhcp6_parser.yy" + case 222: +#line 887 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } #line 1682 "dhcp6_parser.cc" break; - case 222: -#line 886 "dhcp6_parser.yy" + case 223: +#line 888 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } #line 1688 "dhcp6_parser.cc" break; - case 223: -#line 887 "dhcp6_parser.yy" + case 224: +#line 889 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } #line 1694 "dhcp6_parser.cc" break; - case 224: -#line 888 "dhcp6_parser.yy" + case 225: +#line 890 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } #line 1700 "dhcp6_parser.cc" break; - case 225: -#line 891 "dhcp6_parser.yy" + case 226: +#line 893 "dhcp6_parser.yy" { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1708,8 +1708,8 @@ namespace isc { namespace dhcp { #line 1709 "dhcp6_parser.cc" break; - case 226: -#line 894 "dhcp6_parser.yy" + case 227: +#line 896 "dhcp6_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); @@ -1718,8 +1718,8 @@ namespace isc { namespace dhcp { #line 1719 "dhcp6_parser.cc" break; - case 227: -#line 900 "dhcp6_parser.yy" + case 228: +#line 902 "dhcp6_parser.yy" { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1727,8 +1727,8 @@ namespace isc { namespace dhcp { #line 1728 "dhcp6_parser.cc" break; - case 228: -#line 903 "dhcp6_parser.yy" + case 229: +#line 905 "dhcp6_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); @@ -1737,8 +1737,8 @@ namespace isc { namespace dhcp { #line 1738 "dhcp6_parser.cc" break; - case 229: -#line 909 "dhcp6_parser.yy" + case 230: +#line 911 "dhcp6_parser.yy" { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1746,8 +1746,8 @@ namespace isc { namespace dhcp { #line 1747 "dhcp6_parser.cc" break; - case 230: -#line 912 "dhcp6_parser.yy" + case 231: +#line 914 "dhcp6_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); @@ -1756,8 +1756,8 @@ namespace isc { namespace dhcp { #line 1757 "dhcp6_parser.cc" break; - case 231: -#line 918 "dhcp6_parser.yy" + case 232: +#line 920 "dhcp6_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))); @@ -1766,8 +1766,8 @@ namespace isc { namespace dhcp { #line 1767 "dhcp6_parser.cc" break; - case 232: -#line 924 "dhcp6_parser.yy" + case 233: +#line 926 "dhcp6_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1775,8 +1775,8 @@ namespace isc { namespace dhcp { #line 1776 "dhcp6_parser.cc" break; - case 233: -#line 927 "dhcp6_parser.yy" + case 234: +#line 929 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); @@ -1785,8 +1785,8 @@ namespace isc { namespace dhcp { #line 1786 "dhcp6_parser.cc" break; - case 234: -#line 933 "dhcp6_parser.yy" + case 235: +#line 935 "dhcp6_parser.yy" { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1795,8 +1795,8 @@ namespace isc { namespace dhcp { #line 1796 "dhcp6_parser.cc" break; - case 235: -#line 939 "dhcp6_parser.yy" + case 236: +#line 941 "dhcp6_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))); @@ -1805,8 +1805,8 @@ namespace isc { namespace dhcp { #line 1806 "dhcp6_parser.cc" break; - case 236: -#line 945 "dhcp6_parser.yy" + case 237: +#line 947 "dhcp6_parser.yy" { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1815,8 +1815,8 @@ namespace isc { namespace dhcp { #line 1816 "dhcp6_parser.cc" break; - case 237: -#line 951 "dhcp6_parser.yy" + case 238: +#line 953 "dhcp6_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))); @@ -1825,8 +1825,8 @@ namespace isc { namespace dhcp { #line 1826 "dhcp6_parser.cc" break; - case 238: -#line 957 "dhcp6_parser.yy" + case 239: +#line 959 "dhcp6_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))); @@ -1835,8 +1835,8 @@ namespace isc { namespace dhcp { #line 1836 "dhcp6_parser.cc" break; - case 239: -#line 963 "dhcp6_parser.yy" + case 240: +#line 965 "dhcp6_parser.yy" { ctx.unique("disable-dhcp-on-db-loss", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1845,134 +1845,144 @@ namespace isc { namespace dhcp { #line 1846 "dhcp6_parser.cc" break; - case 240: -#line 969 "dhcp6_parser.yy" + case 241: +#line 971 "dhcp6_parser.yy" + { + ctx.unique("enable-connection-recovery", ctx.loc2pos(yystack_[2].location)); + ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("enable-connection-recovery", n); +} +#line 1856 "dhcp6_parser.cc" + break; + + case 242: +#line 977 "dhcp6_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 1856 "dhcp6_parser.cc" +#line 1866 "dhcp6_parser.cc" break; - case 241: -#line 975 "dhcp6_parser.yy" + case 243: +#line 983 "dhcp6_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 1866 "dhcp6_parser.cc" +#line 1876 "dhcp6_parser.cc" break; - case 242: -#line 981 "dhcp6_parser.yy" + case 244: +#line 989 "dhcp6_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 1876 "dhcp6_parser.cc" +#line 1886 "dhcp6_parser.cc" break; - case 243: -#line 987 "dhcp6_parser.yy" + case 245: +#line 995 "dhcp6_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 1886 "dhcp6_parser.cc" +#line 1896 "dhcp6_parser.cc" break; - case 244: -#line 993 "dhcp6_parser.yy" + case 246: +#line 1001 "dhcp6_parser.yy" { ctx.unique("contact-points", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1895 "dhcp6_parser.cc" +#line 1905 "dhcp6_parser.cc" break; - case 245: -#line 996 "dhcp6_parser.yy" + case 247: +#line 1004 "dhcp6_parser.yy" { ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("contact-points", cp); ctx.leave(); } -#line 1905 "dhcp6_parser.cc" +#line 1915 "dhcp6_parser.cc" break; - case 246: -#line 1002 "dhcp6_parser.yy" + case 248: +#line 1010 "dhcp6_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 1915 "dhcp6_parser.cc" +#line 1925 "dhcp6_parser.cc" break; - case 247: -#line 1008 "dhcp6_parser.yy" + case 249: +#line 1016 "dhcp6_parser.yy" { ctx.unique("keyspace", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1924 "dhcp6_parser.cc" +#line 1934 "dhcp6_parser.cc" break; - case 248: -#line 1011 "dhcp6_parser.yy" + case 250: +#line 1019 "dhcp6_parser.yy" { ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("keyspace", ks); ctx.leave(); } -#line 1934 "dhcp6_parser.cc" +#line 1944 "dhcp6_parser.cc" break; - case 249: -#line 1017 "dhcp6_parser.yy" + case 251: +#line 1025 "dhcp6_parser.yy" { ctx.unique("consistency", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1943 "dhcp6_parser.cc" +#line 1953 "dhcp6_parser.cc" break; - case 250: -#line 1020 "dhcp6_parser.yy" + case 252: +#line 1028 "dhcp6_parser.yy" { ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("consistency", c); ctx.leave(); } -#line 1953 "dhcp6_parser.cc" +#line 1963 "dhcp6_parser.cc" break; - case 251: -#line 1026 "dhcp6_parser.yy" + case 253: +#line 1034 "dhcp6_parser.yy" { ctx.unique("serial-consistency", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1962 "dhcp6_parser.cc" +#line 1972 "dhcp6_parser.cc" break; - case 252: -#line 1029 "dhcp6_parser.yy" + case 254: +#line 1037 "dhcp6_parser.yy" { ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("serial-consistency", c); ctx.leave(); } -#line 1972 "dhcp6_parser.cc" +#line 1982 "dhcp6_parser.cc" break; - case 253: -#line 1035 "dhcp6_parser.yy" + case 255: +#line 1043 "dhcp6_parser.yy" { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1980,29 +1990,29 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 1984 "dhcp6_parser.cc" +#line 1994 "dhcp6_parser.cc" break; - case 254: -#line 1041 "dhcp6_parser.yy" + case 256: +#line 1049 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1993 "dhcp6_parser.cc" +#line 2003 "dhcp6_parser.cc" break; - case 258: -#line 1051 "dhcp6_parser.yy" + case 260: +#line 1059 "dhcp6_parser.yy" { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2002 "dhcp6_parser.cc" +#line 2012 "dhcp6_parser.cc" break; - case 259: -#line 1054 "dhcp6_parser.yy" + case 261: +#line 1062 "dhcp6_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -2018,11 +2028,11 @@ namespace isc { namespace dhcp { ", supported values are: none, warn, fix, fix-del, del"); } } -#line 2022 "dhcp6_parser.cc" +#line 2032 "dhcp6_parser.cc" break; - case 260: -#line 1070 "dhcp6_parser.yy" + case 262: +#line 1078 "dhcp6_parser.yy" { ctx.unique("mac-sources", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2030,38 +2040,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.MAC_SOURCES); } -#line 2034 "dhcp6_parser.cc" +#line 2044 "dhcp6_parser.cc" break; - case 261: -#line 1076 "dhcp6_parser.yy" + case 263: +#line 1084 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2043 "dhcp6_parser.cc" +#line 2053 "dhcp6_parser.cc" break; - case 266: -#line 1089 "dhcp6_parser.yy" + case 268: +#line 1097 "dhcp6_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2052 "dhcp6_parser.cc" +#line 2062 "dhcp6_parser.cc" break; - case 267: -#line 1094 "dhcp6_parser.yy" + case 269: +#line 1102 "dhcp6_parser.yy" { ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2061 "dhcp6_parser.cc" +#line 2071 "dhcp6_parser.cc" break; - case 268: -#line 1099 "dhcp6_parser.yy" + case 270: +#line 1107 "dhcp6_parser.yy" { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2069,38 +2079,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 2073 "dhcp6_parser.cc" +#line 2083 "dhcp6_parser.cc" break; - case 269: -#line 1105 "dhcp6_parser.yy" + case 271: +#line 1113 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2082 "dhcp6_parser.cc" +#line 2092 "dhcp6_parser.cc" break; - case 275: -#line 1119 "dhcp6_parser.yy" + case 277: +#line 1127 "dhcp6_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 2091 "dhcp6_parser.cc" +#line 2101 "dhcp6_parser.cc" break; - case 276: -#line 1124 "dhcp6_parser.yy" + case 278: +#line 1132 "dhcp6_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 2100 "dhcp6_parser.cc" +#line 2110 "dhcp6_parser.cc" break; - case 277: -#line 1131 "dhcp6_parser.yy" + case 279: +#line 1139 "dhcp6_parser.yy" { ctx.unique("relay-supplied-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2108,20 +2118,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2112 "dhcp6_parser.cc" +#line 2122 "dhcp6_parser.cc" break; - case 278: -#line 1137 "dhcp6_parser.yy" + case 280: +#line 1145 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2121 "dhcp6_parser.cc" +#line 2131 "dhcp6_parser.cc" break; - case 279: -#line 1144 "dhcp6_parser.yy" + case 281: +#line 1152 "dhcp6_parser.yy" { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2129,52 +2139,52 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(mt); ctx.enter(ctx.DHCP_MULTI_THREADING); } -#line 2133 "dhcp6_parser.cc" +#line 2143 "dhcp6_parser.cc" break; - case 280: -#line 1150 "dhcp6_parser.yy" + case 282: +#line 1158 "dhcp6_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 2144 "dhcp6_parser.cc" +#line 2154 "dhcp6_parser.cc" break; - case 289: -#line 1169 "dhcp6_parser.yy" + case 291: +#line 1177 "dhcp6_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 2154 "dhcp6_parser.cc" +#line 2164 "dhcp6_parser.cc" break; - case 290: -#line 1175 "dhcp6_parser.yy" + case 292: +#line 1183 "dhcp6_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 2164 "dhcp6_parser.cc" +#line 2174 "dhcp6_parser.cc" break; - case 291: -#line 1181 "dhcp6_parser.yy" + case 293: +#line 1189 "dhcp6_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 2174 "dhcp6_parser.cc" +#line 2184 "dhcp6_parser.cc" break; - case 292: -#line 1187 "dhcp6_parser.yy" + case 294: +#line 1195 "dhcp6_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2182,97 +2192,97 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2186 "dhcp6_parser.cc" +#line 2196 "dhcp6_parser.cc" break; - case 293: -#line 1193 "dhcp6_parser.yy" + case 295: +#line 1201 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2195 "dhcp6_parser.cc" +#line 2205 "dhcp6_parser.cc" break; - case 298: -#line 1206 "dhcp6_parser.yy" + case 300: +#line 1214 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2205 "dhcp6_parser.cc" +#line 2215 "dhcp6_parser.cc" break; - case 299: -#line 1210 "dhcp6_parser.yy" + case 301: +#line 1218 "dhcp6_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 2215 "dhcp6_parser.cc" +#line 2225 "dhcp6_parser.cc" break; - case 300: -#line 1216 "dhcp6_parser.yy" + case 302: +#line 1224 "dhcp6_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2225 "dhcp6_parser.cc" +#line 2235 "dhcp6_parser.cc" break; - case 301: -#line 1220 "dhcp6_parser.yy" + case 303: +#line 1228 "dhcp6_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2235 "dhcp6_parser.cc" +#line 2245 "dhcp6_parser.cc" break; - case 307: -#line 1235 "dhcp6_parser.yy" + case 309: +#line 1243 "dhcp6_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2244 "dhcp6_parser.cc" +#line 2254 "dhcp6_parser.cc" break; - case 308: -#line 1238 "dhcp6_parser.yy" + case 310: +#line 1246 "dhcp6_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 2254 "dhcp6_parser.cc" +#line 2264 "dhcp6_parser.cc" break; - case 309: -#line 1244 "dhcp6_parser.yy" + case 311: +#line 1252 "dhcp6_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2263 "dhcp6_parser.cc" +#line 2273 "dhcp6_parser.cc" break; - case 310: -#line 1247 "dhcp6_parser.yy" + case 312: +#line 1255 "dhcp6_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2272 "dhcp6_parser.cc" +#line 2282 "dhcp6_parser.cc" break; - case 311: -#line 1253 "dhcp6_parser.yy" + case 313: +#line 1261 "dhcp6_parser.yy" { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2280,81 +2290,81 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2284 "dhcp6_parser.cc" +#line 2294 "dhcp6_parser.cc" break; - case 312: -#line 1259 "dhcp6_parser.yy" + case 314: +#line 1267 "dhcp6_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2294 "dhcp6_parser.cc" +#line 2304 "dhcp6_parser.cc" break; - case 321: -#line 1277 "dhcp6_parser.yy" + case 323: +#line 1285 "dhcp6_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 2304 "dhcp6_parser.cc" +#line 2314 "dhcp6_parser.cc" break; - case 322: -#line 1283 "dhcp6_parser.yy" + case 324: +#line 1291 "dhcp6_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 2314 "dhcp6_parser.cc" +#line 2324 "dhcp6_parser.cc" break; - case 323: -#line 1289 "dhcp6_parser.yy" + case 325: +#line 1297 "dhcp6_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 2324 "dhcp6_parser.cc" +#line 2334 "dhcp6_parser.cc" break; - case 324: -#line 1295 "dhcp6_parser.yy" + case 326: +#line 1303 "dhcp6_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 2334 "dhcp6_parser.cc" +#line 2344 "dhcp6_parser.cc" break; - case 325: -#line 1301 "dhcp6_parser.yy" + case 327: +#line 1309 "dhcp6_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 2344 "dhcp6_parser.cc" +#line 2354 "dhcp6_parser.cc" break; - case 326: -#line 1307 "dhcp6_parser.yy" + case 328: +#line 1315 "dhcp6_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 2354 "dhcp6_parser.cc" +#line 2364 "dhcp6_parser.cc" break; - case 327: -#line 1316 "dhcp6_parser.yy" + case 329: +#line 1324 "dhcp6_parser.yy" { ctx.unique("subnet6", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2362,30 +2372,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET6); } -#line 2366 "dhcp6_parser.cc" +#line 2376 "dhcp6_parser.cc" break; - case 328: -#line 1322 "dhcp6_parser.yy" + case 330: +#line 1330 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2375 "dhcp6_parser.cc" +#line 2385 "dhcp6_parser.cc" break; - case 333: -#line 1342 "dhcp6_parser.yy" + case 335: +#line 1350 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2385 "dhcp6_parser.cc" +#line 2395 "dhcp6_parser.cc" break; - case 334: -#line 1346 "dhcp6_parser.yy" + case 336: +#line 1354 "dhcp6_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -2407,107 +2417,107 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2411 "dhcp6_parser.cc" +#line 2421 "dhcp6_parser.cc" break; - case 335: -#line 1368 "dhcp6_parser.yy" + case 337: +#line 1376 "dhcp6_parser.yy" { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2421 "dhcp6_parser.cc" +#line 2431 "dhcp6_parser.cc" break; - case 336: -#line 1372 "dhcp6_parser.yy" + case 338: +#line 1380 "dhcp6_parser.yy" { // The subnet subnet6 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2431 "dhcp6_parser.cc" +#line 2441 "dhcp6_parser.cc" break; - case 382: -#line 1429 "dhcp6_parser.yy" + case 384: +#line 1437 "dhcp6_parser.yy" { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2440 "dhcp6_parser.cc" +#line 2450 "dhcp6_parser.cc" break; - case 383: -#line 1432 "dhcp6_parser.yy" + case 385: +#line 1440 "dhcp6_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 2450 "dhcp6_parser.cc" +#line 2460 "dhcp6_parser.cc" break; - case 384: -#line 1438 "dhcp6_parser.yy" + case 386: +#line 1446 "dhcp6_parser.yy" { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2459 "dhcp6_parser.cc" +#line 2469 "dhcp6_parser.cc" break; - case 385: -#line 1441 "dhcp6_parser.yy" + case 387: +#line 1449 "dhcp6_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 2469 "dhcp6_parser.cc" +#line 2479 "dhcp6_parser.cc" break; - case 386: -#line 1447 "dhcp6_parser.yy" + case 388: +#line 1455 "dhcp6_parser.yy" { ctx.unique("interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2478 "dhcp6_parser.cc" +#line 2488 "dhcp6_parser.cc" break; - case 387: -#line 1450 "dhcp6_parser.yy" + case 389: +#line 1458 "dhcp6_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface-id", iface); ctx.leave(); } -#line 2488 "dhcp6_parser.cc" +#line 2498 "dhcp6_parser.cc" break; - case 388: -#line 1456 "dhcp6_parser.yy" + case 390: +#line 1464 "dhcp6_parser.yy" { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2497 "dhcp6_parser.cc" +#line 2507 "dhcp6_parser.cc" break; - case 389: -#line 1459 "dhcp6_parser.yy" + case 391: +#line 1467 "dhcp6_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 2507 "dhcp6_parser.cc" +#line 2517 "dhcp6_parser.cc" break; - case 390: -#line 1465 "dhcp6_parser.yy" + case 392: +#line 1473 "dhcp6_parser.yy" { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2515,112 +2525,112 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2519 "dhcp6_parser.cc" +#line 2529 "dhcp6_parser.cc" break; - case 391: -#line 1471 "dhcp6_parser.yy" + case 393: +#line 1479 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2528 "dhcp6_parser.cc" +#line 2538 "dhcp6_parser.cc" break; - case 392: -#line 1476 "dhcp6_parser.yy" + case 394: +#line 1484 "dhcp6_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 2538 "dhcp6_parser.cc" +#line 2548 "dhcp6_parser.cc" break; - case 393: -#line 1482 "dhcp6_parser.yy" + case 395: +#line 1490 "dhcp6_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 2548 "dhcp6_parser.cc" +#line 2558 "dhcp6_parser.cc" break; - case 394: -#line 1488 "dhcp6_parser.yy" + case 396: +#line 1496 "dhcp6_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 2558 "dhcp6_parser.cc" +#line 2568 "dhcp6_parser.cc" break; - case 395: -#line 1494 "dhcp6_parser.yy" + case 397: +#line 1502 "dhcp6_parser.yy" { ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.RESERVATION_MODE); } -#line 2567 "dhcp6_parser.cc" +#line 2577 "dhcp6_parser.cc" break; - case 396: -#line 1497 "dhcp6_parser.yy" + case 398: +#line 1505 "dhcp6_parser.yy" { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2576 "dhcp6_parser.cc" +#line 2586 "dhcp6_parser.cc" break; - case 397: -#line 1502 "dhcp6_parser.yy" + case 399: +#line 1510 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2582 "dhcp6_parser.cc" +#line 2592 "dhcp6_parser.cc" break; - case 398: -#line 1503 "dhcp6_parser.yy" + case 400: +#line 1511 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2588 "dhcp6_parser.cc" +#line 2598 "dhcp6_parser.cc" break; - case 399: -#line 1504 "dhcp6_parser.yy" + case 401: +#line 1512 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2594 "dhcp6_parser.cc" +#line 2604 "dhcp6_parser.cc" break; - case 400: -#line 1505 "dhcp6_parser.yy" + case 402: +#line 1513 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2600 "dhcp6_parser.cc" +#line 2610 "dhcp6_parser.cc" break; - case 401: -#line 1508 "dhcp6_parser.yy" + case 403: +#line 1516 "dhcp6_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 2610 "dhcp6_parser.cc" +#line 2620 "dhcp6_parser.cc" break; - case 402: -#line 1514 "dhcp6_parser.yy" + case 404: +#line 1522 "dhcp6_parser.yy" { ctx.unique("rapid-commit", ctx.loc2pos(yystack_[2].location)); ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } -#line 2620 "dhcp6_parser.cc" +#line 2630 "dhcp6_parser.cc" break; - case 403: -#line 1522 "dhcp6_parser.yy" + case 405: +#line 1530 "dhcp6_parser.yy" { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2628,38 +2638,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2632 "dhcp6_parser.cc" +#line 2642 "dhcp6_parser.cc" break; - case 404: -#line 1528 "dhcp6_parser.yy" + case 406: +#line 1536 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2641 "dhcp6_parser.cc" +#line 2651 "dhcp6_parser.cc" break; - case 409: -#line 1543 "dhcp6_parser.yy" + case 411: +#line 1551 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2651 "dhcp6_parser.cc" +#line 2661 "dhcp6_parser.cc" break; - case 410: -#line 1547 "dhcp6_parser.yy" + case 412: +#line 1555 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 2659 "dhcp6_parser.cc" +#line 2669 "dhcp6_parser.cc" break; - case 453: -#line 1601 "dhcp6_parser.yy" + case 455: +#line 1609 "dhcp6_parser.yy" { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2667,47 +2677,47 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2671 "dhcp6_parser.cc" +#line 2681 "dhcp6_parser.cc" break; - case 454: -#line 1607 "dhcp6_parser.yy" + case 456: +#line 1615 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2680 "dhcp6_parser.cc" +#line 2690 "dhcp6_parser.cc" break; - case 455: -#line 1615 "dhcp6_parser.yy" + case 457: +#line 1623 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2689 "dhcp6_parser.cc" +#line 2699 "dhcp6_parser.cc" break; - case 456: -#line 1618 "dhcp6_parser.yy" + case 458: +#line 1626 "dhcp6_parser.yy" { // parsing completed } -#line 2697 "dhcp6_parser.cc" +#line 2707 "dhcp6_parser.cc" break; - case 461: -#line 1634 "dhcp6_parser.yy" + case 463: +#line 1642 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2707 "dhcp6_parser.cc" +#line 2717 "dhcp6_parser.cc" break; - case 462: -#line 1638 "dhcp6_parser.yy" + case 464: +#line 1646 "dhcp6_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)); @@ -2715,21 +2725,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2719 "dhcp6_parser.cc" +#line 2729 "dhcp6_parser.cc" break; - case 463: -#line 1649 "dhcp6_parser.yy" + case 465: +#line 1657 "dhcp6_parser.yy" { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2729 "dhcp6_parser.cc" +#line 2739 "dhcp6_parser.cc" break; - case 464: -#line 1653 "dhcp6_parser.yy" + case 466: +#line 1661 "dhcp6_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)); @@ -2737,107 +2747,107 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2741 "dhcp6_parser.cc" +#line 2751 "dhcp6_parser.cc" break; - case 480: -#line 1685 "dhcp6_parser.yy" + case 482: +#line 1693 "dhcp6_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 2751 "dhcp6_parser.cc" +#line 2761 "dhcp6_parser.cc" break; - case 482: -#line 1693 "dhcp6_parser.yy" + case 484: +#line 1701 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2760 "dhcp6_parser.cc" +#line 2770 "dhcp6_parser.cc" break; - case 483: -#line 1696 "dhcp6_parser.yy" + case 485: +#line 1704 "dhcp6_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 2770 "dhcp6_parser.cc" +#line 2780 "dhcp6_parser.cc" break; - case 484: -#line 1702 "dhcp6_parser.yy" + case 486: +#line 1710 "dhcp6_parser.yy" { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2779 "dhcp6_parser.cc" +#line 2789 "dhcp6_parser.cc" break; - case 485: -#line 1705 "dhcp6_parser.yy" + case 487: +#line 1713 "dhcp6_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 2789 "dhcp6_parser.cc" +#line 2799 "dhcp6_parser.cc" break; - case 486: -#line 1711 "dhcp6_parser.yy" + case 488: +#line 1719 "dhcp6_parser.yy" { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2798 "dhcp6_parser.cc" +#line 2808 "dhcp6_parser.cc" break; - case 487: -#line 1714 "dhcp6_parser.yy" + case 489: +#line 1722 "dhcp6_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 2808 "dhcp6_parser.cc" +#line 2818 "dhcp6_parser.cc" break; - case 489: -#line 1722 "dhcp6_parser.yy" + case 491: +#line 1730 "dhcp6_parser.yy" { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2817 "dhcp6_parser.cc" +#line 2827 "dhcp6_parser.cc" break; - case 490: -#line 1725 "dhcp6_parser.yy" + case 492: +#line 1733 "dhcp6_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 2827 "dhcp6_parser.cc" +#line 2837 "dhcp6_parser.cc" break; - case 491: -#line 1731 "dhcp6_parser.yy" + case 493: +#line 1739 "dhcp6_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 2837 "dhcp6_parser.cc" +#line 2847 "dhcp6_parser.cc" break; - case 492: -#line 1741 "dhcp6_parser.yy" + case 494: +#line 1749 "dhcp6_parser.yy" { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2845,97 +2855,97 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 2849 "dhcp6_parser.cc" +#line 2859 "dhcp6_parser.cc" break; - case 493: -#line 1747 "dhcp6_parser.yy" + case 495: +#line 1755 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2858 "dhcp6_parser.cc" +#line 2868 "dhcp6_parser.cc" break; - case 498: -#line 1766 "dhcp6_parser.yy" + case 500: +#line 1774 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2868 "dhcp6_parser.cc" +#line 2878 "dhcp6_parser.cc" break; - case 499: -#line 1770 "dhcp6_parser.yy" + case 501: +#line 1778 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 2877 "dhcp6_parser.cc" +#line 2887 "dhcp6_parser.cc" break; - case 500: -#line 1778 "dhcp6_parser.yy" + case 502: +#line 1786 "dhcp6_parser.yy" { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2887 "dhcp6_parser.cc" +#line 2897 "dhcp6_parser.cc" break; - case 501: -#line 1782 "dhcp6_parser.yy" + case 503: +#line 1790 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed } -#line 2896 "dhcp6_parser.cc" +#line 2906 "dhcp6_parser.cc" break; - case 516: -#line 1815 "dhcp6_parser.yy" + case 518: +#line 1823 "dhcp6_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2905 "dhcp6_parser.cc" +#line 2915 "dhcp6_parser.cc" break; - case 517: -#line 1818 "dhcp6_parser.yy" + case 519: +#line 1826 "dhcp6_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 2915 "dhcp6_parser.cc" +#line 2925 "dhcp6_parser.cc" break; - case 520: -#line 1828 "dhcp6_parser.yy" + case 522: +#line 1836 "dhcp6_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 2925 "dhcp6_parser.cc" +#line 2935 "dhcp6_parser.cc" break; - case 521: -#line 1834 "dhcp6_parser.yy" + case 523: +#line 1842 "dhcp6_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 2935 "dhcp6_parser.cc" +#line 2945 "dhcp6_parser.cc" break; - case 522: -#line 1843 "dhcp6_parser.yy" + case 524: +#line 1851 "dhcp6_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2943,87 +2953,87 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 2947 "dhcp6_parser.cc" +#line 2957 "dhcp6_parser.cc" break; - case 523: -#line 1849 "dhcp6_parser.yy" + case 525: +#line 1857 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2956 "dhcp6_parser.cc" +#line 2966 "dhcp6_parser.cc" break; - case 528: -#line 1864 "dhcp6_parser.yy" + case 530: +#line 1872 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2966 "dhcp6_parser.cc" +#line 2976 "dhcp6_parser.cc" break; - case 529: -#line 1868 "dhcp6_parser.yy" + case 531: +#line 1876 "dhcp6_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 2976 "dhcp6_parser.cc" +#line 2986 "dhcp6_parser.cc" break; - case 530: -#line 1874 "dhcp6_parser.yy" + case 532: +#line 1882 "dhcp6_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2986 "dhcp6_parser.cc" +#line 2996 "dhcp6_parser.cc" break; - case 531: -#line 1878 "dhcp6_parser.yy" + case 533: +#line 1886 "dhcp6_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2996 "dhcp6_parser.cc" +#line 3006 "dhcp6_parser.cc" break; - case 541: -#line 1897 "dhcp6_parser.yy" + case 543: +#line 1905 "dhcp6_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3005 "dhcp6_parser.cc" +#line 3015 "dhcp6_parser.cc" break; - case 542: -#line 1900 "dhcp6_parser.yy" + case 544: +#line 1908 "dhcp6_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 3015 "dhcp6_parser.cc" +#line 3025 "dhcp6_parser.cc" break; - case 543: -#line 1906 "dhcp6_parser.yy" + case 545: +#line 1914 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3023 "dhcp6_parser.cc" +#line 3033 "dhcp6_parser.cc" break; - case 544: -#line 1908 "dhcp6_parser.yy" + case 546: +#line 1916 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3046,19 +3056,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3050 "dhcp6_parser.cc" +#line 3060 "dhcp6_parser.cc" break; - case 545: -#line 1931 "dhcp6_parser.yy" + case 547: +#line 1939 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3058 "dhcp6_parser.cc" +#line 3068 "dhcp6_parser.cc" break; - case 546: -#line 1933 "dhcp6_parser.yy" + case 548: +#line 1941 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3083,11 +3093,11 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3087 "dhcp6_parser.cc" +#line 3097 "dhcp6_parser.cc" break; - case 547: -#line 1961 "dhcp6_parser.yy" + case 549: +#line 1969 "dhcp6_parser.yy" { ctx.unique("pd-pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3095,30 +3105,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.PD_POOLS); } -#line 3099 "dhcp6_parser.cc" +#line 3109 "dhcp6_parser.cc" break; - case 548: -#line 1967 "dhcp6_parser.yy" + case 550: +#line 1975 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3108 "dhcp6_parser.cc" +#line 3118 "dhcp6_parser.cc" break; - case 553: -#line 1982 "dhcp6_parser.yy" + case 555: +#line 1990 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3118 "dhcp6_parser.cc" +#line 3128 "dhcp6_parser.cc" break; - case 554: -#line 1986 "dhcp6_parser.yy" + case 556: +#line 1994 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3126,21 +3136,21 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3130 "dhcp6_parser.cc" +#line 3140 "dhcp6_parser.cc" break; - case 555: -#line 1994 "dhcp6_parser.yy" + case 557: +#line 2002 "dhcp6_parser.yy" { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3140 "dhcp6_parser.cc" +#line 3150 "dhcp6_parser.cc" break; - case 556: -#line 1998 "dhcp6_parser.yy" + case 558: +#line 2006 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3148,79 +3158,79 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3152 "dhcp6_parser.cc" +#line 3162 "dhcp6_parser.cc" break; - case 570: -#line 2023 "dhcp6_parser.yy" + case 572: +#line 2031 "dhcp6_parser.yy" { ctx.unique("prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3161 "dhcp6_parser.cc" +#line 3171 "dhcp6_parser.cc" break; - case 571: -#line 2026 "dhcp6_parser.yy" + case 573: +#line 2034 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } -#line 3171 "dhcp6_parser.cc" +#line 3181 "dhcp6_parser.cc" break; - case 572: -#line 2032 "dhcp6_parser.yy" + case 574: +#line 2040 "dhcp6_parser.yy" { ctx.unique("prefix-len", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 3181 "dhcp6_parser.cc" +#line 3191 "dhcp6_parser.cc" break; - case 573: -#line 2038 "dhcp6_parser.yy" + case 575: +#line 2046 "dhcp6_parser.yy" { ctx.unique("excluded-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3190 "dhcp6_parser.cc" +#line 3200 "dhcp6_parser.cc" break; - case 574: -#line 2041 "dhcp6_parser.yy" + case 576: +#line 2049 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix", prf); ctx.leave(); } -#line 3200 "dhcp6_parser.cc" +#line 3210 "dhcp6_parser.cc" break; - case 575: -#line 2047 "dhcp6_parser.yy" + case 577: +#line 2055 "dhcp6_parser.yy" { ctx.unique("excluded-prefix-len", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 3210 "dhcp6_parser.cc" +#line 3220 "dhcp6_parser.cc" break; - case 576: -#line 2053 "dhcp6_parser.yy" + case 578: +#line 2061 "dhcp6_parser.yy" { ctx.unique("delegated-len", ctx.loc2pos(yystack_[2].location)); ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 3220 "dhcp6_parser.cc" +#line 3230 "dhcp6_parser.cc" break; - case 577: -#line 2062 "dhcp6_parser.yy" + case 579: +#line 2070 "dhcp6_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3228,58 +3238,58 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3232 "dhcp6_parser.cc" +#line 3242 "dhcp6_parser.cc" break; - case 578: -#line 2068 "dhcp6_parser.yy" + case 580: +#line 2076 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3241 "dhcp6_parser.cc" +#line 3251 "dhcp6_parser.cc" break; - case 583: -#line 2081 "dhcp6_parser.yy" + case 585: +#line 2089 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3251 "dhcp6_parser.cc" +#line 3261 "dhcp6_parser.cc" break; - case 584: -#line 2085 "dhcp6_parser.yy" + case 586: +#line 2093 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3260 "dhcp6_parser.cc" +#line 3270 "dhcp6_parser.cc" break; - case 585: -#line 2090 "dhcp6_parser.yy" + case 587: +#line 2098 "dhcp6_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3270 "dhcp6_parser.cc" +#line 3280 "dhcp6_parser.cc" break; - case 586: -#line 2094 "dhcp6_parser.yy" + case 588: +#line 2102 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 3279 "dhcp6_parser.cc" +#line 3289 "dhcp6_parser.cc" break; - case 602: -#line 2121 "dhcp6_parser.yy" + case 604: +#line 2129 "dhcp6_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3287,20 +3297,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3291 "dhcp6_parser.cc" +#line 3301 "dhcp6_parser.cc" break; - case 603: -#line 2127 "dhcp6_parser.yy" + case 605: +#line 2135 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3300 "dhcp6_parser.cc" +#line 3310 "dhcp6_parser.cc" break; - case 604: -#line 2132 "dhcp6_parser.yy" + case 606: +#line 2140 "dhcp6_parser.yy" { ctx.unique("prefixes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3308,96 +3318,96 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3312 "dhcp6_parser.cc" +#line 3322 "dhcp6_parser.cc" break; - case 605: -#line 2138 "dhcp6_parser.yy" + case 607: +#line 2146 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3321 "dhcp6_parser.cc" +#line 3331 "dhcp6_parser.cc" break; - case 606: -#line 2143 "dhcp6_parser.yy" + case 608: +#line 2151 "dhcp6_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3330 "dhcp6_parser.cc" +#line 3340 "dhcp6_parser.cc" break; - case 607: -#line 2146 "dhcp6_parser.yy" + case 609: +#line 2154 "dhcp6_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 3340 "dhcp6_parser.cc" +#line 3350 "dhcp6_parser.cc" break; - case 608: -#line 2152 "dhcp6_parser.yy" + case 610: +#line 2160 "dhcp6_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3349 "dhcp6_parser.cc" +#line 3359 "dhcp6_parser.cc" break; - case 609: -#line 2155 "dhcp6_parser.yy" + case 611: +#line 2163 "dhcp6_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 3359 "dhcp6_parser.cc" +#line 3369 "dhcp6_parser.cc" break; - case 610: -#line 2161 "dhcp6_parser.yy" + case 612: +#line 2169 "dhcp6_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3368 "dhcp6_parser.cc" +#line 3378 "dhcp6_parser.cc" break; - case 611: -#line 2164 "dhcp6_parser.yy" + case 613: +#line 2172 "dhcp6_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 3378 "dhcp6_parser.cc" +#line 3388 "dhcp6_parser.cc" break; - case 612: -#line 2170 "dhcp6_parser.yy" + case 614: +#line 2178 "dhcp6_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3387 "dhcp6_parser.cc" +#line 3397 "dhcp6_parser.cc" break; - case 613: -#line 2173 "dhcp6_parser.yy" + case 615: +#line 2181 "dhcp6_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 3397 "dhcp6_parser.cc" +#line 3407 "dhcp6_parser.cc" break; - case 614: -#line 2179 "dhcp6_parser.yy" + case 616: +#line 2187 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3405,20 +3415,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3409 "dhcp6_parser.cc" +#line 3419 "dhcp6_parser.cc" break; - case 615: -#line 2185 "dhcp6_parser.yy" + case 617: +#line 2193 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3418 "dhcp6_parser.cc" +#line 3428 "dhcp6_parser.cc" break; - case 616: -#line 2193 "dhcp6_parser.yy" + case 618: +#line 2201 "dhcp6_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3426,39 +3436,39 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3430 "dhcp6_parser.cc" +#line 3440 "dhcp6_parser.cc" break; - case 617: -#line 2199 "dhcp6_parser.yy" + case 619: +#line 2207 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3439 "dhcp6_parser.cc" +#line 3449 "dhcp6_parser.cc" break; - case 620: -#line 2208 "dhcp6_parser.yy" + case 622: +#line 2216 "dhcp6_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3448 "dhcp6_parser.cc" +#line 3458 "dhcp6_parser.cc" break; - case 621: -#line 2211 "dhcp6_parser.yy" + case 623: +#line 2219 "dhcp6_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 3458 "dhcp6_parser.cc" +#line 3468 "dhcp6_parser.cc" break; - case 622: -#line 2220 "dhcp6_parser.yy" + case 624: +#line 2228 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3466,69 +3476,69 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3470 "dhcp6_parser.cc" +#line 3480 "dhcp6_parser.cc" break; - case 623: -#line 2226 "dhcp6_parser.yy" + case 625: +#line 2234 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3479 "dhcp6_parser.cc" +#line 3489 "dhcp6_parser.cc" break; - case 626: -#line 2235 "dhcp6_parser.yy" + case 628: +#line 2243 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3489 "dhcp6_parser.cc" +#line 3499 "dhcp6_parser.cc" break; - case 627: -#line 2239 "dhcp6_parser.yy" + case 629: +#line 2247 "dhcp6_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 3499 "dhcp6_parser.cc" +#line 3509 "dhcp6_parser.cc" break; - case 640: -#line 2264 "dhcp6_parser.yy" + case 642: +#line 2272 "dhcp6_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3508 "dhcp6_parser.cc" +#line 3518 "dhcp6_parser.cc" break; - case 641: -#line 2267 "dhcp6_parser.yy" + case 643: +#line 2275 "dhcp6_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 3518 "dhcp6_parser.cc" +#line 3528 "dhcp6_parser.cc" break; - case 642: -#line 2273 "dhcp6_parser.yy" + case 644: +#line 2281 "dhcp6_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 3528 "dhcp6_parser.cc" +#line 3538 "dhcp6_parser.cc" break; - case 643: -#line 2282 "dhcp6_parser.yy" + case 645: +#line 2290 "dhcp6_parser.yy" { ctx.unique("server-id", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3536,117 +3546,117 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } -#line 3540 "dhcp6_parser.cc" +#line 3550 "dhcp6_parser.cc" break; - case 644: -#line 2288 "dhcp6_parser.yy" + case 646: +#line 2296 "dhcp6_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 3551 "dhcp6_parser.cc" +#line 3561 "dhcp6_parser.cc" break; - case 656: -#line 2310 "dhcp6_parser.yy" + case 658: +#line 2318 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DUID_TYPE); } -#line 3560 "dhcp6_parser.cc" +#line 3570 "dhcp6_parser.cc" break; - case 657: -#line 2313 "dhcp6_parser.yy" + case 659: +#line 2321 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3569 "dhcp6_parser.cc" +#line 3579 "dhcp6_parser.cc" break; - case 658: -#line 2318 "dhcp6_parser.yy" + case 660: +#line 2326 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 3575 "dhcp6_parser.cc" +#line 3585 "dhcp6_parser.cc" break; - case 659: -#line 2319 "dhcp6_parser.yy" + case 661: +#line 2327 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 3581 "dhcp6_parser.cc" +#line 3591 "dhcp6_parser.cc" break; - case 660: -#line 2320 "dhcp6_parser.yy" + case 662: +#line 2328 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 3587 "dhcp6_parser.cc" +#line 3597 "dhcp6_parser.cc" break; - case 661: -#line 2323 "dhcp6_parser.yy" + case 663: +#line 2331 "dhcp6_parser.yy" { ctx.unique("htype", ctx.loc2pos(yystack_[2].location)); ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } -#line 3597 "dhcp6_parser.cc" +#line 3607 "dhcp6_parser.cc" break; - case 662: -#line 2329 "dhcp6_parser.yy" + case 664: +#line 2337 "dhcp6_parser.yy" { ctx.unique("identifier", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3606 "dhcp6_parser.cc" +#line 3616 "dhcp6_parser.cc" break; - case 663: -#line 2332 "dhcp6_parser.yy" + case 665: +#line 2340 "dhcp6_parser.yy" { ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } -#line 3616 "dhcp6_parser.cc" +#line 3626 "dhcp6_parser.cc" break; - case 664: -#line 2338 "dhcp6_parser.yy" + case 666: +#line 2346 "dhcp6_parser.yy" { ctx.unique("time", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 3626 "dhcp6_parser.cc" +#line 3636 "dhcp6_parser.cc" break; - case 665: -#line 2344 "dhcp6_parser.yy" + case 667: +#line 2352 "dhcp6_parser.yy" { ctx.unique("enterprise-id", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 3636 "dhcp6_parser.cc" +#line 3646 "dhcp6_parser.cc" break; - case 666: -#line 2352 "dhcp6_parser.yy" + case 668: +#line 2360 "dhcp6_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 3646 "dhcp6_parser.cc" +#line 3656 "dhcp6_parser.cc" break; - case 667: -#line 2360 "dhcp6_parser.yy" + case 669: +#line 2368 "dhcp6_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3654,58 +3664,58 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 3658 "dhcp6_parser.cc" +#line 3668 "dhcp6_parser.cc" break; - case 668: -#line 2366 "dhcp6_parser.yy" + case 670: +#line 2374 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3667 "dhcp6_parser.cc" +#line 3677 "dhcp6_parser.cc" break; - case 676: -#line 2382 "dhcp6_parser.yy" + case 678: +#line 2390 "dhcp6_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3676 "dhcp6_parser.cc" +#line 3686 "dhcp6_parser.cc" break; - case 677: -#line 2385 "dhcp6_parser.yy" + case 679: +#line 2393 "dhcp6_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 3686 "dhcp6_parser.cc" +#line 3696 "dhcp6_parser.cc" break; - case 678: -#line 2391 "dhcp6_parser.yy" + case 680: +#line 2399 "dhcp6_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3695 "dhcp6_parser.cc" +#line 3705 "dhcp6_parser.cc" break; - case 679: -#line 2394 "dhcp6_parser.yy" + case 681: +#line 2402 "dhcp6_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 3705 "dhcp6_parser.cc" +#line 3715 "dhcp6_parser.cc" break; - case 680: -#line 2403 "dhcp6_parser.yy" + case 682: +#line 2411 "dhcp6_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3713,79 +3723,79 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 3717 "dhcp6_parser.cc" +#line 3727 "dhcp6_parser.cc" break; - case 681: -#line 2409 "dhcp6_parser.yy" + case 683: +#line 2417 "dhcp6_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 3728 "dhcp6_parser.cc" +#line 3738 "dhcp6_parser.cc" break; - case 690: -#line 2428 "dhcp6_parser.yy" + case 692: +#line 2436 "dhcp6_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 3738 "dhcp6_parser.cc" +#line 3748 "dhcp6_parser.cc" break; - case 691: -#line 2434 "dhcp6_parser.yy" + case 693: +#line 2442 "dhcp6_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3747 "dhcp6_parser.cc" +#line 3757 "dhcp6_parser.cc" break; - case 692: -#line 2437 "dhcp6_parser.yy" + case 694: +#line 2445 "dhcp6_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 3757 "dhcp6_parser.cc" +#line 3767 "dhcp6_parser.cc" break; - case 693: -#line 2443 "dhcp6_parser.yy" + case 695: +#line 2451 "dhcp6_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 3767 "dhcp6_parser.cc" +#line 3777 "dhcp6_parser.cc" break; - case 694: -#line 2449 "dhcp6_parser.yy" + case 696: +#line 2457 "dhcp6_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3776 "dhcp6_parser.cc" +#line 3786 "dhcp6_parser.cc" break; - case 695: -#line 2452 "dhcp6_parser.yy" + case 697: +#line 2460 "dhcp6_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3785 "dhcp6_parser.cc" +#line 3795 "dhcp6_parser.cc" break; - case 696: -#line 2459 "dhcp6_parser.yy" + case 698: +#line 2467 "dhcp6_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3793,283 +3803,283 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 3797 "dhcp6_parser.cc" +#line 3807 "dhcp6_parser.cc" break; - case 697: -#line 2465 "dhcp6_parser.yy" + case 699: +#line 2473 "dhcp6_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 3808 "dhcp6_parser.cc" +#line 3818 "dhcp6_parser.cc" break; - case 698: -#line 2472 "dhcp6_parser.yy" + case 700: +#line 2480 "dhcp6_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3818 "dhcp6_parser.cc" +#line 3828 "dhcp6_parser.cc" break; - case 699: -#line 2476 "dhcp6_parser.yy" + case 701: +#line 2484 "dhcp6_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 3828 "dhcp6_parser.cc" +#line 3838 "dhcp6_parser.cc" break; - case 720: -#line 2506 "dhcp6_parser.yy" + case 722: +#line 2514 "dhcp6_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 3838 "dhcp6_parser.cc" +#line 3848 "dhcp6_parser.cc" break; - case 721: -#line 2513 "dhcp6_parser.yy" + case 723: +#line 2521 "dhcp6_parser.yy" { ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3847 "dhcp6_parser.cc" +#line 3857 "dhcp6_parser.cc" break; - case 722: -#line 2516 "dhcp6_parser.yy" + case 724: +#line 2524 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); ctx.leave(); } -#line 3857 "dhcp6_parser.cc" +#line 3867 "dhcp6_parser.cc" break; - case 723: -#line 2522 "dhcp6_parser.yy" + case 725: +#line 2530 "dhcp6_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3866 "dhcp6_parser.cc" +#line 3876 "dhcp6_parser.cc" break; - case 724: -#line 2525 "dhcp6_parser.yy" + case 726: +#line 2533 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 3876 "dhcp6_parser.cc" +#line 3886 "dhcp6_parser.cc" break; - case 725: -#line 2531 "dhcp6_parser.yy" + case 727: +#line 2539 "dhcp6_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 3886 "dhcp6_parser.cc" +#line 3896 "dhcp6_parser.cc" break; - case 726: -#line 2537 "dhcp6_parser.yy" + case 728: +#line 2545 "dhcp6_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3895 "dhcp6_parser.cc" +#line 3905 "dhcp6_parser.cc" break; - case 727: -#line 2540 "dhcp6_parser.yy" + case 729: +#line 2548 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 3905 "dhcp6_parser.cc" +#line 3915 "dhcp6_parser.cc" break; - case 728: -#line 2546 "dhcp6_parser.yy" + case 730: +#line 2554 "dhcp6_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 3915 "dhcp6_parser.cc" +#line 3925 "dhcp6_parser.cc" break; - case 729: -#line 2552 "dhcp6_parser.yy" + case 731: +#line 2560 "dhcp6_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 3925 "dhcp6_parser.cc" +#line 3935 "dhcp6_parser.cc" break; - case 730: -#line 2558 "dhcp6_parser.yy" + case 732: +#line 2566 "dhcp6_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 3934 "dhcp6_parser.cc" +#line 3944 "dhcp6_parser.cc" break; - case 731: -#line 2561 "dhcp6_parser.yy" + case 733: +#line 2569 "dhcp6_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3943 "dhcp6_parser.cc" +#line 3953 "dhcp6_parser.cc" break; - case 732: -#line 2567 "dhcp6_parser.yy" + case 734: +#line 2575 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 3949 "dhcp6_parser.cc" +#line 3959 "dhcp6_parser.cc" break; - case 733: -#line 2568 "dhcp6_parser.yy" + case 735: +#line 2576 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 3955 "dhcp6_parser.cc" +#line 3965 "dhcp6_parser.cc" break; - case 734: -#line 2571 "dhcp6_parser.yy" + case 736: +#line 2579 "dhcp6_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 3964 "dhcp6_parser.cc" +#line 3974 "dhcp6_parser.cc" break; - case 735: -#line 2574 "dhcp6_parser.yy" + case 737: +#line 2582 "dhcp6_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 3974 "dhcp6_parser.cc" +#line 3984 "dhcp6_parser.cc" break; - case 736: -#line 2581 "dhcp6_parser.yy" + case 738: +#line 2589 "dhcp6_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 3984 "dhcp6_parser.cc" +#line 3994 "dhcp6_parser.cc" break; - case 737: -#line 2588 "dhcp6_parser.yy" + case 739: +#line 2596 "dhcp6_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 3994 "dhcp6_parser.cc" +#line 4004 "dhcp6_parser.cc" break; - case 738: -#line 2595 "dhcp6_parser.yy" + case 740: +#line 2603 "dhcp6_parser.yy" { ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 4003 "dhcp6_parser.cc" +#line 4013 "dhcp6_parser.cc" break; - case 739: -#line 2598 "dhcp6_parser.yy" + case 741: +#line 2606 "dhcp6_parser.yy" { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4012 "dhcp6_parser.cc" +#line 4022 "dhcp6_parser.cc" break; - case 740: -#line 2604 "dhcp6_parser.yy" + case 742: +#line 2612 "dhcp6_parser.yy" { ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4021 "dhcp6_parser.cc" +#line 4031 "dhcp6_parser.cc" break; - case 741: -#line 2607 "dhcp6_parser.yy" + case 743: +#line 2615 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); ctx.leave(); } -#line 4031 "dhcp6_parser.cc" +#line 4041 "dhcp6_parser.cc" break; - case 742: -#line 2614 "dhcp6_parser.yy" + case 744: +#line 2622 "dhcp6_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4040 "dhcp6_parser.cc" +#line 4050 "dhcp6_parser.cc" break; - case 743: -#line 2617 "dhcp6_parser.yy" + case 745: +#line 2625 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 4050 "dhcp6_parser.cc" +#line 4060 "dhcp6_parser.cc" break; - case 744: -#line 2624 "dhcp6_parser.yy" + case 746: +#line 2632 "dhcp6_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4059 "dhcp6_parser.cc" +#line 4069 "dhcp6_parser.cc" break; - case 745: -#line 2627 "dhcp6_parser.yy" + case 747: +#line 2635 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 4069 "dhcp6_parser.cc" +#line 4079 "dhcp6_parser.cc" break; - case 746: -#line 2636 "dhcp6_parser.yy" + case 748: +#line 2644 "dhcp6_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4077,40 +4087,40 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 4081 "dhcp6_parser.cc" +#line 4091 "dhcp6_parser.cc" break; - case 747: -#line 2642 "dhcp6_parser.yy" + case 749: +#line 2650 "dhcp6_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4091 "dhcp6_parser.cc" +#line 4101 "dhcp6_parser.cc" break; - case 748: -#line 2648 "dhcp6_parser.yy" + case 750: +#line 2656 "dhcp6_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4101 "dhcp6_parser.cc" +#line 4111 "dhcp6_parser.cc" break; - case 749: -#line 2652 "dhcp6_parser.yy" + case 751: +#line 2660 "dhcp6_parser.yy" { // No config_control params are required // parsing completed } -#line 4110 "dhcp6_parser.cc" +#line 4120 "dhcp6_parser.cc" break; - case 754: -#line 2667 "dhcp6_parser.yy" + case 756: +#line 2675 "dhcp6_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4118,30 +4128,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 4122 "dhcp6_parser.cc" +#line 4132 "dhcp6_parser.cc" break; - case 755: -#line 2673 "dhcp6_parser.yy" + case 757: +#line 2681 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4131 "dhcp6_parser.cc" +#line 4141 "dhcp6_parser.cc" break; - case 756: -#line 2678 "dhcp6_parser.yy" + case 758: +#line 2686 "dhcp6_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 4141 "dhcp6_parser.cc" +#line 4151 "dhcp6_parser.cc" break; - case 757: -#line 2686 "dhcp6_parser.yy" + case 759: +#line 2694 "dhcp6_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4149,67 +4159,67 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 4153 "dhcp6_parser.cc" +#line 4163 "dhcp6_parser.cc" break; - case 758: -#line 2692 "dhcp6_parser.yy" + case 760: +#line 2700 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4162 "dhcp6_parser.cc" +#line 4172 "dhcp6_parser.cc" break; - case 761: -#line 2704 "dhcp6_parser.yy" + case 763: +#line 2712 "dhcp6_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 4172 "dhcp6_parser.cc" +#line 4182 "dhcp6_parser.cc" break; - case 762: -#line 2708 "dhcp6_parser.yy" + case 764: +#line 2716 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4180 "dhcp6_parser.cc" +#line 4190 "dhcp6_parser.cc" break; - case 772: -#line 2725 "dhcp6_parser.yy" + case 774: +#line 2733 "dhcp6_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 4190 "dhcp6_parser.cc" +#line 4200 "dhcp6_parser.cc" break; - case 773: -#line 2731 "dhcp6_parser.yy" + case 775: +#line 2739 "dhcp6_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4199 "dhcp6_parser.cc" +#line 4209 "dhcp6_parser.cc" break; - case 774: -#line 2734 "dhcp6_parser.yy" + case 776: +#line 2742 "dhcp6_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 4209 "dhcp6_parser.cc" +#line 4219 "dhcp6_parser.cc" break; - case 775: -#line 2740 "dhcp6_parser.yy" + case 777: +#line 2748 "dhcp6_parser.yy" { ctx.unique("output_options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4217,106 +4227,106 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4221 "dhcp6_parser.cc" +#line 4231 "dhcp6_parser.cc" break; - case 776: -#line 2746 "dhcp6_parser.yy" + case 778: +#line 2754 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4230 "dhcp6_parser.cc" +#line 4240 "dhcp6_parser.cc" break; - case 779: -#line 2755 "dhcp6_parser.yy" + case 781: +#line 2763 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4240 "dhcp6_parser.cc" +#line 4250 "dhcp6_parser.cc" break; - case 780: -#line 2759 "dhcp6_parser.yy" + case 782: +#line 2767 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4248 "dhcp6_parser.cc" +#line 4258 "dhcp6_parser.cc" break; - case 788: -#line 2774 "dhcp6_parser.yy" + case 790: +#line 2782 "dhcp6_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4257 "dhcp6_parser.cc" +#line 4267 "dhcp6_parser.cc" break; - case 789: -#line 2777 "dhcp6_parser.yy" + case 791: +#line 2785 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 4267 "dhcp6_parser.cc" +#line 4277 "dhcp6_parser.cc" break; - case 790: -#line 2783 "dhcp6_parser.yy" + case 792: +#line 2791 "dhcp6_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 4277 "dhcp6_parser.cc" +#line 4287 "dhcp6_parser.cc" break; - case 791: -#line 2789 "dhcp6_parser.yy" + case 793: +#line 2797 "dhcp6_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 4287 "dhcp6_parser.cc" +#line 4297 "dhcp6_parser.cc" break; - case 792: -#line 2795 "dhcp6_parser.yy" + case 794: +#line 2803 "dhcp6_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 4297 "dhcp6_parser.cc" +#line 4307 "dhcp6_parser.cc" break; - case 793: -#line 2801 "dhcp6_parser.yy" + case 795: +#line 2809 "dhcp6_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4306 "dhcp6_parser.cc" +#line 4316 "dhcp6_parser.cc" break; - case 794: -#line 2804 "dhcp6_parser.yy" + case 796: +#line 2812 "dhcp6_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 4316 "dhcp6_parser.cc" +#line 4326 "dhcp6_parser.cc" break; -#line 4320 "dhcp6_parser.cc" +#line 4330 "dhcp6_parser.cc" default: break; @@ -4587,142 +4597,142 @@ namespace isc { namespace dhcp { } - const short Dhcp6Parser::yypact_ninf_ = -967; + const short Dhcp6Parser::yypact_ninf_ = -970; const signed char Dhcp6Parser::yytable_ninf_ = -1; const short Dhcp6Parser::yypact_[] = { - 379, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, 39, 33, 36, 97, 103, - 117, 153, 184, 191, 205, 209, 234, 244, 247, 257, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, 33, -146, - 49, 116, 52, 540, 24, 186, 29, -7, 137, 269, - -65, 526, 119, -967, 65, 93, 110, 262, 297, -967, - 296, -967, -967, -967, -967, -967, -967, 306, 310, 335, - 389, 397, 403, 404, 409, 412, 413, 414, 416, 417, - 418, -967, 419, 420, 421, 422, 423, -967, -967, -967, - 424, 425, 426, -967, -967, -967, -967, -967, -967, -967, - 428, 429, 432, -967, -967, -967, -967, -967, -967, -967, - -967, -967, 433, -967, -967, -967, -967, -967, -967, 434, - -967, 435, -967, 48, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, 436, -967, 58, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, 438, - 440, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, 75, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, 189, -967, -967, -967, -967, -967, - 442, -967, 444, 445, -967, -967, -967, -967, -967, -967, - 232, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, 348, 449, - -967, -967, -967, -967, -967, -967, -967, -967, 376, -967, - -967, 450, -967, -967, -967, 451, -967, -967, 448, 455, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, 460, 464, -967, -967, -967, -967, 461, - 470, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, 250, -967, -967, -967, 474, -967, -967, - 476, -967, 479, 480, -967, -967, 481, 484, -967, -967, - -967, -967, -967, -967, -967, 263, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, 485, 283, -967, -967, -967, -967, 33, - 33, -967, 292, 488, -967, 490, 492, 494, 496, 500, - 501, 249, 304, 305, 307, 308, 312, 313, 317, 301, - 309, 319, 321, 324, 325, 506, 327, 332, 333, 337, - 339, 537, 542, 545, 344, 345, 347, 550, 551, 553, - 555, 557, 558, 560, 359, 360, 377, 578, 580, 594, - 595, 596, 597, 607, 608, 610, 411, 612, 613, 616, - 617, 619, 623, 437, 624, -967, 116, -967, 625, 441, - 52, -967, 626, 627, 636, 638, 644, 446, 443, 647, - 648, 650, 540, -967, 651, 24, -967, 657, 459, 661, - 462, 463, 186, -967, 664, 665, 666, 667, 668, 669, - 675, -967, 29, -967, 676, 677, 495, 692, 694, 696, - 499, -967, 137, 697, 502, 503, -967, 269, 698, 702, - 162, -967, 504, 703, 707, 508, 709, 510, 511, 712, - 715, 514, 515, 718, 719, 720, 721, 526, -967, 722, - 523, 119, -967, -967, -967, 724, 728, 533, 730, 731, - 732, 733, 736, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, 539, -967, -967, - -967, -967, -967, 107, 554, 556, -967, -967, -967, 753, - 755, 766, 769, 768, 573, 100, -967, -967, -967, 772, - 773, 774, 775, 776, 778, 779, 780, 781, -967, 782, - 783, 786, 789, 577, 582, -967, 794, -967, 795, -967, - -967, 796, 797, 583, 603, 604, -967, -967, 795, 605, - 802, -967, 611, -967, 614, -967, 615, -967, -967, -967, - 795, 795, 795, 618, 621, 622, 628, -967, 629, 630, - -967, 631, 632, 633, -967, -967, 634, -967, -967, -967, - 635, 768, -967, -967, 637, 639, -967, 640, -967, -967, - 171, 641, -967, -967, 107, 642, 643, 645, -967, 805, - -967, -967, 33, 116, -967, 119, 52, 294, 294, 804, - -967, -967, -967, -967, -967, -967, -967, -967, -967, 809, - 812, 813, 815, -967, -967, -967, -967, -967, -967, -967, - -967, -83, 33, 291, 716, 819, 821, 822, 219, 64, - 7, -44, 154, 526, -967, -967, 823, -967, -967, 832, - 834, -967, -967, -967, -967, -967, -58, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, 804, -967, 289, 295, - 303, -967, -967, -967, -967, 840, 843, 845, 846, 847, - -967, 848, 849, 850, -967, -967, -967, 851, 852, 853, - 854, -967, 352, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, 355, -967, 855, 856, -967, - -967, 857, 859, -967, -967, 858, 862, -967, -967, 860, - 864, -967, -967, 863, 865, -967, -967, -967, 78, -967, - -967, -967, 866, -967, -967, -967, 89, -967, -967, -967, - -967, 356, -967, -967, -967, 136, -967, -967, 867, 868, - -967, -967, 869, 871, -967, 874, 875, 876, 877, 878, - 879, 362, -967, -967, -967, -967, -967, -967, -967, -967, - -967, 880, 881, 882, -967, -967, -967, -967, 363, -967, - -967, -967, -967, -967, -967, 883, 884, 885, -967, 364, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, 366, -967, -967, -967, 886, -967, 887, -967, -967, - -967, 372, -967, -967, -967, -967, -967, 374, -967, 140, - -967, 689, -967, 888, 890, -967, -967, 889, 893, -967, - -967, -967, 891, -967, 892, -967, -967, -967, 896, 897, - 899, 900, 656, 691, 701, 700, 704, 903, 705, 706, - 708, 907, 908, 911, 713, 714, 725, 717, 294, -967, - -967, 294, -967, 804, 540, -967, 809, 137, -967, 812, - 269, -967, 813, 699, -967, 815, -83, -967, -967, 291, - -967, 924, 716, -967, 170, 819, -967, 29, -967, 821, - -65, -967, 822, 726, 742, 743, 744, 758, 764, 219, - -967, 936, 955, 770, 792, 799, 64, -967, 787, 803, - 811, 7, -967, 983, 995, -44, -967, 831, 996, 836, - 1037, 154, -967, -967, 195, 823, -967, -967, 1040, 1044, - 24, -967, 832, 186, -967, 834, 1045, -967, -967, 381, - 861, 870, 872, -967, -967, -967, -967, -967, 873, -967, - -967, -967, 894, 895, 904, -967, -967, -967, -967, -967, - 378, -967, 380, -967, 1042, -967, 1047, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, 382, -967, -967, -967, -967, -967, - -967, -967, -967, 906, -967, -967, 1048, -967, -967, -967, - -967, -967, 1049, 1050, -967, -967, -967, -967, -967, 1051, - -967, 384, -967, -967, -967, -967, -967, -967, -967, -967, - 179, 909, -967, -967, -967, -967, -967, -967, -967, -967, - 910, 912, -967, -967, 913, -967, 33, -967, -967, 1052, - -967, -967, -967, -967, -967, 388, -967, -967, -967, -967, - -967, -967, 914, 391, -967, 392, -967, 915, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, 699, -967, -967, 1054, 905, -967, - 170, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, 1056, 898, 1057, 195, -967, -967, -967, -967, - -967, -967, 916, -967, -967, 1060, -967, 917, -967, -967, - 1055, -967, -967, 228, -967, 8, 1055, -967, -967, 1063, - 1064, 1065, -967, 394, -967, -967, -967, -967, -967, -967, - -967, 1066, 918, 902, 919, 1067, 8, -967, 922, -967, - -967, -967, 923, -967, -967, -967 + 378, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, 37, 33, 62, 74, 76, + 78, 93, 97, 103, 107, 117, 126, 132, 147, 154, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, 33, -149, + 106, 116, 27, 539, 170, 186, 274, 119, 63, 284, + -72, 525, 337, -970, 193, 202, 207, 220, 217, -970, + 224, -970, -970, -970, -970, -970, -970, 237, 255, 268, + 295, 297, 309, 354, 362, 365, 372, 385, 387, 388, + 395, -970, 403, 404, 413, 414, 422, -970, -970, -970, + 424, 426, 428, -970, -970, -970, -970, -970, -970, -970, + 429, 432, 433, -970, -970, -970, -970, -970, -970, -970, + -970, -970, 434, -970, -970, -970, -970, -970, -970, 435, + -970, 436, -970, 60, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, 438, -970, 91, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, 440, + 442, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, 94, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, 109, -970, -970, -970, -970, -970, + 444, -970, 445, 448, -970, -970, -970, -970, -970, -970, + 134, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, 302, 379, + -970, -970, -970, -970, -970, -970, -970, -970, 446, -970, + -970, 449, -970, -970, -970, 451, -970, -970, 450, 453, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, 460, 464, -970, -970, -970, -970, 461, + 469, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, 140, -970, -970, -970, 476, -970, -970, + 479, -970, 480, 481, -970, -970, 485, 488, -970, -970, + -970, -970, -970, -970, -970, 144, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, 490, 150, -970, -970, -970, -970, 33, + 33, -970, 11, 491, -970, 492, 493, 494, 500, 501, + 503, 304, 305, 307, 311, 312, 316, 319, 321, 266, + 308, 322, 323, 326, 331, 504, 334, 336, 338, 342, + 343, 507, 542, 547, 346, 347, 348, 553, 555, 557, + 558, 560, 561, 562, 375, 376, 377, 594, 595, 596, + 597, 607, 608, 610, 611, 612, 412, 616, 617, 619, + 623, 624, 625, 423, 627, -970, 116, -970, 636, 441, + 27, -970, 638, 639, 643, 645, 646, 447, 454, 647, + 650, 651, 539, -970, 659, 170, -970, 661, 462, 662, + 463, 465, 186, -970, 665, 667, 668, 669, 675, 676, + 677, -970, 274, -970, 692, 694, 495, 695, 697, 701, + 499, -970, 63, 703, 502, 505, -970, 284, 704, 706, + 163, -970, 506, 707, 710, 497, 711, 511, 514, 716, + 717, 515, 516, 720, 721, 722, 723, 525, -970, 724, + 530, 337, -970, -970, -970, 732, 536, 533, 731, 733, + 734, 735, 752, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, 535, -970, -970, + -970, -970, -970, -115, 554, 556, -970, -970, -970, 754, + 766, 769, 770, 771, 572, 310, -970, -970, -970, 772, + 774, 775, 776, 777, 779, 780, 781, 782, -970, 783, + 786, 789, 792, 577, 582, -970, 795, -970, 796, -970, + -970, 797, 801, 583, 603, 604, -970, -970, 796, 605, + 803, -970, 609, -970, 613, -970, 614, -970, -970, -970, + 796, 796, 796, 615, 618, 620, 621, -970, 622, 626, + -970, 628, 629, 630, -970, -970, 631, -970, -970, -970, + 632, 771, -970, -970, 633, 634, -970, 635, -970, -970, + 201, 641, -970, -970, -115, 637, 640, 642, -970, 806, + -970, -970, 33, 116, -970, 337, 27, 296, 296, 809, + -970, -970, -970, -970, -970, -970, -970, -970, -970, 813, + 814, 820, 821, -970, -970, -970, -970, -970, -970, -970, + -970, -82, 33, 303, 719, 822, 833, 835, 270, 212, + 2, -45, 225, 525, -970, -970, 836, -970, -970, 838, + 840, -970, -970, -970, -970, -970, -48, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, 809, -970, 152, 190, + 199, -970, -970, -970, -970, 844, 845, 846, 847, 848, + -970, 849, 850, 851, 852, -970, -970, -970, 853, 854, + 855, 856, -970, 200, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, 209, -970, 857, + 858, -970, -970, 859, 861, -970, -970, 860, 864, -970, + -970, 862, 866, -970, -970, 865, 867, -970, -970, -970, + 48, -970, -970, -970, 868, -970, -970, -970, 198, -970, + -970, -970, -970, 210, -970, -970, -970, 242, -970, -970, + 869, 870, -970, -970, 872, 876, -970, 877, 878, 879, + 880, 881, 882, 211, -970, -970, -970, -970, -970, -970, + -970, -970, -970, 883, 884, 885, -970, -970, -970, -970, + 227, -970, -970, -970, -970, -970, -970, 886, 887, 888, + -970, 244, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, 278, -970, -970, -970, 889, -970, 890, + -970, -970, -970, 280, -970, -970, -970, -970, -970, 290, + -970, 262, -970, 658, -970, 874, 892, -970, -970, 891, + 893, -970, -970, -970, 895, -970, 894, -970, -970, -970, + 897, 900, 901, 902, 693, 700, 705, 702, 708, 904, + 709, 712, 713, 714, 907, 908, 911, 726, 728, 727, + 738, 296, -970, -970, 296, -970, 809, 539, -970, 813, + 63, -970, 814, 284, -970, 820, 698, -970, 821, -82, + -970, -970, 303, -970, 914, 719, -970, 196, 822, -970, + 274, -970, 833, -72, -970, 835, 744, 745, 746, 757, + 760, 785, 270, -970, 920, 967, 791, 794, 798, 212, + -970, 799, 805, 839, 2, -970, 973, 998, -45, -970, + 811, 1036, 863, 1039, 225, -970, -970, 161, 836, -970, + -970, 1043, 896, 170, -970, 838, 186, -970, 840, 1046, + -970, -970, 398, 871, 873, 875, -970, -970, -970, -970, + -970, 898, -970, -970, -970, -970, 899, 905, 906, -970, + -970, -970, -970, -970, 299, -970, 306, -970, 1044, -970, + 1045, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, 313, -970, + -970, -970, -970, -970, -970, -970, -970, 909, -970, -970, + 1051, -970, -970, -970, -970, -970, 1048, 1055, -970, -970, + -970, -970, -970, 1052, -970, 339, -970, -970, -970, -970, + -970, -970, -970, -970, 246, 910, -970, -970, -970, -970, + -970, -970, -970, -970, 912, 913, -970, -970, 915, -970, + 33, -970, -970, 1057, -970, -970, -970, -970, -970, 341, + -970, -970, -970, -970, -970, -970, 916, 349, -970, 367, + -970, 917, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, 698, -970, + -970, 1058, 918, -970, 196, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, 1059, 919, 1060, 161, + -970, -970, -970, -970, -970, -970, 922, -970, -970, 1054, + -970, 923, -970, -970, 1063, -970, -970, 279, -970, 8, + 1063, -970, -970, 1061, 1067, 1068, -970, 380, -970, -970, + -970, -970, -970, -970, -970, 1069, 921, 924, 925, 1070, + 8, -970, 927, -970, -970, -970, 928, -970, -970, -970 }; const short @@ -4732,44 +4742,44 @@ namespace isc { namespace dhcp { 20, 22, 24, 26, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 45, 38, 34, 33, 30, 31, 32, 37, 3, - 35, 36, 58, 5, 62, 7, 171, 9, 335, 11, - 530, 13, 555, 15, 585, 17, 455, 19, 463, 21, - 500, 23, 300, 25, 698, 27, 748, 29, 47, 41, - 0, 0, 0, 0, 0, 0, 587, 0, 465, 502, + 35, 36, 58, 5, 62, 7, 171, 9, 337, 11, + 532, 13, 557, 15, 587, 17, 457, 19, 465, 21, + 502, 23, 302, 25, 700, 27, 750, 29, 47, 41, + 0, 0, 0, 0, 0, 0, 589, 0, 467, 504, 0, 0, 0, 49, 0, 48, 0, 0, 42, 60, - 0, 127, 746, 169, 183, 185, 187, 0, 0, 0, + 0, 127, 748, 169, 183, 185, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, 146, 153, 155, - 0, 0, 0, 327, 453, 492, 403, 543, 545, 395, - 0, 0, 0, 260, 277, 268, 253, 622, 577, 292, - 311, 643, 0, 279, 667, 680, 696, 159, 161, 0, - 757, 0, 126, 0, 64, 66, 67, 68, 69, 70, + 0, 0, 0, 329, 455, 494, 405, 545, 547, 397, + 0, 0, 0, 262, 279, 270, 255, 624, 579, 294, + 313, 645, 0, 281, 669, 682, 698, 159, 161, 0, + 759, 0, 126, 0, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 105, 106, 107, 108, 109, 75, 113, 114, 115, 116, 117, 118, 119, 120, 111, 112, 121, 122, 123, 100, 125, 78, 79, 80, 81, 97, 82, 84, 83, 124, 88, 89, 76, 102, 103, 104, 101, 77, 86, 87, 95, 96, 98, 85, 90, 91, 92, 93, 94, 99, 110, 180, 0, 179, 0, 173, - 175, 176, 177, 178, 522, 547, 382, 384, 386, 0, - 0, 390, 388, 616, 381, 339, 340, 341, 342, 343, - 344, 345, 346, 365, 366, 367, 368, 369, 372, 373, - 374, 375, 376, 377, 378, 379, 370, 371, 380, 0, - 337, 350, 351, 352, 355, 356, 359, 360, 361, 358, - 353, 354, 347, 348, 363, 364, 349, 357, 362, 541, - 540, 536, 537, 535, 0, 532, 534, 538, 539, 570, - 0, 573, 0, 0, 569, 563, 564, 562, 567, 568, - 0, 557, 559, 560, 565, 566, 561, 614, 602, 604, - 606, 608, 610, 612, 601, 598, 599, 600, 0, 588, - 589, 593, 594, 591, 595, 596, 597, 592, 0, 482, - 232, 0, 486, 484, 489, 0, 478, 479, 0, 466, - 467, 469, 481, 470, 471, 472, 488, 473, 474, 475, - 476, 477, 516, 0, 0, 514, 515, 518, 519, 0, - 503, 504, 506, 507, 508, 509, 510, 511, 512, 513, - 307, 309, 304, 0, 302, 305, 306, 0, 721, 723, - 0, 726, 0, 0, 730, 734, 0, 0, 738, 740, - 742, 744, 719, 717, 718, 0, 700, 702, 714, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 715, 716, 754, 0, 0, 750, 752, 753, 46, 0, + 175, 176, 177, 178, 524, 549, 384, 386, 388, 0, + 0, 392, 390, 618, 383, 341, 342, 343, 344, 345, + 346, 347, 348, 367, 368, 369, 370, 371, 374, 375, + 376, 377, 378, 379, 380, 381, 372, 373, 382, 0, + 339, 352, 353, 354, 357, 358, 361, 362, 363, 360, + 355, 356, 349, 350, 365, 366, 351, 359, 364, 543, + 542, 538, 539, 537, 0, 534, 536, 540, 541, 572, + 0, 575, 0, 0, 571, 565, 566, 564, 569, 570, + 0, 559, 561, 562, 567, 568, 563, 616, 604, 606, + 608, 610, 612, 614, 603, 600, 601, 602, 0, 590, + 591, 595, 596, 593, 597, 598, 599, 594, 0, 484, + 233, 0, 488, 486, 491, 0, 480, 481, 0, 468, + 469, 471, 483, 472, 473, 474, 490, 475, 476, 477, + 478, 479, 518, 0, 0, 516, 517, 520, 521, 0, + 505, 506, 508, 509, 510, 511, 512, 513, 514, 515, + 309, 311, 306, 0, 304, 307, 308, 0, 723, 725, + 0, 728, 0, 0, 732, 736, 0, 0, 740, 742, + 744, 746, 721, 719, 720, 0, 702, 704, 716, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 717, 718, 756, 0, 0, 752, 754, 755, 46, 0, 0, 39, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4778,134 +4788,134 @@ namespace isc { namespace dhcp { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 63, 0, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 0, 0, 531, 0, 0, 0, - 0, 0, 0, 556, 0, 0, 0, 0, 0, 0, - 0, 586, 0, 456, 0, 0, 0, 0, 0, 0, - 0, 464, 0, 0, 0, 0, 501, 0, 0, 0, - 0, 301, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 699, 0, - 0, 0, 749, 50, 43, 0, 0, 0, 0, 0, + 0, 0, 0, 338, 0, 0, 533, 0, 0, 0, + 0, 0, 0, 558, 0, 0, 0, 0, 0, 0, + 0, 588, 0, 458, 0, 0, 0, 0, 0, 0, + 0, 466, 0, 0, 0, 0, 503, 0, 0, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 701, 0, + 0, 0, 751, 50, 43, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 0, 164, 165, 143, 144, 145, 0, 0, 0, 157, 158, 163, 0, - 0, 0, 0, 0, 0, 0, 392, 393, 394, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 666, 0, + 0, 0, 0, 0, 0, 0, 394, 395, 396, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 668, 0, 0, 0, 0, 0, 0, 168, 0, 65, 0, 182, - 174, 0, 0, 0, 0, 0, 401, 402, 0, 0, - 0, 338, 0, 533, 0, 572, 0, 575, 576, 558, - 0, 0, 0, 0, 0, 0, 0, 590, 0, 0, - 480, 0, 0, 0, 491, 468, 0, 520, 521, 505, - 0, 0, 303, 720, 0, 0, 725, 0, 728, 729, - 0, 0, 736, 737, 0, 0, 0, 0, 701, 0, - 756, 751, 0, 0, 128, 0, 0, 0, 0, 189, - 167, 148, 149, 150, 151, 152, 147, 154, 156, 329, - 457, 494, 405, 40, 544, 546, 397, 398, 399, 400, - 396, 0, 47, 0, 0, 0, 579, 294, 0, 0, - 0, 0, 0, 0, 160, 162, 0, 51, 181, 524, - 549, 383, 385, 387, 391, 389, 0, 542, 571, 574, - 615, 603, 605, 607, 609, 611, 613, 483, 233, 487, - 485, 490, 517, 308, 310, 722, 724, 727, 732, 733, - 731, 735, 739, 741, 743, 745, 189, 44, 0, 0, - 0, 219, 225, 227, 229, 0, 0, 0, 0, 0, - 244, 0, 0, 0, 247, 249, 251, 0, 0, 0, - 0, 218, 0, 195, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 209, 210, 217, 211, 212, 213, - 207, 208, 214, 215, 216, 0, 193, 0, 190, 191, - 333, 0, 330, 331, 461, 0, 458, 459, 498, 0, - 495, 496, 409, 0, 406, 407, 266, 267, 0, 262, - 264, 265, 0, 275, 276, 272, 0, 270, 273, 274, - 258, 0, 255, 257, 626, 0, 624, 583, 0, 580, - 581, 298, 0, 295, 296, 0, 0, 0, 0, 0, - 0, 0, 313, 315, 316, 317, 318, 319, 320, 656, - 662, 0, 0, 0, 655, 652, 653, 654, 0, 645, - 647, 650, 648, 649, 651, 0, 0, 0, 288, 0, - 281, 283, 284, 285, 286, 287, 676, 678, 675, 673, - 674, 0, 669, 671, 672, 0, 691, 0, 694, 687, - 688, 0, 682, 684, 685, 686, 689, 0, 761, 0, - 759, 53, 528, 0, 525, 526, 553, 0, 550, 551, - 620, 619, 0, 618, 0, 61, 747, 170, 0, 0, + 174, 0, 0, 0, 0, 0, 403, 404, 0, 0, + 0, 340, 0, 535, 0, 574, 0, 577, 578, 560, + 0, 0, 0, 0, 0, 0, 0, 592, 0, 0, + 482, 0, 0, 0, 493, 470, 0, 522, 523, 507, + 0, 0, 305, 722, 0, 0, 727, 0, 730, 731, + 0, 0, 738, 739, 0, 0, 0, 0, 703, 0, + 758, 753, 0, 0, 128, 0, 0, 0, 0, 189, + 167, 148, 149, 150, 151, 152, 147, 154, 156, 331, + 459, 496, 407, 40, 546, 548, 399, 400, 401, 402, + 398, 0, 47, 0, 0, 0, 581, 296, 0, 0, + 0, 0, 0, 0, 160, 162, 0, 51, 181, 526, + 551, 385, 387, 389, 393, 391, 0, 544, 573, 576, + 617, 605, 607, 609, 611, 613, 615, 485, 234, 489, + 487, 492, 519, 310, 312, 724, 726, 729, 734, 735, + 733, 737, 741, 743, 745, 747, 189, 44, 0, 0, + 0, 220, 226, 228, 230, 0, 0, 0, 0, 0, + 246, 0, 0, 0, 0, 249, 251, 253, 0, 0, + 0, 0, 219, 0, 195, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 209, 210, 211, 218, 212, + 213, 214, 207, 208, 215, 216, 217, 0, 193, 0, + 190, 191, 335, 0, 332, 333, 463, 0, 460, 461, + 500, 0, 497, 498, 411, 0, 408, 409, 268, 269, + 0, 264, 266, 267, 0, 277, 278, 274, 0, 272, + 275, 276, 260, 0, 257, 259, 628, 0, 626, 585, + 0, 582, 583, 300, 0, 297, 298, 0, 0, 0, + 0, 0, 0, 0, 315, 317, 318, 319, 320, 321, + 322, 658, 664, 0, 0, 0, 657, 654, 655, 656, + 0, 647, 649, 652, 650, 651, 653, 0, 0, 0, + 290, 0, 283, 285, 286, 287, 288, 289, 678, 680, + 677, 675, 676, 0, 671, 673, 674, 0, 693, 0, + 696, 689, 690, 0, 684, 686, 687, 688, 691, 0, + 763, 0, 761, 53, 530, 0, 527, 528, 555, 0, + 552, 553, 622, 621, 0, 620, 0, 61, 749, 170, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, - 186, 0, 188, 0, 0, 328, 0, 465, 454, 0, - 502, 493, 0, 0, 404, 0, 0, 261, 278, 0, - 269, 0, 0, 254, 628, 0, 623, 587, 578, 0, - 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 0, 0, 0, 0, 0, 0, 644, 0, 0, - 0, 0, 280, 0, 0, 0, 668, 0, 0, 0, - 0, 0, 681, 697, 0, 0, 758, 55, 0, 54, - 0, 523, 0, 0, 548, 0, 0, 617, 755, 0, - 0, 0, 0, 231, 234, 235, 236, 237, 0, 246, - 238, 239, 0, 0, 0, 241, 242, 243, 240, 196, - 0, 192, 0, 332, 0, 460, 0, 497, 452, 427, - 428, 429, 431, 432, 433, 417, 418, 436, 437, 438, - 439, 440, 443, 444, 445, 446, 447, 448, 449, 450, - 441, 442, 451, 413, 414, 415, 416, 425, 426, 422, - 423, 424, 421, 430, 0, 411, 419, 434, 435, 420, - 408, 263, 271, 0, 256, 640, 0, 638, 639, 635, - 636, 637, 0, 629, 630, 632, 633, 634, 625, 0, - 582, 0, 297, 321, 322, 323, 324, 325, 326, 314, - 0, 0, 661, 664, 665, 646, 289, 290, 291, 282, - 0, 0, 670, 690, 0, 693, 0, 683, 775, 0, - 773, 771, 765, 769, 770, 0, 763, 767, 768, 766, - 760, 52, 0, 0, 527, 0, 552, 0, 221, 222, - 223, 224, 220, 226, 228, 230, 245, 248, 250, 252, - 194, 334, 462, 499, 0, 410, 259, 0, 0, 627, - 0, 584, 299, 658, 659, 660, 657, 663, 677, 679, - 692, 695, 0, 0, 0, 0, 762, 56, 529, 554, - 621, 412, 0, 642, 631, 0, 772, 0, 764, 641, - 0, 774, 779, 0, 777, 0, 0, 776, 788, 0, - 0, 0, 793, 0, 781, 783, 784, 785, 786, 787, - 778, 0, 0, 0, 0, 0, 0, 780, 0, 790, - 791, 792, 0, 782, 789, 794 + 0, 0, 184, 186, 0, 188, 0, 0, 330, 0, + 467, 456, 0, 504, 495, 0, 0, 406, 0, 0, + 263, 280, 0, 271, 0, 0, 256, 630, 0, 625, + 589, 580, 0, 0, 295, 0, 0, 0, 0, 0, + 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, + 646, 0, 0, 0, 0, 282, 0, 0, 0, 670, + 0, 0, 0, 0, 0, 683, 699, 0, 0, 760, + 55, 0, 54, 0, 525, 0, 0, 550, 0, 0, + 619, 757, 0, 0, 0, 0, 232, 235, 236, 237, + 238, 0, 248, 239, 240, 241, 0, 0, 0, 243, + 244, 245, 242, 196, 0, 192, 0, 334, 0, 462, + 0, 499, 454, 429, 430, 431, 433, 434, 435, 419, + 420, 438, 439, 440, 441, 442, 445, 446, 447, 448, + 449, 450, 451, 452, 443, 444, 453, 415, 416, 417, + 418, 427, 428, 424, 425, 426, 423, 432, 0, 413, + 421, 436, 437, 422, 410, 265, 273, 0, 258, 642, + 0, 640, 641, 637, 638, 639, 0, 631, 632, 634, + 635, 636, 627, 0, 584, 0, 299, 323, 324, 325, + 326, 327, 328, 316, 0, 0, 663, 666, 667, 648, + 291, 292, 293, 284, 0, 0, 672, 692, 0, 695, + 0, 685, 777, 0, 775, 773, 767, 771, 772, 0, + 765, 769, 770, 768, 762, 52, 0, 0, 529, 0, + 554, 0, 222, 223, 224, 225, 221, 227, 229, 231, + 247, 250, 252, 254, 194, 336, 464, 501, 0, 412, + 261, 0, 0, 629, 0, 586, 301, 660, 661, 662, + 659, 665, 679, 681, 694, 697, 0, 0, 0, 0, + 764, 56, 531, 556, 623, 414, 0, 644, 633, 0, + 774, 0, 766, 643, 0, 776, 781, 0, 779, 0, + 0, 778, 790, 0, 0, 0, 795, 0, 783, 785, + 786, 787, 788, 789, 780, 0, 0, 0, 0, 0, + 0, 782, 0, 792, 793, 794, 0, 784, 791, 796 }; const short Dhcp6Parser::yypgoto_[] = { - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -10, -967, -559, -967, - 199, -967, -967, -967, -967, 350, -967, -597, -967, -967, - -967, -71, -967, -967, -967, -967, -967, -967, 385, 588, - -967, -967, -59, -43, -42, -40, -39, -28, -27, -26, - -23, -21, -15, -9, -3, -967, -1, 17, 18, 20, - -967, 393, 25, -967, 28, -967, 30, 32, 35, -967, - 38, -967, 40, -967, -967, -967, -967, -967, -967, -967, - -967, -967, 383, 590, -967, -967, -967, -967, -967, -967, - -967, -967, -967, 311, -967, 98, -967, -676, 104, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -67, - -967, -714, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, 81, -967, -967, -967, -967, -967, 88, - -698, -967, -967, -967, -967, 86, -967, -967, -967, -967, - -967, -967, -967, 57, -967, -967, -967, -967, -967, -967, - -967, 74, -967, -967, -967, 79, 552, -967, -967, -967, - -967, -967, -967, -967, 71, -967, -967, -967, -967, -967, - -967, -966, -967, -967, -967, 105, -967, -967, -967, 109, - 592, -967, -967, -965, -967, -964, -967, 51, -967, 55, - -967, 42, 45, 46, 50, -967, -967, -967, -958, -967, - -967, -967, -967, 101, -967, -967, -119, 1022, -967, -967, - -967, -967, -967, 111, -967, -967, -967, 123, -967, 571, - -967, -66, -967, -967, -967, -967, -967, -47, -967, -967, - -967, -967, -967, 13, -967, -967, -967, 122, -967, -967, - -967, 131, -967, 585, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, 76, -967, -967, -967, 77, - 646, -967, -967, -55, -967, 1, -967, -967, -967, -967, - -967, 80, -967, -967, -967, 83, 620, -967, -967, -967, - -967, -967, -967, -967, -57, -967, -967, -967, 120, -967, - -967, -967, 124, -967, 654, 387, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -957, - -967, -967, -967, -967, -967, -967, -967, 125, -967, -967, - -967, -86, -967, -967, -967, -967, -967, -967, -967, 112, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, 102, -967, -967, -967, -967, -967, -967, -967, - 99, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, 406, 584, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, - -967, -967, 447, 587, -967, -967, -967, -967, -967, -967, - 113, -967, -967, -91, -967, -967, -967, -967, -967, -967, - -111, -967, -967, -130, -967, -967, -967, -967, -967, -967, - -967 + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -10, -970, -562, -970, + 396, -970, -970, -970, -970, 356, -970, -585, -970, -970, + -970, -71, -970, -970, -970, -970, -970, -970, 179, 590, + -970, -970, -59, -43, -42, -40, -39, -28, -27, -26, + -23, -21, -15, -9, -3, -970, -1, 17, 18, 20, + -970, 397, 25, -970, 28, -970, 30, 32, 35, -970, + 38, -970, 40, -970, -970, -970, -970, -970, -970, -970, + -970, -970, 384, 592, -970, -970, -970, -970, -970, -970, + -970, -970, -970, 314, -970, 98, -970, -676, 102, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -67, + -970, -714, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, 80, -970, -970, -970, -970, -970, + 87, -698, -970, -970, -970, -970, 85, -970, -970, -970, + -970, -970, -970, -970, 54, -970, -970, -970, -970, -970, + -970, -970, 77, -970, -970, -970, 81, 549, -970, -970, + -970, -970, -970, -970, -970, 69, -970, -970, -970, -970, + -970, -970, -969, -970, -970, -970, 104, -970, -970, -970, + 108, 598, -970, -970, -968, -970, -967, -970, 51, -970, + 55, -970, 42, 45, 46, 50, -970, -970, -970, -961, + -970, -970, -970, -970, 99, -970, -970, -122, 1021, -970, + -970, -970, -970, -970, 113, -970, -970, -970, 111, -970, + 567, -970, -66, -970, -970, -970, -970, -970, -47, -970, + -970, -970, -970, -970, 13, -970, -970, -970, 120, -970, + -970, -970, 125, -970, 569, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, 57, -970, -970, -970, + 70, 644, -970, -970, -55, -970, 1, -970, -970, -970, + -970, -970, 64, -970, -970, -970, 79, 648, -970, -970, + -970, -970, -970, -970, -970, -57, -970, -970, -970, 121, + -970, -970, -970, 124, -970, 649, 390, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -960, -970, -970, -970, -970, -970, -970, -970, 129, -970, + -970, -970, -86, -970, -970, -970, -970, -970, -970, -970, + 110, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, 105, -970, -970, -970, -970, -970, -970, + -970, 96, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, 408, 585, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, -970, -970, -970, -970, -970, -970, -970, + -970, -970, -970, 455, 584, -970, -970, -970, -970, -970, + -970, 100, -970, -970, -95, -970, -970, -970, -970, -970, + -970, -114, -970, -970, -128, -970, -970, -970, -970, -970, + -970, -970 }; const short @@ -4913,180 +4923,181 @@ namespace isc { namespace dhcp { { -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 83, 39, 40, 69, - 714, 87, 88, 41, 68, 84, 85, 738, 941, 1048, - 1049, 801, 43, 70, 90, 423, 45, 71, 153, 154, + 714, 87, 88, 41, 68, 84, 85, 738, 943, 1051, + 1052, 802, 43, 70, 90, 423, 45, 71, 153, 154, 155, 425, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 451, 706, 174, 452, 175, 453, 176, 177, 178, 481, 179, 482, 180, 181, 182, 183, 445, 184, 185, 427, 47, 72, 218, 219, 220, 488, 221, 186, 428, 187, - 429, 188, 430, 827, 828, 829, 981, 802, 803, 804, - 958, 1202, 805, 959, 806, 960, 807, 961, 808, 809, - 525, 810, 811, 812, 813, 814, 815, 816, 817, 818, - 819, 820, 967, 821, 822, 971, 823, 972, 824, 973, - 189, 470, 861, 862, 863, 1001, 190, 467, 848, 849, - 850, 851, 191, 469, 856, 857, 858, 859, 192, 468, - 193, 477, 909, 910, 911, 912, 913, 194, 473, 872, - 873, 874, 1010, 63, 80, 373, 374, 375, 538, 376, - 539, 195, 474, 881, 882, 883, 884, 885, 886, 887, - 888, 196, 457, 831, 832, 833, 984, 49, 73, 259, - 260, 261, 494, 262, 495, 263, 496, 264, 500, 265, - 499, 197, 198, 199, 200, 463, 720, 270, 271, 201, - 460, 843, 844, 845, 993, 1124, 1125, 202, 458, 57, - 77, 835, 836, 837, 987, 59, 78, 338, 339, 340, - 341, 342, 343, 344, 524, 345, 528, 346, 527, 347, - 348, 529, 349, 203, 459, 839, 840, 841, 990, 61, - 79, 359, 360, 361, 362, 363, 533, 364, 365, 366, - 367, 273, 492, 943, 944, 945, 1050, 51, 74, 284, - 285, 286, 504, 204, 461, 205, 462, 276, 493, 947, - 948, 949, 1053, 53, 75, 300, 301, 302, 507, 303, - 304, 509, 305, 306, 206, 472, 868, 869, 870, 1007, - 55, 76, 318, 319, 320, 321, 515, 322, 516, 323, - 517, 324, 518, 325, 519, 326, 520, 327, 514, 278, - 501, 952, 953, 1056, 207, 471, 865, 866, 1004, 1142, - 1143, 1144, 1145, 1146, 1217, 1147, 208, 475, 898, 899, - 900, 1021, 1226, 901, 902, 1022, 903, 904, 209, 210, - 478, 921, 922, 923, 1033, 924, 1034, 211, 479, 931, - 932, 933, 934, 1038, 935, 936, 1040, 212, 480, 65, - 81, 395, 396, 397, 398, 543, 399, 544, 400, 401, - 546, 402, 403, 404, 549, 770, 405, 550, 406, 407, - 408, 553, 409, 554, 410, 555, 411, 556, 213, 426, - 67, 82, 414, 415, 416, 559, 417, 214, 484, 939, - 940, 1044, 1185, 1186, 1187, 1188, 1234, 1189, 1232, 1253, - 1254, 1255, 1263, 1264, 1265, 1271, 1266, 1267, 1268, 1269, - 1275 + 429, 188, 430, 829, 830, 831, 984, 803, 804, 805, + 960, 1206, 806, 961, 807, 962, 808, 963, 809, 810, + 525, 811, 812, 813, 814, 815, 816, 817, 818, 819, + 820, 821, 822, 969, 823, 824, 974, 825, 975, 826, + 976, 189, 470, 863, 864, 865, 1004, 190, 467, 850, + 851, 852, 853, 191, 469, 858, 859, 860, 861, 192, + 468, 193, 477, 911, 912, 913, 914, 915, 194, 473, + 874, 875, 876, 1013, 63, 80, 373, 374, 375, 538, + 376, 539, 195, 474, 883, 884, 885, 886, 887, 888, + 889, 890, 196, 457, 833, 834, 835, 987, 49, 73, + 259, 260, 261, 494, 262, 495, 263, 496, 264, 500, + 265, 499, 197, 198, 199, 200, 463, 720, 270, 271, + 201, 460, 845, 846, 847, 996, 1128, 1129, 202, 458, + 57, 77, 837, 838, 839, 990, 59, 78, 338, 339, + 340, 341, 342, 343, 344, 524, 345, 528, 346, 527, + 347, 348, 529, 349, 203, 459, 841, 842, 843, 993, + 61, 79, 359, 360, 361, 362, 363, 533, 364, 365, + 366, 367, 273, 492, 945, 946, 947, 1053, 51, 74, + 284, 285, 286, 504, 204, 461, 205, 462, 276, 493, + 949, 950, 951, 1056, 53, 75, 300, 301, 302, 507, + 303, 304, 509, 305, 306, 206, 472, 870, 871, 872, + 1010, 55, 76, 318, 319, 320, 321, 515, 322, 516, + 323, 517, 324, 518, 325, 519, 326, 520, 327, 514, + 278, 501, 954, 955, 1059, 207, 471, 867, 868, 1007, + 1146, 1147, 1148, 1149, 1150, 1221, 1151, 208, 475, 900, + 901, 902, 1024, 1230, 903, 904, 1025, 905, 906, 209, + 210, 478, 923, 924, 925, 1036, 926, 1037, 211, 479, + 933, 934, 935, 936, 1041, 937, 938, 1043, 212, 480, + 65, 81, 395, 396, 397, 398, 543, 399, 544, 400, + 401, 546, 402, 403, 404, 549, 770, 405, 550, 406, + 407, 408, 553, 409, 554, 410, 555, 411, 556, 213, + 426, 67, 82, 414, 415, 416, 559, 417, 214, 484, + 941, 942, 1047, 1189, 1190, 1191, 1192, 1238, 1193, 1236, + 1257, 1258, 1259, 1267, 1268, 1269, 1275, 1270, 1271, 1272, + 1273, 1279 }; const short Dhcp6Parser::yytable_[] = { 152, 217, 234, 280, 294, 314, 38, 336, 355, 372, - 392, 337, 356, 357, 235, 895, 277, 222, 274, 287, - 298, 316, 825, 350, 368, 855, 393, 1114, 1115, 1116, - 236, 237, 358, 238, 239, 1123, 1129, 846, 31, 30, - 32, 744, 33, 42, 713, 240, 241, 242, 127, 128, - 243, 486, 244, 750, 751, 752, 487, 86, 245, 89, - 308, 490, 370, 371, 246, 124, 491, 950, 215, 216, - 247, 418, 248, 223, 275, 288, 299, 317, 502, 351, - 369, 996, 394, 503, 997, 889, 272, 283, 297, 315, - 249, 250, 999, 251, 786, 1000, 419, 125, 252, 127, - 128, 253, 125, 254, 44, 255, 916, 917, 256, 279, - 46, 257, 713, 258, 420, 266, 127, 128, 267, 268, - 847, 127, 128, 269, 48, 281, 295, 91, 92, 282, - 296, 93, 412, 413, 94, 95, 96, 231, 151, 1005, - 232, 307, 1006, 1045, 127, 128, 1046, 308, 309, 310, - 311, 312, 313, 905, 906, 907, 127, 128, 329, 151, - 50, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 1258, 52, 505, 1259, 1260, 1261, 1262, 506, 54, 126, - 716, 717, 718, 719, 890, 891, 892, 893, 127, 128, - 151, 330, 56, 331, 332, 129, 58, 333, 334, 335, - 130, 131, 132, 133, 134, 135, 136, 151, 137, 127, - 128, 1256, 151, 138, 1257, 512, 34, 35, 36, 37, - 513, 60, 139, 125, 330, 140, 127, 128, 1114, 1115, - 1116, 62, 141, 540, 64, 151, 1123, 1129, 541, 125, - 142, 143, 127, 128, 66, 144, 557, 151, 145, 330, - 421, 558, 146, 289, 290, 291, 292, 293, 127, 128, - 701, 702, 703, 704, 1135, 1136, 561, 127, 128, 370, - 371, 562, 486, 147, 148, 149, 150, 955, 561, 231, - 422, 855, 232, 956, 424, 1080, 490, 925, 926, 927, - 431, 957, 895, 705, 432, 781, 1223, 1224, 1225, 151, - 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, - 792, 793, 794, 795, 796, 797, 798, 799, 800, 433, - 151, 768, 769, 330, 352, 331, 332, 353, 354, 875, - 876, 877, 878, 879, 880, 978, 521, 928, 978, 1002, - 979, 127, 128, 980, 1003, 1019, 1026, 1031, 330, 1035, - 1020, 1027, 1032, 151, 1036, 1041, 1178, 557, 1179, 1180, - 1042, 978, 1043, 502, 523, 1214, 1210, 540, 1211, 151, - 1215, 1235, 1222, 434, 505, 512, 1236, 1276, 151, 1238, - 1239, 435, 1277, 1198, 1199, 1200, 1201, 436, 437, 563, - 564, 846, 853, 438, 854, 152, 439, 440, 441, 217, - 442, 443, 444, 446, 447, 448, 449, 450, 454, 455, - 456, 234, 464, 465, 280, 222, 466, 476, 483, 485, - 489, 294, 497, 235, 498, 277, 508, 274, 510, 511, - 287, 314, 522, 573, 526, 530, 531, 298, 532, 236, + 392, 337, 356, 357, 235, 897, 277, 222, 274, 287, + 298, 316, 827, 350, 368, 857, 393, 1118, 1119, 1120, + 236, 237, 358, 238, 239, 1127, 1133, 30, 31, 848, + 32, 713, 33, 215, 216, 240, 241, 242, 127, 128, + 243, 999, 244, 744, 1000, 86, 370, 371, 245, 701, + 702, 703, 704, 486, 246, 750, 751, 752, 487, 42, + 247, 308, 248, 223, 275, 288, 299, 317, 952, 351, + 369, 44, 394, 46, 329, 48, 272, 283, 297, 315, + 249, 250, 705, 251, 490, 127, 128, 502, 252, 491, + 50, 253, 503, 254, 52, 255, 918, 919, 256, 713, + 54, 257, 505, 258, 56, 266, 89, 506, 267, 268, + 127, 128, 849, 269, 58, 281, 295, 91, 92, 282, + 296, 93, 151, 60, 94, 95, 96, 512, 330, 62, + 331, 332, 513, 540, 333, 334, 335, 557, 541, 907, + 908, 909, 558, 561, 64, 486, 127, 128, 562, 151, + 957, 66, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 1262, 124, 561, 1263, 1264, 1265, 1266, 958, 418, + 126, 1002, 490, 981, 1003, 419, 151, 959, 982, 127, + 128, 420, 981, 1005, 1022, 565, 129, 983, 1006, 1023, + 422, 130, 131, 132, 133, 134, 135, 136, 421, 137, + 1029, 151, 424, 891, 138, 1030, 330, 34, 35, 36, + 37, 431, 786, 139, 125, 1008, 140, 1034, 1009, 1118, + 1119, 1120, 1035, 141, 127, 128, 279, 1127, 1133, 432, + 125, 142, 143, 127, 128, 1048, 144, 151, 1049, 145, + 125, 330, 433, 146, 289, 290, 291, 292, 293, 127, + 128, 1038, 1260, 1044, 231, 1261, 1039, 232, 1045, 127, + 128, 370, 371, 557, 147, 148, 149, 150, 1046, 434, + 231, 435, 981, 232, 857, 127, 128, 1214, 1084, 502, + 521, 1139, 1140, 436, 1215, 897, 1218, 781, 127, 128, + 151, 1219, 782, 783, 784, 785, 786, 787, 788, 789, + 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, + 800, 801, 540, 1182, 1239, 1183, 1184, 1226, 125, 1240, + 412, 413, 505, 892, 893, 894, 895, 1242, 437, 330, + 352, 331, 332, 353, 354, 151, 438, 127, 128, 439, + 512, 330, 768, 769, 151, 1243, 440, 127, 128, 927, + 928, 929, 522, 1280, 1227, 1228, 1229, 307, 1281, 441, + 151, 442, 443, 308, 309, 310, 311, 312, 313, 444, + 151, 877, 878, 879, 880, 881, 882, 446, 447, 563, + 564, 716, 717, 718, 719, 152, 151, 448, 449, 217, + 1202, 1203, 1204, 1205, 848, 855, 450, 856, 454, 930, + 455, 234, 456, 464, 280, 222, 465, 466, 476, 483, + 485, 294, 489, 235, 497, 277, 498, 274, 508, 510, + 287, 314, 511, 526, 523, 530, 532, 298, 531, 236, 237, 336, 238, 239, 534, 337, 355, 316, 535, 536, - 356, 357, 151, 537, 240, 241, 242, 350, 542, 243, - 545, 244, 368, 547, 548, 551, 392, 245, 552, 560, - 358, 223, 566, 246, 567, 565, 568, 151, 569, 247, - 570, 248, 393, 275, 571, 572, 288, 581, 574, 575, - 587, 576, 577, 299, 582, 272, 578, 579, 283, 249, - 250, 580, 251, 317, 583, 297, 584, 252, 585, 586, - 253, 588, 254, 351, 255, 315, 589, 256, 369, 590, - 257, 593, 258, 591, 266, 592, 594, 267, 268, 595, - 596, 597, 269, 598, 599, 600, 281, 601, 394, 602, - 282, 603, 604, 295, 605, 606, 607, 296, 1, 2, + 356, 357, 537, 581, 240, 241, 242, 350, 151, 243, + 542, 244, 368, 545, 547, 548, 392, 245, 151, 551, + 358, 223, 552, 246, 560, 566, 567, 568, 569, 247, + 151, 248, 393, 275, 570, 571, 288, 572, 587, 573, + 574, 593, 575, 299, 582, 272, 576, 577, 283, 249, + 250, 578, 251, 317, 579, 297, 580, 252, 583, 584, + 253, 585, 254, 351, 255, 315, 586, 256, 369, 588, + 257, 589, 258, 693, 266, 590, 594, 267, 268, 591, + 592, 595, 269, 596, 597, 598, 281, 599, 394, 600, + 282, 601, 602, 295, 603, 604, 605, 296, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 609, 608, 610, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 611, 612, - 613, 614, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 615, 616, 125, 617, 618, 619, 620, 127, 128, - 621, 622, 152, 623, 224, 217, 225, 624, 626, 628, - 631, 632, 127, 128, 226, 227, 228, 229, 230, 129, - 633, 222, 634, 625, 130, 131, 132, 629, 635, 637, - 636, 638, 639, 231, 640, 642, 232, 138, 894, 908, - 918, 644, 392, 645, 233, 646, 647, 648, 650, 651, - 652, 653, 654, 655, 896, 914, 919, 929, 393, 656, - 658, 659, 777, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 661, 223, 662, 660, - 663, 666, 670, 390, 391, 664, 671, 674, 667, 668, - 673, 675, 676, 677, 678, 679, 680, 147, 148, 681, - 682, 683, 684, 685, 686, 687, 689, 690, 692, 151, - 897, 915, 920, 930, 394, 693, 694, 695, 696, 697, - 698, 699, 700, 151, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 707, 709, 708, - 710, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 711, 125, 330, 712, 32, 715, 721, 722, 723, - 734, 725, 724, 726, 727, 735, 741, 728, 729, 730, - 731, 127, 128, 732, 227, 228, 733, 230, 129, 736, - 737, 739, 740, 130, 131, 132, 742, 743, 745, 746, - 776, 826, 231, 771, 747, 232, 830, 748, 749, 834, - 838, 753, 842, 233, 754, 755, 864, 860, 867, 871, - 938, 756, 757, 758, 759, 760, 761, 762, 763, 942, - 765, 946, 766, 767, 962, 773, 774, 963, 775, 964, - 965, 966, 968, 969, 970, 974, 975, 976, 977, 983, - 1063, 982, 986, 985, 988, 989, 991, 992, 995, 994, - 764, 1009, 998, 1008, 1012, 1011, 147, 148, 1013, 1014, - 1015, 1016, 1017, 1018, 1023, 1024, 1025, 1028, 1029, 1030, - 1037, 1039, 1047, 1052, 1051, 1054, 1055, 1064, 1058, 1057, - 1059, 1060, 151, 1061, 1062, 1065, 1066, 1068, 1067, 1069, - 1070, 1072, 1073, 234, 1071, 1074, 336, 1075, 1076, 355, - 337, 1078, 1088, 356, 357, 235, 1113, 277, 1133, 274, - 1153, 1077, 350, 1137, 1089, 368, 314, 1138, 1127, 372, - 1160, 236, 237, 358, 238, 239, 1154, 1155, 1156, 1140, - 1090, 1091, 316, 1092, 1093, 894, 240, 241, 242, 1161, - 908, 243, 1157, 244, 918, 1094, 1095, 1096, 1158, 245, - 1097, 896, 1098, 1181, 1162, 246, 914, 1182, 1099, 280, - 919, 247, 294, 248, 1100, 275, 929, 1170, 351, 1183, - 1101, 369, 1102, 1166, 1128, 287, 1163, 272, 298, 1171, - 1174, 249, 250, 1164, 251, 1141, 1126, 1167, 317, 252, - 1103, 1104, 253, 1105, 254, 1168, 255, 1139, 1106, 256, - 315, 1107, 257, 1108, 258, 1109, 266, 897, 1110, 267, - 268, 1111, 915, 1112, 269, 1119, 920, 1173, 1120, 1121, - 1175, 1176, 930, 1122, 1117, 1184, 1191, 1192, 1118, 1197, - 1212, 288, 1218, 1220, 299, 1213, 1233, 1219, 1242, 1221, - 1245, 1247, 1252, 283, 1203, 1250, 297, 1272, 1273, 1274, - 1278, 1282, 852, 1204, 627, 1205, 1206, 772, 778, 780, - 630, 1081, 1079, 1134, 1131, 1132, 1152, 954, 1169, 1151, - 1159, 1083, 672, 1082, 641, 1241, 1130, 1207, 1208, 328, - 1085, 281, 1246, 665, 295, 282, 1280, 1209, 296, 1216, - 1084, 1243, 1227, 1228, 1087, 1229, 1230, 1237, 1240, 1249, - 1251, 1086, 669, 1281, 1279, 1284, 1285, 1193, 1194, 1150, - 1148, 1149, 649, 951, 1244, 1196, 1195, 1172, 1165, 937, - 1177, 688, 779, 1088, 1248, 1270, 1283, 1113, 691, 1137, - 0, 643, 0, 1138, 0, 1089, 0, 0, 1190, 1127, - 0, 0, 0, 0, 1181, 1140, 1231, 0, 1182, 0, - 0, 1090, 1091, 0, 1092, 1093, 657, 0, 0, 0, - 1183, 0, 0, 0, 0, 0, 1094, 1095, 1096, 0, - 0, 1097, 0, 1098, 0, 0, 0, 0, 0, 1099, - 0, 0, 0, 0, 0, 1100, 0, 0, 0, 0, - 0, 1101, 0, 1102, 0, 1128, 0, 0, 0, 0, - 0, 1141, 0, 0, 0, 0, 0, 1126, 0, 0, - 0, 1103, 1104, 1139, 1105, 0, 1184, 0, 0, 1106, - 0, 0, 1107, 0, 1108, 0, 1109, 0, 0, 1110, - 0, 0, 1111, 0, 1112, 0, 1119, 0, 0, 1120, - 1121, 0, 0, 0, 1122, 1117, 0, 0, 0, 1118 + 13, 14, 606, 607, 608, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 609, 610, + 611, 612, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 613, 614, 125, 615, 616, 617, 618, 127, 128, + 619, 620, 152, 621, 224, 217, 225, 622, 623, 624, + 625, 626, 127, 128, 226, 227, 228, 229, 230, 129, + 628, 222, 631, 632, 130, 131, 132, 633, 629, 634, + 635, 638, 636, 231, 639, 640, 232, 138, 896, 910, + 920, 637, 392, 642, 233, 644, 646, 645, 647, 650, + 648, 651, 652, 653, 898, 916, 921, 931, 393, 654, + 655, 656, 777, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 658, 223, 659, 661, + 660, 662, 676, 390, 391, 663, 664, 666, 670, 667, + 671, 674, 668, 673, 675, 677, 678, 147, 148, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 689, 151, + 899, 917, 922, 932, 394, 690, 692, 694, 695, 700, + 696, 697, 698, 151, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 699, 707, 709, + 708, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 710, 125, 330, 711, 712, 715, 721, 32, 722, + 723, 734, 725, 724, 726, 727, 735, 741, 728, 729, + 730, 127, 128, 731, 227, 228, 732, 230, 129, 733, + 736, 737, 739, 130, 131, 132, 740, 742, 743, 745, + 746, 776, 231, 747, 771, 232, 828, 748, 749, 753, + 832, 836, 754, 233, 755, 756, 757, 840, 844, 866, + 758, 862, 759, 760, 761, 762, 763, 765, 766, 767, + 869, 773, 873, 940, 774, 944, 775, 948, 964, 965, + 966, 967, 968, 970, 971, 972, 973, 977, 978, 979, + 980, 986, 1050, 985, 989, 988, 991, 992, 994, 995, + 998, 997, 778, 1012, 1001, 1011, 147, 148, 1014, 1015, + 1054, 1016, 1017, 1018, 1019, 1020, 1021, 1026, 1027, 1028, + 1031, 1032, 1033, 1040, 1042, 1055, 1058, 1057, 1066, 1196, + 1061, 1062, 151, 1060, 1063, 1064, 1065, 1067, 1071, 1069, + 1068, 1076, 1077, 1070, 1072, 1078, 234, 1073, 1137, 336, + 1074, 1075, 355, 337, 1164, 1092, 356, 357, 235, 1117, + 277, 1079, 274, 1080, 1081, 350, 1141, 1093, 368, 314, + 1142, 1131, 372, 1082, 236, 237, 358, 238, 239, 1157, + 1158, 1159, 1144, 1094, 1095, 316, 1096, 1097, 896, 240, + 241, 242, 1160, 910, 243, 1161, 244, 920, 1098, 1099, + 1100, 1165, 245, 1101, 898, 1102, 1185, 1174, 246, 916, + 1186, 1103, 280, 921, 247, 294, 248, 1104, 275, 931, + 1162, 351, 1187, 1105, 369, 1106, 1166, 1132, 287, 1167, + 272, 298, 1175, 1168, 249, 250, 1170, 251, 1145, 1130, + 1171, 317, 252, 1107, 1108, 253, 1109, 254, 1177, 255, + 1143, 1110, 256, 315, 1111, 257, 1112, 258, 1113, 266, + 899, 1114, 267, 268, 1115, 917, 1116, 269, 1123, 922, + 1178, 1124, 1125, 1180, 1172, 932, 1126, 1121, 1188, 1195, + 1201, 1122, 1216, 1217, 288, 1222, 1223, 299, 1224, 1254, + 1225, 1237, 1246, 1249, 1251, 1276, 283, 764, 1179, 297, + 1256, 1277, 1278, 1282, 1286, 1207, 627, 1208, 854, 1209, + 780, 772, 630, 1083, 1085, 1138, 1135, 1136, 1173, 672, + 956, 1163, 1156, 1087, 1155, 1086, 1245, 1134, 328, 665, + 641, 1088, 1210, 1211, 281, 1089, 669, 295, 282, 1212, + 1213, 296, 1198, 1220, 1231, 1091, 1232, 1233, 1090, 1234, + 1241, 1244, 1200, 1197, 1250, 1247, 1253, 1255, 1283, 1284, + 1285, 1288, 1289, 1154, 1153, 1199, 953, 1152, 1248, 1169, + 1181, 939, 688, 1176, 1252, 691, 1274, 1092, 1194, 643, + 779, 1117, 1287, 1141, 0, 0, 0, 1142, 0, 1093, + 649, 0, 0, 1131, 0, 0, 0, 0, 1185, 1144, + 1235, 657, 1186, 0, 0, 1094, 1095, 0, 1096, 1097, + 0, 0, 0, 0, 1187, 0, 0, 0, 0, 0, + 1098, 1099, 1100, 0, 0, 1101, 0, 1102, 0, 0, + 0, 0, 0, 1103, 0, 0, 0, 0, 0, 1104, + 0, 0, 0, 0, 0, 1105, 0, 1106, 0, 1132, + 0, 0, 0, 0, 0, 1145, 0, 0, 0, 0, + 0, 1130, 0, 0, 0, 1107, 1108, 1143, 1109, 0, + 1188, 0, 0, 1110, 0, 0, 1111, 0, 1112, 0, + 1113, 0, 0, 1114, 0, 0, 1115, 0, 1116, 0, + 1123, 0, 0, 1124, 1125, 0, 0, 0, 1126, 1121, + 0, 0, 0, 1122 }; const short @@ -5094,350 +5105,351 @@ namespace isc { namespace dhcp { { 71, 72, 73, 74, 75, 76, 16, 78, 79, 80, 81, 78, 79, 79, 73, 729, 73, 72, 73, 74, - 75, 76, 698, 78, 79, 723, 81, 993, 993, 993, - 73, 73, 79, 73, 73, 993, 993, 120, 5, 0, - 7, 638, 9, 7, 603, 73, 73, 73, 92, 93, - 73, 3, 73, 650, 651, 652, 8, 203, 73, 10, - 118, 3, 127, 128, 73, 72, 8, 125, 16, 17, - 73, 6, 73, 72, 73, 74, 75, 76, 3, 78, - 79, 3, 81, 8, 6, 21, 73, 74, 75, 76, - 73, 73, 3, 73, 30, 6, 3, 73, 73, 92, - 93, 73, 73, 73, 7, 73, 150, 151, 73, 85, - 7, 73, 671, 73, 4, 73, 92, 93, 73, 73, - 203, 92, 93, 73, 7, 74, 75, 11, 12, 74, - 75, 15, 13, 14, 18, 19, 20, 113, 203, 3, - 116, 112, 6, 3, 92, 93, 6, 118, 119, 120, - 121, 122, 123, 146, 147, 148, 92, 93, 21, 203, - 7, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 75, 76, 698, 78, 79, 723, 81, 996, 996, 996, + 73, 73, 79, 73, 73, 996, 996, 0, 5, 121, + 7, 603, 9, 16, 17, 73, 73, 73, 93, 94, + 73, 3, 73, 638, 6, 204, 128, 129, 73, 174, + 175, 176, 177, 3, 73, 650, 651, 652, 8, 7, + 73, 119, 73, 72, 73, 74, 75, 76, 126, 78, + 79, 7, 81, 7, 21, 7, 73, 74, 75, 76, + 73, 73, 207, 73, 3, 93, 94, 3, 73, 8, + 7, 73, 8, 73, 7, 73, 151, 152, 73, 671, + 7, 73, 3, 73, 7, 73, 10, 8, 73, 73, + 93, 94, 204, 73, 7, 74, 75, 11, 12, 74, + 75, 15, 204, 7, 18, 19, 20, 3, 75, 7, + 77, 78, 8, 3, 81, 82, 83, 3, 8, 147, + 148, 149, 8, 3, 7, 3, 93, 94, 8, 204, + 8, 7, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 182, 7, 3, 185, 186, 187, 188, 8, 7, 83, - 100, 101, 102, 103, 140, 141, 142, 143, 92, 93, - 203, 74, 7, 76, 77, 99, 7, 80, 81, 82, - 104, 105, 106, 107, 108, 109, 110, 203, 112, 92, - 93, 3, 203, 117, 6, 3, 203, 204, 205, 206, - 8, 7, 126, 73, 74, 129, 92, 93, 1214, 1214, - 1214, 7, 136, 3, 7, 203, 1214, 1214, 8, 73, - 144, 145, 92, 93, 7, 149, 3, 203, 152, 74, - 8, 8, 156, 87, 88, 89, 90, 91, 92, 93, - 173, 174, 175, 176, 114, 115, 3, 92, 93, 127, - 128, 8, 3, 177, 178, 179, 180, 8, 3, 113, - 3, 999, 116, 8, 8, 981, 3, 153, 154, 155, - 4, 8, 1026, 206, 4, 21, 137, 138, 139, 203, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 4, - 203, 170, 171, 74, 75, 76, 77, 78, 79, 130, - 131, 132, 133, 134, 135, 3, 8, 203, 3, 3, - 8, 92, 93, 8, 8, 3, 3, 3, 74, 3, - 8, 8, 8, 203, 8, 3, 181, 3, 183, 184, - 8, 3, 8, 3, 8, 3, 8, 3, 8, 203, - 8, 3, 8, 4, 3, 3, 8, 3, 203, 8, - 8, 4, 8, 22, 23, 24, 25, 4, 4, 419, - 420, 120, 121, 4, 123, 486, 4, 4, 4, 490, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 74, 183, 73, 3, 186, 187, 188, 189, 8, 6, + 84, 3, 3, 3, 6, 3, 204, 8, 8, 93, + 94, 4, 3, 3, 3, 204, 100, 8, 8, 8, + 3, 105, 106, 107, 108, 109, 110, 111, 8, 113, + 3, 204, 8, 21, 118, 8, 75, 204, 205, 206, + 207, 4, 30, 127, 74, 3, 130, 3, 6, 1218, + 1218, 1218, 8, 137, 93, 94, 86, 1218, 1218, 4, + 74, 145, 146, 93, 94, 3, 150, 204, 6, 153, + 74, 75, 4, 157, 88, 89, 90, 91, 92, 93, + 94, 3, 3, 3, 114, 6, 8, 117, 8, 93, + 94, 128, 129, 3, 178, 179, 180, 181, 8, 4, + 114, 4, 3, 117, 1002, 93, 94, 8, 984, 3, + 8, 115, 116, 4, 8, 1029, 3, 21, 93, 94, + 204, 8, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 3, 182, 3, 184, 185, 8, 74, 8, + 13, 14, 3, 141, 142, 143, 144, 8, 4, 75, + 76, 77, 78, 79, 80, 204, 4, 93, 94, 4, + 3, 75, 171, 172, 204, 8, 4, 93, 94, 154, + 155, 156, 3, 3, 138, 139, 140, 113, 8, 4, + 204, 4, 4, 119, 120, 121, 122, 123, 124, 4, + 204, 131, 132, 133, 134, 135, 136, 4, 4, 419, + 420, 101, 102, 103, 104, 486, 204, 4, 4, 490, + 22, 23, 24, 25, 121, 122, 4, 124, 4, 204, 4, 502, 4, 4, 505, 490, 4, 4, 4, 4, 4, 512, 4, 502, 4, 502, 4, 502, 4, 4, - 505, 522, 3, 204, 4, 4, 8, 512, 3, 502, + 505, 522, 4, 4, 8, 4, 3, 512, 8, 502, 502, 532, 502, 502, 4, 532, 537, 522, 4, 8, - 537, 537, 203, 3, 502, 502, 502, 532, 4, 502, - 4, 502, 537, 4, 4, 4, 557, 502, 4, 4, - 537, 490, 4, 502, 4, 203, 4, 203, 4, 502, - 4, 502, 557, 502, 4, 4, 505, 206, 204, 204, - 4, 204, 204, 512, 205, 502, 204, 204, 505, 502, - 502, 204, 502, 522, 205, 512, 205, 502, 204, 204, - 502, 204, 502, 532, 502, 522, 204, 502, 537, 206, - 502, 4, 502, 206, 502, 206, 4, 502, 502, 4, - 206, 206, 502, 206, 4, 4, 505, 4, 557, 4, - 505, 4, 4, 512, 4, 206, 206, 512, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 4, 206, 4, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 4, 4, - 4, 4, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 4, 4, 73, 4, 204, 4, 4, 92, 93, - 4, 4, 693, 4, 84, 696, 86, 4, 4, 4, - 4, 4, 92, 93, 94, 95, 96, 97, 98, 99, - 4, 696, 4, 206, 104, 105, 106, 206, 4, 206, - 204, 4, 4, 113, 4, 4, 116, 117, 729, 730, - 731, 4, 733, 204, 124, 4, 204, 204, 4, 4, - 4, 4, 4, 4, 729, 730, 731, 732, 733, 4, - 4, 4, 692, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 4, 696, 4, 204, - 4, 4, 4, 177, 178, 206, 4, 4, 206, 206, - 206, 4, 204, 4, 204, 204, 4, 177, 178, 4, - 206, 206, 4, 4, 4, 4, 4, 204, 4, 203, - 729, 730, 731, 732, 733, 7, 203, 7, 7, 7, - 7, 5, 203, 203, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 203, 5, 203, - 5, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 5, 73, 74, 5, 7, 203, 5, 5, 5, - 203, 5, 7, 5, 5, 203, 203, 7, 7, 7, - 7, 92, 93, 7, 95, 96, 7, 98, 99, 5, - 5, 5, 5, 104, 105, 106, 203, 203, 203, 7, - 5, 7, 113, 172, 203, 116, 7, 203, 203, 7, - 7, 203, 7, 124, 203, 203, 7, 111, 7, 7, - 7, 203, 203, 203, 203, 203, 203, 203, 203, 7, - 203, 7, 203, 203, 4, 203, 203, 4, 203, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, - 204, 6, 3, 6, 6, 3, 6, 3, 3, 6, - 671, 3, 6, 6, 3, 6, 177, 178, 4, 4, + 537, 537, 3, 207, 502, 502, 502, 532, 204, 502, + 4, 502, 537, 4, 4, 4, 557, 502, 204, 4, + 537, 490, 4, 502, 4, 4, 4, 4, 4, 502, + 204, 502, 557, 502, 4, 4, 505, 4, 4, 205, + 205, 4, 205, 512, 206, 502, 205, 205, 505, 502, + 502, 205, 502, 522, 205, 512, 205, 502, 206, 206, + 502, 205, 502, 532, 502, 522, 205, 502, 537, 205, + 502, 205, 502, 7, 502, 207, 4, 502, 502, 207, + 207, 4, 502, 207, 207, 207, 505, 4, 557, 4, + 505, 4, 4, 512, 4, 4, 4, 512, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 207, 207, 207, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 4, 4, + 4, 4, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 4, 4, 74, 4, 4, 4, 205, 93, 94, + 4, 4, 693, 4, 85, 696, 87, 4, 4, 4, + 207, 4, 93, 94, 95, 96, 97, 98, 99, 100, + 4, 696, 4, 4, 105, 106, 107, 4, 207, 4, + 4, 4, 205, 114, 4, 4, 117, 118, 729, 730, + 731, 207, 733, 4, 125, 4, 4, 205, 205, 4, + 205, 4, 4, 4, 729, 730, 731, 732, 733, 4, + 4, 4, 692, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 4, 696, 4, 4, + 205, 4, 205, 178, 179, 4, 207, 4, 4, 207, + 4, 4, 207, 207, 4, 4, 205, 178, 179, 205, + 4, 4, 207, 207, 4, 4, 4, 4, 4, 204, + 729, 730, 731, 732, 733, 205, 4, 204, 7, 204, + 7, 7, 7, 204, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 5, 204, 5, + 204, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 5, 74, 75, 5, 5, 204, 5, 7, 5, + 5, 204, 5, 7, 5, 5, 204, 204, 7, 7, + 7, 93, 94, 7, 96, 97, 7, 99, 100, 7, + 5, 5, 5, 105, 106, 107, 5, 204, 204, 204, + 7, 5, 114, 204, 173, 117, 7, 204, 204, 204, + 7, 7, 204, 125, 204, 204, 204, 7, 7, 7, + 204, 112, 204, 204, 204, 204, 204, 204, 204, 204, + 7, 204, 7, 7, 204, 7, 204, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 203, 3, 6, 6, 3, 206, 6, 8, - 4, 4, 203, 4, 4, 204, 206, 4, 204, 204, - 204, 4, 4, 984, 206, 4, 987, 204, 204, 990, - 987, 204, 993, 990, 990, 984, 993, 984, 4, 984, - 204, 206, 987, 1004, 993, 990, 1007, 1004, 993, 1010, - 4, 984, 984, 990, 984, 984, 204, 204, 204, 1004, - 993, 993, 1007, 993, 993, 1026, 984, 984, 984, 4, - 1031, 984, 204, 984, 1035, 993, 993, 993, 204, 984, - 993, 1026, 993, 1044, 204, 984, 1031, 1044, 993, 1050, - 1035, 984, 1053, 984, 993, 984, 1041, 4, 987, 1044, - 993, 990, 993, 206, 993, 1050, 204, 984, 1053, 4, - 4, 984, 984, 204, 984, 1004, 993, 204, 1007, 984, - 993, 993, 984, 993, 984, 204, 984, 1004, 993, 984, - 1007, 993, 984, 993, 984, 993, 984, 1026, 993, 984, - 984, 993, 1031, 993, 984, 993, 1035, 206, 993, 993, - 204, 4, 1041, 993, 993, 1044, 6, 3, 993, 4, - 8, 1050, 4, 3, 1053, 8, 4, 8, 4, 8, - 4, 4, 7, 1050, 203, 5, 1053, 4, 4, 4, - 4, 4, 722, 203, 486, 203, 203, 684, 693, 696, - 490, 983, 978, 1002, 996, 999, 1012, 776, 1031, 1010, - 1019, 986, 540, 984, 502, 1214, 995, 203, 203, 77, - 989, 1050, 204, 532, 1053, 1050, 204, 203, 1053, 203, - 987, 206, 203, 203, 992, 203, 203, 203, 203, 203, - 203, 990, 537, 204, 206, 203, 203, 1050, 1052, 1009, - 1005, 1007, 512, 746, 1220, 1055, 1053, 1035, 1026, 733, - 1041, 557, 695, 1214, 1235, 1256, 1276, 1214, 561, 1220, - -1, 505, -1, 1220, -1, 1214, -1, -1, 1045, 1214, - -1, -1, -1, -1, 1235, 1220, 1176, -1, 1235, -1, - -1, 1214, 1214, -1, 1214, 1214, 522, -1, -1, -1, - 1235, -1, -1, -1, -1, -1, 1214, 1214, 1214, -1, - -1, 1214, -1, 1214, -1, -1, -1, -1, -1, 1214, - -1, -1, -1, -1, -1, 1214, -1, -1, -1, -1, - -1, 1214, -1, 1214, -1, 1214, -1, -1, -1, -1, - -1, 1220, -1, -1, -1, -1, -1, 1214, -1, -1, - -1, 1214, 1214, 1220, 1214, -1, 1235, -1, -1, 1214, - -1, -1, 1214, -1, 1214, -1, 1214, -1, -1, 1214, - -1, -1, 1214, -1, 1214, -1, 1214, -1, -1, 1214, - 1214, -1, -1, -1, 1214, 1214, -1, -1, -1, 1214 + 4, 3, 204, 6, 3, 6, 6, 3, 6, 3, + 3, 6, 693, 3, 6, 6, 178, 179, 6, 3, + 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 3, 3, 6, 205, 3, + 6, 4, 204, 8, 4, 4, 4, 207, 4, 207, + 205, 4, 4, 205, 205, 4, 987, 205, 4, 990, + 207, 207, 993, 990, 4, 996, 993, 993, 987, 996, + 987, 205, 987, 205, 207, 990, 1007, 996, 993, 1010, + 1007, 996, 1013, 205, 987, 987, 993, 987, 987, 205, + 205, 205, 1007, 996, 996, 1010, 996, 996, 1029, 987, + 987, 987, 205, 1034, 987, 205, 987, 1038, 996, 996, + 996, 4, 987, 996, 1029, 996, 1047, 4, 987, 1034, + 1047, 996, 1053, 1038, 987, 1056, 987, 996, 987, 1044, + 205, 990, 1047, 996, 993, 996, 205, 996, 1053, 205, + 987, 1056, 4, 205, 987, 987, 207, 987, 1007, 996, + 205, 1010, 987, 996, 996, 987, 996, 987, 207, 987, + 1007, 996, 987, 1010, 996, 987, 996, 987, 996, 987, + 1029, 996, 987, 987, 996, 1034, 996, 987, 996, 1038, + 4, 996, 996, 4, 205, 1044, 996, 996, 1047, 6, + 4, 996, 8, 8, 1053, 4, 8, 1056, 3, 5, + 8, 4, 4, 4, 4, 4, 1053, 671, 205, 1056, + 7, 4, 4, 4, 4, 204, 486, 204, 722, 204, + 696, 684, 490, 981, 986, 1005, 999, 1002, 1034, 540, + 776, 1022, 1015, 989, 1013, 987, 1218, 998, 77, 532, + 502, 990, 204, 204, 1053, 992, 537, 1056, 1053, 204, + 204, 1056, 1055, 204, 204, 995, 204, 204, 993, 204, + 204, 204, 1058, 1053, 205, 207, 204, 204, 207, 205, + 205, 204, 204, 1012, 1010, 1056, 746, 1008, 1224, 1029, + 1044, 733, 557, 1038, 1239, 561, 1260, 1218, 1048, 505, + 695, 1218, 1280, 1224, -1, -1, -1, 1224, -1, 1218, + 512, -1, -1, 1218, -1, -1, -1, -1, 1239, 1224, + 1180, 522, 1239, -1, -1, 1218, 1218, -1, 1218, 1218, + -1, -1, -1, -1, 1239, -1, -1, -1, -1, -1, + 1218, 1218, 1218, -1, -1, 1218, -1, 1218, -1, -1, + -1, -1, -1, 1218, -1, -1, -1, -1, -1, 1218, + -1, -1, -1, -1, -1, 1218, -1, 1218, -1, 1218, + -1, -1, -1, -1, -1, 1224, -1, -1, -1, -1, + -1, 1218, -1, -1, -1, 1218, 1218, 1224, 1218, -1, + 1239, -1, -1, 1218, -1, -1, 1218, -1, 1218, -1, + 1218, -1, -1, 1218, -1, -1, 1218, -1, 1218, -1, + 1218, -1, -1, 1218, 1218, -1, -1, -1, 1218, 1218, + -1, -1, -1, 1218 }; const short Dhcp6Parser::yystos_[] = { - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 0, 5, 7, 9, 203, 204, 205, 206, 223, 224, - 225, 230, 7, 239, 7, 243, 7, 287, 7, 394, - 7, 474, 7, 490, 7, 507, 7, 426, 7, 432, - 7, 456, 7, 370, 7, 576, 7, 607, 231, 226, - 240, 244, 288, 395, 475, 491, 508, 427, 433, 457, - 371, 577, 608, 223, 232, 233, 203, 228, 229, 10, - 241, 11, 12, 15, 18, 19, 20, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 83, 92, 93, 99, - 104, 105, 106, 107, 108, 109, 110, 112, 117, 126, - 129, 136, 144, 145, 149, 152, 156, 177, 178, 179, - 180, 203, 238, 245, 246, 247, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 269, 271, 273, 274, 275, 277, - 279, 280, 281, 282, 284, 285, 294, 296, 298, 337, - 343, 349, 355, 357, 364, 378, 388, 408, 409, 410, - 411, 416, 424, 450, 480, 482, 501, 531, 543, 555, - 556, 564, 574, 605, 614, 16, 17, 238, 289, 290, - 291, 293, 480, 482, 84, 86, 94, 95, 96, 97, - 98, 113, 116, 124, 238, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 263, 264, - 265, 266, 269, 271, 273, 274, 275, 277, 279, 396, - 397, 398, 400, 402, 404, 406, 408, 409, 410, 411, - 414, 415, 450, 468, 480, 482, 484, 501, 526, 85, - 238, 404, 406, 450, 476, 477, 478, 480, 482, 87, - 88, 89, 90, 91, 238, 404, 406, 450, 480, 482, - 492, 493, 494, 496, 497, 499, 500, 112, 118, 119, - 120, 121, 122, 123, 238, 450, 480, 482, 509, 510, - 511, 512, 514, 516, 518, 520, 522, 524, 424, 21, - 74, 76, 77, 80, 81, 82, 238, 316, 434, 435, - 436, 437, 438, 439, 440, 442, 444, 446, 447, 449, - 480, 482, 75, 78, 79, 238, 316, 438, 444, 458, - 459, 460, 461, 462, 464, 465, 466, 467, 480, 482, - 127, 128, 238, 372, 373, 374, 376, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 177, 178, 238, 480, 482, 578, 579, 580, 581, 583, - 585, 586, 588, 589, 590, 593, 595, 596, 597, 599, - 601, 603, 13, 14, 609, 610, 611, 613, 6, 3, - 4, 8, 3, 242, 8, 248, 606, 286, 295, 297, - 299, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 283, 4, 4, 4, 4, - 4, 267, 270, 272, 4, 4, 4, 389, 425, 451, - 417, 481, 483, 412, 4, 4, 4, 344, 356, 350, - 338, 532, 502, 365, 379, 544, 4, 358, 557, 565, - 575, 276, 278, 4, 615, 4, 3, 8, 292, 4, - 3, 8, 469, 485, 399, 401, 403, 4, 4, 407, - 405, 527, 3, 8, 479, 3, 8, 495, 4, 498, - 4, 4, 3, 8, 525, 513, 515, 517, 519, 521, - 523, 8, 3, 8, 441, 317, 4, 445, 443, 448, - 4, 8, 3, 463, 4, 4, 8, 3, 375, 377, - 3, 8, 4, 582, 584, 4, 587, 4, 4, 591, - 594, 4, 4, 598, 600, 602, 604, 3, 8, 612, - 4, 3, 8, 223, 223, 203, 4, 4, 4, 4, - 4, 4, 4, 204, 204, 204, 204, 204, 204, 204, - 204, 206, 205, 205, 205, 204, 204, 4, 204, 204, - 206, 206, 206, 4, 4, 4, 206, 206, 206, 4, - 4, 4, 4, 4, 4, 4, 206, 206, 206, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 204, 4, - 4, 4, 4, 4, 4, 206, 4, 246, 4, 206, - 290, 4, 4, 4, 4, 4, 204, 206, 4, 4, - 4, 397, 4, 477, 4, 204, 4, 204, 204, 493, - 4, 4, 4, 4, 4, 4, 4, 511, 4, 4, - 204, 4, 4, 4, 206, 436, 4, 206, 206, 460, - 4, 4, 373, 206, 4, 4, 204, 4, 204, 204, - 4, 4, 206, 206, 4, 4, 4, 4, 579, 4, - 204, 610, 4, 7, 203, 7, 7, 7, 7, 5, - 203, 173, 174, 175, 176, 206, 268, 203, 203, 5, - 5, 5, 5, 225, 227, 203, 100, 101, 102, 103, - 413, 5, 5, 5, 7, 5, 5, 5, 7, 7, - 7, 7, 7, 7, 203, 203, 5, 5, 234, 5, - 5, 203, 203, 203, 234, 203, 7, 203, 203, 203, - 234, 234, 234, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 227, 203, 203, 203, 170, 171, - 592, 172, 268, 203, 203, 203, 5, 223, 245, 609, - 289, 21, 26, 27, 28, 29, 30, 31, 32, 33, + 0, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 0, 5, 7, 9, 204, 205, 206, 207, 224, 225, + 226, 231, 7, 240, 7, 244, 7, 288, 7, 396, + 7, 476, 7, 492, 7, 509, 7, 428, 7, 434, + 7, 458, 7, 372, 7, 578, 7, 609, 232, 227, + 241, 245, 289, 397, 477, 493, 510, 429, 435, 459, + 373, 579, 610, 224, 233, 234, 204, 229, 230, 10, + 242, 11, 12, 15, 18, 19, 20, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 84, 93, 94, 100, + 105, 106, 107, 108, 109, 110, 111, 113, 118, 127, + 130, 137, 145, 146, 150, 153, 157, 178, 179, 180, + 181, 204, 239, 246, 247, 248, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 270, 272, 274, 275, 276, 278, + 280, 281, 282, 283, 285, 286, 295, 297, 299, 339, + 345, 351, 357, 359, 366, 380, 390, 410, 411, 412, + 413, 418, 426, 452, 482, 484, 503, 533, 545, 557, + 558, 566, 576, 607, 616, 16, 17, 239, 290, 291, + 292, 294, 482, 484, 85, 87, 95, 96, 97, 98, + 99, 114, 117, 125, 239, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 264, 265, + 266, 267, 270, 272, 274, 275, 276, 278, 280, 398, + 399, 400, 402, 404, 406, 408, 410, 411, 412, 413, + 416, 417, 452, 470, 482, 484, 486, 503, 528, 86, + 239, 406, 408, 452, 478, 479, 480, 482, 484, 88, + 89, 90, 91, 92, 239, 406, 408, 452, 482, 484, + 494, 495, 496, 498, 499, 501, 502, 113, 119, 120, + 121, 122, 123, 124, 239, 452, 482, 484, 511, 512, + 513, 514, 516, 518, 520, 522, 524, 526, 426, 21, + 75, 77, 78, 81, 82, 83, 239, 317, 436, 437, + 438, 439, 440, 441, 442, 444, 446, 448, 449, 451, + 482, 484, 76, 79, 80, 239, 317, 440, 446, 460, + 461, 462, 463, 464, 466, 467, 468, 469, 482, 484, + 128, 129, 239, 374, 375, 376, 378, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 178, 179, 239, 482, 484, 580, 581, 582, 583, 585, + 587, 588, 590, 591, 592, 595, 597, 598, 599, 601, + 603, 605, 13, 14, 611, 612, 613, 615, 6, 3, + 4, 8, 3, 243, 8, 249, 608, 287, 296, 298, + 300, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 284, 4, 4, 4, 4, + 4, 268, 271, 273, 4, 4, 4, 391, 427, 453, + 419, 483, 485, 414, 4, 4, 4, 346, 358, 352, + 340, 534, 504, 367, 381, 546, 4, 360, 559, 567, + 577, 277, 279, 4, 617, 4, 3, 8, 293, 4, + 3, 8, 471, 487, 401, 403, 405, 4, 4, 409, + 407, 529, 3, 8, 481, 3, 8, 497, 4, 500, + 4, 4, 3, 8, 527, 515, 517, 519, 521, 523, + 525, 8, 3, 8, 443, 318, 4, 447, 445, 450, + 4, 8, 3, 465, 4, 4, 8, 3, 377, 379, + 3, 8, 4, 584, 586, 4, 589, 4, 4, 593, + 596, 4, 4, 600, 602, 604, 606, 3, 8, 614, + 4, 3, 8, 224, 224, 204, 4, 4, 4, 4, + 4, 4, 4, 205, 205, 205, 205, 205, 205, 205, + 205, 207, 206, 206, 206, 205, 205, 4, 205, 205, + 207, 207, 207, 4, 4, 4, 207, 207, 207, 4, + 4, 4, 4, 4, 4, 4, 207, 207, 207, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 205, 4, + 4, 4, 4, 4, 4, 207, 4, 247, 4, 207, + 291, 4, 4, 4, 4, 4, 205, 207, 4, 4, + 4, 399, 4, 479, 4, 205, 4, 205, 205, 495, + 4, 4, 4, 4, 4, 4, 4, 513, 4, 4, + 205, 4, 4, 4, 207, 438, 4, 207, 207, 462, + 4, 4, 375, 207, 4, 4, 205, 4, 205, 205, + 4, 4, 207, 207, 4, 4, 4, 4, 581, 4, + 205, 612, 4, 7, 204, 7, 7, 7, 7, 5, + 204, 174, 175, 176, 177, 207, 269, 204, 204, 5, + 5, 5, 5, 226, 228, 204, 101, 102, 103, 104, + 415, 5, 5, 5, 7, 5, 5, 5, 7, 7, + 7, 7, 7, 7, 204, 204, 5, 5, 235, 5, + 5, 204, 204, 204, 235, 204, 7, 204, 204, 204, + 235, 235, 235, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 228, 204, 204, 204, 171, 172, + 594, 173, 269, 204, 204, 204, 5, 224, 246, 611, + 290, 21, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 238, 304, 305, 306, 309, 311, 313, 315, 316, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 330, 331, 333, 335, 304, 7, 300, 301, 302, - 7, 390, 391, 392, 7, 428, 429, 430, 7, 452, - 453, 454, 7, 418, 419, 420, 120, 203, 345, 346, - 347, 348, 232, 121, 123, 347, 351, 352, 353, 354, - 111, 339, 340, 341, 7, 533, 534, 7, 503, 504, - 505, 7, 366, 367, 368, 130, 131, 132, 133, 134, - 135, 380, 381, 382, 383, 384, 385, 386, 387, 21, - 140, 141, 142, 143, 238, 318, 480, 482, 545, 546, - 547, 550, 551, 553, 554, 146, 147, 148, 238, 359, - 360, 361, 362, 363, 480, 482, 150, 151, 238, 480, - 482, 558, 559, 560, 562, 153, 154, 155, 203, 480, - 482, 566, 567, 568, 569, 571, 572, 578, 7, 616, - 617, 235, 7, 470, 471, 472, 7, 486, 487, 488, - 125, 512, 528, 529, 300, 8, 8, 8, 307, 310, - 312, 314, 4, 4, 4, 4, 4, 329, 4, 4, - 4, 332, 334, 336, 4, 4, 4, 4, 3, 8, - 8, 303, 6, 3, 393, 6, 3, 431, 6, 3, - 455, 6, 3, 421, 6, 3, 3, 6, 6, 3, - 6, 342, 3, 8, 535, 3, 6, 506, 6, 3, - 369, 6, 3, 4, 4, 4, 4, 4, 4, 3, - 8, 548, 552, 4, 4, 4, 3, 8, 4, 4, - 4, 3, 8, 561, 563, 3, 8, 4, 570, 4, - 573, 3, 8, 8, 618, 3, 6, 203, 236, 237, - 473, 6, 3, 489, 6, 3, 530, 8, 6, 4, - 4, 4, 4, 204, 206, 204, 206, 204, 4, 204, - 204, 206, 4, 4, 4, 204, 204, 206, 204, 305, - 304, 302, 396, 392, 434, 430, 458, 454, 238, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 263, 264, 265, 266, 269, 271, 273, 274, - 275, 277, 279, 316, 388, 400, 402, 404, 406, 408, - 409, 410, 411, 415, 422, 423, 450, 480, 482, 526, - 420, 346, 352, 4, 340, 114, 115, 238, 316, 450, - 480, 482, 536, 537, 538, 539, 540, 542, 534, 509, - 505, 372, 368, 204, 204, 204, 204, 204, 204, 381, - 4, 4, 204, 204, 204, 546, 206, 204, 204, 360, - 4, 4, 559, 206, 4, 204, 4, 567, 181, 183, - 184, 238, 316, 480, 482, 619, 620, 621, 622, 624, - 617, 6, 3, 476, 472, 492, 488, 4, 22, 23, - 24, 25, 308, 203, 203, 203, 203, 203, 203, 203, - 8, 8, 8, 8, 3, 8, 203, 541, 4, 8, - 3, 8, 8, 137, 138, 139, 549, 203, 203, 203, - 203, 223, 625, 4, 623, 3, 8, 203, 8, 8, - 203, 423, 4, 206, 538, 4, 204, 4, 620, 203, - 5, 203, 7, 626, 627, 628, 3, 6, 182, 185, - 186, 187, 188, 629, 630, 631, 633, 634, 635, 636, - 627, 632, 4, 4, 4, 637, 3, 8, 4, 206, - 204, 204, 4, 630, 203, 203 + 44, 45, 239, 305, 306, 307, 310, 312, 314, 316, + 317, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 332, 333, 335, 337, 305, 7, 301, + 302, 303, 7, 392, 393, 394, 7, 430, 431, 432, + 7, 454, 455, 456, 7, 420, 421, 422, 121, 204, + 347, 348, 349, 350, 233, 122, 124, 349, 353, 354, + 355, 356, 112, 341, 342, 343, 7, 535, 536, 7, + 505, 506, 507, 7, 368, 369, 370, 131, 132, 133, + 134, 135, 136, 382, 383, 384, 385, 386, 387, 388, + 389, 21, 141, 142, 143, 144, 239, 319, 482, 484, + 547, 548, 549, 552, 553, 555, 556, 147, 148, 149, + 239, 361, 362, 363, 364, 365, 482, 484, 151, 152, + 239, 482, 484, 560, 561, 562, 564, 154, 155, 156, + 204, 482, 484, 568, 569, 570, 571, 573, 574, 580, + 7, 618, 619, 236, 7, 472, 473, 474, 7, 488, + 489, 490, 126, 514, 530, 531, 301, 8, 8, 8, + 308, 311, 313, 315, 4, 4, 4, 4, 4, 331, + 4, 4, 4, 4, 334, 336, 338, 4, 4, 4, + 4, 3, 8, 8, 304, 6, 3, 395, 6, 3, + 433, 6, 3, 457, 6, 3, 423, 6, 3, 3, + 6, 6, 3, 6, 344, 3, 8, 537, 3, 6, + 508, 6, 3, 371, 6, 3, 4, 4, 4, 4, + 4, 4, 3, 8, 550, 554, 4, 4, 4, 3, + 8, 4, 4, 4, 3, 8, 563, 565, 3, 8, + 4, 572, 4, 575, 3, 8, 8, 620, 3, 6, + 204, 237, 238, 475, 6, 3, 491, 6, 3, 532, + 8, 6, 4, 4, 4, 4, 205, 207, 205, 207, + 205, 4, 205, 205, 207, 207, 4, 4, 4, 205, + 205, 207, 205, 306, 305, 303, 398, 394, 436, 432, + 460, 456, 239, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 264, 265, 266, 267, + 270, 272, 274, 275, 276, 278, 280, 317, 390, 402, + 404, 406, 408, 410, 411, 412, 413, 417, 424, 425, + 452, 482, 484, 528, 422, 348, 354, 4, 342, 115, + 116, 239, 317, 452, 482, 484, 538, 539, 540, 541, + 542, 544, 536, 511, 507, 374, 370, 205, 205, 205, + 205, 205, 205, 383, 4, 4, 205, 205, 205, 548, + 207, 205, 205, 362, 4, 4, 561, 207, 4, 205, + 4, 569, 182, 184, 185, 239, 317, 482, 484, 621, + 622, 623, 624, 626, 619, 6, 3, 478, 474, 494, + 490, 4, 22, 23, 24, 25, 309, 204, 204, 204, + 204, 204, 204, 204, 8, 8, 8, 8, 3, 8, + 204, 543, 4, 8, 3, 8, 8, 138, 139, 140, + 551, 204, 204, 204, 204, 224, 627, 4, 625, 3, + 8, 204, 8, 8, 204, 425, 4, 207, 540, 4, + 205, 4, 622, 204, 5, 204, 7, 628, 629, 630, + 3, 6, 183, 186, 187, 188, 189, 631, 632, 633, + 635, 636, 637, 638, 629, 634, 4, 4, 4, 639, + 3, 8, 4, 207, 205, 205, 4, 632, 204, 204 }; const short Dhcp6Parser::yyr1_[] = { - 0, 207, 209, 208, 210, 208, 211, 208, 212, 208, - 213, 208, 214, 208, 215, 208, 216, 208, 217, 208, - 218, 208, 219, 208, 220, 208, 221, 208, 222, 208, - 223, 223, 223, 223, 223, 223, 223, 224, 226, 225, - 227, 228, 228, 229, 229, 231, 230, 232, 232, 233, - 233, 235, 234, 236, 236, 237, 237, 238, 240, 239, - 242, 241, 244, 243, 245, 245, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 248, 247, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 267, 266, 268, 268, - 268, 268, 268, 270, 269, 272, 271, 273, 274, 276, - 275, 278, 277, 279, 280, 281, 283, 282, 284, 286, - 285, 288, 287, 289, 289, 290, 290, 290, 290, 290, - 292, 291, 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, 305, 307, - 306, 308, 308, 308, 308, 310, 309, 312, 311, 314, - 313, 315, 317, 316, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 329, 328, 330, 332, 331, 334, - 333, 336, 335, 338, 337, 339, 339, 340, 342, 341, - 344, 343, 345, 345, 346, 346, 347, 348, 350, 349, - 351, 351, 352, 352, 352, 353, 354, 356, 355, 358, - 357, 359, 359, 360, 360, 360, 360, 360, 360, 361, - 362, 363, 365, 364, 366, 366, 367, 367, 369, 368, - 371, 370, 372, 372, 372, 373, 373, 375, 374, 377, - 376, 379, 378, 380, 380, 381, 381, 381, 381, 381, - 381, 382, 383, 384, 385, 386, 387, 389, 388, 390, - 390, 391, 391, 393, 392, 395, 394, 396, 396, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 399, 398, 401, 400, 403, 402, 405, 404, - 407, 406, 408, 409, 410, 412, 411, 413, 413, 413, - 413, 414, 415, 417, 416, 418, 418, 419, 419, 421, - 420, 422, 422, 423, 423, 423, 423, 423, 423, 423, - 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, - 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, - 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, - 423, 423, 423, 425, 424, 427, 426, 428, 428, 429, - 429, 431, 430, 433, 432, 434, 434, 435, 435, 436, - 436, 436, 436, 436, 436, 436, 436, 436, 436, 437, - 438, 439, 441, 440, 443, 442, 445, 444, 446, 448, - 447, 449, 451, 450, 452, 452, 453, 453, 455, 454, - 457, 456, 458, 458, 459, 459, 460, 460, 460, 460, - 460, 460, 460, 460, 460, 461, 463, 462, 464, 465, - 466, 467, 469, 468, 470, 470, 471, 471, 473, 472, - 475, 474, 476, 476, 477, 477, 477, 477, 477, 477, - 477, 479, 478, 481, 480, 483, 482, 485, 484, 486, - 486, 487, 487, 489, 488, 491, 490, 492, 492, 493, - 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, - 495, 494, 496, 498, 497, 499, 500, 502, 501, 503, - 503, 504, 504, 506, 505, 508, 507, 509, 509, 510, - 510, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 513, 512, 515, 514, 517, 516, 519, 518, - 521, 520, 523, 522, 525, 524, 527, 526, 528, 528, - 530, 529, 532, 531, 533, 533, 535, 534, 536, 536, - 537, 537, 538, 538, 538, 538, 538, 538, 538, 539, - 541, 540, 542, 544, 543, 545, 545, 546, 546, 546, - 546, 546, 546, 546, 546, 546, 548, 547, 549, 549, - 549, 550, 552, 551, 553, 554, 555, 557, 556, 558, - 558, 559, 559, 559, 559, 559, 561, 560, 563, 562, - 565, 564, 566, 566, 567, 567, 567, 567, 567, 567, - 568, 570, 569, 571, 573, 572, 575, 574, 577, 576, - 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, - 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, - 580, 582, 581, 584, 583, 585, 587, 586, 588, 589, - 591, 590, 592, 592, 594, 593, 595, 596, 598, 597, + 0, 208, 210, 209, 211, 209, 212, 209, 213, 209, + 214, 209, 215, 209, 216, 209, 217, 209, 218, 209, + 219, 209, 220, 209, 221, 209, 222, 209, 223, 209, + 224, 224, 224, 224, 224, 224, 224, 225, 227, 226, + 228, 229, 229, 230, 230, 232, 231, 233, 233, 234, + 234, 236, 235, 237, 237, 238, 238, 239, 241, 240, + 243, 242, 245, 244, 246, 246, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, + 247, 247, 247, 247, 247, 247, 247, 249, 248, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 268, 267, 269, 269, + 269, 269, 269, 271, 270, 273, 272, 274, 275, 277, + 276, 279, 278, 280, 281, 282, 284, 283, 285, 287, + 286, 289, 288, 290, 290, 291, 291, 291, 291, 291, + 293, 292, 294, 296, 295, 298, 297, 300, 299, 301, + 301, 302, 302, 304, 303, 305, 305, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 308, 307, 309, 309, 309, 309, 311, 310, 313, 312, + 315, 314, 316, 318, 317, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 331, 330, 332, 334, + 333, 336, 335, 338, 337, 340, 339, 341, 341, 342, + 344, 343, 346, 345, 347, 347, 348, 348, 349, 350, + 352, 351, 353, 353, 354, 354, 354, 355, 356, 358, + 357, 360, 359, 361, 361, 362, 362, 362, 362, 362, + 362, 363, 364, 365, 367, 366, 368, 368, 369, 369, + 371, 370, 373, 372, 374, 374, 374, 375, 375, 377, + 376, 379, 378, 381, 380, 382, 382, 383, 383, 383, + 383, 383, 383, 384, 385, 386, 387, 388, 389, 391, + 390, 392, 392, 393, 393, 395, 394, 397, 396, 398, + 398, 399, 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 401, 400, 403, 402, 405, 404, + 407, 406, 409, 408, 410, 411, 412, 414, 413, 415, + 415, 415, 415, 416, 417, 419, 418, 420, 420, 421, + 421, 423, 422, 424, 424, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 427, 426, 429, 428, 430, + 430, 431, 431, 433, 432, 435, 434, 436, 436, 437, + 437, 438, 438, 438, 438, 438, 438, 438, 438, 438, + 438, 439, 440, 441, 443, 442, 445, 444, 447, 446, + 448, 450, 449, 451, 453, 452, 454, 454, 455, 455, + 457, 456, 459, 458, 460, 460, 461, 461, 462, 462, + 462, 462, 462, 462, 462, 462, 462, 463, 465, 464, + 466, 467, 468, 469, 471, 470, 472, 472, 473, 473, + 475, 474, 477, 476, 478, 478, 479, 479, 479, 479, + 479, 479, 479, 481, 480, 483, 482, 485, 484, 487, + 486, 488, 488, 489, 489, 491, 490, 493, 492, 494, + 494, 495, 495, 495, 495, 495, 495, 495, 495, 495, + 495, 495, 497, 496, 498, 500, 499, 501, 502, 504, + 503, 505, 505, 506, 506, 508, 507, 510, 509, 511, + 511, 512, 512, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 515, 514, 517, 516, 519, 518, + 521, 520, 523, 522, 525, 524, 527, 526, 529, 528, + 530, 530, 532, 531, 534, 533, 535, 535, 537, 536, + 538, 538, 539, 539, 540, 540, 540, 540, 540, 540, + 540, 541, 543, 542, 544, 546, 545, 547, 547, 548, + 548, 548, 548, 548, 548, 548, 548, 548, 550, 549, + 551, 551, 551, 552, 554, 553, 555, 556, 557, 559, + 558, 560, 560, 561, 561, 561, 561, 561, 563, 562, + 565, 564, 567, 566, 568, 568, 569, 569, 569, 569, + 569, 569, 570, 572, 571, 573, 575, 574, 577, 576, + 579, 578, 580, 580, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 582, 584, 583, 586, 585, 587, 589, 588, + 590, 591, 593, 592, 594, 594, 596, 595, 597, 598, 600, 599, 602, 601, 604, 603, 606, 605, 608, 607, - 609, 609, 610, 610, 612, 611, 613, 615, 614, 616, - 616, 618, 617, 619, 619, 620, 620, 620, 620, 620, - 620, 620, 621, 623, 622, 625, 624, 626, 626, 628, - 627, 629, 629, 630, 630, 630, 630, 630, 632, 631, - 633, 634, 635, 637, 636 + 610, 609, 611, 611, 612, 612, 614, 613, 615, 617, + 616, 618, 618, 620, 619, 621, 621, 622, 622, 622, + 622, 622, 622, 622, 623, 625, 624, 627, 626, 628, + 628, 630, 629, 631, 631, 632, 632, 632, 632, 632, + 634, 633, 635, 636, 637, 639, 638 }; const signed char @@ -5464,65 +5476,65 @@ namespace isc { namespace dhcp { 0, 4, 3, 0, 6, 0, 6, 0, 6, 0, 1, 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 1, 1, 1, 1, 0, 4, 0, 4, 0, - 4, 3, 0, 4, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 0, 4, 3, 0, 4, 0, - 4, 0, 4, 0, 6, 1, 3, 1, 0, 4, - 0, 6, 1, 3, 1, 1, 1, 1, 0, 6, - 1, 3, 1, 1, 1, 1, 1, 0, 6, 0, - 6, 1, 3, 1, 1, 1, 1, 1, 1, 3, - 3, 3, 0, 6, 0, 1, 1, 3, 0, 4, - 0, 4, 1, 3, 1, 1, 1, 0, 4, 0, - 4, 0, 6, 1, 3, 1, 1, 1, 1, 1, - 1, 3, 3, 3, 3, 3, 3, 0, 6, 0, - 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 1, 1, 1, 1, 0, 4, 0, 4, + 0, 4, 3, 0, 4, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 0, 4, 3, 0, + 4, 0, 4, 0, 4, 0, 6, 1, 3, 1, + 0, 4, 0, 6, 1, 3, 1, 1, 1, 1, + 0, 6, 1, 3, 1, 1, 1, 1, 1, 0, + 6, 0, 6, 1, 3, 1, 1, 1, 1, 1, + 1, 3, 3, 3, 0, 6, 0, 1, 1, 3, + 0, 4, 0, 4, 1, 3, 1, 1, 1, 0, + 4, 0, 4, 0, 6, 1, 3, 1, 1, 1, + 1, 1, 1, 3, 3, 3, 3, 3, 3, 0, + 6, 0, 1, 1, 3, 0, 4, 0, 4, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 3, 3, 3, 0, 4, 1, 1, 1, - 1, 3, 3, 0, 6, 0, 1, 1, 3, 0, - 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 3, 3, 3, 0, 4, 1, + 1, 1, 1, 3, 3, 0, 6, 0, 1, 1, + 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 6, 0, 4, 0, 1, 1, - 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 1, 0, 4, 0, 4, 0, 4, 1, 0, - 4, 3, 0, 6, 0, 1, 1, 3, 0, 4, - 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, - 3, 3, 0, 6, 0, 1, 1, 3, 0, 4, - 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 0, 4, 0, 4, 0, 6, 0, - 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 3, 0, 4, 3, 3, 0, 6, 0, + 1, 1, 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, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 6, 1, 1, - 0, 4, 0, 6, 1, 3, 0, 4, 0, 1, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 3, 0, 6, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, - 1, 3, 0, 4, 3, 3, 3, 0, 6, 1, - 3, 1, 1, 1, 1, 1, 0, 4, 0, 4, - 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, - 3, 0, 4, 3, 0, 4, 0, 6, 0, 4, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 0, 4, 0, 4, 0, 4, + 1, 0, 4, 3, 0, 6, 0, 1, 1, 3, + 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 1, 1, 3, 3, 0, 6, 0, 1, 1, 3, + 0, 4, 0, 4, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, + 6, 0, 1, 1, 3, 0, 4, 0, 4, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 3, 0, 4, 3, 3, 0, + 6, 0, 1, 1, 3, 0, 4, 0, 4, 0, + 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, + 1, 1, 0, 4, 0, 6, 1, 3, 0, 4, + 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 3, 0, 6, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 1, 1, 1, 3, 0, 4, 3, 3, 3, 0, + 6, 1, 3, 1, 1, 1, 1, 1, 0, 4, + 0, 4, 0, 6, 1, 3, 1, 1, 1, 1, + 1, 1, 3, 0, 4, 3, 0, 4, 0, 6, + 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 0, 4, 0, 4, 3, 0, 4, 3, 3, - 0, 4, 1, 1, 0, 4, 3, 3, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 6, 0, 4, - 1, 3, 1, 1, 0, 6, 3, 0, 6, 1, + 1, 1, 3, 0, 4, 0, 4, 3, 0, 4, + 3, 3, 0, 4, 1, 1, 0, 4, 3, 3, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, + 0, 4, 1, 3, 1, 1, 0, 6, 3, 0, + 6, 1, 3, 0, 4, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 3, 0, 4, 0, 6, 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, - 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 + 0, 4, 3, 3, 3, 0, 4 }; @@ -5541,15 +5553,15 @@ namespace isc { namespace dhcp { "\"postgresql\"", "\"cql\"", "\"user\"", "\"password\"", "\"host\"", "\"port\"", "\"persist\"", "\"lfc-interval\"", "\"readonly\"", "\"connect-timeout\"", "\"contact-points\"", "\"max-reconnect-tries\"", - "\"reconnect-wait-time\"", "\"disable-dhcp-on-db-loss\"", "\"keyspace\"", - "\"consistency\"", "\"serial-consistency\"", "\"request-timeout\"", - "\"tcp-keepalive\"", "\"tcp-nodelay\"", "\"max-row-errors\"", - "\"preferred-lifetime\"", "\"min-preferred-lifetime\"", - "\"max-preferred-lifetime\"", "\"valid-lifetime\"", - "\"min-valid-lifetime\"", "\"max-valid-lifetime\"", "\"renew-timer\"", - "\"rebind-timer\"", "\"calculate-tee-times\"", "\"t1-percent\"", - "\"t2-percent\"", "\"cache-threshold\"", "\"cache-max-age\"", - "\"decline-probation-period\"", "\"server-tag\"", + "\"reconnect-wait-time\"", "\"disable-dhcp-on-db-loss\"", + "\"enable-connection-recovery\"", "\"keyspace\"", "\"consistency\"", + "\"serial-consistency\"", "\"request-timeout\"", "\"tcp-keepalive\"", + "\"tcp-nodelay\"", "\"max-row-errors\"", "\"preferred-lifetime\"", + "\"min-preferred-lifetime\"", "\"max-preferred-lifetime\"", + "\"valid-lifetime\"", "\"min-valid-lifetime\"", "\"max-valid-lifetime\"", + "\"renew-timer\"", "\"rebind-timer\"", "\"calculate-tee-times\"", + "\"t1-percent\"", "\"t2-percent\"", "\"cache-threshold\"", + "\"cache-max-age\"", "\"decline-probation-period\"", "\"server-tag\"", "\"statistic-default-sample-count\"", "\"statistic-default-sample-age\"", "\"ddns-send-updates\"", "\"ddns-override-no-update\"", "\"ddns-override-client-update\"", "\"ddns-replace-client-name\"", @@ -5624,12 +5636,12 @@ namespace isc { namespace dhcp { "database_map_param", "database_type", "$@35", "db_type", "user", "$@36", "password", "$@37", "host", "$@38", "port", "name", "$@39", "persist", "lfc_interval", "readonly", "connect_timeout", "reconnect_wait_time", - "disable_dhcp_on_db_loss", "max_row_errors", "request_timeout", - "tcp_keepalive", "tcp_nodelay", "contact_points", "$@40", - "max_reconnect_tries", "keyspace", "$@41", "consistency", "$@42", - "serial_consistency", "$@43", "sanity_checks", "$@44", - "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@45", - "mac_sources", "$@46", "mac_sources_list", "mac_sources_value", + "disable_dhcp_on_db_loss", "enable_connection_recovery", + "max_row_errors", "request_timeout", "tcp_keepalive", "tcp_nodelay", + "contact_points", "$@40", "max_reconnect_tries", "keyspace", "$@41", + "consistency", "$@42", "serial_consistency", "$@43", "sanity_checks", + "$@44", "sanity_checks_params", "sanity_checks_param", "lease_checks", + "$@45", "mac_sources", "$@46", "mac_sources_list", "mac_sources_value", "duid_id", "string_id", "host_reservation_identifiers", "$@47", "host_reservation_identifiers_list", "host_reservation_identifier", "hw_address_id", "flex_id", "relay_supplied_options", "$@48", @@ -5710,86 +5722,86 @@ namespace isc { namespace dhcp { const short Dhcp6Parser::yyrline_[] = { - 0, 293, 293, 293, 294, 294, 295, 295, 296, 296, - 297, 297, 298, 298, 299, 299, 300, 300, 301, 301, - 302, 302, 303, 303, 304, 304, 305, 305, 306, 306, - 314, 315, 316, 317, 318, 319, 320, 323, 328, 328, - 339, 342, 343, 346, 351, 359, 359, 366, 367, 370, - 374, 381, 381, 388, 389, 392, 396, 407, 416, 416, - 431, 431, 448, 448, 457, 458, 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, 519, 520, 521, 522, 523, 526, 526, 535, - 541, 547, 553, 559, 565, 571, 577, 583, 589, 595, - 601, 607, 613, 619, 625, 631, 637, 637, 646, 649, - 652, 655, 658, 664, 664, 673, 673, 682, 688, 694, - 694, 703, 703, 712, 718, 724, 730, 730, 739, 745, - 745, 757, 757, 766, 767, 770, 771, 772, 773, 774, - 777, 777, 788, 794, 794, 807, 807, 820, 820, 831, - 832, 835, 836, 839, 839, 849, 850, 853, 854, 855, - 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, - 866, 867, 868, 869, 870, 871, 872, 873, 874, 877, - 877, 885, 886, 887, 888, 891, 891, 900, 900, 909, - 909, 918, 924, 924, 933, 939, 945, 951, 957, 963, - 969, 975, 981, 987, 993, 993, 1002, 1008, 1008, 1017, - 1017, 1026, 1026, 1035, 1035, 1046, 1047, 1049, 1051, 1051, - 1070, 1070, 1081, 1082, 1085, 1086, 1089, 1094, 1099, 1099, - 1110, 1111, 1114, 1115, 1116, 1119, 1124, 1131, 1131, 1144, - 1144, 1157, 1158, 1161, 1162, 1163, 1164, 1165, 1166, 1169, - 1175, 1181, 1187, 1187, 1198, 1199, 1202, 1203, 1206, 1206, - 1216, 1216, 1226, 1227, 1228, 1231, 1232, 1235, 1235, 1244, - 1244, 1253, 1253, 1265, 1266, 1269, 1270, 1271, 1272, 1273, - 1274, 1277, 1283, 1289, 1295, 1301, 1307, 1316, 1316, 1330, - 1331, 1334, 1335, 1342, 1342, 1368, 1368, 1379, 1380, 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, 1476, 1482, 1488, 1494, 1494, 1502, 1503, 1504, - 1505, 1508, 1514, 1522, 1522, 1534, 1535, 1539, 1540, 1543, - 1543, 1551, 1552, 1555, 1556, 1557, 1558, 1559, 1560, 1561, - 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, - 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, - 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, - 1592, 1593, 1594, 1601, 1601, 1615, 1615, 1624, 1625, 1628, - 1629, 1634, 1634, 1649, 1649, 1663, 1664, 1667, 1668, 1671, - 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1683, - 1685, 1691, 1693, 1693, 1702, 1702, 1711, 1711, 1720, 1722, - 1722, 1731, 1741, 1741, 1754, 1755, 1760, 1761, 1766, 1766, - 1778, 1778, 1790, 1791, 1796, 1797, 1802, 1803, 1804, 1805, - 1806, 1807, 1808, 1809, 1810, 1813, 1815, 1815, 1824, 1826, - 1828, 1834, 1843, 1843, 1856, 1857, 1860, 1861, 1864, 1864, - 1874, 1874, 1884, 1885, 1888, 1889, 1890, 1891, 1892, 1893, - 1894, 1897, 1897, 1906, 1906, 1931, 1931, 1961, 1961, 1974, - 1975, 1978, 1979, 1982, 1982, 1994, 1994, 2006, 2007, 2010, - 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, - 2023, 2023, 2032, 2038, 2038, 2047, 2053, 2062, 2062, 2073, - 2074, 2077, 2078, 2081, 2081, 2090, 2090, 2099, 2100, 2103, - 2104, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, - 2117, 2118, 2121, 2121, 2132, 2132, 2143, 2143, 2152, 2152, - 2161, 2161, 2170, 2170, 2179, 2179, 2193, 2193, 2204, 2205, - 2208, 2208, 2220, 2220, 2231, 2232, 2235, 2235, 2245, 2246, - 2249, 2250, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2262, - 2264, 2264, 2273, 2282, 2282, 2295, 2296, 2299, 2300, 2301, - 2302, 2303, 2304, 2305, 2306, 2307, 2310, 2310, 2318, 2319, - 2320, 2323, 2329, 2329, 2338, 2344, 2352, 2360, 2360, 2371, - 2372, 2375, 2376, 2377, 2378, 2379, 2382, 2382, 2391, 2391, - 2403, 2403, 2416, 2417, 2420, 2421, 2422, 2423, 2424, 2425, - 2428, 2434, 2434, 2443, 2449, 2449, 2459, 2459, 2472, 2472, - 2482, 2483, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, - 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, - 2506, 2513, 2513, 2522, 2522, 2531, 2537, 2537, 2546, 2552, - 2558, 2558, 2567, 2568, 2571, 2571, 2581, 2588, 2595, 2595, - 2604, 2604, 2614, 2614, 2624, 2624, 2636, 2636, 2648, 2648, - 2658, 2659, 2663, 2664, 2667, 2667, 2678, 2686, 2686, 2699, - 2700, 2704, 2704, 2712, 2713, 2716, 2717, 2718, 2719, 2720, - 2721, 2722, 2725, 2731, 2731, 2740, 2740, 2751, 2752, 2755, - 2755, 2763, 2764, 2767, 2768, 2769, 2770, 2771, 2774, 2774, - 2783, 2789, 2795, 2801, 2801 + 0, 294, 294, 294, 295, 295, 296, 296, 297, 297, + 298, 298, 299, 299, 300, 300, 301, 301, 302, 302, + 303, 303, 304, 304, 305, 305, 306, 306, 307, 307, + 315, 316, 317, 318, 319, 320, 321, 324, 329, 329, + 340, 343, 344, 347, 352, 360, 360, 367, 368, 371, + 375, 382, 382, 389, 390, 393, 397, 408, 417, 417, + 432, 432, 449, 449, 458, 459, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 527, 527, 536, + 542, 548, 554, 560, 566, 572, 578, 584, 590, 596, + 602, 608, 614, 620, 626, 632, 638, 638, 647, 650, + 653, 656, 659, 665, 665, 674, 674, 683, 689, 695, + 695, 704, 704, 713, 719, 725, 731, 731, 740, 746, + 746, 758, 758, 767, 768, 771, 772, 773, 774, 775, + 778, 778, 789, 795, 795, 808, 808, 821, 821, 832, + 833, 836, 837, 840, 840, 850, 851, 854, 855, 856, + 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, + 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, + 879, 879, 887, 888, 889, 890, 893, 893, 902, 902, + 911, 911, 920, 926, 926, 935, 941, 947, 953, 959, + 965, 971, 977, 983, 989, 995, 1001, 1001, 1010, 1016, + 1016, 1025, 1025, 1034, 1034, 1043, 1043, 1054, 1055, 1057, + 1059, 1059, 1078, 1078, 1089, 1090, 1093, 1094, 1097, 1102, + 1107, 1107, 1118, 1119, 1122, 1123, 1124, 1127, 1132, 1139, + 1139, 1152, 1152, 1165, 1166, 1169, 1170, 1171, 1172, 1173, + 1174, 1177, 1183, 1189, 1195, 1195, 1206, 1207, 1210, 1211, + 1214, 1214, 1224, 1224, 1234, 1235, 1236, 1239, 1240, 1243, + 1243, 1252, 1252, 1261, 1261, 1273, 1274, 1277, 1278, 1279, + 1280, 1281, 1282, 1285, 1291, 1297, 1303, 1309, 1315, 1324, + 1324, 1338, 1339, 1342, 1343, 1350, 1350, 1376, 1376, 1387, + 1388, 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, 1427, 1428, 1429, 1430, + 1431, 1432, 1433, 1434, 1437, 1437, 1446, 1446, 1455, 1455, + 1464, 1464, 1473, 1473, 1484, 1490, 1496, 1502, 1502, 1510, + 1511, 1512, 1513, 1516, 1522, 1530, 1530, 1542, 1543, 1547, + 1548, 1551, 1551, 1559, 1560, 1563, 1564, 1565, 1566, 1567, + 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, + 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, + 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, + 1598, 1599, 1600, 1601, 1602, 1609, 1609, 1623, 1623, 1632, + 1633, 1636, 1637, 1642, 1642, 1657, 1657, 1671, 1672, 1675, + 1676, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, + 1688, 1691, 1693, 1699, 1701, 1701, 1710, 1710, 1719, 1719, + 1728, 1730, 1730, 1739, 1749, 1749, 1762, 1763, 1768, 1769, + 1774, 1774, 1786, 1786, 1798, 1799, 1804, 1805, 1810, 1811, + 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1821, 1823, 1823, + 1832, 1834, 1836, 1842, 1851, 1851, 1864, 1865, 1868, 1869, + 1872, 1872, 1882, 1882, 1892, 1893, 1896, 1897, 1898, 1899, + 1900, 1901, 1902, 1905, 1905, 1914, 1914, 1939, 1939, 1969, + 1969, 1982, 1983, 1986, 1987, 1990, 1990, 2002, 2002, 2014, + 2015, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, + 2027, 2028, 2031, 2031, 2040, 2046, 2046, 2055, 2061, 2070, + 2070, 2081, 2082, 2085, 2086, 2089, 2089, 2098, 2098, 2107, + 2108, 2111, 2112, 2116, 2117, 2118, 2119, 2120, 2121, 2122, + 2123, 2124, 2125, 2126, 2129, 2129, 2140, 2140, 2151, 2151, + 2160, 2160, 2169, 2169, 2178, 2178, 2187, 2187, 2201, 2201, + 2212, 2213, 2216, 2216, 2228, 2228, 2239, 2240, 2243, 2243, + 2253, 2254, 2257, 2258, 2261, 2262, 2263, 2264, 2265, 2266, + 2267, 2270, 2272, 2272, 2281, 2290, 2290, 2303, 2304, 2307, + 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2318, 2318, + 2326, 2327, 2328, 2331, 2337, 2337, 2346, 2352, 2360, 2368, + 2368, 2379, 2380, 2383, 2384, 2385, 2386, 2387, 2390, 2390, + 2399, 2399, 2411, 2411, 2424, 2425, 2428, 2429, 2430, 2431, + 2432, 2433, 2436, 2442, 2442, 2451, 2457, 2457, 2467, 2467, + 2480, 2480, 2490, 2491, 2494, 2495, 2496, 2497, 2498, 2499, + 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, + 2510, 2511, 2514, 2521, 2521, 2530, 2530, 2539, 2545, 2545, + 2554, 2560, 2566, 2566, 2575, 2576, 2579, 2579, 2589, 2596, + 2603, 2603, 2612, 2612, 2622, 2622, 2632, 2632, 2644, 2644, + 2656, 2656, 2666, 2667, 2671, 2672, 2675, 2675, 2686, 2694, + 2694, 2707, 2708, 2712, 2712, 2720, 2721, 2724, 2725, 2726, + 2727, 2728, 2729, 2730, 2733, 2739, 2739, 2748, 2748, 2759, + 2760, 2763, 2763, 2771, 2772, 2775, 2776, 2777, 2778, 2779, + 2782, 2782, 2791, 2797, 2803, 2809, 2809 }; // Print the state stack on the debug stream. @@ -5824,9 +5836,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 5828 "dhcp6_parser.cc" +#line 5840 "dhcp6_parser.cc" -#line 2810 "dhcp6_parser.yy" +#line 2818 "dhcp6_parser.yy" void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index 149655714d..d8b39ace9d 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -506,175 +506,176 @@ namespace isc { namespace dhcp { TOKEN_MAX_RECONNECT_TRIES = 290, TOKEN_RECONNECT_WAIT_TIME = 291, TOKEN_DISABLE_DHCP_ON_DB_LOSS = 292, - TOKEN_KEYSPACE = 293, - TOKEN_CONSISTENCY = 294, - TOKEN_SERIAL_CONSISTENCY = 295, - TOKEN_REQUEST_TIMEOUT = 296, - TOKEN_TCP_KEEPALIVE = 297, - TOKEN_TCP_NODELAY = 298, - TOKEN_MAX_ROW_ERRORS = 299, - TOKEN_PREFERRED_LIFETIME = 300, - TOKEN_MIN_PREFERRED_LIFETIME = 301, - TOKEN_MAX_PREFERRED_LIFETIME = 302, - TOKEN_VALID_LIFETIME = 303, - TOKEN_MIN_VALID_LIFETIME = 304, - TOKEN_MAX_VALID_LIFETIME = 305, - TOKEN_RENEW_TIMER = 306, - TOKEN_REBIND_TIMER = 307, - TOKEN_CALCULATE_TEE_TIMES = 308, - TOKEN_T1_PERCENT = 309, - TOKEN_T2_PERCENT = 310, - TOKEN_CACHE_THRESHOLD = 311, - TOKEN_CACHE_MAX_AGE = 312, - TOKEN_DECLINE_PROBATION_PERIOD = 313, - TOKEN_SERVER_TAG = 314, - TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 315, - TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 316, - TOKEN_DDNS_SEND_UPDATES = 317, - TOKEN_DDNS_OVERRIDE_NO_UPDATE = 318, - TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 319, - TOKEN_DDNS_REPLACE_CLIENT_NAME = 320, - TOKEN_DDNS_GENERATED_PREFIX = 321, - TOKEN_DDNS_QUALIFYING_SUFFIX = 322, - TOKEN_DDNS_UPDATE_ON_RENEW = 323, - TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 324, - TOKEN_STORE_EXTENDED_INFO = 325, - TOKEN_SUBNET6 = 326, - TOKEN_OPTION_DEF = 327, - TOKEN_OPTION_DATA = 328, - TOKEN_NAME = 329, - TOKEN_DATA = 330, - TOKEN_CODE = 331, - TOKEN_SPACE = 332, - TOKEN_CSV_FORMAT = 333, - TOKEN_ALWAYS_SEND = 334, - TOKEN_RECORD_TYPES = 335, - TOKEN_ENCAPSULATE = 336, - TOKEN_ARRAY = 337, - TOKEN_SHARED_NETWORKS = 338, - TOKEN_POOLS = 339, - TOKEN_POOL = 340, - TOKEN_PD_POOLS = 341, - TOKEN_PREFIX = 342, - TOKEN_PREFIX_LEN = 343, - TOKEN_EXCLUDED_PREFIX = 344, - TOKEN_EXCLUDED_PREFIX_LEN = 345, - TOKEN_DELEGATED_LEN = 346, - TOKEN_USER_CONTEXT = 347, - TOKEN_COMMENT = 348, - TOKEN_SUBNET = 349, - TOKEN_INTERFACE = 350, - TOKEN_INTERFACE_ID = 351, - TOKEN_ID = 352, - TOKEN_RAPID_COMMIT = 353, - TOKEN_RESERVATION_MODE = 354, - TOKEN_DISABLED = 355, - TOKEN_OUT_OF_POOL = 356, - TOKEN_GLOBAL = 357, - TOKEN_ALL = 358, - TOKEN_RESERVATIONS_GLOBAL = 359, - TOKEN_RESERVATIONS_IN_SUBNET = 360, - TOKEN_RESERVATIONS_OUT_OF_POOL = 361, - TOKEN_MAC_SOURCES = 362, - TOKEN_RELAY_SUPPLIED_OPTIONS = 363, - TOKEN_HOST_RESERVATION_IDENTIFIERS = 364, - TOKEN_SANITY_CHECKS = 365, - TOKEN_LEASE_CHECKS = 366, - TOKEN_CLIENT_CLASSES = 367, - TOKEN_REQUIRE_CLIENT_CLASSES = 368, - TOKEN_TEST = 369, - TOKEN_ONLY_IF_REQUIRED = 370, - TOKEN_CLIENT_CLASS = 371, - TOKEN_RESERVATIONS = 372, - TOKEN_IP_ADDRESSES = 373, - TOKEN_PREFIXES = 374, - TOKEN_DUID = 375, - TOKEN_HW_ADDRESS = 376, - TOKEN_HOSTNAME = 377, - TOKEN_FLEX_ID = 378, - TOKEN_RELAY = 379, - TOKEN_IP_ADDRESS = 380, - TOKEN_HOOKS_LIBRARIES = 381, - TOKEN_LIBRARY = 382, - TOKEN_PARAMETERS = 383, - TOKEN_EXPIRED_LEASES_PROCESSING = 384, - TOKEN_RECLAIM_TIMER_WAIT_TIME = 385, - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 386, - TOKEN_HOLD_RECLAIMED_TIME = 387, - TOKEN_MAX_RECLAIM_LEASES = 388, - TOKEN_MAX_RECLAIM_TIME = 389, - TOKEN_UNWARNED_RECLAIM_CYCLES = 390, - TOKEN_SERVER_ID = 391, - TOKEN_LLT = 392, - TOKEN_EN = 393, - TOKEN_LL = 394, - TOKEN_IDENTIFIER = 395, - TOKEN_HTYPE = 396, - TOKEN_TIME = 397, - TOKEN_ENTERPRISE_ID = 398, - TOKEN_DHCP4O6_PORT = 399, - TOKEN_DHCP_MULTI_THREADING = 400, - TOKEN_ENABLE_MULTI_THREADING = 401, - TOKEN_THREAD_POOL_SIZE = 402, - TOKEN_PACKET_QUEUE_SIZE = 403, - TOKEN_CONTROL_SOCKET = 404, - TOKEN_SOCKET_TYPE = 405, - TOKEN_SOCKET_NAME = 406, - TOKEN_DHCP_QUEUE_CONTROL = 407, - TOKEN_ENABLE_QUEUE = 408, - TOKEN_QUEUE_TYPE = 409, - TOKEN_CAPACITY = 410, - TOKEN_DHCP_DDNS = 411, - TOKEN_ENABLE_UPDATES = 412, - TOKEN_QUALIFYING_SUFFIX = 413, - TOKEN_SERVER_IP = 414, - TOKEN_SERVER_PORT = 415, - TOKEN_SENDER_IP = 416, - TOKEN_SENDER_PORT = 417, - TOKEN_MAX_QUEUE_SIZE = 418, - TOKEN_NCR_PROTOCOL = 419, - TOKEN_NCR_FORMAT = 420, - TOKEN_OVERRIDE_NO_UPDATE = 421, - TOKEN_OVERRIDE_CLIENT_UPDATE = 422, - TOKEN_REPLACE_CLIENT_NAME = 423, - TOKEN_GENERATED_PREFIX = 424, - TOKEN_UDP = 425, - TOKEN_TCP = 426, - TOKEN_JSON = 427, - TOKEN_WHEN_PRESENT = 428, - TOKEN_NEVER = 429, - TOKEN_ALWAYS = 430, - TOKEN_WHEN_NOT_PRESENT = 431, - TOKEN_HOSTNAME_CHAR_SET = 432, - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 433, - TOKEN_IP_RESERVATIONS_UNIQUE = 434, - TOKEN_LOGGERS = 435, - TOKEN_OUTPUT_OPTIONS = 436, - TOKEN_OUTPUT = 437, - TOKEN_DEBUGLEVEL = 438, - TOKEN_SEVERITY = 439, - TOKEN_FLUSH = 440, - TOKEN_MAXSIZE = 441, - TOKEN_MAXVER = 442, - TOKEN_PATTERN = 443, - TOKEN_TOPLEVEL_JSON = 444, - TOKEN_TOPLEVEL_DHCP6 = 445, - TOKEN_SUB_DHCP6 = 446, - TOKEN_SUB_INTERFACES6 = 447, - TOKEN_SUB_SUBNET6 = 448, - TOKEN_SUB_POOL6 = 449, - TOKEN_SUB_PD_POOL = 450, - TOKEN_SUB_RESERVATION = 451, - TOKEN_SUB_OPTION_DEFS = 452, - TOKEN_SUB_OPTION_DEF = 453, - TOKEN_SUB_OPTION_DATA = 454, - TOKEN_SUB_HOOKS_LIBRARY = 455, - TOKEN_SUB_DHCP_DDNS = 456, - TOKEN_SUB_CONFIG_CONTROL = 457, - TOKEN_STRING = 458, - TOKEN_INTEGER = 459, - TOKEN_FLOAT = 460, - TOKEN_BOOLEAN = 461 + TOKEN_ENABLE_CONNECTION_RECOVERY = 293, + TOKEN_KEYSPACE = 294, + TOKEN_CONSISTENCY = 295, + TOKEN_SERIAL_CONSISTENCY = 296, + TOKEN_REQUEST_TIMEOUT = 297, + TOKEN_TCP_KEEPALIVE = 298, + TOKEN_TCP_NODELAY = 299, + TOKEN_MAX_ROW_ERRORS = 300, + TOKEN_PREFERRED_LIFETIME = 301, + TOKEN_MIN_PREFERRED_LIFETIME = 302, + TOKEN_MAX_PREFERRED_LIFETIME = 303, + TOKEN_VALID_LIFETIME = 304, + TOKEN_MIN_VALID_LIFETIME = 305, + TOKEN_MAX_VALID_LIFETIME = 306, + TOKEN_RENEW_TIMER = 307, + TOKEN_REBIND_TIMER = 308, + TOKEN_CALCULATE_TEE_TIMES = 309, + TOKEN_T1_PERCENT = 310, + TOKEN_T2_PERCENT = 311, + TOKEN_CACHE_THRESHOLD = 312, + TOKEN_CACHE_MAX_AGE = 313, + TOKEN_DECLINE_PROBATION_PERIOD = 314, + TOKEN_SERVER_TAG = 315, + TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 316, + TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 317, + TOKEN_DDNS_SEND_UPDATES = 318, + TOKEN_DDNS_OVERRIDE_NO_UPDATE = 319, + TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 320, + TOKEN_DDNS_REPLACE_CLIENT_NAME = 321, + TOKEN_DDNS_GENERATED_PREFIX = 322, + TOKEN_DDNS_QUALIFYING_SUFFIX = 323, + TOKEN_DDNS_UPDATE_ON_RENEW = 324, + TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 325, + TOKEN_STORE_EXTENDED_INFO = 326, + TOKEN_SUBNET6 = 327, + TOKEN_OPTION_DEF = 328, + TOKEN_OPTION_DATA = 329, + TOKEN_NAME = 330, + TOKEN_DATA = 331, + TOKEN_CODE = 332, + TOKEN_SPACE = 333, + TOKEN_CSV_FORMAT = 334, + TOKEN_ALWAYS_SEND = 335, + TOKEN_RECORD_TYPES = 336, + TOKEN_ENCAPSULATE = 337, + TOKEN_ARRAY = 338, + TOKEN_SHARED_NETWORKS = 339, + TOKEN_POOLS = 340, + TOKEN_POOL = 341, + TOKEN_PD_POOLS = 342, + TOKEN_PREFIX = 343, + TOKEN_PREFIX_LEN = 344, + TOKEN_EXCLUDED_PREFIX = 345, + TOKEN_EXCLUDED_PREFIX_LEN = 346, + TOKEN_DELEGATED_LEN = 347, + TOKEN_USER_CONTEXT = 348, + TOKEN_COMMENT = 349, + TOKEN_SUBNET = 350, + TOKEN_INTERFACE = 351, + TOKEN_INTERFACE_ID = 352, + TOKEN_ID = 353, + TOKEN_RAPID_COMMIT = 354, + TOKEN_RESERVATION_MODE = 355, + TOKEN_DISABLED = 356, + TOKEN_OUT_OF_POOL = 357, + TOKEN_GLOBAL = 358, + TOKEN_ALL = 359, + TOKEN_RESERVATIONS_GLOBAL = 360, + TOKEN_RESERVATIONS_IN_SUBNET = 361, + TOKEN_RESERVATIONS_OUT_OF_POOL = 362, + TOKEN_MAC_SOURCES = 363, + TOKEN_RELAY_SUPPLIED_OPTIONS = 364, + TOKEN_HOST_RESERVATION_IDENTIFIERS = 365, + TOKEN_SANITY_CHECKS = 366, + TOKEN_LEASE_CHECKS = 367, + TOKEN_CLIENT_CLASSES = 368, + TOKEN_REQUIRE_CLIENT_CLASSES = 369, + TOKEN_TEST = 370, + TOKEN_ONLY_IF_REQUIRED = 371, + TOKEN_CLIENT_CLASS = 372, + TOKEN_RESERVATIONS = 373, + TOKEN_IP_ADDRESSES = 374, + TOKEN_PREFIXES = 375, + TOKEN_DUID = 376, + TOKEN_HW_ADDRESS = 377, + TOKEN_HOSTNAME = 378, + TOKEN_FLEX_ID = 379, + TOKEN_RELAY = 380, + TOKEN_IP_ADDRESS = 381, + TOKEN_HOOKS_LIBRARIES = 382, + TOKEN_LIBRARY = 383, + TOKEN_PARAMETERS = 384, + TOKEN_EXPIRED_LEASES_PROCESSING = 385, + TOKEN_RECLAIM_TIMER_WAIT_TIME = 386, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 387, + TOKEN_HOLD_RECLAIMED_TIME = 388, + TOKEN_MAX_RECLAIM_LEASES = 389, + TOKEN_MAX_RECLAIM_TIME = 390, + TOKEN_UNWARNED_RECLAIM_CYCLES = 391, + TOKEN_SERVER_ID = 392, + TOKEN_LLT = 393, + TOKEN_EN = 394, + TOKEN_LL = 395, + TOKEN_IDENTIFIER = 396, + TOKEN_HTYPE = 397, + TOKEN_TIME = 398, + TOKEN_ENTERPRISE_ID = 399, + TOKEN_DHCP4O6_PORT = 400, + TOKEN_DHCP_MULTI_THREADING = 401, + TOKEN_ENABLE_MULTI_THREADING = 402, + TOKEN_THREAD_POOL_SIZE = 403, + TOKEN_PACKET_QUEUE_SIZE = 404, + TOKEN_CONTROL_SOCKET = 405, + TOKEN_SOCKET_TYPE = 406, + TOKEN_SOCKET_NAME = 407, + TOKEN_DHCP_QUEUE_CONTROL = 408, + TOKEN_ENABLE_QUEUE = 409, + TOKEN_QUEUE_TYPE = 410, + TOKEN_CAPACITY = 411, + TOKEN_DHCP_DDNS = 412, + TOKEN_ENABLE_UPDATES = 413, + TOKEN_QUALIFYING_SUFFIX = 414, + TOKEN_SERVER_IP = 415, + TOKEN_SERVER_PORT = 416, + TOKEN_SENDER_IP = 417, + TOKEN_SENDER_PORT = 418, + TOKEN_MAX_QUEUE_SIZE = 419, + TOKEN_NCR_PROTOCOL = 420, + TOKEN_NCR_FORMAT = 421, + TOKEN_OVERRIDE_NO_UPDATE = 422, + TOKEN_OVERRIDE_CLIENT_UPDATE = 423, + TOKEN_REPLACE_CLIENT_NAME = 424, + TOKEN_GENERATED_PREFIX = 425, + TOKEN_UDP = 426, + TOKEN_TCP = 427, + TOKEN_JSON = 428, + TOKEN_WHEN_PRESENT = 429, + TOKEN_NEVER = 430, + TOKEN_ALWAYS = 431, + TOKEN_WHEN_NOT_PRESENT = 432, + TOKEN_HOSTNAME_CHAR_SET = 433, + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 434, + TOKEN_IP_RESERVATIONS_UNIQUE = 435, + TOKEN_LOGGERS = 436, + TOKEN_OUTPUT_OPTIONS = 437, + TOKEN_OUTPUT = 438, + TOKEN_DEBUGLEVEL = 439, + TOKEN_SEVERITY = 440, + TOKEN_FLUSH = 441, + TOKEN_MAXSIZE = 442, + TOKEN_MAXVER = 443, + TOKEN_PATTERN = 444, + TOKEN_TOPLEVEL_JSON = 445, + TOKEN_TOPLEVEL_DHCP6 = 446, + TOKEN_SUB_DHCP6 = 447, + TOKEN_SUB_INTERFACES6 = 448, + TOKEN_SUB_SUBNET6 = 449, + TOKEN_SUB_POOL6 = 450, + TOKEN_SUB_PD_POOL = 451, + TOKEN_SUB_RESERVATION = 452, + TOKEN_SUB_OPTION_DEFS = 453, + TOKEN_SUB_OPTION_DEF = 454, + TOKEN_SUB_OPTION_DATA = 455, + TOKEN_SUB_HOOKS_LIBRARY = 456, + TOKEN_SUB_DHCP_DDNS = 457, + TOKEN_SUB_CONFIG_CONTROL = 458, + TOKEN_STRING = 459, + TOKEN_INTEGER = 460, + TOKEN_FLOAT = 461, + TOKEN_BOOLEAN = 462 }; }; @@ -816,29 +817,29 @@ namespace isc { namespace dhcp { // Type destructor. switch (yytype) { - case 223: // value - case 227: // map_value - case 268: // ddns_replace_client_name_value - case 308: // db_type - case 413: // hr_mode - case 549: // duid_type - case 592: // ncr_protocol_value + case 224: // value + case 228: // map_value + case 269: // ddns_replace_client_name_value + case 309: // db_type + case 415: // hr_mode + case 551: // duid_type + case 594: // ncr_protocol_value value.template destroy< ElementPtr > (); break; - case 206: // "boolean" + case 207: // "boolean" value.template destroy< bool > (); break; - case 205: // "floating point" + case 206: // "floating point" value.template destroy< double > (); break; - case 204: // "integer" + case 205: // "integer" value.template destroy< int64_t > (); break; - case 203: // "constant string" + case 204: // "constant string" value.template destroy< std::string > (); break; @@ -918,13 +919,13 @@ switch (yytype) symbol_type (int tok, location_type l) : super_type(token_type (tok), std::move (l)) { - YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_DISABLE_DHCP_ON_DB_LOSS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); + YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_DISABLE_DHCP_ON_DB_LOSS || tok == token::TOKEN_ENABLE_CONNECTION_RECOVERY || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); } #else symbol_type (int tok, const location_type& l) : super_type(token_type (tok), l) { - YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_DISABLE_DHCP_ON_DB_LOSS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); + YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_DISABLE_DHCP_ON_DB_LOSS || tok == token::TOKEN_ENABLE_CONNECTION_RECOVERY || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); } #endif #if 201103L <= YY_CPLUSPLUS @@ -1559,6 +1560,21 @@ switch (yytype) #if 201103L <= YY_CPLUSPLUS static symbol_type + make_ENABLE_CONNECTION_RECOVERY (location_type l) + { + return symbol_type (token::TOKEN_ENABLE_CONNECTION_RECOVERY, std::move (l)); + } +#else + static + symbol_type + make_ENABLE_CONNECTION_RECOVERY (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_CONNECTION_RECOVERY, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type make_KEYSPACE (location_type l) { return symbol_type (token::TOKEN_KEYSPACE, std::move (l)); @@ -4397,10 +4413,10 @@ switch (yytype) enum { yyeof_ = 0, - yylast_ = 1269, ///< Last index in yytable_. - yynnts_ = 431, ///< Number of nonterminal symbols. + yylast_ = 1273, ///< Last index in yytable_. + yynnts_ = 432, ///< Number of nonterminal symbols. yyfinal_ = 30, ///< Termination state number. - yyntokens_ = 207 ///< Number of tokens. + yyntokens_ = 208 ///< Number of tokens. }; @@ -4464,9 +4480,9 @@ switch (yytype) 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206 + 205, 206, 207 }; - const int user_token_number_max_ = 461; + const int user_token_number_max_ = 462; if (t <= 0) return yyeof_; @@ -4486,29 +4502,29 @@ switch (yytype) { switch (this->type_get ()) { - case 223: // value - case 227: // map_value - case 268: // ddns_replace_client_name_value - case 308: // db_type - case 413: // hr_mode - case 549: // duid_type - case 592: // ncr_protocol_value + case 224: // value + case 228: // map_value + case 269: // ddns_replace_client_name_value + case 309: // db_type + case 415: // hr_mode + case 551: // duid_type + case 594: // ncr_protocol_value value.move< ElementPtr > (std::move (that.value)); break; - case 206: // "boolean" + case 207: // "boolean" value.move< bool > (std::move (that.value)); break; - case 205: // "floating point" + case 206: // "floating point" value.move< double > (std::move (that.value)); break; - case 204: // "integer" + case 205: // "integer" value.move< int64_t > (std::move (that.value)); break; - case 203: // "constant string" + case 204: // "constant string" value.move< std::string > (std::move (that.value)); break; @@ -4527,29 +4543,29 @@ switch (yytype) { switch (this->type_get ()) { - case 223: // value - case 227: // map_value - case 268: // ddns_replace_client_name_value - case 308: // db_type - case 413: // hr_mode - case 549: // duid_type - case 592: // ncr_protocol_value + case 224: // value + case 228: // map_value + case 269: // ddns_replace_client_name_value + case 309: // db_type + case 415: // hr_mode + case 551: // duid_type + case 594: // ncr_protocol_value value.copy< ElementPtr > (YY_MOVE (that.value)); break; - case 206: // "boolean" + case 207: // "boolean" value.copy< bool > (YY_MOVE (that.value)); break; - case 205: // "floating point" + case 206: // "floating point" value.copy< double > (YY_MOVE (that.value)); break; - case 204: // "integer" + case 205: // "integer" value.copy< int64_t > (YY_MOVE (that.value)); break; - case 203: // "constant string" + case 204: // "constant string" value.copy< std::string > (YY_MOVE (that.value)); break; @@ -4575,29 +4591,29 @@ switch (yytype) super_type::move (s); switch (this->type_get ()) { - case 223: // value - case 227: // map_value - case 268: // ddns_replace_client_name_value - case 308: // db_type - case 413: // hr_mode - case 549: // duid_type - case 592: // ncr_protocol_value + case 224: // value + case 228: // map_value + case 269: // ddns_replace_client_name_value + case 309: // db_type + case 415: // hr_mode + case 551: // duid_type + case 594: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (s.value)); break; - case 206: // "boolean" + case 207: // "boolean" value.move< bool > (YY_MOVE (s.value)); break; - case 205: // "floating point" + case 206: // "floating point" value.move< double > (YY_MOVE (s.value)); break; - case 204: // "integer" + case 205: // "integer" value.move< int64_t > (YY_MOVE (s.value)); break; - case 203: // "constant string" + case 204: // "constant string" value.move< std::string > (YY_MOVE (s.value)); break; @@ -4657,7 +4673,7 @@ switch (yytype) #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 4661 "dhcp6_parser.h" +#line 4677 "dhcp6_parser.h" diff --git a/src/bin/dhcp6/dhcp6_parser.yy b/src/bin/dhcp6/dhcp6_parser.yy index 11e9ad4568..7a5fe969c9 100644 --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@ -80,6 +80,7 @@ using namespace std; MAX_RECONNECT_TRIES "max-reconnect-tries" RECONNECT_WAIT_TIME "reconnect-wait-time" DISABLE_DHCP_ON_DB_LOSS "disable-dhcp-on-db-loss" + ENABLE_CONNECTION_RECOVERY "enable-connection-recovery" KEYSPACE "keyspace" CONSISTENCY "consistency" SERIAL_CONSISTENCY "serial-consistency" @@ -864,6 +865,7 @@ database_map_param: database_type | max_reconnect_tries | reconnect_wait_time | disable_dhcp_on_db_loss + | enable_connection_recovery | request_timeout | tcp_keepalive | tcp_nodelay @@ -966,6 +968,12 @@ disable_dhcp_on_db_loss: DISABLE_DHCP_ON_DB_LOSS COLON BOOLEAN { ctx.stack_.back()->set("disable-dhcp-on-db-loss", n); }; +enable_connection_recovery: ENABLE_CONNECTION_RECOVERY COLON BOOLEAN { + ctx.unique("enable-connection-recovery", ctx.loc2pos(@1)); + ElementPtr n(new BoolElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("enable-connection-recovery", n); +}; + max_row_errors: MAX_ROW_ERRORS COLON INTEGER { ctx.unique("max-row-errors", ctx.loc2pos(@1)); ElementPtr n(new IntElement($3, ctx.loc2pos(@3))); diff --git a/src/lib/database/database_connection.cc b/src/lib/database/database_connection.cc index 38ca41b25f..840a7d8a13 100644 --- a/src/lib/database/database_connection.cc +++ b/src/lib/database/database_connection.cc @@ -183,8 +183,23 @@ DatabaseConnection::makeReconnectCtl(const std::string& timer_name) { // Wasn't specified so we'll use default of true; } + bool connection_recovery = true; + try { + parm_str = getParameter("enable-connection-recovery"); + connection_recovery = boost::lexical_cast<bool>(parm_str); + } catch (...) { + // Wasn't specified so we'll use default of true; + } + + // If "enable-connection-recovery" is 'false' the recovery mechanism must + // be disabled + if (!connection_recovery) { + callback_ = DbCallback(); + } + reconnect_ctl_ = boost::make_shared<ReconnectCtl>(type, timer_name, retries, - interval, disable_dhcp); + interval, connection_recovery, + disable_dhcp); } bool diff --git a/src/lib/database/database_connection.h b/src/lib/database/database_connection.h index 3d69895e95..a21ff75722 100644 --- a/src/lib/database/database_connection.h +++ b/src/lib/database/database_connection.h @@ -93,10 +93,12 @@ public: /// @param retry_interval amount of time to between reconnect attempts ReconnectCtl(const std::string& backend_type, const std::string& timer_name, unsigned int max_retries, unsigned int retry_interval, - bool disable_dhcp) : backend_type_(backend_type), - timer_name_(timer_name), max_retries_(max_retries), - retries_left_(max_retries), retry_interval_(retry_interval), - disable_dhcp_(disable_dhcp) {} + bool connection_recovery, bool alter_dhcp_state) : + backend_type_(backend_type), timer_name_(timer_name), + max_retries_(max_retries), retries_left_(max_retries), + retry_interval_(retry_interval), + connection_recovery_(connection_recovery), + alter_dhcp_state_(alter_dhcp_state) {} /// @brief Returns the type of the caller backend. std::string backendType() const { @@ -140,8 +142,14 @@ public: /// @brief Return the flag which indicates if the connection loss should /// disable the dhcp service. - bool disableDHCP() { - return (disable_dhcp_); + bool alterDHCPState() { + return (alter_dhcp_state_); + } + + /// @brief Return the flag which indicates if the connection recovery + /// mechanism is enabled. + bool connectionRecovery() { + return (connection_recovery_); } private: @@ -161,9 +169,13 @@ private: /// @brief The amount of time to wait between reconnect attempts unsigned int retry_interval_; - /// @brief Flag which indicates if the connection loss should disable the + /// @brief Flag which indicates if the connection recovery mechanism is + /// enabled. + bool connection_recovery_; + + /// @brief Flag which indicates if the connection loss should affect the /// dhcp service. - bool disable_dhcp_; + bool alter_dhcp_state_; }; /// @brief Pointer to an instance of ReconnectCtl @@ -210,8 +222,10 @@ public: /// /// @param parameters A data structure relating keywords and values /// concerned with the database. - DatabaseConnection(const ParameterMap& parameters) - : parameters_(parameters), unusable_(false) { + /// @param callback The connection recovery callback. + DatabaseConnection(const ParameterMap& parameters, + DbCallback callback = DbCallback()) + : parameters_(parameters), callback_(callback), unusable_(false) { } /// @brief Destructor @@ -336,6 +350,13 @@ private: /// intended to keep any DHCP-related parameters. ParameterMap parameters_; +protected: + + /// @brief The callback used to recover the connection. + DbCallback callback_; + +private: + /// @brief Indicates if the connection can no longer be used for normal /// operations. Typically a connection is marked unusable after an unrecoverable /// DB error. There may be a time when the connection exists, after diff --git a/src/lib/mysql/mysql_connection.h b/src/lib/mysql/mysql_connection.h index dff65e9d3b..8d51554411 100644 --- a/src/lib/mysql/mysql_connection.h +++ b/src/lib/mysql/mysql_connection.h @@ -246,8 +246,8 @@ public: MySqlConnection(const ParameterMap& parameters, IOServiceAccessorPtr io_accessor = IOServiceAccessorPtr(), DbCallback callback = DbCallback()) - : DatabaseConnection(parameters), io_service_accessor_(io_accessor), - io_service_(), callback_(callback) { + : DatabaseConnection(parameters, callback), + io_service_accessor_(io_accessor), io_service_() { } /// @brief Destructor @@ -698,9 +698,6 @@ public: /// @brief IOService object, used for all ASIO operations. isc::asiolink::IOServicePtr io_service_; - - /// @brief The callback used to recover the connection. - DbCallback callback_; }; } // end of isc::db namespace diff --git a/src/lib/pgsql/pgsql_connection.h b/src/lib/pgsql/pgsql_connection.h index e338446e12..c4b8e49d19 100644 --- a/src/lib/pgsql/pgsql_connection.h +++ b/src/lib/pgsql/pgsql_connection.h @@ -312,8 +312,8 @@ public: PgSqlConnection(const ParameterMap& parameters, IOServiceAccessorPtr io_accessor = IOServiceAccessorPtr(), DbCallback callback = DbCallback()) - : DatabaseConnection(parameters), io_service_accessor_(io_accessor), - io_service_(), callback_(callback) { + : DatabaseConnection(parameters, callback), + io_service_accessor_(io_accessor), io_service_() { } /// @brief Destructor @@ -469,9 +469,6 @@ public: /// @brief IOService object, used for all ASIO operations. isc::asiolink::IOServicePtr io_service_; - - /// @brief The callback used to recover the connection. - DbCallback callback_; }; } // end of isc::db namespace |