// Type of the database, e.g. "mysql", "postgresql", "cql".
"type": "mysql"
}
- ]
+ ],
+ // Intervals between attempts to fetch configuration updates
+ // via the configuration backends used.
+ "config-fetch-wait-time": 30
},
// Server tag.
return (isc::config::createAnswer(1, err.str()));
}
+ // Setup config backend polling, if configured for it.
+ auto ctl_info = CfgMgr::instance().getStagingCfg()->getConfigControlInfo();
+ if (ctl_info) {
+ long fetch_time = static_cast<long>(ctl_info->getConfigFetchWaitTime());
+ // Only schedule the CB fetch timer if the fetch wait time is greater
+ // than 0.
+ if (fetch_time > 0) {
+ // When we run unit tests, we want to use milliseconds unit for the
+ // specified interval. Otherwise, we use seconds. Note that using
+ // milliseconds as a unit in unit tests prevents us from waiting 1
+ // second on more before the timer goes off. Instead, we wait one
+ // millisecond which significantly reduces the test time.
+ if (!server_->inTestMode()) {
+ fetch_time = 1000 * fetch_time;
+ }
+
+ boost::shared_ptr<unsigned> failure_count(new unsigned(0));
+ TimerMgr::instance()->
+ registerTimer("Dhcp6CBFetchTimer",
+ boost::bind(&ControlledDhcpv6Srv::cbFetchUpdates,
+ server_, CfgMgr::instance().getStagingCfg(),
+ failure_count),
+ fetch_time,
+ asiolink::IntervalTimer::ONE_SHOT);
+ TimerMgr::instance()->setup("Dhcp6CBFetchTimer");
+ }
+ }
+
// Finally, we can commit runtime option definitions in libdhcp++. This is
// exception free.
LibDHCP::commitRuntimeOptionDefs();
return(true);
}
+void
+ControlledDhcpv6Srv::cbFetchUpdates(const SrvConfigPtr& srv_cfg,
+ boost::shared_ptr<unsigned> failure_count) {
+ try {
+ // The true value indicates that the server should not reconnect
+ // to the configuration backends and should take into account
+ // audit entries stored in the database since last fetch.
+ server_->getCBControl()->databaseConfigFetch(srv_cfg,
+ CBControlDHCPv6::FetchMode::FETCH_UPDATE);
+ (*failure_count) = 0;
+
+ } catch (const std::exception& ex) {
+ LOG_ERROR(dhcp6_logger, DHCP6_CB_FETCH_UPDATES_FAIL)
+ .arg(ex.what());
+
+ // We allow at most 10 consecutive failures after which we stop
+ // making further attempts to fetch the configuration updates.
+ // Let's return without re-scheduling the timer.
+ if (++(*failure_count) > 10) {
+ LOG_ERROR(dhcp6_logger, DHCP6_CB_FETCH_UPDATES_RETRIES_EXHAUSTED);
+ return;
+ }
+ }
+
+ // Reschedule the timer to fetch new updates or re-try if
+ // the previous attempt resulted in an error.
+ if (TimerMgr::instance()->isTimerRegistered("Dhcp6CBFetchTimer")) {
+ TimerMgr::instance()->setup("Dhcp6CBFetchTimer");
+ }
+}
+
}; // end of isc::dhcp namespace
}; // end of isc namespace
-// Copyright (C) 2012-2018 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2012-2019 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
/// configured reconnect parameters
bool dbLostCallback(db::ReconnectCtlPtr db_reconnect_ctl);
+ /// @brief Callback invoked periodically to fetch configuration updates
+ /// from the Config Backends.
+ ///
+ /// This method calls @c CBControlDHCPv6::databaseConfigFetch and then
+ /// reschedules the timer.
+ ///
+ /// @param srv_cfg Server configuration holding the database credentials
+ /// and server tag.
+ /// @param failure_count pointer to failure counter which causes this
+ /// callback to stop scheduling the timer after 10 consecutive failures
+ /// to fetch the updates.
+ void cbFetchUpdates(const SrvConfigPtr& srv_cfg,
+ boost::shared_ptr<unsigned> failure_count);
+
/// @brief Static pointer to the sole instance of the DHCP server.
///
/// This is required for config and command handlers to gain access to
-#line 1 "dhcp6_lexer.cc"
+#line 2 "dhcp6_lexer.cc"
-#line 3 "dhcp6_lexer.cc"
+#line 4 "dhcp6_lexer.cc"
#define YY_INT_ALIGNED short int
/* %% [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 182
-#define YY_END_OF_BUFFER 183
+#define YY_NUM_RULES 183
+#define YY_END_OF_BUFFER 184
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[1489] =
+static const flex_int16_t yy_accept[1505] =
{ 0,
- 175, 175, 0, 0, 0, 0, 0, 0, 0, 0,
- 183, 181, 10, 11, 181, 1, 175, 172, 175, 175,
- 181, 174, 173, 181, 181, 181, 181, 181, 168, 169,
- 181, 181, 181, 170, 171, 5, 5, 5, 181, 181,
- 181, 10, 11, 0, 0, 164, 0, 0, 0, 0,
+ 176, 176, 0, 0, 0, 0, 0, 0, 0, 0,
+ 184, 182, 10, 11, 182, 1, 176, 173, 176, 176,
+ 182, 175, 174, 182, 182, 182, 182, 182, 169, 170,
+ 182, 182, 182, 171, 172, 5, 5, 5, 182, 182,
+ 182, 10, 11, 0, 0, 165, 0, 0, 0, 0,
0, 0, 0, 0, 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, 175,
- 175, 0, 174, 175, 3, 2, 6, 0, 175, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 176,
+ 176, 0, 175, 176, 3, 2, 6, 0, 176, 0,
0, 0, 0, 0, 0, 4, 0, 0, 9, 0,
- 165, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 167, 0, 0, 0,
+ 166, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 168, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
0, 0, 0, 0, 0, 8, 0, 0, 0, 0,
- 142, 0, 0, 143, 0, 0, 0, 0, 0, 0,
+ 143, 0, 0, 144, 0, 0, 0, 0, 0, 0,
- 0, 0, 166, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 167, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 97, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 98, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 180, 178, 0, 177, 176, 0, 0, 0, 0, 0,
+ 181, 179, 0, 178, 177, 0, 0, 0, 0, 0,
- 0, 0, 141, 0, 0, 28, 0, 27, 0, 0,
- 104, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 54, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 142, 0, 0, 28, 0, 27, 0, 0,
+ 105, 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,
- 101, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 102, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 179, 176, 0, 0, 0, 0, 0, 0,
+ 0, 0, 180, 177, 0, 0, 0, 0, 0, 0,
0, 0, 29, 0, 0, 31, 0, 0, 0, 0,
- 0, 105, 0, 0, 0, 0, 0, 0, 0, 82,
- 0, 0, 0, 0, 0, 0, 0, 126, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 57,
+ 0, 106, 0, 0, 0, 0, 0, 0, 0, 83,
+ 0, 0, 0, 0, 0, 0, 0, 127, 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,
- 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 91, 0, 58, 0, 0, 0, 0,
+ 82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 92, 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, 121, 146, 50, 0, 55, 0,
- 0, 0, 0, 0, 0, 161, 37, 0, 34, 0,
- 33, 0, 0, 0, 134, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 122, 147, 51, 0, 56, 0,
+ 0, 0, 0, 0, 0, 162, 37, 0, 34, 0,
+ 33, 0, 0, 0, 135, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 113, 0, 0,
- 0, 0, 0, 0, 0, 0, 145, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 114, 0, 0,
+ 0, 0, 0, 0, 0, 0, 146, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 52, 0, 0, 32, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 84, 0, 0, 0, 0,
+ 0, 0, 53, 0, 0, 32, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 85, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 135, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 136, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 130, 0, 0, 0, 0, 0, 0, 7, 35,
+ 0, 131, 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,
- 103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 104, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 115, 0, 0, 0, 0, 0, 0, 112, 0, 0,
- 0, 0, 0, 0, 0, 0, 86, 0, 0, 0,
+ 116, 0, 0, 0, 0, 0, 0, 113, 0, 0,
+ 0, 0, 0, 0, 0, 0, 87, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 94, 0, 0, 0, 0, 0, 0, 0, 0, 109,
- 0, 0, 0, 0, 93, 0, 0, 0, 0, 0,
+ 95, 0, 0, 0, 0, 0, 0, 0, 0, 110,
+ 0, 0, 0, 0, 94, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 129, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 130, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 139, 110, 0, 0, 0, 0, 114, 51, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 59,
+ 0, 0, 140, 111, 0, 0, 0, 0, 115, 52,
0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 77,
- 0, 0, 0, 0, 0, 0, 162, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 100, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 128, 0, 0, 0,
- 0, 0, 0, 62, 0, 0, 0, 0, 0, 0,
+ 78, 0, 0, 0, 0, 0, 0, 163, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 56, 85, 0, 0, 0, 125, 0, 0, 0, 49,
+ 0, 0, 0, 0, 0, 0, 0, 101, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 129, 0,
+ 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 57, 86, 0, 0, 0, 126, 0, 0,
+ 0, 50, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 117, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 118, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 160, 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,
- 95, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 96, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 41, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
- 0, 140, 14, 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, 131, 0, 116, 0, 0, 0,
+ 0, 16, 0, 0, 141, 14, 0, 0, 0, 0,
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 127, 144, 0, 40, 0, 136, 0,
- 0, 0, 0, 0, 0, 0, 0, 20, 0, 0,
- 0, 79, 0, 0, 0, 0, 138, 53, 0, 87,
+ 0, 0, 0, 0, 0, 0, 0, 0, 132, 0,
+ 117, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 128, 145, 0,
+ 40, 0, 137, 0, 0, 0, 0, 0, 0, 0,
+ 0, 20, 0, 0, 0, 80, 0, 0, 0, 0,
+ 139, 54, 0, 88, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 76, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 0,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,
-
- 0, 0, 133, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 106,
- 0, 0, 0, 0, 0, 80, 102, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,
- 0, 0, 0, 0, 0, 17, 0, 15, 0, 158,
- 157, 0, 68, 0, 0, 0, 0, 0, 30, 120,
+ 77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 84, 0, 0, 0, 0, 0, 64, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 134, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 96, 0, 124, 43, 0, 60, 0, 0,
- 0, 0, 19, 0, 0, 0, 0, 0, 0, 98,
-
- 74, 0, 0, 132, 0, 0, 0, 0, 0, 123,
- 0, 0, 0, 0, 0, 92, 0, 163, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 90, 0, 0,
- 147, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 107, 0, 0, 0, 0, 0,
+ 81, 103, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 74, 0, 0, 0, 0, 0, 0,
+ 17, 0, 15, 0, 159, 158, 0, 69, 0, 0,
+ 0, 0, 0, 30, 121, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 156, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 97, 0,
+ 125, 43, 0, 61, 0, 0, 0, 0, 19, 0,
+
+ 0, 0, 0, 0, 0, 99, 75, 0, 0, 133,
+ 0, 0, 0, 0, 0, 124, 0, 0, 0, 0,
+ 0, 93, 0, 164, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 91, 0, 0, 148, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,
- 0, 0, 67, 0, 0, 0, 118, 47, 0, 0,
- 69, 156, 38, 0, 0, 12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 45, 0, 0, 44, 18,
- 0, 0, 0, 0, 111, 0, 0, 0, 0, 0,
-
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,
- 0, 0, 61, 0, 0, 88, 0, 0, 0, 0,
- 0, 137, 0, 0, 0, 46, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,
- 0, 0, 0, 78, 0, 36, 48, 0, 0, 0,
- 0, 0, 24, 0, 0, 0, 0, 0, 0, 153,
- 0, 122, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 99, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 25, 39, 0, 0, 0, 0, 0, 13,
- 0, 0, 0, 0, 0, 0, 0, 0, 159, 0,
-
- 0, 0, 0, 0, 0, 152, 0, 0, 21, 71,
- 0, 0, 0, 0, 0, 64, 0, 0, 89, 0,
- 0, 151, 0, 0, 70, 0, 0, 65, 0, 23,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 42, 0, 0, 68,
+ 0, 0, 0, 119, 47, 0, 0, 0, 70, 157,
+ 38, 0, 0, 12, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 45, 0, 0, 44, 18, 0, 0,
+
+ 0, 0, 112, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 73, 0, 0,
+ 0, 62, 0, 0, 89, 0, 0, 0, 0, 0,
+ 138, 0, 0, 0, 46, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
+ 0, 0, 79, 0, 36, 48, 0, 0, 0, 0,
+ 0, 0, 24, 0, 0, 0, 0, 0, 0, 154,
+ 0, 123, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 100, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 25, 39, 0, 0, 0, 0, 0,
+
+ 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 160, 0, 0, 0, 0, 0, 0, 153, 0, 0,
+ 21, 72, 0, 0, 0, 0, 0, 65, 0, 0,
+ 0, 90, 0, 0, 152, 0, 0, 71, 0, 0,
+ 66, 0, 23, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 22, 0, 107,
- 119, 0, 0, 0, 0, 0, 0, 149, 154, 75,
- 0, 0, 0, 0, 148, 0, 0, 26, 0, 0,
- 0, 0, 0, 108, 0, 0, 150, 0
+ 0, 0, 0, 0, 0, 0, 0, 49, 0, 0,
+ 0, 0, 0, 22, 0, 108, 120, 0, 0, 0,
+ 0, 0, 0, 150, 155, 76, 0, 0, 0, 0,
+ 149, 0, 0, 26, 0, 0, 0, 0, 0, 109,
+
+ 0, 0, 151, 0
} ;
static const YY_CHAR yy_ec[256] =
3
} ;
-static const flex_int16_t yy_base[1501] =
+static const flex_int16_t yy_base[1517] =
{ 0,
0, 70, 19, 29, 41, 49, 52, 58, 87, 95,
- 1852, 1853, 32, 1848, 141, 0, 201, 1853, 206, 88,
- 11, 213, 1853, 1830, 114, 25, 2, 6, 1853, 1853,
- 73, 11, 17, 1853, 1853, 1853, 104, 1836, 1791, 0,
- 1828, 107, 1843, 217, 241, 1853, 185, 1787, 1793, 1813,
+ 1868, 1869, 32, 1864, 141, 0, 201, 1869, 206, 88,
+ 11, 213, 1869, 1846, 114, 25, 2, 6, 1869, 1869,
+ 73, 11, 17, 1869, 1869, 1869, 104, 1852, 1807, 0,
+ 1844, 107, 1859, 217, 241, 1869, 185, 1803, 1809, 1829,
93, 58, 190, 91, 211, 200, 14, 267, 213, 175,
- 269, 64, 231, 184, 187, 75, 1794, 274, 215, 290,
- 278, 297, 1777, 207, 302, 316, 316, 1796, 0, 355,
- 360, 372, 377, 380, 1853, 0, 1853, 295, 383, 227,
- 296, 283, 327, 361, 293, 1853, 1793, 1832, 1853, 237,
-
- 1853, 394, 363, 1780, 1790, 1829, 375, 321, 403, 1784,
- 369, 378, 376, 382, 388, 1827, 0, 445, 407, 1771,
- 1779, 364, 1775, 1764, 1765, 372, 1781, 1764, 1773, 387,
- 308, 378, 1767, 1765, 391, 1754, 1810, 416, 1757, 1808,
- 1750, 1773, 1770, 1770, 1764, 214, 1757, 1750, 1755, 1749,
- 382, 1760, 1753, 1744, 1743, 1757, 362, 1793, 1742, 414,
- 1754, 1757, 1741, 441, 1742, 417, 1754, 1751, 1752, 1750,
- 422, 1732, 1737, 1733, 1725, 1742, 1734, 0, 422, 450,
- 440, 446, 454, 470, 1733, 1853, 0, 476, 1724, 1727,
- 1853, 465, 447, 1853, 1779, 1734, 477, 1777, 481, 1776,
-
- 477, 1775, 1853, 521, 1774, 489, 1735, 1730, 1729, 1720,
- 491, 1769, 1763, 1729, 1708, 1716, 1722, 1710, 1724, 1720,
- 1721, 1721, 1716, 1708, 1710, 1694, 1698, 1711, 1713, 1710,
- 1702, 1692, 1695, 1709, 1853, 1695, 1703, 1706, 1687, 1686,
- 1736, 1685, 1695, 1733, 452, 1694, 1682, 1693, 1729, 490,
- 1733, 1670, 1685, 9, 1675, 1691, 1672, 1674, 1670, 1676,
- 1667, 1666, 1679, 1672, 1674, 1678, 1677, 1671, 80, 1678,
- 1673, 1665, 1655, 1670, 1665, 1669, 459, 1667, 1653, 1659,
- 1666, 1654, 230, 1647, 1661, 1660, 1663, 1645, 1653, 491,
- 1853, 1853, 501, 1853, 1853, 1640, 0, 376, 1642, 497,
-
- 503, 1696, 1853, 1649, 489, 1853, 1694, 1853, 1688, 557,
- 1853, 484, 1630, 1640, 1690, 1647, 1642, 1645, 1640, 304,
- 1853, 1642, 549, 1640, 1637, 1638, 303, 1642, 1680, 1630,
- 1625, 1622, 1618, 1620, 1669, 1628, 1617, 1633, 1665, 1613,
- 550, 1626, 1626, 1609, 1610, 1623, 1610, 1620, 1615, 1622,
- 1617, 1602, 470, 1611, 1614, 1609, 1605, 1653, 515, 524,
- 1853, 1647, 1599, 1598, 1591, 1593, 1597, 1586, 1593, 1598,
- 513, 1643, 1598, 510, 1595, 1599, 1597, 1586, 1586, 1598,
- 502, 1573, 1574, 1595, 536, 1577, 1574, 1588, 1591, 1586,
- 1572, 1584, 1583, 1582, 1581, 532, 1622, 1621, 1620, 1564,
-
- 581, 1577, 1853, 1853, 1576, 0, 556, 1564, 1615, 1614,
- 1572, 1612, 1853, 1560, 1610, 1853, 563, 609, 557, 1609,
- 1551, 1853, 1556, 1562, 1565, 1548, 1563, 1550, 1549, 1853,
- 1559, 1550, 1547, 1559, 549, 1544, 1546, 1853, 1552, 1537,
- 1539, 1550, 1548, 1543, 588, 1550, 1538, 1531, 1580, 1853,
- 1529, 1545, 1577, 1581, 1539, 1533, 1535, 1536, 1538, 1570,
- 1523, 1518, 1517, 1519, 1512, 1527, 1505, 1512, 1517, 1565,
- 1853, 1512, 1508, 1562, 1515, 1509, 1516, 1501, 1511, 1514,
- 1503, 1502, 1497, 1853, 1552, 1853, 1496, 1495, 1488, 1505,
- 1542, 1489, 1494, 1503, 1497, 1491, 1500, 602, 1535, 1499,
-
- 1482, 1482, 1477, 1473, 1479, 1484, 1477, 1485, 1489, 1472,
- 1528, 1470, 1484, 1473, 1853, 1853, 1853, 1473, 1853, 1483,
- 1517, 1479, 0, 1520, 1470, 1853, 1853, 1467, 1853, 1473,
- 1853, 569, 565, 604, 1853, 1511, 1458, 1509, 1456, 1455,
- 1454, 1461, 1454, 1462, 1465, 1464, 1448, 1463, 1445, 1492,
- 1459, 1495, 1441, 1443, 1455, 1455, 1454, 1853, 1439, 1436,
- 1492, 1449, 1441, 1447, 1438, 1446, 1853, 1431, 1442, 1446,
- 1428, 1442, 530, 1424, 1418, 1423, 1420, 1435, 1436, 1433,
- 1474, 1431, 1853, 1417, 1419, 1853, 1427, 1464, 1463, 605,
- 1426, 1409, 1410, 1415, 1406, 1853, 1420, 1406, 630, 1398,
-
- 1419, 1416, 1408, 1451, 1405, 1412, 1448, 1853, 1396, 1394,
- 1408, 1392, 1406, 1409, 1441, 1440, 1439, 1438, 1385, 1436,
- 1435, 1853, 622, 1397, 1397, 1395, 1384, 1386, 1853, 1853,
- 1429, 1377, 1432, 579, 591, 1375, 1390, 1429, 597, 1423,
- 1385, 1421, 1420, 1374, 1368, 1363, 1416, 1378, 1368, 1376,
- 1412, 1375, 1357, 1365, 1367, 1371, 1406, 1410, 1367, 1366,
- 1853, 1367, 1360, 1349, 1362, 1365, 1360, 1355, 1360, 1357,
- 1356, 1352, 1358, 1353, 1394, 1393, 1337, 1333, 582, 1390,
- 1853, 1389, 1338, 1330, 1381, 1344, 1331, 1853, 1331, 1340,
- 1339, 1339, 1323, 1378, 1321, 1334, 1853, 1326, 1318, 1327,
-
- 1320, 1331, 1308, 1312, 1363, 1327, 1309, 1307, 1318, 1358,
- 1357, 1356, 1303, 1319, 593, 1318, 607, 1295, 1305, 604,
- 1853, 1355, 1301, 1311, 1311, 1300, 1304, 1311, 1348, 1853,
- 17, 587, 11, 69, 1853, 68, 202, 221, 302, 373,
- 386, 488, 493, 549, 558, 582, 584, 583, 591, 645,
- 601, 618, 601, 653, 610, 1853, 622, 622, 616, 627,
- 625, 668, 612, 614, 629, 632, 619, 676, 635, 621,
- 624, 1853, 1853, 640, 639, 644, 632, 1853, 1853, 646,
- 633, 631, 649, 636, 636, 685, 637, 693, 694, 1853,
- 641, 655, 655, 698, 648, 650, 644, 702, 657, 647,
-
- 648, 644, 654, 658, 669, 653, 671, 666, 668, 661,
- 663, 664, 676, 666, 681, 720, 679, 684, 661, 1853,
- 686, 676, 721, 670, 685, 686, 1853, 705, 713, 682,
- 696, 684, 679, 691, 698, 687, 688, 684, 702, 694,
- 689, 740, 746, 705, 696, 1853, 708, 693, 709, 699,
- 711, 705, 751, 719, 704, 705, 1853, 721, 724, 707,
- 709, 765, 710, 1853, 727, 730, 710, 729, 767, 727,
- 723, 718, 736, 735, 721, 736, 728, 724, 742, 727,
- 1853, 1853, 735, 780, 735, 1853, 743, 738, 789, 1853,
- 740, 745, 787, 741, 742, 754, 748, 752, 750, 748,
-
- 759, 802, 748, 753, 805, 806, 752, 764, 1853, 752,
- 760, 758, 763, 775, 759, 773, 774, 775, 791, 796,
- 778, 766, 766, 786, 775, 764, 781, 788, 829, 773,
- 831, 780, 784, 1853, 829, 780, 798, 795, 833, 784,
- 802, 803, 789, 797, 806, 786, 803, 810, 850, 851,
- 1853, 806, 853, 854, 807, 817, 819, 803, 804, 811,
- 820, 863, 812, 811, 828, 867, 819, 823, 821, 819,
- 872, 873, 825, 875, 871, 831, 1853, 836, 829, 820,
- 839, 833, 828, 838, 835, 840, 836, 848, 1853, 832,
- 834, 1853, 1853, 834, 892, 833, 852, 853, 851, 836,
-
- 857, 839, 844, 851, 884, 875, 905, 850, 852, 869,
- 867, 910, 860, 864, 1853, 861, 1853, 875, 873, 876,
- 860, 861, 919, 874, 879, 866, 877, 869, 875, 872,
- 890, 891, 892, 1853, 1853, 890, 1853, 893, 1853, 878,
- 879, 898, 888, 938, 893, 935, 901, 1853, 893, 885,
- 944, 1853, 945, 894, 901, 943, 1853, 1853, 903, 1853,
- 894, 894, 897, 911, 916, 899, 910, 957, 916, 917,
- 918, 956, 914, 963, 918, 965, 1853, 914, 967, 968,
- 910, 970, 931, 915, 927, 917, 947, 976, 1853, 977,
- 926, 941, 928, 1853, 924, 940, 928, 946, 934, 934,
-
- 987, 946, 1853, 948, 947, 949, 942, 951, 952, 949,
- 939, 942, 942, 999, 948, 1001, 1002, 948, 1005, 1853,
- 943, 958, 951, 1009, 964, 1853, 1853, 960, 971, 956,
- 973, 959, 1018, 1020, 966, 976, 1023, 982, 1853, 974,
- 974, 976, 978, 1029, 974, 1853, 975, 1853, 977, 1853,
- 1853, 991, 1853, 985, 1035, 986, 1037, 1019, 1853, 1853,
- 983, 991, 985, 984, 987, 987, 983, 989, 1047, 997,
- 1853, 993, 1050, 1005, 996, 1011, 1011, 1014, 1014, 1011,
- 1053, 1017, 1853, 1009, 1853, 1853, 1020, 1853, 1021, 1022,
- 1019, 1061, 1853, 1012, 1012, 1018, 1017, 1029, 1029, 1853,
-
- 1853, 1068, 1017, 1853, 1034, 1019, 1019, 1021, 1027, 1853,
- 1080, 1024, 1034, 1083, 1046, 1853, 1043, 1853, 1062, 1087,
- 1088, 1047, 1033, 1091, 1092, 1093, 1048, 1853, 1038, 1096,
- 1853, 1036, 1093, 1058, 1054, 1096, 1046, 1051, 1049, 1106,
- 1064, 1108, 1109, 1072, 1061, 1055, 1072, 1115, 1059, 1076,
- 1061, 1076, 1060, 1116, 1117, 1118, 1067, 1120, 1085, 1853,
- 1085, 1072, 1853, 1083, 1130, 1102, 1853, 1853, 1076, 1133,
- 1853, 1853, 1853, 1082, 1080, 1853, 1136, 1084, 1133, 1078,
- 1083, 1142, 1092, 1102, 1103, 1853, 1146, 1101, 1853, 1853,
- 1092, 1107, 1095, 1110, 1853, 1147, 1115, 1108, 1109, 1118,
-
- 1100, 1106, 1109, 1161, 1123, 1122, 1114, 1166, 1117, 1853,
- 1168, 1169, 1853, 1119, 1119, 1853, 1123, 1118, 1117, 1175,
- 1130, 1853, 1172, 1125, 1122, 1853, 1136, 1139, 1182, 1137,
- 1184, 1127, 1129, 1137, 1127, 1143, 1144, 1138, 1154, 1853,
- 1144, 1194, 1155, 1853, 1191, 1853, 1853, 1192, 1149, 1157,
- 1148, 1155, 1853, 1152, 1157, 1155, 1205, 1206, 1151, 1853,
- 1166, 1853, 1156, 1168, 1169, 1212, 1156, 1164, 1158, 1166,
- 1179, 1853, 1156, 1179, 1167, 1221, 1171, 1183, 1174, 1183,
- 1185, 1189, 1853, 1853, 1228, 1173, 1189, 1231, 1232, 1853,
- 1228, 1192, 1189, 1194, 1181, 1238, 1177, 1198, 1853, 1241,
-
- 1200, 1201, 1244, 1203, 1206, 1853, 1247, 1210, 1853, 1853,
- 1192, 1250, 1199, 1252, 1197, 1853, 1214, 1200, 1853, 1200,
- 1202, 1853, 1207, 1217, 1853, 1203, 1215, 1853, 1211, 1853,
- 1221, 1215, 1219, 1210, 1262, 1211, 1219, 1228, 1221, 1216,
- 1217, 1232, 1223, 1230, 1217, 1232, 1237, 1280, 1239, 1282,
- 1283, 1228, 1244, 1235, 1249, 1245, 1238, 1853, 1290, 1853,
- 1853, 1291, 1292, 1249, 1248, 1249, 1239, 1853, 1853, 1853,
- 1297, 1241, 1257, 1300, 1853, 1296, 1247, 1853, 1246, 1248,
- 1259, 1306, 1257, 1853, 1266, 1309, 1853, 1853, 1315, 1320,
- 1325, 1330, 1335, 1340, 1345, 1348, 1322, 1327, 1329, 1342
-
+ 269, 64, 231, 184, 187, 75, 1810, 274, 215, 290,
+ 278, 297, 1793, 207, 302, 316, 316, 1812, 0, 355,
+ 360, 372, 377, 380, 1869, 0, 1869, 295, 383, 227,
+ 296, 283, 327, 361, 293, 1869, 1809, 1848, 1869, 237,
+
+ 1869, 394, 363, 1796, 1806, 1845, 375, 321, 403, 1800,
+ 369, 378, 376, 382, 388, 1843, 0, 445, 407, 1787,
+ 1795, 364, 1791, 1780, 1781, 372, 1797, 1780, 1789, 387,
+ 308, 378, 1783, 1781, 391, 1770, 1826, 416, 1773, 1824,
+ 1766, 1789, 1786, 1786, 1780, 214, 1773, 1766, 1771, 1765,
+ 382, 1776, 1769, 1760, 1759, 1773, 362, 1809, 1758, 414,
+ 1770, 1773, 1757, 441, 1758, 417, 1770, 1767, 1768, 1766,
+ 422, 1748, 1753, 1749, 1741, 1758, 1750, 0, 422, 450,
+ 440, 446, 454, 470, 1749, 1869, 0, 476, 1740, 1743,
+ 1869, 465, 447, 1869, 1795, 1750, 477, 1793, 481, 1792,
+
+ 477, 1791, 1869, 521, 1790, 489, 1751, 1746, 1745, 1736,
+ 491, 1785, 1779, 1745, 1724, 1732, 1738, 1726, 1740, 1736,
+ 1737, 1737, 1732, 1724, 1726, 1710, 1714, 1727, 1729, 1726,
+ 1718, 1708, 1711, 1725, 1869, 1711, 1719, 1722, 1703, 1702,
+ 1752, 1701, 1711, 1749, 452, 1710, 1698, 1709, 1745, 490,
+ 1749, 1686, 1701, 9, 1691, 1707, 1688, 1690, 1686, 1692,
+ 1683, 1682, 1695, 1688, 1690, 1694, 1693, 1687, 80, 1694,
+ 1689, 1681, 1671, 1686, 1681, 1685, 459, 1683, 1669, 1675,
+ 1682, 1670, 230, 1663, 1677, 1676, 1679, 1661, 1669, 491,
+ 1869, 1869, 501, 1869, 1869, 1656, 0, 376, 1658, 497,
+
+ 503, 1712, 1869, 1665, 489, 1869, 1710, 1869, 1704, 557,
+ 1869, 484, 1646, 1656, 1706, 1663, 1658, 1661, 1656, 304,
+ 1869, 1658, 549, 1656, 1653, 1654, 303, 1658, 1696, 1646,
+ 1641, 1638, 1634, 1636, 1685, 1644, 1633, 1649, 1681, 1629,
+ 550, 1642, 1642, 1625, 1626, 1639, 1626, 1636, 1631, 1638,
+ 1633, 1618, 470, 1627, 1630, 1625, 1621, 1669, 515, 524,
+ 1869, 1663, 1615, 1614, 1607, 1609, 1613, 1602, 1609, 1614,
+ 513, 1659, 1614, 510, 1611, 1615, 1613, 1602, 1602, 1614,
+ 502, 1589, 1590, 1611, 536, 1593, 1590, 1604, 1607, 1602,
+ 1588, 1600, 1599, 1598, 1597, 532, 1638, 1637, 1636, 1580,
+
+ 581, 1593, 1869, 1869, 1592, 0, 556, 1580, 1631, 1630,
+ 1588, 1628, 1869, 1576, 1626, 1869, 563, 609, 557, 1625,
+ 1567, 1869, 1572, 1578, 1581, 1564, 1579, 1566, 1565, 1869,
+ 1575, 1566, 1563, 1575, 549, 1560, 1562, 1869, 1568, 1553,
+ 1555, 1566, 1564, 1559, 588, 1566, 1554, 1547, 1596, 1869,
+ 1545, 1561, 1593, 1597, 1555, 1549, 1551, 1552, 1554, 1586,
+ 1539, 1534, 1533, 1535, 1528, 1543, 1521, 1528, 1533, 1581,
+ 1869, 1528, 1524, 1578, 1531, 1525, 1532, 1517, 1527, 1530,
+ 1519, 1518, 1513, 1869, 1568, 1869, 1512, 1511, 1504, 1521,
+ 1558, 1505, 1510, 1519, 1513, 1507, 1516, 602, 1551, 1515,
+
+ 1498, 1498, 1493, 1489, 1495, 1500, 1493, 1501, 1505, 1488,
+ 1544, 1486, 1500, 1489, 1869, 1869, 1869, 1489, 1869, 1499,
+ 1533, 1495, 0, 1536, 1486, 1869, 1869, 1483, 1869, 1489,
+ 1869, 569, 565, 604, 1869, 1527, 1474, 1525, 1472, 1471,
+ 1470, 1477, 1470, 1478, 1481, 1480, 1464, 1479, 1461, 1508,
+ 1475, 1511, 1457, 1459, 1471, 1471, 1470, 1869, 1455, 1452,
+ 1508, 1465, 1457, 1463, 1454, 1462, 1869, 1447, 1458, 1462,
+ 1444, 1458, 530, 1440, 1434, 1439, 1436, 1451, 1452, 1449,
+ 1490, 1447, 1869, 1433, 1435, 1869, 1443, 1480, 1479, 605,
+ 1442, 1425, 1426, 1431, 1422, 1869, 1436, 1422, 630, 1414,
+
+ 1435, 1432, 1424, 1467, 1421, 1428, 1464, 1869, 1412, 1410,
+ 1424, 1408, 1422, 1425, 1457, 1456, 1455, 1454, 1401, 1452,
+ 1451, 1869, 622, 1413, 1413, 1411, 1400, 1402, 1869, 1869,
+ 1445, 1393, 1448, 579, 591, 1391, 1406, 1445, 597, 1439,
+ 1401, 1437, 1436, 1390, 1384, 1379, 1432, 1394, 1384, 1392,
+ 1428, 1391, 1373, 1381, 1383, 1387, 1422, 1426, 1383, 1382,
+ 1869, 1383, 1376, 1365, 1378, 1381, 1376, 1371, 1376, 1373,
+ 1372, 1368, 1374, 1369, 1410, 1409, 1353, 1349, 582, 1406,
+ 1869, 1405, 1354, 1346, 1397, 1360, 1347, 1869, 1347, 1356,
+ 1355, 1355, 1339, 1394, 1337, 1350, 1869, 1342, 1334, 1343,
+
+ 1336, 1347, 1324, 1328, 1379, 1343, 1325, 1323, 1334, 1374,
+ 1373, 1372, 1319, 1335, 593, 1334, 607, 1311, 1321, 604,
+ 1869, 1371, 1317, 1327, 1327, 1316, 1320, 1327, 1364, 1869,
+ 17, 587, 11, 69, 1869, 68, 202, 236, 296, 375,
+ 389, 470, 497, 549, 569, 570, 600, 588, 587, 601,
+ 656, 604, 620, 603, 657, 614, 1869, 625, 625, 618,
+ 629, 627, 670, 614, 617, 632, 634, 621, 678, 637,
+ 623, 626, 1869, 1869, 642, 641, 646, 634, 1869, 1869,
+ 648, 635, 633, 651, 638, 638, 687, 639, 695, 696,
+ 1869, 643, 657, 657, 700, 650, 652, 646, 704, 659,
+
+ 649, 650, 646, 656, 660, 671, 655, 673, 668, 670,
+ 663, 665, 666, 678, 668, 683, 722, 681, 686, 663,
+ 1869, 688, 678, 723, 672, 687, 688, 1869, 707, 715,
+ 684, 698, 686, 681, 682, 694, 701, 690, 691, 687,
+ 705, 697, 692, 743, 749, 708, 699, 1869, 711, 696,
+ 712, 702, 714, 709, 754, 723, 707, 708, 1869, 724,
+ 727, 710, 712, 768, 713, 1869, 730, 733, 713, 732,
+ 770, 730, 726, 721, 739, 738, 724, 739, 731, 727,
+ 745, 730, 1869, 1869, 738, 783, 738, 1869, 746, 741,
+ 792, 1869, 743, 748, 790, 744, 745, 757, 751, 755,
+
+ 753, 751, 762, 805, 751, 756, 808, 809, 755, 767,
+ 1869, 755, 763, 761, 766, 778, 762, 776, 777, 778,
+ 794, 799, 781, 769, 769, 789, 788, 779, 768, 785,
+ 792, 833, 777, 835, 784, 788, 1869, 833, 784, 802,
+ 799, 837, 788, 806, 807, 793, 801, 810, 792, 807,
+ 814, 854, 855, 1869, 810, 857, 858, 811, 821, 823,
+ 807, 808, 815, 824, 867, 816, 815, 832, 871, 823,
+ 827, 825, 823, 876, 877, 829, 879, 875, 835, 1869,
+ 840, 833, 824, 843, 837, 832, 842, 839, 844, 840,
+ 852, 1869, 836, 838, 1869, 1869, 838, 896, 837, 856,
+
+ 857, 855, 840, 861, 843, 848, 855, 888, 879, 909,
+ 854, 856, 873, 868, 872, 915, 865, 869, 1869, 866,
+ 1869, 880, 878, 881, 865, 866, 924, 879, 884, 871,
+ 882, 874, 881, 877, 895, 896, 897, 1869, 1869, 896,
+ 1869, 898, 1869, 883, 884, 903, 893, 943, 898, 940,
+ 906, 1869, 898, 890, 949, 1869, 950, 899, 906, 948,
+ 1869, 1869, 908, 1869, 899, 899, 902, 916, 921, 904,
+ 915, 962, 921, 922, 923, 961, 919, 968, 923, 970,
+ 1869, 919, 972, 973, 915, 975, 936, 920, 932, 922,
+ 952, 981, 1869, 982, 931, 946, 980, 934, 1869, 930,
+
+ 946, 934, 952, 940, 940, 993, 952, 1869, 954, 953,
+ 955, 948, 957, 958, 955, 945, 948, 948, 1005, 954,
+ 1007, 1009, 954, 1011, 1869, 949, 964, 957, 1015, 970,
+ 1869, 1869, 967, 977, 962, 979, 965, 1025, 1026, 972,
+ 982, 1029, 988, 1869, 980, 980, 982, 984, 1035, 980,
+ 1869, 981, 1869, 983, 1869, 1869, 997, 1869, 991, 1041,
+ 992, 1043, 1025, 1869, 1869, 989, 997, 991, 988, 991,
+ 994, 994, 990, 996, 1054, 1004, 1869, 1000, 1057, 1012,
+ 1003, 1018, 1018, 1021, 1021, 1018, 1060, 1024, 1869, 1017,
+ 1869, 1869, 1027, 1869, 1028, 1029, 1026, 1068, 1869, 1019,
+
+ 1019, 1025, 1024, 1036, 1036, 1869, 1869, 1075, 1024, 1869,
+ 1041, 1026, 1026, 1028, 1034, 1869, 1087, 1031, 1041, 1090,
+ 1053, 1869, 1050, 1869, 1069, 1094, 1095, 1054, 1059, 1041,
+ 1099, 1100, 1101, 1056, 1869, 1046, 1104, 1869, 1044, 1101,
+ 1066, 1062, 1104, 1054, 1059, 1057, 1114, 1072, 1116, 1117,
+ 1080, 1069, 1064, 1080, 1123, 1067, 1084, 1069, 1084, 1068,
+ 1124, 1125, 1126, 1075, 1128, 1093, 1869, 1093, 1080, 1869,
+ 1091, 1138, 1110, 1869, 1869, 1084, 1095, 1142, 1869, 1869,
+ 1869, 1091, 1089, 1869, 1145, 1093, 1142, 1087, 1092, 1151,
+ 1101, 1111, 1112, 1869, 1155, 1110, 1869, 1869, 1101, 1116,
+
+ 1104, 1119, 1869, 1156, 1124, 1117, 1118, 1127, 1109, 1116,
+ 1118, 1171, 1132, 1131, 1123, 1175, 1126, 1869, 1177, 1178,
+ 1122, 1869, 1129, 1129, 1869, 1133, 1128, 1127, 1185, 1140,
+ 1869, 1182, 1135, 1132, 1869, 1146, 1149, 1192, 1147, 1194,
+ 1137, 1139, 1147, 1137, 1153, 1154, 1148, 1164, 1869, 1154,
+ 1204, 1165, 1869, 1201, 1869, 1869, 1202, 1203, 1160, 1168,
+ 1159, 1166, 1869, 1163, 1168, 1166, 1216, 1217, 1162, 1869,
+ 1177, 1869, 1167, 1179, 1180, 1223, 1167, 1175, 1169, 1177,
+ 1190, 1869, 1167, 1190, 1174, 1179, 1233, 1183, 1195, 1186,
+ 1195, 1197, 1201, 1869, 1869, 1240, 1185, 1201, 1243, 1244,
+
+ 1869, 1240, 1204, 1201, 1206, 1193, 1250, 1189, 1206, 1211,
+ 1869, 1254, 1213, 1214, 1257, 1216, 1219, 1869, 1260, 1223,
+ 1869, 1869, 1205, 1263, 1212, 1265, 1210, 1869, 1227, 1218,
+ 1214, 1869, 1214, 1216, 1869, 1221, 1231, 1869, 1217, 1229,
+ 1869, 1225, 1869, 1235, 1229, 1237, 1234, 1225, 1277, 1226,
+ 1234, 1243, 1236, 1231, 1232, 1247, 1290, 1239, 1246, 1233,
+ 1248, 1253, 1296, 1255, 1298, 1299, 1244, 1869, 1260, 1251,
+ 1265, 1261, 1254, 1869, 1306, 1869, 1869, 1307, 1308, 1265,
+ 1264, 1265, 1255, 1869, 1869, 1869, 1313, 1257, 1273, 1316,
+ 1869, 1312, 1263, 1869, 1262, 1264, 1275, 1322, 1273, 1869,
+
+ 1282, 1325, 1869, 1869, 1331, 1336, 1341, 1346, 1351, 1356,
+ 1361, 1364, 1338, 1343, 1345, 1358
} ;
-static const flex_int16_t yy_def[1501] =
+static const flex_int16_t yy_def[1517] =
{ 0,
- 1489, 1489, 1490, 1490, 1489, 1489, 1489, 1489, 1489, 1489,
- 1488, 1488, 1488, 1488, 1488, 1491, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1492,
- 1488, 1488, 1488, 1493, 15, 1488, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1494, 45, 45,
+ 1505, 1505, 1506, 1506, 1505, 1505, 1505, 1505, 1505, 1505,
+ 1504, 1504, 1504, 1504, 1504, 1507, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1508,
+ 1504, 1504, 1504, 1509, 15, 1504, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 1510, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1491, 1488,
- 1488, 1488, 1488, 1488, 1488, 1495, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1492, 1488, 1493,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1507, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1511, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1508, 1504, 1509,
- 1488, 1488, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1496, 45, 1494, 45, 45,
+ 1504, 1504, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 1512, 45, 1510, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1495, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1497, 45, 45, 45,
- 1488, 45, 45, 1488, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 1511, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1513, 45, 45, 45,
+ 1504, 45, 45, 1504, 45, 45, 45, 45, 45, 45,
- 45, 1496, 1488, 1494, 45, 45, 45, 45, 45, 45,
+ 45, 1512, 1504, 1510, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1488, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 1504, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1498, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1514, 45, 45, 45,
- 45, 45, 1488, 45, 45, 1488, 45, 1488, 45, 1494,
- 1488, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1488, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 1504, 45, 45, 1504, 45, 1504, 45, 1510,
+ 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1488, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1488, 1488, 1488, 1499, 45, 45, 45, 45,
- 45, 45, 1488, 45, 45, 1488, 45, 1494, 45, 45,
- 45, 1488, 45, 45, 45, 45, 45, 45, 45, 1488,
- 45, 45, 45, 45, 45, 45, 45, 1488, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1488,
+ 45, 45, 1504, 1504, 1504, 1515, 45, 45, 45, 45,
+ 45, 45, 1504, 45, 45, 1504, 45, 1510, 45, 45,
+ 45, 1504, 45, 45, 45, 45, 45, 45, 45, 1504,
+ 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 1504,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1488, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1488, 45, 1488, 45, 45, 45, 45,
+ 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 1504, 45, 1504, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1488, 1488, 1488, 45, 1488, 45,
- 45, 1488, 1500, 45, 45, 1488, 1488, 45, 1488, 45,
- 1488, 45, 45, 45, 1488, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 1504, 1504, 1504, 45, 1504, 45,
+ 45, 1504, 1516, 45, 45, 1504, 1504, 45, 1504, 45,
+ 1504, 45, 45, 45, 1504, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1488, 45, 45,
- 45, 45, 45, 45, 45, 45, 1488, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45,
+ 45, 45, 45, 45, 45, 45, 1504, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1488, 45, 45, 1488, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1488, 45, 45, 45, 45,
+ 45, 45, 1504, 45, 45, 1504, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 1504, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1488, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1488, 45, 45, 45, 45, 45, 45, 1488, 1488,
+ 45, 1504, 45, 45, 45, 45, 45, 45, 1504, 1504,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1488, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1488, 45, 45, 45, 45, 45, 45, 1488, 45, 45,
- 45, 45, 45, 45, 45, 45, 1488, 45, 45, 45,
+ 1504, 45, 45, 45, 45, 45, 45, 1504, 45, 45,
+ 45, 45, 45, 45, 45, 45, 1504, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1488, 45, 45, 45, 45, 45, 45, 45, 45, 1488,
- 45, 45, 45, 45, 1488, 45, 45, 45, 45, 45,
+ 1504, 45, 45, 45, 45, 45, 45, 45, 45, 1504,
+ 45, 45, 45, 45, 1504, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1488, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 1504, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1488, 1488, 45, 45, 45, 45, 1488, 1488, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1488,
+ 45, 45, 1504, 1504, 45, 45, 45, 45, 1504, 1504,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1488,
- 45, 45, 45, 45, 45, 45, 1488, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1488, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1488, 45, 45, 45,
- 45, 45, 45, 1488, 45, 45, 45, 45, 45, 45,
+ 1504, 45, 45, 45, 45, 45, 45, 1504, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1488, 1488, 45, 45, 45, 1488, 45, 45, 45, 1488,
+ 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1504, 45,
+ 45, 45, 45, 45, 45, 1504, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 1504, 1504, 45, 45, 45, 1504, 45, 45,
+ 45, 1504, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1488, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1488, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 1504, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1488, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 1504, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1488, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1488, 45,
- 45, 1488, 1488, 45, 45, 45, 45, 45, 45, 45,
-
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 1504,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1488, 45, 1488, 45, 45, 45,
+ 45, 1504, 45, 45, 1504, 1504, 45, 45, 45, 45,
+
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1488, 1488, 45, 1488, 45, 1488, 45,
- 45, 45, 45, 45, 45, 45, 45, 1488, 45, 45,
- 45, 1488, 45, 45, 45, 45, 1488, 1488, 45, 1488,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1504, 45,
+ 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 1504, 1504, 45,
+ 1504, 45, 1504, 45, 45, 45, 45, 45, 45, 45,
+ 45, 1504, 45, 45, 45, 1504, 45, 45, 45, 45,
+ 1504, 1504, 45, 1504, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1488, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1488, 45,
- 45, 45, 45, 1488, 45, 45, 45, 45, 45, 45,
-
- 45, 45, 1488, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1488,
- 45, 45, 45, 45, 45, 1488, 1488, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1488, 45,
- 45, 45, 45, 45, 45, 1488, 45, 1488, 45, 1488,
- 1488, 45, 1488, 45, 45, 45, 45, 45, 1488, 1488,
+ 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 1504, 45, 45, 45, 45, 45, 1504, 45,
+
+ 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1488, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1488, 45, 1488, 1488, 45, 1488, 45, 45,
- 45, 45, 1488, 45, 45, 45, 45, 45, 45, 1488,
-
- 1488, 45, 45, 1488, 45, 45, 45, 45, 45, 1488,
- 45, 45, 45, 45, 45, 1488, 45, 1488, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1488, 45, 45,
- 1488, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 1504, 45, 45, 45, 45, 45,
+ 1504, 1504, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 1504, 45, 45, 45, 45, 45, 45,
+ 1504, 45, 1504, 45, 1504, 1504, 45, 1504, 45, 45,
+ 45, 45, 45, 1504, 1504, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 1504, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1504, 45,
+ 1504, 1504, 45, 1504, 45, 45, 45, 45, 1504, 45,
+
+ 45, 45, 45, 45, 45, 1504, 1504, 45, 45, 1504,
+ 45, 45, 45, 45, 45, 1504, 45, 45, 45, 45,
+ 45, 1504, 45, 1504, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 1504, 45, 45, 1504, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1488,
- 45, 45, 1488, 45, 45, 45, 1488, 1488, 45, 45,
- 1488, 1488, 1488, 45, 45, 1488, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1488, 45, 45, 1488, 1488,
- 45, 45, 45, 45, 1488, 45, 45, 45, 45, 45,
-
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1488,
- 45, 45, 1488, 45, 45, 1488, 45, 45, 45, 45,
- 45, 1488, 45, 45, 45, 1488, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1488,
- 45, 45, 45, 1488, 45, 1488, 1488, 45, 45, 45,
- 45, 45, 1488, 45, 45, 45, 45, 45, 45, 1488,
- 45, 1488, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1488, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1488, 1488, 45, 45, 45, 45, 45, 1488,
- 45, 45, 45, 45, 45, 45, 45, 45, 1488, 45,
-
- 45, 45, 45, 45, 45, 1488, 45, 45, 1488, 1488,
- 45, 45, 45, 45, 45, 1488, 45, 45, 1488, 45,
- 45, 1488, 45, 45, 1488, 45, 45, 1488, 45, 1488,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 1504, 45, 45, 1504,
+ 45, 45, 45, 1504, 1504, 45, 45, 45, 1504, 1504,
+ 1504, 45, 45, 1504, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 1504, 45, 45, 1504, 1504, 45, 45,
+
+ 45, 45, 1504, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45,
+ 45, 1504, 45, 45, 1504, 45, 45, 45, 45, 45,
+ 1504, 45, 45, 45, 1504, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1504, 45,
+ 45, 45, 1504, 45, 1504, 1504, 45, 45, 45, 45,
+ 45, 45, 1504, 45, 45, 45, 45, 45, 45, 1504,
+ 45, 1504, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 1504, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 1504, 1504, 45, 45, 45, 45, 45,
+
+ 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 1504, 45, 45, 45, 45, 45, 45, 1504, 45, 45,
+ 1504, 1504, 45, 45, 45, 45, 45, 1504, 45, 45,
+ 45, 1504, 45, 45, 1504, 45, 45, 1504, 45, 45,
+ 1504, 45, 1504, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1488, 45, 1488,
- 1488, 45, 45, 45, 45, 45, 45, 1488, 1488, 1488,
- 45, 45, 45, 45, 1488, 45, 45, 1488, 45, 45,
- 45, 45, 45, 1488, 45, 45, 1488, 0, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488
+ 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45,
+ 45, 45, 45, 1504, 45, 1504, 1504, 45, 45, 45,
+ 45, 45, 45, 1504, 1504, 1504, 45, 45, 45, 45,
+ 1504, 45, 45, 1504, 45, 45, 45, 45, 45, 1504,
+ 45, 45, 1504, 0, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504
} ;
-static const flex_int16_t yy_nxt[1925] =
+static const flex_int16_t yy_nxt[1941] =
{ 0,
- 1488, 13, 14, 13, 1488, 15, 16, 1488, 17, 18,
+ 1504, 13, 14, 13, 1504, 15, 16, 1504, 17, 18,
19, 20, 21, 22, 22, 22, 23, 24, 85, 364,
- 37, 14, 37, 86, 25, 26, 38, 828, 1488, 27,
+ 37, 14, 37, 86, 25, 26, 38, 829, 1504, 27,
37, 14, 37, 42, 28, 42, 38, 91, 92, 29,
115, 30, 13, 14, 13, 90, 91, 25, 31, 92,
- 13, 14, 13, 13, 14, 13, 32, 40, 830, 13,
+ 13, 14, 13, 13, 14, 13, 32, 40, 831, 13,
14, 13, 33, 40, 115, 91, 92, 365, 90, 34,
35, 13, 14, 13, 94, 15, 16, 95, 17, 18,
19, 20, 21, 22, 22, 22, 23, 24, 13, 14,
39, 84, 84, 84, 28, 42, 41, 42, 42, 29,
42, 30, 82, 107, 41, 111, 93, 25, 31, 108,
- 130, 138, 88, 831, 88, 832, 32, 89, 89, 89,
+ 130, 138, 88, 832, 88, 833, 32, 89, 89, 89,
131, 139, 33, 140, 380, 82, 107, 381, 111, 34,
35, 44, 44, 44, 45, 45, 46, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 80, 103, 81, 81, 81, 80, 109, 83,
83, 83, 101, 114, 80, 82, 83, 83, 83, 121,
82, 133, 122, 112, 123, 306, 124, 82, 134, 103,
- 396, 103, 101, 113, 135, 833, 114, 110, 82, 136,
+ 396, 103, 101, 113, 135, 834, 114, 110, 82, 136,
163, 107, 137, 82, 164, 179, 112, 102, 146, 244,
82, 45, 147, 45, 45, 45, 45, 119, 45, 45,
45, 113, 117, 120, 107, 45, 45, 102, 45, 45,
- 245, 179, 148, 834, 45, 132, 45, 45, 45, 45,
+ 245, 179, 148, 835, 45, 132, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 89, 89,
128, 142, 143, 45, 180, 144, 152, 45, 181, 45,
118, 145, 129, 149, 153, 150, 154, 151, 112, 114,
157, 155, 156, 158, 159, 165, 181, 427, 113, 166,
- 180, 193, 167, 224, 160, 179, 184, 161, 835, 168,
+ 180, 193, 167, 224, 160, 179, 184, 161, 836, 168,
169, 171, 114, 172, 428, 170, 225, 173, 84, 84,
84, 80, 175, 81, 81, 81, 113, 176, 193, 82,
88, 182, 88, 174, 82, 89, 89, 89, 80, 180,
188, 82, 82, 192, 82, 197, 100, 82, 194, 198,
209, 199, 201, 200, 407, 183, 215, 216, 197, 210,
211, 235, 256, 257, 82, 226, 217, 82, 188, 192,
- 221, 836, 222, 197, 100, 201, 198, 195, 100, 199,
- 200, 227, 100, 407, 188, 230, 250, 837, 231, 223,
+ 221, 837, 222, 197, 100, 201, 198, 195, 100, 199,
+ 200, 227, 100, 407, 188, 230, 250, 838, 231, 223,
100, 266, 232, 198, 100, 290, 100, 187, 204, 204,
204, 205, 353, 236, 292, 204, 204, 204, 204, 204,
204, 260, 206, 276, 261, 262, 302, 277, 291, 290,
273, 305, 274, 302, 291, 307, 309, 293, 294, 298,
389, 409, 410, 354, 305, 403, 355, 295, 484, 298,
411, 415, 407, 390, 305, 403, 301, 412, 307, 465,
- 466, 838, 312, 309, 310, 310, 310, 360, 403, 317,
- 839, 310, 310, 310, 310, 310, 310, 318, 404, 415,
+ 466, 839, 312, 309, 310, 310, 310, 360, 403, 317,
+ 840, 310, 310, 310, 310, 310, 310, 318, 404, 415,
412, 419, 319, 320, 430, 450, 415, 488, 496, 431,
451, 489, 497, 472, 310, 310, 310, 310, 310, 310,
418, 418, 418, 473, 485, 672, 673, 418, 418, 418,
418, 418, 418, 501, 474, 513, 519, 502, 514, 524,
- 524, 520, 532, 558, 533, 548, 840, 635, 559, 634,
+ 524, 520, 532, 558, 533, 548, 841, 635, 559, 634,
418, 418, 418, 418, 418, 418, 452, 608, 549, 630,
- 688, 453, 609, 731, 636, 732, 841, 524, 534, 532,
- 829, 533, 45, 45, 45, 635, 634, 721, 842, 45,
- 45, 45, 45, 45, 45, 697, 776, 722, 732, 777,
- 698, 731, 736, 737, 810, 843, 844, 689, 829, 845,
- 846, 811, 45, 45, 45, 45, 45, 45, 813, 847,
- 818, 848, 849, 850, 851, 814, 819, 852, 853, 815,
- 854, 855, 856, 857, 859, 860, 861, 699, 858, 862,
- 863, 864, 865, 866, 867, 868, 869, 870, 871, 872,
- 873, 874, 875, 877, 878, 879, 876, 880, 881, 882,
+ 688, 453, 609, 731, 636, 732, 842, 524, 534, 532,
+ 830, 533, 45, 45, 45, 635, 634, 721, 843, 45,
+ 45, 45, 45, 45, 45, 697, 777, 722, 732, 778,
+ 698, 731, 736, 737, 811, 738, 844, 689, 830, 845,
+ 846, 812, 45, 45, 45, 45, 45, 45, 814, 847,
+ 819, 848, 849, 850, 851, 815, 820, 852, 853, 816,
+ 854, 855, 856, 857, 858, 859, 861, 699, 862, 863,
+ 860, 864, 865, 866, 867, 868, 869, 870, 871, 872,
+ 873, 874, 875, 876, 877, 879, 880, 881, 878, 882,
883, 884, 885, 886, 887, 888, 889, 890, 891, 892,
893, 894, 895, 896, 897, 898, 899, 900, 901, 902,
- 903, 904, 905, 907, 908, 909, 910, 911, 912, 913,
- 914, 915, 916, 917, 906, 918, 919, 920, 921, 922,
+ 903, 904, 905, 906, 907, 909, 910, 911, 912, 913,
+ 914, 915, 916, 917, 918, 919, 908, 920, 921, 922,
923, 924, 925, 926, 927, 928, 929, 930, 931, 932,
933, 934, 935, 936, 937, 938, 939, 940, 941, 942,
- 920, 943, 944, 919, 945, 946, 947, 948, 949, 950,
- 951, 954, 955, 956, 957, 952, 958, 959, 960, 961,
- 962, 963, 964, 965, 966, 967, 968, 969, 971, 972,
- 973, 974, 975, 976, 977, 978, 979, 980, 970, 981,
+ 943, 944, 922, 945, 946, 921, 947, 948, 949, 950,
+ 951, 952, 953, 954, 957, 958, 959, 960, 955, 961,
+ 962, 963, 964, 965, 966, 967, 968, 969, 970, 971,
+ 972, 974, 975, 976, 977, 978, 979, 980, 981, 982,
- 982, 983, 984, 985, 986, 987, 988, 989, 990, 991,
+ 983, 973, 984, 985, 986, 987, 988, 989, 990, 991,
992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001,
- 1002, 1003, 1004, 1005, 1007, 1006, 953, 1008, 1009, 1010,
+ 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1010, 1009, 956,
1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030,
- 1031, 1005, 1006, 1032, 1033, 1034, 1035, 1036, 1037, 1039,
- 1041, 1042, 1043, 1038, 1044, 1045, 1046, 1047, 1048, 1049,
+ 1031, 1032, 1033, 1034, 1008, 1009, 1035, 1036, 1037, 1038,
+ 1039, 1040, 1041, 1043, 1045, 1046, 1047, 1042, 1048, 1049,
1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059,
1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,
1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079,
- 1080, 1040, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088,
+ 1080, 1081, 1082, 1083, 1084, 1044, 1085, 1086, 1087, 1088,
1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098,
1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,
- 1109, 1087, 1110, 1111, 1112, 1113, 1114, 1088, 1115, 1116,
- 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126,
+ 1109, 1110, 1111, 1112, 1113, 1091, 1114, 1115, 1116, 1117,
+ 1118, 1092, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126,
1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136,
- 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1145, 1146, 1147,
- 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157,
- 1158, 1159, 1160, 1162, 1163, 1164, 1165, 1166, 1167, 1168,
+ 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146,
+ 1147, 1148, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157,
+ 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1167, 1168,
1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178,
- 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1158, 1187,
- 1188, 1189, 1190, 1192, 1193, 1194, 1195, 1144, 1196, 1197,
- 1191, 1198, 1199, 1200, 1161, 1201, 1202, 1203, 1204, 1205,
+ 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188,
+ 1189, 1190, 1191, 1163, 1192, 1193, 1194, 1195, 1196, 1198,
+ 1199, 1200, 1149, 1201, 1202, 1203, 1197, 1204, 1205, 1166,
1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225,
1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235,
- 1236, 1237, 1238, 1239, 1240, 1241, 1219, 1242, 1243, 1244,
- 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254,
+ 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245,
+ 1246, 1247, 1225, 1248, 1249, 1250, 1251, 1252, 1253, 1254,
1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264,
1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274,
1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284,
- 1285, 1286, 1288, 1289, 1290, 1291, 1292, 1293, 1266, 1294,
- 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304,
+ 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294,
+ 1296, 1297, 1298, 1299, 1300, 1273, 1301, 1302, 1303, 1304,
1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314,
- 1315, 1316, 1318, 1319, 1320, 1321, 1317, 1322, 1323, 1324,
- 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334,
- 1335, 1336, 1337, 1338, 1311, 1339, 1340, 1287, 1341, 1342,
- 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352,
+ 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324,
+ 1325, 1327, 1328, 1329, 1330, 1326, 1331, 1332, 1333, 1334,
+ 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344,
+ 1345, 1346, 1319, 1347, 1348, 1295, 1349, 1350, 1351, 1352,
1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362,
1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372,
1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472,
1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482,
- 1483, 1484, 1485, 1486, 1487, 12, 12, 12, 12, 12,
- 36, 36, 36, 36, 36, 79, 297, 79, 79, 79,
- 98, 406, 98, 523, 98, 100, 100, 100, 100, 100,
- 116, 116, 116, 116, 116, 178, 100, 178, 178, 178,
- 202, 202, 202, 827, 826, 825, 824, 823, 822, 821,
- 820, 817, 816, 812, 809, 808, 807, 806, 805, 804,
- 803, 802, 801, 800, 799, 798, 797, 796, 795, 794,
- 793, 792, 791, 790, 789, 788, 787, 786, 785, 784,
- 783, 782, 781, 780, 779, 778, 775, 774, 773, 772,
-
- 771, 770, 769, 768, 767, 766, 765, 764, 763, 762,
- 761, 760, 759, 758, 757, 756, 755, 754, 753, 752,
- 751, 750, 749, 748, 747, 746, 745, 744, 743, 742,
- 741, 740, 739, 738, 735, 734, 733, 730, 729, 728,
- 727, 726, 725, 724, 723, 720, 719, 718, 717, 716,
- 715, 714, 713, 712, 711, 710, 709, 708, 707, 706,
- 705, 704, 703, 702, 701, 700, 696, 695, 694, 693,
- 692, 691, 690, 687, 686, 685, 684, 683, 682, 681,
- 680, 679, 678, 677, 676, 675, 674, 671, 670, 669,
- 668, 667, 666, 665, 664, 663, 662, 661, 660, 659,
-
- 658, 657, 656, 655, 654, 653, 652, 651, 650, 649,
- 648, 647, 646, 645, 644, 643, 642, 641, 640, 639,
- 638, 637, 633, 632, 631, 630, 629, 628, 627, 626,
- 625, 624, 623, 622, 621, 620, 619, 618, 617, 616,
- 615, 614, 613, 612, 611, 610, 607, 606, 605, 604,
- 603, 602, 601, 600, 599, 598, 597, 596, 595, 594,
- 593, 592, 591, 590, 589, 588, 587, 586, 585, 584,
- 583, 582, 581, 580, 579, 578, 577, 576, 575, 574,
- 573, 572, 571, 570, 569, 568, 567, 566, 565, 564,
- 563, 562, 561, 560, 557, 556, 555, 554, 553, 552,
-
- 551, 550, 547, 546, 545, 544, 543, 542, 541, 540,
- 539, 538, 537, 536, 535, 531, 530, 529, 528, 527,
- 526, 525, 522, 521, 518, 517, 516, 515, 512, 511,
- 510, 509, 508, 507, 506, 505, 504, 503, 500, 499,
- 498, 495, 494, 493, 492, 491, 490, 487, 486, 483,
- 482, 481, 480, 479, 478, 477, 476, 475, 471, 470,
- 469, 468, 467, 464, 463, 462, 461, 460, 459, 458,
- 457, 456, 455, 454, 449, 448, 447, 446, 445, 444,
- 443, 442, 441, 440, 439, 438, 437, 434, 433, 432,
- 429, 426, 425, 424, 423, 422, 421, 420, 417, 416,
-
- 414, 413, 408, 405, 402, 401, 400, 399, 398, 397,
- 395, 394, 393, 392, 391, 388, 387, 386, 385, 384,
- 383, 382, 379, 378, 377, 376, 375, 374, 373, 372,
- 371, 370, 369, 368, 367, 366, 363, 362, 361, 359,
- 358, 357, 356, 352, 351, 350, 349, 348, 347, 346,
- 345, 344, 343, 342, 341, 340, 339, 338, 337, 336,
- 335, 334, 333, 332, 331, 330, 329, 328, 327, 326,
- 325, 324, 323, 322, 321, 316, 315, 314, 313, 311,
- 203, 308, 306, 304, 303, 300, 299, 296, 289, 288,
- 287, 286, 285, 284, 282, 281, 280, 279, 275, 265,
-
- 264, 263, 259, 258, 255, 254, 253, 252, 251, 249,
- 248, 247, 246, 243, 242, 241, 240, 239, 238, 237,
- 234, 233, 229, 228, 220, 219, 218, 214, 213, 212,
- 208, 207, 203, 196, 191, 190, 189, 186, 185, 177,
- 162, 141, 106, 105, 104, 43, 99, 97, 96, 87,
- 43, 1488, 11, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
-
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488
+ 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492,
+ 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502,
+ 1503, 12, 12, 12, 12, 12, 36, 36, 36, 36,
+ 36, 79, 297, 79, 79, 79, 98, 406, 98, 523,
+ 98, 100, 100, 100, 100, 100, 116, 116, 116, 116,
+ 116, 178, 100, 178, 178, 178, 202, 202, 202, 828,
+ 827, 826, 825, 824, 823, 822, 821, 818, 817, 813,
+ 810, 809, 808, 807, 806, 805, 804, 803, 802, 801,
+ 800, 799, 798, 797, 796, 795, 794, 793, 792, 791,
+
+ 790, 789, 788, 787, 786, 785, 784, 783, 782, 781,
+ 780, 779, 776, 775, 774, 773, 772, 771, 770, 769,
+ 768, 767, 766, 765, 764, 763, 762, 761, 760, 759,
+ 758, 757, 756, 755, 754, 753, 752, 751, 750, 749,
+ 748, 747, 746, 745, 744, 743, 742, 741, 740, 739,
+ 735, 734, 733, 730, 729, 728, 727, 726, 725, 724,
+ 723, 720, 719, 718, 717, 716, 715, 714, 713, 712,
+ 711, 710, 709, 708, 707, 706, 705, 704, 703, 702,
+ 701, 700, 696, 695, 694, 693, 692, 691, 690, 687,
+ 686, 685, 684, 683, 682, 681, 680, 679, 678, 677,
+
+ 676, 675, 674, 671, 670, 669, 668, 667, 666, 665,
+ 664, 663, 662, 661, 660, 659, 658, 657, 656, 655,
+ 654, 653, 652, 651, 650, 649, 648, 647, 646, 645,
+ 644, 643, 642, 641, 640, 639, 638, 637, 633, 632,
+ 631, 630, 629, 628, 627, 626, 625, 624, 623, 622,
+ 621, 620, 619, 618, 617, 616, 615, 614, 613, 612,
+ 611, 610, 607, 606, 605, 604, 603, 602, 601, 600,
+ 599, 598, 597, 596, 595, 594, 593, 592, 591, 590,
+ 589, 588, 587, 586, 585, 584, 583, 582, 581, 580,
+ 579, 578, 577, 576, 575, 574, 573, 572, 571, 570,
+
+ 569, 568, 567, 566, 565, 564, 563, 562, 561, 560,
+ 557, 556, 555, 554, 553, 552, 551, 550, 547, 546,
+ 545, 544, 543, 542, 541, 540, 539, 538, 537, 536,
+ 535, 531, 530, 529, 528, 527, 526, 525, 522, 521,
+ 518, 517, 516, 515, 512, 511, 510, 509, 508, 507,
+ 506, 505, 504, 503, 500, 499, 498, 495, 494, 493,
+ 492, 491, 490, 487, 486, 483, 482, 481, 480, 479,
+ 478, 477, 476, 475, 471, 470, 469, 468, 467, 464,
+ 463, 462, 461, 460, 459, 458, 457, 456, 455, 454,
+ 449, 448, 447, 446, 445, 444, 443, 442, 441, 440,
+
+ 439, 438, 437, 434, 433, 432, 429, 426, 425, 424,
+ 423, 422, 421, 420, 417, 416, 414, 413, 408, 405,
+ 402, 401, 400, 399, 398, 397, 395, 394, 393, 392,
+ 391, 388, 387, 386, 385, 384, 383, 382, 379, 378,
+ 377, 376, 375, 374, 373, 372, 371, 370, 369, 368,
+ 367, 366, 363, 362, 361, 359, 358, 357, 356, 352,
+ 351, 350, 349, 348, 347, 346, 345, 344, 343, 342,
+ 341, 340, 339, 338, 337, 336, 335, 334, 333, 332,
+ 331, 330, 329, 328, 327, 326, 325, 324, 323, 322,
+ 321, 316, 315, 314, 313, 311, 203, 308, 306, 304,
+
+ 303, 300, 299, 296, 289, 288, 287, 286, 285, 284,
+ 282, 281, 280, 279, 275, 265, 264, 263, 259, 258,
+ 255, 254, 253, 252, 251, 249, 248, 247, 246, 243,
+ 242, 241, 240, 239, 238, 237, 234, 233, 229, 228,
+ 220, 219, 218, 214, 213, 212, 208, 207, 203, 196,
+ 191, 190, 189, 186, 185, 177, 162, 141, 106, 105,
+ 104, 43, 99, 97, 96, 87, 43, 1504, 11, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504
} ;
-static const flex_int16_t yy_chk[1925] =
+static const flex_int16_t yy_chk[1941] =
{ 0,
0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 21, 254,
590, 341, 498, 634, 534, 635, 745, 407, 419, 417,
732, 417, 418, 418, 418, 533, 532, 623, 746, 418,
418, 418, 418, 418, 418, 599, 679, 623, 635, 679,
- 599, 634, 639, 639, 715, 747, 748, 590, 732, 749,
- 750, 715, 418, 418, 418, 418, 418, 418, 717, 751,
- 720, 752, 753, 754, 755, 717, 720, 757, 758, 717,
- 759, 760, 761, 762, 763, 764, 765, 599, 762, 766,
- 767, 768, 769, 770, 771, 774, 775, 776, 777, 780,
- 781, 782, 783, 784, 785, 786, 783, 787, 788, 789,
-
- 791, 792, 793, 794, 795, 796, 797, 798, 799, 800,
- 801, 802, 803, 804, 805, 806, 807, 808, 809, 810,
- 811, 812, 813, 814, 815, 816, 817, 818, 819, 821,
- 822, 823, 824, 825, 813, 826, 828, 829, 830, 831,
- 832, 833, 834, 835, 836, 837, 838, 839, 840, 841,
- 842, 843, 844, 845, 847, 848, 849, 850, 851, 852,
- 829, 853, 854, 828, 855, 856, 858, 859, 860, 861,
- 862, 863, 865, 866, 867, 862, 868, 869, 870, 871,
- 872, 873, 874, 875, 876, 877, 878, 879, 880, 883,
- 884, 885, 887, 888, 889, 891, 892, 893, 879, 894,
-
- 895, 896, 897, 898, 899, 900, 901, 902, 903, 904,
- 905, 906, 907, 908, 910, 911, 912, 913, 914, 915,
- 916, 917, 918, 919, 921, 920, 862, 922, 923, 924,
- 925, 926, 927, 928, 929, 930, 931, 932, 933, 935,
- 936, 937, 938, 939, 940, 941, 942, 943, 944, 945,
- 946, 919, 920, 947, 948, 949, 950, 952, 953, 954,
- 955, 956, 957, 953, 958, 959, 960, 961, 962, 963,
- 964, 965, 966, 967, 968, 969, 970, 971, 972, 973,
- 974, 975, 976, 978, 979, 980, 981, 982, 983, 984,
- 985, 986, 987, 988, 990, 991, 994, 995, 996, 997,
-
- 998, 954, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006,
- 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1016, 1018,
- 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028,
- 1029, 1005, 1030, 1031, 1032, 1033, 1036, 1006, 1038, 1040,
- 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1049, 1050, 1051,
- 1053, 1054, 1055, 1056, 1059, 1061, 1062, 1063, 1064, 1065,
- 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075,
- 1076, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
- 1087, 1088, 1090, 1091, 1092, 1093, 1095, 1096, 1097, 1098,
- 1099, 1100, 1101, 1102, 1104, 1105, 1106, 1107, 1108, 1109,
-
- 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1087, 1118,
- 1119, 1121, 1122, 1123, 1124, 1125, 1128, 1072, 1129, 1130,
- 1122, 1131, 1132, 1133, 1090, 1134, 1135, 1136, 1137, 1138,
- 1140, 1141, 1142, 1143, 1144, 1145, 1147, 1149, 1152, 1154,
- 1155, 1156, 1157, 1158, 1161, 1162, 1163, 1164, 1165, 1166,
- 1167, 1168, 1169, 1170, 1172, 1173, 1174, 1175, 1176, 1177,
- 1178, 1179, 1180, 1181, 1182, 1184, 1158, 1187, 1189, 1190,
- 1191, 1192, 1194, 1195, 1196, 1197, 1198, 1199, 1202, 1203,
- 1205, 1206, 1207, 1208, 1209, 1211, 1212, 1213, 1214, 1215,
- 1217, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227,
-
- 1229, 1230, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239,
- 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1219, 1247,
- 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257,
- 1258, 1259, 1261, 1262, 1264, 1265, 1266, 1269, 1270, 1274,
- 1275, 1277, 1278, 1279, 1280, 1281, 1277, 1282, 1283, 1284,
- 1285, 1287, 1288, 1291, 1292, 1293, 1294, 1296, 1297, 1298,
- 1299, 1300, 1301, 1302, 1266, 1303, 1304, 1240, 1305, 1306,
- 1307, 1308, 1309, 1311, 1312, 1314, 1315, 1317, 1318, 1319,
- 1320, 1321, 1323, 1324, 1325, 1327, 1328, 1329, 1330, 1331,
- 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1341, 1342,
-
- 1343, 1345, 1348, 1349, 1350, 1351, 1352, 1354, 1355, 1356,
- 1357, 1358, 1359, 1361, 1363, 1364, 1365, 1366, 1367, 1368,
- 1369, 1370, 1371, 1373, 1374, 1375, 1376, 1377, 1378, 1379,
- 1380, 1381, 1382, 1385, 1386, 1387, 1388, 1389, 1391, 1392,
- 1393, 1394, 1395, 1396, 1397, 1398, 1400, 1401, 1402, 1403,
- 1404, 1405, 1407, 1408, 1411, 1412, 1413, 1414, 1415, 1417,
- 1418, 1420, 1421, 1423, 1424, 1426, 1427, 1429, 1431, 1432,
- 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442,
- 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452,
- 1453, 1454, 1455, 1456, 1457, 1459, 1462, 1463, 1464, 1465,
-
- 1466, 1467, 1471, 1472, 1473, 1474, 1476, 1477, 1479, 1480,
- 1481, 1482, 1483, 1485, 1486, 1489, 1489, 1489, 1489, 1489,
- 1490, 1490, 1490, 1490, 1490, 1491, 1497, 1491, 1491, 1491,
- 1492, 1498, 1492, 1499, 1492, 1493, 1493, 1493, 1493, 1493,
- 1494, 1494, 1494, 1494, 1494, 1495, 1500, 1495, 1495, 1495,
- 1496, 1496, 1496, 729, 728, 727, 726, 725, 724, 723,
- 722, 719, 718, 716, 714, 713, 712, 711, 710, 709,
- 708, 707, 706, 705, 704, 703, 702, 701, 700, 699,
- 698, 696, 695, 694, 693, 692, 691, 690, 689, 687,
- 686, 685, 684, 683, 682, 680, 678, 677, 676, 675,
-
- 674, 673, 672, 671, 670, 669, 668, 667, 666, 665,
- 664, 663, 662, 660, 659, 658, 657, 656, 655, 654,
- 653, 652, 651, 650, 649, 648, 647, 646, 645, 644,
- 643, 642, 641, 640, 638, 637, 636, 633, 632, 631,
- 628, 627, 626, 625, 624, 621, 620, 619, 618, 617,
- 616, 615, 614, 613, 612, 611, 610, 609, 607, 606,
- 605, 604, 603, 602, 601, 600, 598, 597, 595, 594,
- 593, 592, 591, 589, 588, 587, 585, 584, 582, 581,
- 580, 579, 578, 577, 576, 575, 574, 572, 571, 570,
- 569, 568, 566, 565, 564, 563, 562, 561, 560, 559,
-
- 557, 556, 555, 554, 553, 552, 551, 550, 549, 548,
- 547, 546, 545, 544, 543, 542, 541, 540, 539, 538,
- 537, 536, 530, 528, 525, 524, 522, 521, 520, 518,
- 514, 513, 512, 511, 510, 509, 508, 507, 506, 505,
- 504, 503, 502, 501, 500, 499, 497, 496, 495, 494,
- 493, 492, 491, 490, 489, 488, 487, 485, 483, 482,
- 481, 480, 479, 478, 477, 476, 475, 474, 473, 472,
- 470, 469, 468, 467, 466, 465, 464, 463, 462, 461,
- 460, 459, 458, 457, 456, 455, 454, 453, 452, 451,
- 449, 448, 447, 446, 444, 443, 442, 441, 440, 439,
-
- 437, 436, 434, 433, 432, 431, 429, 428, 427, 426,
- 425, 424, 423, 421, 420, 415, 414, 412, 411, 410,
- 409, 408, 405, 402, 400, 399, 398, 397, 395, 394,
- 393, 392, 391, 390, 389, 388, 387, 386, 384, 383,
- 382, 380, 379, 378, 377, 376, 375, 373, 372, 370,
- 369, 368, 367, 366, 365, 364, 363, 362, 358, 357,
- 356, 355, 354, 352, 351, 350, 349, 348, 347, 346,
- 345, 344, 343, 342, 340, 339, 338, 337, 336, 335,
- 334, 333, 332, 331, 330, 329, 328, 326, 325, 324,
- 322, 319, 318, 317, 316, 315, 314, 313, 309, 307,
-
- 304, 302, 299, 296, 289, 288, 287, 286, 285, 284,
- 282, 281, 280, 279, 278, 276, 275, 274, 273, 272,
- 271, 270, 268, 267, 266, 265, 264, 263, 262, 261,
- 260, 259, 258, 257, 256, 255, 253, 252, 251, 249,
- 248, 247, 246, 244, 243, 242, 241, 240, 239, 238,
- 237, 236, 234, 233, 232, 231, 230, 229, 228, 227,
- 226, 225, 224, 223, 222, 221, 220, 219, 218, 217,
- 216, 215, 214, 213, 212, 210, 209, 208, 207, 205,
- 202, 200, 198, 196, 195, 190, 189, 185, 177, 176,
- 175, 174, 173, 172, 170, 169, 168, 167, 165, 163,
-
- 162, 161, 159, 158, 156, 155, 154, 153, 152, 150,
- 149, 148, 147, 145, 144, 143, 142, 141, 140, 139,
- 137, 136, 134, 133, 129, 128, 127, 125, 124, 123,
- 121, 120, 116, 110, 106, 105, 104, 98, 97, 78,
- 73, 67, 50, 49, 48, 43, 41, 39, 38, 24,
- 14, 11, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
-
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488,
- 1488, 1488, 1488, 1488
+ 599, 634, 639, 639, 715, 639, 747, 590, 732, 748,
+ 749, 715, 418, 418, 418, 418, 418, 418, 717, 750,
+ 720, 751, 752, 753, 754, 717, 720, 755, 756, 717,
+ 758, 759, 760, 761, 762, 763, 764, 599, 765, 766,
+ 763, 767, 768, 769, 770, 771, 772, 775, 776, 777,
+ 778, 781, 782, 783, 784, 785, 786, 787, 784, 788,
+
+ 789, 790, 792, 793, 794, 795, 796, 797, 798, 799,
+ 800, 801, 802, 803, 804, 805, 806, 807, 808, 809,
+ 810, 811, 812, 813, 814, 815, 816, 817, 818, 819,
+ 820, 822, 823, 824, 825, 826, 814, 827, 829, 830,
+ 831, 832, 833, 834, 835, 836, 837, 838, 839, 840,
+ 841, 842, 843, 844, 845, 846, 847, 849, 850, 851,
+ 852, 853, 830, 854, 855, 829, 856, 857, 858, 860,
+ 861, 862, 863, 864, 865, 867, 868, 869, 864, 870,
+ 871, 872, 873, 874, 875, 876, 877, 878, 879, 880,
+ 881, 882, 885, 886, 887, 889, 890, 891, 893, 894,
+
+ 895, 881, 896, 897, 898, 899, 900, 901, 902, 903,
+ 904, 905, 906, 907, 908, 909, 910, 912, 913, 914,
+ 915, 916, 917, 918, 919, 920, 921, 923, 922, 864,
+ 924, 925, 926, 927, 928, 929, 930, 931, 932, 933,
+ 934, 935, 936, 938, 939, 940, 941, 942, 943, 944,
+ 945, 946, 947, 948, 921, 922, 949, 950, 951, 952,
+ 953, 955, 956, 957, 958, 959, 960, 956, 961, 962,
+ 963, 964, 965, 966, 967, 968, 969, 970, 971, 972,
+ 973, 974, 975, 976, 977, 978, 979, 981, 982, 983,
+ 984, 985, 986, 987, 988, 989, 990, 991, 993, 994,
+
+ 997, 998, 999, 1000, 1001, 957, 1002, 1003, 1004, 1005,
+ 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015,
+ 1016, 1017, 1018, 1020, 1022, 1023, 1024, 1025, 1026, 1027,
+ 1028, 1029, 1030, 1031, 1032, 1008, 1033, 1034, 1035, 1036,
+ 1037, 1009, 1040, 1042, 1044, 1045, 1046, 1047, 1048, 1049,
+ 1050, 1051, 1053, 1054, 1055, 1057, 1058, 1059, 1060, 1063,
+ 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
+ 1075, 1076, 1077, 1078, 1079, 1080, 1082, 1083, 1084, 1085,
+ 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1094, 1095, 1096,
+ 1097, 1098, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107,
+
+ 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118,
+ 1119, 1120, 1121, 1091, 1122, 1123, 1124, 1126, 1127, 1128,
+ 1129, 1130, 1076, 1133, 1134, 1135, 1127, 1136, 1137, 1094,
+ 1138, 1139, 1140, 1141, 1142, 1143, 1145, 1146, 1147, 1148,
+ 1149, 1150, 1152, 1154, 1157, 1159, 1160, 1161, 1162, 1163,
+ 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175,
+ 1176, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186,
+ 1187, 1188, 1163, 1190, 1193, 1195, 1196, 1197, 1198, 1200,
+ 1201, 1202, 1203, 1204, 1205, 1208, 1209, 1211, 1212, 1213,
+ 1214, 1215, 1217, 1218, 1219, 1220, 1221, 1223, 1225, 1226,
+
+ 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1236, 1237,
+ 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1246, 1247,
+ 1248, 1249, 1250, 1251, 1252, 1225, 1253, 1254, 1255, 1256,
+ 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266,
+ 1268, 1269, 1271, 1272, 1273, 1276, 1277, 1278, 1282, 1283,
+ 1285, 1286, 1287, 1288, 1289, 1285, 1290, 1291, 1292, 1293,
+ 1295, 1296, 1299, 1300, 1301, 1302, 1304, 1305, 1306, 1307,
+ 1308, 1309, 1273, 1310, 1311, 1247, 1312, 1313, 1314, 1315,
+ 1316, 1317, 1319, 1320, 1321, 1323, 1324, 1326, 1327, 1328,
+ 1329, 1330, 1332, 1333, 1334, 1336, 1337, 1338, 1339, 1340,
+
+ 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1350, 1351,
+ 1352, 1354, 1357, 1358, 1359, 1360, 1361, 1362, 1364, 1365,
+ 1366, 1367, 1368, 1369, 1371, 1373, 1374, 1375, 1376, 1377,
+ 1378, 1379, 1380, 1381, 1383, 1384, 1385, 1386, 1387, 1388,
+ 1389, 1390, 1391, 1392, 1393, 1396, 1397, 1398, 1399, 1400,
+ 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1412,
+ 1413, 1414, 1415, 1416, 1417, 1419, 1420, 1423, 1424, 1425,
+ 1426, 1427, 1429, 1430, 1431, 1433, 1434, 1436, 1437, 1439,
+ 1440, 1442, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451,
+ 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461,
+
+ 1462, 1463, 1464, 1465, 1466, 1467, 1469, 1470, 1471, 1472,
+ 1473, 1475, 1478, 1479, 1480, 1481, 1482, 1483, 1487, 1488,
+ 1489, 1490, 1492, 1493, 1495, 1496, 1497, 1498, 1499, 1501,
+ 1502, 1505, 1505, 1505, 1505, 1505, 1506, 1506, 1506, 1506,
+ 1506, 1507, 1513, 1507, 1507, 1507, 1508, 1514, 1508, 1515,
+ 1508, 1509, 1509, 1509, 1509, 1509, 1510, 1510, 1510, 1510,
+ 1510, 1511, 1516, 1511, 1511, 1511, 1512, 1512, 1512, 729,
+ 728, 727, 726, 725, 724, 723, 722, 719, 718, 716,
+ 714, 713, 712, 711, 710, 709, 708, 707, 706, 705,
+ 704, 703, 702, 701, 700, 699, 698, 696, 695, 694,
+
+ 693, 692, 691, 690, 689, 687, 686, 685, 684, 683,
+ 682, 680, 678, 677, 676, 675, 674, 673, 672, 671,
+ 670, 669, 668, 667, 666, 665, 664, 663, 662, 660,
+ 659, 658, 657, 656, 655, 654, 653, 652, 651, 650,
+ 649, 648, 647, 646, 645, 644, 643, 642, 641, 640,
+ 638, 637, 636, 633, 632, 631, 628, 627, 626, 625,
+ 624, 621, 620, 619, 618, 617, 616, 615, 614, 613,
+ 612, 611, 610, 609, 607, 606, 605, 604, 603, 602,
+ 601, 600, 598, 597, 595, 594, 593, 592, 591, 589,
+ 588, 587, 585, 584, 582, 581, 580, 579, 578, 577,
+
+ 576, 575, 574, 572, 571, 570, 569, 568, 566, 565,
+ 564, 563, 562, 561, 560, 559, 557, 556, 555, 554,
+ 553, 552, 551, 550, 549, 548, 547, 546, 545, 544,
+ 543, 542, 541, 540, 539, 538, 537, 536, 530, 528,
+ 525, 524, 522, 521, 520, 518, 514, 513, 512, 511,
+ 510, 509, 508, 507, 506, 505, 504, 503, 502, 501,
+ 500, 499, 497, 496, 495, 494, 493, 492, 491, 490,
+ 489, 488, 487, 485, 483, 482, 481, 480, 479, 478,
+ 477, 476, 475, 474, 473, 472, 470, 469, 468, 467,
+ 466, 465, 464, 463, 462, 461, 460, 459, 458, 457,
+
+ 456, 455, 454, 453, 452, 451, 449, 448, 447, 446,
+ 444, 443, 442, 441, 440, 439, 437, 436, 434, 433,
+ 432, 431, 429, 428, 427, 426, 425, 424, 423, 421,
+ 420, 415, 414, 412, 411, 410, 409, 408, 405, 402,
+ 400, 399, 398, 397, 395, 394, 393, 392, 391, 390,
+ 389, 388, 387, 386, 384, 383, 382, 380, 379, 378,
+ 377, 376, 375, 373, 372, 370, 369, 368, 367, 366,
+ 365, 364, 363, 362, 358, 357, 356, 355, 354, 352,
+ 351, 350, 349, 348, 347, 346, 345, 344, 343, 342,
+ 340, 339, 338, 337, 336, 335, 334, 333, 332, 331,
+
+ 330, 329, 328, 326, 325, 324, 322, 319, 318, 317,
+ 316, 315, 314, 313, 309, 307, 304, 302, 299, 296,
+ 289, 288, 287, 286, 285, 284, 282, 281, 280, 279,
+ 278, 276, 275, 274, 273, 272, 271, 270, 268, 267,
+ 266, 265, 264, 263, 262, 261, 260, 259, 258, 257,
+ 256, 255, 253, 252, 251, 249, 248, 247, 246, 244,
+ 243, 242, 241, 240, 239, 238, 237, 236, 234, 233,
+ 232, 231, 230, 229, 228, 227, 226, 225, 224, 223,
+ 222, 221, 220, 219, 218, 217, 216, 215, 214, 213,
+ 212, 210, 209, 208, 207, 205, 202, 200, 198, 196,
+
+ 195, 190, 189, 185, 177, 176, 175, 174, 173, 172,
+ 170, 169, 168, 167, 165, 163, 162, 161, 159, 158,
+ 156, 155, 154, 153, 152, 150, 149, 148, 147, 145,
+ 144, 143, 142, 141, 140, 139, 137, 136, 134, 133,
+ 129, 128, 127, 125, 124, 123, 121, 120, 116, 110,
+ 106, 105, 104, 98, 97, 78, 73, 67, 50, 49,
+ 48, 43, 41, 39, 38, 24, 14, 11, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504
} ;
static yy_state_type yy_last_accepting_state;
extern int yy_flex_debug;
int yy_flex_debug = 1;
-static const flex_int16_t yy_rule_linenum[182] =
+static const flex_int16_t yy_rule_linenum[183] =
{ 0,
149, 151, 153, 158, 159, 164, 165, 166, 178, 181,
186, 193, 202, 211, 220, 229, 238, 247, 256, 265,
274, 283, 292, 301, 310, 319, 328, 338, 348, 358,
368, 378, 387, 397, 407, 417, 427, 436, 445, 454,
- 463, 472, 481, 490, 499, 508, 517, 526, 536, 545,
- 558, 567, 576, 585, 594, 605, 616, 627, 638, 650,
- 661, 672, 683, 694, 705, 716, 727, 738, 749, 760,
- 771, 782, 793, 804, 815, 824, 833, 843, 852, 861,
- 876, 892, 901, 910, 919, 928, 937, 946, 955, 964,
- 973, 982, 1004, 1026, 1035, 1045, 1055, 1064, 1074, 1085,
-
- 1094, 1103, 1112, 1121, 1130, 1140, 1149, 1158, 1167, 1176,
- 1185, 1194, 1203, 1212, 1221, 1231, 1240, 1249, 1259, 1271,
- 1284, 1293, 1302, 1312, 1322, 1331, 1342, 1352, 1361, 1371,
- 1381, 1390, 1399, 1408, 1417, 1427, 1436, 1446, 1455, 1464,
- 1473, 1482, 1491, 1500, 1509, 1518, 1527, 1536, 1545, 1554,
- 1563, 1572, 1581, 1590, 1599, 1608, 1617, 1626, 1635, 1644,
- 1653, 1662, 1671, 1681, 1780, 1785, 1790, 1795, 1796, 1797,
- 1798, 1799, 1800, 1802, 1820, 1833, 1838, 1842, 1844, 1846,
- 1848
+ 463, 472, 481, 490, 499, 508, 517, 526, 535, 544,
+ 553, 566, 575, 584, 593, 602, 613, 624, 635, 646,
+ 658, 669, 680, 691, 702, 713, 724, 735, 746, 757,
+ 768, 779, 790, 801, 812, 823, 832, 841, 851, 860,
+ 869, 884, 900, 909, 918, 927, 936, 945, 954, 963,
+ 972, 981, 990, 1012, 1034, 1043, 1053, 1063, 1072, 1082,
+
+ 1093, 1102, 1111, 1120, 1129, 1138, 1148, 1157, 1166, 1175,
+ 1184, 1193, 1202, 1211, 1220, 1229, 1239, 1248, 1257, 1267,
+ 1279, 1292, 1301, 1310, 1320, 1330, 1339, 1350, 1360, 1369,
+ 1379, 1389, 1398, 1407, 1416, 1425, 1435, 1444, 1454, 1463,
+ 1472, 1481, 1490, 1499, 1508, 1517, 1526, 1535, 1544, 1553,
+ 1562, 1571, 1580, 1589, 1598, 1607, 1616, 1625, 1634, 1643,
+ 1652, 1661, 1670, 1679, 1689, 1788, 1793, 1798, 1803, 1804,
+ 1805, 1806, 1807, 1808, 1810, 1828, 1841, 1846, 1850, 1852,
+ 1854, 1856
} ;
/* The intent behind this definition is that it'll catch
/* To avoid the call to exit... oops! */
#define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
-#line 1764 "dhcp6_lexer.cc"
+#line 1774 "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
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 1790 "dhcp6_lexer.cc"
-#line 1791 "dhcp6_lexer.cc"
+#line 1800 "dhcp6_lexer.cc"
+#line 1801 "dhcp6_lexer.cc"
#define INITIAL 0
#define COMMENT 1
}
-#line 2123 "dhcp6_lexer.cc"
+#line 2133 "dhcp6_lexer.cc"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
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 >= 1489 )
+ if ( yy_current_state >= 1505 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 1488 );
+ while ( yy_current_state != 1504 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
{
if ( yy_act == 0 )
fprintf( stderr, "--scanner backing up\n" );
- else if ( yy_act < 182 )
+ else if ( yy_act < 183 )
fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
(long)yy_rule_linenum[yy_act], yytext );
- else if ( yy_act == 182 )
+ else if ( yy_act == 183 )
fprintf( stderr, "--accepting default rule (\"%s\")\n",
yytext );
- else if ( yy_act == 183 )
+ else if ( yy_act == 184 )
fprintf( stderr, "--(end of buffer or a NUL)\n" );
else
fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 536 "dhcp6_lexer.ll"
+#line 535 "dhcp6_lexer.ll"
+{
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser6Context::CONFIG_CONTROL:
+ return isc::dhcp::Dhcp6Parser::make_CONFIG_FETCH_WAIT_TIME(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp6Parser::make_STRING("config-fetch-wait-time", driver.loc_);
+ }
+}
+ YY_BREAK
+case 50:
+YY_RULE_SETUP
+#line 544 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::HOSTS_DATABASE:
}
}
YY_BREAK
-case 50:
+case 51:
YY_RULE_SETUP
-#line 545 "dhcp6_lexer.ll"
+#line 553 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 51:
+case 52:
YY_RULE_SETUP
-#line 558 "dhcp6_lexer.ll"
+#line 566 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DATABASE_TYPE:
}
}
YY_BREAK
-case 52:
+case 53:
YY_RULE_SETUP
-#line 567 "dhcp6_lexer.ll"
+#line 575 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DATABASE_TYPE:
}
}
YY_BREAK
-case 53:
+case 54:
YY_RULE_SETUP
-#line 576 "dhcp6_lexer.ll"
+#line 584 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DATABASE_TYPE:
}
}
YY_BREAK
-case 54:
+case 55:
YY_RULE_SETUP
-#line 585 "dhcp6_lexer.ll"
+#line 593 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DATABASE_TYPE:
}
}
YY_BREAK
-case 55:
+case 56:
YY_RULE_SETUP
-#line 594 "dhcp6_lexer.ll"
+#line 602 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 56:
+case 57:
YY_RULE_SETUP
-#line 605 "dhcp6_lexer.ll"
+#line 613 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 57:
+case 58:
YY_RULE_SETUP
-#line 616 "dhcp6_lexer.ll"
+#line 624 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 58:
+case 59:
YY_RULE_SETUP
-#line 627 "dhcp6_lexer.ll"
+#line 635 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 59:
+case 60:
YY_RULE_SETUP
-#line 638 "dhcp6_lexer.ll"
+#line 646 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 60:
+case 61:
YY_RULE_SETUP
-#line 650 "dhcp6_lexer.ll"
+#line 658 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 61:
+case 62:
YY_RULE_SETUP
-#line 661 "dhcp6_lexer.ll"
+#line 669 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 62:
+case 63:
YY_RULE_SETUP
-#line 672 "dhcp6_lexer.ll"
+#line 680 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 63:
+case 64:
YY_RULE_SETUP
-#line 683 "dhcp6_lexer.ll"
+#line 691 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 64:
+case 65:
YY_RULE_SETUP
-#line 694 "dhcp6_lexer.ll"
+#line 702 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 65:
+case 66:
YY_RULE_SETUP
-#line 705 "dhcp6_lexer.ll"
+#line 713 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 66:
+case 67:
YY_RULE_SETUP
-#line 716 "dhcp6_lexer.ll"
+#line 724 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 67:
+case 68:
YY_RULE_SETUP
-#line 727 "dhcp6_lexer.ll"
+#line 735 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 68:
+case 69:
YY_RULE_SETUP
-#line 738 "dhcp6_lexer.ll"
+#line 746 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 69:
+case 70:
YY_RULE_SETUP
-#line 749 "dhcp6_lexer.ll"
+#line 757 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 70:
+case 71:
YY_RULE_SETUP
-#line 760 "dhcp6_lexer.ll"
+#line 768 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 71:
+case 72:
YY_RULE_SETUP
-#line 771 "dhcp6_lexer.ll"
+#line 779 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 72:
+case 73:
YY_RULE_SETUP
-#line 782 "dhcp6_lexer.ll"
+#line 790 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 73:
+case 74:
YY_RULE_SETUP
-#line 793 "dhcp6_lexer.ll"
+#line 801 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 74:
+case 75:
YY_RULE_SETUP
-#line 804 "dhcp6_lexer.ll"
+#line 812 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 75:
+case 76:
YY_RULE_SETUP
-#line 815 "dhcp6_lexer.ll"
+#line 823 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 76:
+case 77:
YY_RULE_SETUP
-#line 824 "dhcp6_lexer.ll"
+#line 832 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 77:
+case 78:
YY_RULE_SETUP
-#line 833 "dhcp6_lexer.ll"
+#line 841 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 78:
+case 79:
YY_RULE_SETUP
-#line 843 "dhcp6_lexer.ll"
+#line 851 "dhcp6_lexer.ll"
{
switch (driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 79:
+case 80:
YY_RULE_SETUP
-#line 852 "dhcp6_lexer.ll"
+#line 860 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 80:
+case 81:
YY_RULE_SETUP
-#line 861 "dhcp6_lexer.ll"
+#line 869 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 81:
+case 82:
YY_RULE_SETUP
-#line 876 "dhcp6_lexer.ll"
+#line 884 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 82:
+case 83:
YY_RULE_SETUP
-#line 892 "dhcp6_lexer.ll"
+#line 900 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OPTION_DATA:
}
}
YY_BREAK
-case 83:
+case 84:
YY_RULE_SETUP
-#line 901 "dhcp6_lexer.ll"
+#line 909 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OPTION_DATA:
}
}
YY_BREAK
-case 84:
+case 85:
YY_RULE_SETUP
-#line 910 "dhcp6_lexer.ll"
+#line 918 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
}
}
YY_BREAK
-case 85:
+case 86:
YY_RULE_SETUP
-#line 919 "dhcp6_lexer.ll"
+#line 927 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
}
}
YY_BREAK
-case 86:
+case 87:
YY_RULE_SETUP
-#line 928 "dhcp6_lexer.ll"
+#line 936 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::PD_POOLS:
}
}
YY_BREAK
-case 87:
+case 88:
YY_RULE_SETUP
-#line 937 "dhcp6_lexer.ll"
+#line 945 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::PD_POOLS:
}
}
YY_BREAK
-case 88:
+case 89:
YY_RULE_SETUP
-#line 946 "dhcp6_lexer.ll"
+#line 954 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::PD_POOLS:
}
}
YY_BREAK
-case 89:
+case 90:
YY_RULE_SETUP
-#line 955 "dhcp6_lexer.ll"
+#line 963 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::PD_POOLS:
}
}
YY_BREAK
-case 90:
+case 91:
YY_RULE_SETUP
-#line 964 "dhcp6_lexer.ll"
+#line 972 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::PD_POOLS:
}
}
YY_BREAK
-case 91:
+case 92:
YY_RULE_SETUP
-#line 973 "dhcp6_lexer.ll"
+#line 981 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::POOLS:
}
}
YY_BREAK
-case 92:
+case 93:
YY_RULE_SETUP
-#line 982 "dhcp6_lexer.ll"
+#line 990 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 93:
+case 94:
YY_RULE_SETUP
-#line 1004 "dhcp6_lexer.ll"
+#line 1012 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 94:
+case 95:
YY_RULE_SETUP
-#line 1026 "dhcp6_lexer.ll"
+#line 1034 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
}
}
YY_BREAK
-case 95:
+case 96:
YY_RULE_SETUP
-#line 1035 "dhcp6_lexer.ll"
+#line 1043 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
}
}
YY_BREAK
-case 96:
+case 97:
YY_RULE_SETUP
-#line 1045 "dhcp6_lexer.ll"
+#line 1053 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
}
}
YY_BREAK
-case 97:
+case 98:
YY_RULE_SETUP
-#line 1055 "dhcp6_lexer.ll"
+#line 1063 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
}
}
YY_BREAK
-case 98:
+case 99:
YY_RULE_SETUP
-#line 1064 "dhcp6_lexer.ll"
+#line 1072 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
}
}
YY_BREAK
-case 99:
+case 100:
YY_RULE_SETUP
-#line 1074 "dhcp6_lexer.ll"
+#line 1082 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 100:
+case 101:
YY_RULE_SETUP
-#line 1085 "dhcp6_lexer.ll"
+#line 1093 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::RESERVATION_MODE:
}
}
YY_BREAK
-case 101:
+case 102:
YY_RULE_SETUP
-#line 1094 "dhcp6_lexer.ll"
+#line 1102 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::RESERVATION_MODE:
}
}
YY_BREAK
-case 102:
+case 103:
YY_RULE_SETUP
-#line 1103 "dhcp6_lexer.ll"
+#line 1111 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::RESERVATION_MODE:
}
}
YY_BREAK
-case 103:
+case 104:
YY_RULE_SETUP
-#line 1112 "dhcp6_lexer.ll"
+#line 1120 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::RESERVATION_MODE:
}
}
YY_BREAK
-case 104:
+case 105:
YY_RULE_SETUP
-#line 1121 "dhcp6_lexer.ll"
+#line 1129 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::RESERVATION_MODE:
}
}
YY_BREAK
-case 105:
+case 106:
YY_RULE_SETUP
-#line 1130 "dhcp6_lexer.ll"
+#line 1138 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OPTION_DEF:
}
}
YY_BREAK
-case 106:
+case 107:
YY_RULE_SETUP
-#line 1140 "dhcp6_lexer.ll"
+#line 1148 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 107:
+case 108:
YY_RULE_SETUP
-#line 1149 "dhcp6_lexer.ll"
+#line 1157 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 108:
+case 109:
YY_RULE_SETUP
-#line 1158 "dhcp6_lexer.ll"
+#line 1166 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 109:
+case 110:
YY_RULE_SETUP
-#line 1167 "dhcp6_lexer.ll"
+#line 1175 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::CONFIG:
}
}
YY_BREAK
-case 110:
+case 111:
YY_RULE_SETUP
-#line 1176 "dhcp6_lexer.ll"
+#line 1184 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LOGGING:
}
}
YY_BREAK
-case 111:
+case 112:
YY_RULE_SETUP
-#line 1185 "dhcp6_lexer.ll"
+#line 1193 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LOGGERS:
}
}
YY_BREAK
-case 112:
+case 113:
YY_RULE_SETUP
-#line 1194 "dhcp6_lexer.ll"
+#line 1202 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 113:
+case 114:
YY_RULE_SETUP
-#line 1203 "dhcp6_lexer.ll"
+#line 1211 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 114:
+case 115:
YY_RULE_SETUP
-#line 1212 "dhcp6_lexer.ll"
+#line 1220 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 115:
+case 116:
YY_RULE_SETUP
-#line 1221 "dhcp6_lexer.ll"
+#line 1229 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 116:
+case 117:
YY_RULE_SETUP
-#line 1231 "dhcp6_lexer.ll"
+#line 1239 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LOGGERS:
}
}
YY_BREAK
-case 117:
+case 118:
YY_RULE_SETUP
-#line 1240 "dhcp6_lexer.ll"
+#line 1248 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::LOGGERS:
}
}
YY_BREAK
-case 118:
+case 119:
YY_RULE_SETUP
-#line 1249 "dhcp6_lexer.ll"
+#line 1257 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 119:
+case 120:
YY_RULE_SETUP
-#line 1259 "dhcp6_lexer.ll"
+#line 1267 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
}
}
YY_BREAK
-case 120:
+case 121:
YY_RULE_SETUP
-#line 1271 "dhcp6_lexer.ll"
+#line 1279 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
}
}
YY_BREAK
-case 121:
+case 122:
YY_RULE_SETUP
-#line 1284 "dhcp6_lexer.ll"
+#line 1292 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::CLIENT_CLASSES:
}
}
YY_BREAK
-case 122:
+case 123:
YY_RULE_SETUP
-#line 1293 "dhcp6_lexer.ll"
+#line 1301 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::CLIENT_CLASSES:
}
}
YY_BREAK
-case 123:
+case 124:
YY_RULE_SETUP
-#line 1302 "dhcp6_lexer.ll"
+#line 1310 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 124:
+case 125:
YY_RULE_SETUP
-#line 1312 "dhcp6_lexer.ll"
+#line 1320 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::RESERVATIONS:
}
}
YY_BREAK
-case 125:
+case 126:
YY_RULE_SETUP
-#line 1322 "dhcp6_lexer.ll"
+#line 1330 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::RESERVATIONS:
}
}
YY_BREAK
-case 126:
+case 127:
YY_RULE_SETUP
-#line 1331 "dhcp6_lexer.ll"
+#line 1339 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::MAC_SOURCES:
}
}
YY_BREAK
-case 127:
+case 128:
YY_RULE_SETUP
-#line 1342 "dhcp6_lexer.ll"
+#line 1350 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
}
}
YY_BREAK
-case 128:
+case 129:
YY_RULE_SETUP
-#line 1352 "dhcp6_lexer.ll"
+#line 1360 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::RESERVATIONS:
}
}
YY_BREAK
-case 129:
+case 130:
YY_RULE_SETUP
-#line 1361 "dhcp6_lexer.ll"
+#line 1369 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
}
}
YY_BREAK
-case 130:
+case 131:
YY_RULE_SETUP
-#line 1371 "dhcp6_lexer.ll"
+#line 1379 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OPTION_DEF:
}
}
YY_BREAK
-case 131:
+case 132:
YY_RULE_SETUP
-#line 1381 "dhcp6_lexer.ll"
+#line 1389 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OPTION_DATA:
}
}
YY_BREAK
-case 132:
+case 133:
YY_RULE_SETUP
-#line 1390 "dhcp6_lexer.ll"
+#line 1398 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OPTION_DEF:
}
}
YY_BREAK
-case 133:
+case 134:
YY_RULE_SETUP
-#line 1399 "dhcp6_lexer.ll"
+#line 1407 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OPTION_DEF:
}
}
YY_BREAK
-case 134:
+case 135:
YY_RULE_SETUP
-#line 1408 "dhcp6_lexer.ll"
+#line 1416 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::OPTION_DEF:
}
}
YY_BREAK
-case 135:
+case 136:
YY_RULE_SETUP
-#line 1417 "dhcp6_lexer.ll"
+#line 1425 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SUBNET6:
}
}
YY_BREAK
-case 136:
+case 137:
YY_RULE_SETUP
-#line 1427 "dhcp6_lexer.ll"
+#line 1435 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::RELAY:
}
}
YY_BREAK
-case 137:
+case 138:
YY_RULE_SETUP
-#line 1436 "dhcp6_lexer.ll"
+#line 1444 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 138:
+case 139:
YY_RULE_SETUP
-#line 1446 "dhcp6_lexer.ll"
+#line 1454 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
}
}
YY_BREAK
-case 139:
+case 140:
YY_RULE_SETUP
-#line 1455 "dhcp6_lexer.ll"
+#line 1463 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
}
}
YY_BREAK
-case 140:
+case 141:
YY_RULE_SETUP
-#line 1464 "dhcp6_lexer.ll"
+#line 1472 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 141:
+case 142:
YY_RULE_SETUP
-#line 1473 "dhcp6_lexer.ll"
+#line 1481 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DUID_TYPE:
}
}
YY_BREAK
-case 142:
+case 143:
YY_RULE_SETUP
-#line 1482 "dhcp6_lexer.ll"
+#line 1490 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DUID_TYPE:
}
}
YY_BREAK
-case 143:
+case 144:
YY_RULE_SETUP
-#line 1491 "dhcp6_lexer.ll"
+#line 1499 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DUID_TYPE:
}
}
YY_BREAK
-case 144:
+case 145:
YY_RULE_SETUP
-#line 1500 "dhcp6_lexer.ll"
+#line 1508 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SERVER_ID:
}
}
YY_BREAK
-case 145:
+case 146:
YY_RULE_SETUP
-#line 1509 "dhcp6_lexer.ll"
+#line 1517 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SERVER_ID:
}
}
YY_BREAK
-case 146:
+case 147:
YY_RULE_SETUP
-#line 1518 "dhcp6_lexer.ll"
+#line 1526 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SERVER_ID:
}
}
YY_BREAK
-case 147:
+case 148:
YY_RULE_SETUP
-#line 1527 "dhcp6_lexer.ll"
+#line 1535 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::SERVER_ID:
}
}
YY_BREAK
-case 148:
+case 149:
YY_RULE_SETUP
-#line 1536 "dhcp6_lexer.ll"
+#line 1544 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 149:
+case 150:
YY_RULE_SETUP
-#line 1545 "dhcp6_lexer.ll"
+#line 1553 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
}
}
YY_BREAK
-case 150:
+case 151:
YY_RULE_SETUP
-#line 1554 "dhcp6_lexer.ll"
+#line 1562 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
}
}
YY_BREAK
-case 151:
+case 152:
YY_RULE_SETUP
-#line 1563 "dhcp6_lexer.ll"
+#line 1571 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
}
}
YY_BREAK
-case 152:
+case 153:
YY_RULE_SETUP
-#line 1572 "dhcp6_lexer.ll"
+#line 1580 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
}
}
YY_BREAK
-case 153:
+case 154:
YY_RULE_SETUP
-#line 1581 "dhcp6_lexer.ll"
+#line 1589 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
}
}
YY_BREAK
-case 154:
+case 155:
YY_RULE_SETUP
-#line 1590 "dhcp6_lexer.ll"
+#line 1598 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
}
}
YY_BREAK
-case 155:
+case 156:
YY_RULE_SETUP
-#line 1599 "dhcp6_lexer.ll"
+#line 1607 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 156:
+case 157:
YY_RULE_SETUP
-#line 1608 "dhcp6_lexer.ll"
+#line 1616 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 157:
+case 158:
YY_RULE_SETUP
-#line 1617 "dhcp6_lexer.ll"
+#line 1625 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::CONTROL_SOCKET:
}
}
YY_BREAK
-case 158:
+case 159:
YY_RULE_SETUP
-#line 1626 "dhcp6_lexer.ll"
+#line 1634 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::CONTROL_SOCKET:
}
}
YY_BREAK
-case 159:
+case 160:
YY_RULE_SETUP
-#line 1635 "dhcp6_lexer.ll"
+#line 1643 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 160:
+case 161:
YY_RULE_SETUP
-#line 1644 "dhcp6_lexer.ll"
+#line 1652 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::DHCP6:
}
}
YY_BREAK
-case 161:
+case 162:
YY_RULE_SETUP
-#line 1653 "dhcp6_lexer.ll"
+#line 1661 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::CONFIG:
}
}
YY_BREAK
-case 162:
+case 163:
YY_RULE_SETUP
-#line 1662 "dhcp6_lexer.ll"
+#line 1670 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::CONFIG:
}
}
YY_BREAK
-case 163:
+case 164:
YY_RULE_SETUP
-#line 1671 "dhcp6_lexer.ll"
+#line 1679 "dhcp6_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser6Context::CONFIG:
}
}
YY_BREAK
-case 164:
+case 165:
YY_RULE_SETUP
-#line 1681 "dhcp6_lexer.ll"
+#line 1689 "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.
return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
}
YY_BREAK
-case 165:
-/* rule 165 can match eol */
+case 166:
+/* rule 166 can match eol */
YY_RULE_SETUP
-#line 1780 "dhcp6_lexer.ll"
+#line 1788 "dhcp6_lexer.ll"
{
/* Bad string with a forbidden control character inside */
driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
}
YY_BREAK
-case 166:
-/* rule 166 can match eol */
+case 167:
+/* rule 167 can match eol */
YY_RULE_SETUP
-#line 1785 "dhcp6_lexer.ll"
+#line 1793 "dhcp6_lexer.ll"
{
/* Bad string with a bad escape inside */
driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
}
YY_BREAK
-case 167:
+case 168:
YY_RULE_SETUP
-#line 1790 "dhcp6_lexer.ll"
+#line 1798 "dhcp6_lexer.ll"
{
/* Bad string with an open escape at the end */
driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
}
YY_BREAK
-case 168:
+case 169:
YY_RULE_SETUP
-#line 1795 "dhcp6_lexer.ll"
+#line 1803 "dhcp6_lexer.ll"
{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
YY_BREAK
-case 169:
+case 170:
YY_RULE_SETUP
-#line 1796 "dhcp6_lexer.ll"
+#line 1804 "dhcp6_lexer.ll"
{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
YY_BREAK
-case 170:
+case 171:
YY_RULE_SETUP
-#line 1797 "dhcp6_lexer.ll"
+#line 1805 "dhcp6_lexer.ll"
{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
YY_BREAK
-case 171:
+case 172:
YY_RULE_SETUP
-#line 1798 "dhcp6_lexer.ll"
+#line 1806 "dhcp6_lexer.ll"
{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
YY_BREAK
-case 172:
+case 173:
YY_RULE_SETUP
-#line 1799 "dhcp6_lexer.ll"
+#line 1807 "dhcp6_lexer.ll"
{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
YY_BREAK
-case 173:
+case 174:
YY_RULE_SETUP
-#line 1800 "dhcp6_lexer.ll"
+#line 1808 "dhcp6_lexer.ll"
{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
YY_BREAK
-case 174:
+case 175:
YY_RULE_SETUP
-#line 1802 "dhcp6_lexer.ll"
+#line 1810 "dhcp6_lexer.ll"
{
/* An integer was found. */
std::string tmp(yytext);
return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
}
YY_BREAK
-case 175:
+case 176:
YY_RULE_SETUP
-#line 1820 "dhcp6_lexer.ll"
+#line 1828 "dhcp6_lexer.ll"
{
/* A floating point was found. */
std::string tmp(yytext);
return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
}
YY_BREAK
-case 176:
+case 177:
YY_RULE_SETUP
-#line 1833 "dhcp6_lexer.ll"
+#line 1841 "dhcp6_lexer.ll"
{
string tmp(yytext);
return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
}
YY_BREAK
-case 177:
+case 178:
YY_RULE_SETUP
-#line 1838 "dhcp6_lexer.ll"
+#line 1846 "dhcp6_lexer.ll"
{
return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
}
YY_BREAK
-case 178:
+case 179:
YY_RULE_SETUP
-#line 1842 "dhcp6_lexer.ll"
+#line 1850 "dhcp6_lexer.ll"
driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
YY_BREAK
-case 179:
+case 180:
YY_RULE_SETUP
-#line 1844 "dhcp6_lexer.ll"
+#line 1852 "dhcp6_lexer.ll"
driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
YY_BREAK
-case 180:
+case 181:
YY_RULE_SETUP
-#line 1846 "dhcp6_lexer.ll"
+#line 1854 "dhcp6_lexer.ll"
driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
YY_BREAK
-case 181:
+case 182:
YY_RULE_SETUP
-#line 1848 "dhcp6_lexer.ll"
+#line 1856 "dhcp6_lexer.ll"
driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 1850 "dhcp6_lexer.ll"
+#line 1858 "dhcp6_lexer.ll"
{
if (driver.states_.empty()) {
return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
BEGIN(DIR_EXIT);
}
YY_BREAK
-case 182:
+case 183:
YY_RULE_SETUP
-#line 1873 "dhcp6_lexer.ll"
+#line 1881 "dhcp6_lexer.ll"
ECHO;
YY_BREAK
-#line 4487 "dhcp6_lexer.cc"
+#line 4509 "dhcp6_lexer.cc"
case YY_END_OF_BUFFER:
{
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 >= 1489 )
+ if ( yy_current_state >= 1505 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
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 >= 1489 )
+ if ( yy_current_state >= 1505 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 1488);
+ yy_is_jam = (yy_current_state == 1504);
return yy_is_jam ? 0 : yy_current_state;
}
/* %ok-for-header */
-#line 1873 "dhcp6_lexer.ll"
+#line 1881 "dhcp6_lexer.ll"
using namespace isc::dhcp;
}
}
+\"config-fetch-wait-time\" {
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser6Context::CONFIG_CONTROL:
+ return isc::dhcp::Dhcp6Parser::make_CONFIG_FETCH_WAIT_TIME(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp6Parser::make_STRING("config-fetch-wait-time", driver.loc_);
+ }
+}
\"readonly\" {
switch(driver.ctx_) {
-// File created from ../../../src/bin/dhcp6/dhcp6_messages.mes on Fri Feb 08 2019 20:33
+// File created from ../../../src/bin/dhcp6/dhcp6_messages.mes on Tue Mar 26 2019 13:41
#include <cstddef>
#include <log/message_types.h>
extern const isc::log::MessageID DHCP6_BUFFER_RECEIVED = "DHCP6_BUFFER_RECEIVED";
extern const isc::log::MessageID DHCP6_BUFFER_UNPACK = "DHCP6_BUFFER_UNPACK";
extern const isc::log::MessageID DHCP6_BUFFER_WAIT_SIGNAL = "DHCP6_BUFFER_WAIT_SIGNAL";
+extern const isc::log::MessageID DHCP6_CB_FETCH_UPDATES_FAIL = "DHCP6_CB_FETCH_UPDATES_FAIL";
+extern const isc::log::MessageID DHCP6_CB_FETCH_UPDATES_RETRIES_EXHAUSTED = "DHCP6_CB_FETCH_UPDATES_RETRIES_EXHAUSTED";
extern const isc::log::MessageID DHCP6_CLASS_ASSIGNED = "DHCP6_CLASS_ASSIGNED";
extern const isc::log::MessageID DHCP6_CLASS_UNCONFIGURED = "DHCP6_CLASS_UNCONFIGURED";
extern const isc::log::MessageID DHCP6_CLASS_UNDEFINED = "DHCP6_CLASS_UNDEFINED";
"DHCP6_BUFFER_RECEIVED", "received buffer from %1:%2 to %3:%4 over interface %5",
"DHCP6_BUFFER_UNPACK", "parsing buffer received from %1 to %2 over interface %3",
"DHCP6_BUFFER_WAIT_SIGNAL", "signal received while waiting for next packet, next waiting signal is %1",
+ "DHCP6_CB_FETCH_UPDATES_FAIL", "error on attempt to fetch configuration updates from the configuration backend(s): %1",
+ "DHCP6_CB_FETCH_UPDATES_RETRIES_EXHAUSTED", "maximum number of configuration fetch attempts: 10, has been exhausted without success",
"DHCP6_CLASS_ASSIGNED", "%1: client packet has been assigned to the following class(es): %2",
"DHCP6_CLASS_UNCONFIGURED", "%1: client packet belongs to an unconfigured class: %2",
"DHCP6_CLASS_UNDEFINED", "required class %1 has no definition",
-// File created from ../../../src/bin/dhcp6/dhcp6_messages.mes on Fri Feb 08 2019 20:33
+// File created from ../../../src/bin/dhcp6/dhcp6_messages.mes on Tue Mar 26 2019 13:41
#ifndef DHCP6_MESSAGES_H
#define DHCP6_MESSAGES_H
extern const isc::log::MessageID DHCP6_BUFFER_RECEIVED;
extern const isc::log::MessageID DHCP6_BUFFER_UNPACK;
extern const isc::log::MessageID DHCP6_BUFFER_WAIT_SIGNAL;
+extern const isc::log::MessageID DHCP6_CB_FETCH_UPDATES_FAIL;
+extern const isc::log::MessageID DHCP6_CB_FETCH_UPDATES_RETRIES_EXHAUSTED;
extern const isc::log::MessageID DHCP6_CLASS_ASSIGNED;
extern const isc::log::MessageID DHCP6_CLASS_UNCONFIGURED;
extern const isc::log::MessageID DHCP6_CLASS_UNDEFINED;
This debug message informs that a class was listed for required evaluation but
its definition does not include a test expression to evaluate.
+% DHCP6_CB_FETCH_UPDATES_FAIL error on attempt to fetch configuration updates from the configuration backend(s): %1
+This error message is issued when the server attempted to fetch
+configuration updates from the database and this attempt failed.
+The server will re-try according to the configured value of the
+config-fetch-wait-time parameter. The sole argument contains the
+reason for failure.
+
+% DHCP6_CB_FETCH_UPDATES_RETRIES_EXHAUSTED maximum number of configuration fetch attempts: 10, has been exhausted without success
+This error indicates that the server has made a number of unsuccessful
+attempts to fetch configuration updates from a configuration backend.
+The server will continue to operate but won't make any further attempts
+to fetch configuration updates. The administrator must fix the configuration
+in the database and reload (or restart) the server.
+
% DHCP6_COMMAND_RECEIVED received command %1, arguments: %2
A debug message listing the command (and possible arguments) received
from the Kea control system by the IPv6 DHCP server.
-// A Bison parser, made by GNU Bison 3.3.2.
+// A Bison parser, made by GNU Bison 3.2.1.
// Skeleton implementation for Bison LALR(1) parsers in C++
-// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc.
+// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// Unqualified %code blocks.
-#line 34 "dhcp6_parser.yy" // lalr1.cc:435
+#line 34 "dhcp6_parser.yy" // lalr1.cc:438
#include <dhcp6/parser_context.h>
-#line 51 "dhcp6_parser.cc" // lalr1.cc:435
+#line 51 "dhcp6_parser.cc" // lalr1.cc:438
#ifndef YY_
{ \
(Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
} \
- while (false)
+ while (/*CONSTCOND*/ false)
# endif
#define YYERROR goto yyerrorlab
#define YYRECOVERING() (!!yyerrstatus_)
-#line 14 "dhcp6_parser.yy" // lalr1.cc:510
+#line 14 "dhcp6_parser.yy" // lalr1.cc:513
namespace isc { namespace dhcp {
-#line 146 "dhcp6_parser.cc" // lalr1.cc:510
+#line 146 "dhcp6_parser.cc" // lalr1.cc:513
/* Return YYSTR after stripping away unnecessary quotes and
backslashes, so that it's suitable for yyerror. The heuristic is
{
if (*yystr == '"')
{
- std::string yyr;
+ std::string yyr = "";
char const *yyp = yystr;
for (;;)
case '\\':
if (*++yyp != '\\')
goto do_not_strip_quotes;
- else
- goto append;
-
- append:
+ // Fall through.
default:
yyr += *yyp;
break;
Dhcp6Parser::~Dhcp6Parser ()
{}
- Dhcp6Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
- {}
/*---------------.
| Symbol types. |
// by_state.
- Dhcp6Parser::by_state::by_state () YY_NOEXCEPT
+ Dhcp6Parser::by_state::by_state ()
: state (empty_state)
{}
- Dhcp6Parser::by_state::by_state (const by_state& that) YY_NOEXCEPT
- : state (that.state)
+ Dhcp6Parser::by_state::by_state (const by_state& other)
+ : state (other.state)
{}
void
- Dhcp6Parser::by_state::clear () YY_NOEXCEPT
+ Dhcp6Parser::by_state::clear ()
{
state = empty_state;
}
that.clear ();
}
- Dhcp6Parser::by_state::by_state (state_type s) YY_NOEXCEPT
+ Dhcp6Parser::by_state::by_state (state_type s)
: state (s)
{}
Dhcp6Parser::symbol_number_type
- Dhcp6Parser::by_state::type_get () const YY_NOEXCEPT
+ Dhcp6Parser::by_state::type_get () const
{
if (state == empty_state)
return empty_symbol;
{
switch (that.type_get ())
{
- case 194: // value
- case 198: // map_value
- case 252: // db_type
- case 345: // hr_mode
- case 481: // duid_type
- case 516: // ncr_protocol_value
- case 523: // replace_client_name_value
+ case 195: // value
+ case 199: // map_value
+ case 253: // db_type
+ case 346: // hr_mode
+ case 482: // duid_type
+ case 517: // ncr_protocol_value
+ case 524: // replace_client_name_value
value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value));
break;
- case 176: // "boolean"
+ case 177: // "boolean"
value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value));
break;
- case 175: // "floating point"
+ case 176: // "floating point"
value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value));
break;
- case 174: // "integer"
+ case 175: // "integer"
value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value));
break;
- case 173: // "constant string"
+ case 174: // "constant string"
value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value));
break;
break;
}
-#if 201103L <= YY_CPLUSPLUS
+#if defined __cplusplus && 201103L <= __cplusplus
// that is emptied.
that.state = empty_state;
#endif
{
switch (that.type_get ())
{
- case 194: // value
- case 198: // map_value
- case 252: // db_type
- case 345: // hr_mode
- case 481: // duid_type
- case 516: // ncr_protocol_value
- case 523: // replace_client_name_value
+ case 195: // value
+ case 199: // map_value
+ case 253: // db_type
+ case 346: // hr_mode
+ case 482: // duid_type
+ case 517: // ncr_protocol_value
+ case 524: // replace_client_name_value
value.move< ElementPtr > (YY_MOVE (that.value));
break;
- case 176: // "boolean"
+ case 177: // "boolean"
value.move< bool > (YY_MOVE (that.value));
break;
- case 175: // "floating point"
+ case 176: // "floating point"
value.move< double > (YY_MOVE (that.value));
break;
- case 174: // "integer"
+ case 175: // "integer"
value.move< int64_t > (YY_MOVE (that.value));
break;
- case 173: // "constant string"
+ case 174: // "constant string"
value.move< std::string > (YY_MOVE (that.value));
break;
that.type = empty_symbol;
}
-#if YY_CPLUSPLUS < 201103L
+#if !defined __cplusplus || __cplusplus < 201103L
Dhcp6Parser::stack_symbol_type&
Dhcp6Parser::stack_symbol_type::operator= (stack_symbol_type& that)
{
state = that.state;
switch (that.type_get ())
{
- case 194: // value
- case 198: // map_value
- case 252: // db_type
- case 345: // hr_mode
- case 481: // duid_type
- case 516: // ncr_protocol_value
- case 523: // replace_client_name_value
+ case 195: // value
+ case 199: // map_value
+ case 253: // db_type
+ case 346: // hr_mode
+ case 482: // duid_type
+ case 517: // ncr_protocol_value
+ case 524: // replace_client_name_value
value.move< ElementPtr > (that.value);
break;
- case 176: // "boolean"
+ case 177: // "boolean"
value.move< bool > (that.value);
break;
- case 175: // "floating point"
+ case 176: // "floating point"
value.move< double > (that.value);
break;
- case 174: // "integer"
+ case 175: // "integer"
value.move< int64_t > (that.value);
break;
- case 173: // "constant string"
+ case 174: // "constant string"
value.move< std::string > (that.value);
break;
std::ostream& yyoutput = yyo;
YYUSE (yyoutput);
symbol_number_type yytype = yysym.type_get ();
-#if defined __GNUC__ && ! defined __clang__ && ! defined __ICC && __GNUC__ * 100 + __GNUC_MINOR__ <= 408
// Avoid a (spurious) G++ 4.8 warning about "array subscript is
// below array bounds".
if (yysym.empty ())
std::abort ();
-#endif
yyo << (yytype < yyntokens_ ? "token" : "nterm")
<< ' ' << yytname_[yytype] << " ("
<< yysym.location << ": ";
switch (yytype)
{
- case 173: // "constant string"
-#line 251 "dhcp6_parser.yy" // lalr1.cc:676
- { yyoutput << yysym.value.template as < std::string > (); }
-#line 404 "dhcp6_parser.cc" // lalr1.cc:676
+ case 174: // "constant string"
+
+#line 253 "dhcp6_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< std::string > (); }
+#line 398 "dhcp6_parser.cc" // lalr1.cc:672
break;
- case 174: // "integer"
-#line 251 "dhcp6_parser.yy" // lalr1.cc:676
- { yyoutput << yysym.value.template as < int64_t > (); }
-#line 410 "dhcp6_parser.cc" // lalr1.cc:676
+ case 175: // "integer"
+
+#line 253 "dhcp6_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< int64_t > (); }
+#line 405 "dhcp6_parser.cc" // lalr1.cc:672
break;
- case 175: // "floating point"
-#line 251 "dhcp6_parser.yy" // lalr1.cc:676
- { yyoutput << yysym.value.template as < double > (); }
-#line 416 "dhcp6_parser.cc" // lalr1.cc:676
+ case 176: // "floating point"
+
+#line 253 "dhcp6_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< double > (); }
+#line 412 "dhcp6_parser.cc" // lalr1.cc:672
break;
- case 176: // "boolean"
-#line 251 "dhcp6_parser.yy" // lalr1.cc:676
- { yyoutput << yysym.value.template as < bool > (); }
-#line 422 "dhcp6_parser.cc" // lalr1.cc:676
+ case 177: // "boolean"
+
+#line 253 "dhcp6_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< bool > (); }
+#line 419 "dhcp6_parser.cc" // lalr1.cc:672
break;
- case 194: // value
-#line 251 "dhcp6_parser.yy" // lalr1.cc:676
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 428 "dhcp6_parser.cc" // lalr1.cc:676
+ case 195: // value
+
+#line 253 "dhcp6_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 426 "dhcp6_parser.cc" // lalr1.cc:672
break;
- case 198: // map_value
-#line 251 "dhcp6_parser.yy" // lalr1.cc:676
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 434 "dhcp6_parser.cc" // lalr1.cc:676
+ case 199: // map_value
+
+#line 253 "dhcp6_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 433 "dhcp6_parser.cc" // lalr1.cc:672
break;
- case 252: // db_type
-#line 251 "dhcp6_parser.yy" // lalr1.cc:676
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 440 "dhcp6_parser.cc" // lalr1.cc:676
+ case 253: // db_type
+
+#line 253 "dhcp6_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 440 "dhcp6_parser.cc" // lalr1.cc:672
break;
- case 345: // hr_mode
-#line 251 "dhcp6_parser.yy" // lalr1.cc:676
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 446 "dhcp6_parser.cc" // lalr1.cc:676
+ case 346: // hr_mode
+
+#line 253 "dhcp6_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 447 "dhcp6_parser.cc" // lalr1.cc:672
break;
- case 481: // duid_type
-#line 251 "dhcp6_parser.yy" // lalr1.cc:676
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 452 "dhcp6_parser.cc" // lalr1.cc:676
+ case 482: // duid_type
+
+#line 253 "dhcp6_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 454 "dhcp6_parser.cc" // lalr1.cc:672
break;
- case 516: // ncr_protocol_value
-#line 251 "dhcp6_parser.yy" // lalr1.cc:676
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 458 "dhcp6_parser.cc" // lalr1.cc:676
+ case 517: // ncr_protocol_value
+
+#line 253 "dhcp6_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 461 "dhcp6_parser.cc" // lalr1.cc:672
break;
- case 523: // replace_client_name_value
-#line 251 "dhcp6_parser.yy" // lalr1.cc:676
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 464 "dhcp6_parser.cc" // lalr1.cc:676
+ case 524: // replace_client_name_value
+
+#line 253 "dhcp6_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 468 "dhcp6_parser.cc" // lalr1.cc:672
break;
+
default:
break;
}
void
Dhcp6Parser::yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym)
{
-#if 201103L <= YY_CPLUSPLUS
+#if defined __cplusplus && 201103L <= __cplusplus
yypush_ (m, stack_symbol_type (s, std::move (sym)));
#else
stack_symbol_type ss (s, sym);
yystack_.clear ();
yypush_ (YY_NULLPTR, 0, YY_MOVE (yyla));
- /*-----------------------------------------------.
- | yynewstate -- push a new symbol on the stack. |
- `-----------------------------------------------*/
+ // A new symbol was pushed on the stack.
yynewstate:
YYCDEBUG << "Entering state " << yystack_[0].state << '\n';
// Accept?
if (yystack_[0].state == yyfinal_)
- YYACCEPT;
+ goto yyacceptlab;
goto yybackup;
-
- /*-----------.
- | yybackup. |
- `-----------*/
+ // Backup.
yybackup:
// Try to take a decision without lookahead.
yyn = yypact_[yystack_[0].state];
#if YY_EXCEPTIONS
catch (const syntax_error& yyexc)
{
- YYCDEBUG << "Caught exception: " << yyexc.what() << '\n';
error (yyexc);
goto yyerrlab1;
}
yypush_ ("Shifting", yyn, YY_MOVE (yyla));
goto yynewstate;
-
/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state. |
`-----------------------------------------------------------*/
goto yyerrlab;
goto yyreduce;
-
/*-----------------------------.
- | yyreduce -- do a reduction. |
+ | yyreduce -- Do a reduction. |
`-----------------------------*/
yyreduce:
yylen = yyr2_[yyn];
when using variants. */
switch (yyr1_[yyn])
{
- case 194: // value
- case 198: // map_value
- case 252: // db_type
- case 345: // hr_mode
- case 481: // duid_type
- case 516: // ncr_protocol_value
- case 523: // replace_client_name_value
+ case 195: // value
+ case 199: // map_value
+ case 253: // db_type
+ case 346: // hr_mode
+ case 482: // duid_type
+ case 517: // ncr_protocol_value
+ case 524: // replace_client_name_value
yylhs.value.emplace< ElementPtr > ();
break;
- case 176: // "boolean"
+ case 177: // "boolean"
yylhs.value.emplace< bool > ();
break;
- case 175: // "floating point"
+ case 176: // "floating point"
yylhs.value.emplace< double > ();
break;
- case 174: // "integer"
+ case 175: // "integer"
yylhs.value.emplace< int64_t > ();
break;
- case 173: // "constant string"
+ case 174: // "constant string"
yylhs.value.emplace< std::string > ();
break;
// Default location.
{
- stack_type::slice range (yystack_, yylen);
- YYLLOC_DEFAULT (yylhs.location, range, yylen);
+ slice<stack_symbol_type, stack_type> slice (yystack_, yylen);
+ YYLLOC_DEFAULT (yylhs.location, slice, yylen);
yyerror_range[1].location = yylhs.location;
}
switch (yyn)
{
case 2:
-#line 260 "dhcp6_parser.yy" // lalr1.cc:919
+#line 262 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.NO_KEYWORD; }
-#line 730 "dhcp6_parser.cc" // lalr1.cc:919
+#line 727 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 4:
-#line 261 "dhcp6_parser.yy" // lalr1.cc:919
+#line 263 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.CONFIG; }
-#line 736 "dhcp6_parser.cc" // lalr1.cc:919
+#line 733 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 6:
-#line 262 "dhcp6_parser.yy" // lalr1.cc:919
+#line 264 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.DHCP6; }
-#line 742 "dhcp6_parser.cc" // lalr1.cc:919
+#line 739 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 8:
-#line 263 "dhcp6_parser.yy" // lalr1.cc:919
+#line 265 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.INTERFACES_CONFIG; }
-#line 748 "dhcp6_parser.cc" // lalr1.cc:919
+#line 745 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 10:
-#line 264 "dhcp6_parser.yy" // lalr1.cc:919
+#line 266 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.SUBNET6; }
-#line 754 "dhcp6_parser.cc" // lalr1.cc:919
+#line 751 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 12:
-#line 265 "dhcp6_parser.yy" // lalr1.cc:919
+#line 267 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.POOLS; }
-#line 760 "dhcp6_parser.cc" // lalr1.cc:919
+#line 757 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 14:
-#line 266 "dhcp6_parser.yy" // lalr1.cc:919
+#line 268 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.PD_POOLS; }
-#line 766 "dhcp6_parser.cc" // lalr1.cc:919
+#line 763 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 16:
-#line 267 "dhcp6_parser.yy" // lalr1.cc:919
+#line 269 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.RESERVATIONS; }
-#line 772 "dhcp6_parser.cc" // lalr1.cc:919
+#line 769 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 18:
-#line 268 "dhcp6_parser.yy" // lalr1.cc:919
+#line 270 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.DHCP6; }
-#line 778 "dhcp6_parser.cc" // lalr1.cc:919
+#line 775 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 20:
-#line 269 "dhcp6_parser.yy" // lalr1.cc:919
+#line 271 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.OPTION_DEF; }
-#line 784 "dhcp6_parser.cc" // lalr1.cc:919
+#line 781 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 22:
-#line 270 "dhcp6_parser.yy" // lalr1.cc:919
+#line 272 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.OPTION_DATA; }
-#line 790 "dhcp6_parser.cc" // lalr1.cc:919
+#line 787 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 24:
-#line 271 "dhcp6_parser.yy" // lalr1.cc:919
+#line 273 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
-#line 796 "dhcp6_parser.cc" // lalr1.cc:919
+#line 793 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 26:
-#line 272 "dhcp6_parser.yy" // lalr1.cc:919
+#line 274 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.DHCP_DDNS; }
-#line 802 "dhcp6_parser.cc" // lalr1.cc:919
+#line 799 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 28:
-#line 273 "dhcp6_parser.yy" // lalr1.cc:919
+#line 275 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.LOGGING; }
-#line 808 "dhcp6_parser.cc" // lalr1.cc:919
+#line 805 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 30:
-#line 274 "dhcp6_parser.yy" // lalr1.cc:919
+#line 276 "dhcp6_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.CONFIG_CONTROL; }
-#line 814 "dhcp6_parser.cc" // lalr1.cc:919
+#line 811 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 32:
-#line 282 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); }
-#line 820 "dhcp6_parser.cc" // lalr1.cc:919
+#line 284 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); }
+#line 817 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 33:
-#line 283 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); }
-#line 826 "dhcp6_parser.cc" // lalr1.cc:919
+#line 285 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); }
+#line 823 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 34:
-#line 284 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); }
-#line 832 "dhcp6_parser.cc" // lalr1.cc:919
+#line 286 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); }
+#line 829 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 35:
-#line 285 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); }
-#line 838 "dhcp6_parser.cc" // lalr1.cc:919
+#line 287 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); }
+#line 835 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 36:
-#line 286 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
-#line 844 "dhcp6_parser.cc" // lalr1.cc:919
+#line 288 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
+#line 841 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 37:
-#line 287 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 850 "dhcp6_parser.cc" // lalr1.cc:919
+#line 289 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
+#line 847 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 38:
-#line 288 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 856 "dhcp6_parser.cc" // lalr1.cc:919
+#line 290 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
+#line 853 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 39:
-#line 291 "dhcp6_parser.yy" // lalr1.cc:919
+#line 293 "dhcp6_parser.yy" // lalr1.cc:907
{
// Push back the JSON value on the stack
- ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ());
}
-#line 865 "dhcp6_parser.cc" // lalr1.cc:919
+#line 862 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 40:
-#line 296 "dhcp6_parser.yy" // lalr1.cc:919
+#line 298 "dhcp6_parser.yy" // lalr1.cc:907
{
// This code is executed when we're about to start parsing
// the content of the map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 876 "dhcp6_parser.cc" // lalr1.cc:919
+#line 873 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 41:
-#line 301 "dhcp6_parser.yy" // lalr1.cc:919
+#line 303 "dhcp6_parser.yy" // lalr1.cc:907
{
// map parsing completed. If we ever want to do any wrap up
// (maybe some sanity checking), this would be the best place
// for it.
}
-#line 886 "dhcp6_parser.cc" // lalr1.cc:919
+#line 883 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 42:
-#line 307 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 892 "dhcp6_parser.cc" // lalr1.cc:919
+#line 309 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
+#line 889 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 45:
-#line 314 "dhcp6_parser.yy" // lalr1.cc:919
+#line 316 "dhcp6_parser.yy" // lalr1.cc:907
{
// map containing a single entry
- ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
}
-#line 901 "dhcp6_parser.cc" // lalr1.cc:919
+#line 898 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 46:
-#line 318 "dhcp6_parser.yy" // lalr1.cc:919
+#line 320 "dhcp6_parser.yy" // lalr1.cc:907
{
// map consisting of a shorter map followed by
// comma and string:value
- ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
}
-#line 911 "dhcp6_parser.cc" // lalr1.cc:919
+#line 908 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 47:
-#line 325 "dhcp6_parser.yy" // lalr1.cc:919
+#line 327 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
}
-#line 920 "dhcp6_parser.cc" // lalr1.cc:919
+#line 917 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 48:
-#line 328 "dhcp6_parser.yy" // lalr1.cc:919
+#line 330 "dhcp6_parser.yy" // lalr1.cc:907
{
// list parsing complete. Put any sanity checking here
}
-#line 928 "dhcp6_parser.cc" // lalr1.cc:919
+#line 925 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 51:
-#line 336 "dhcp6_parser.yy" // lalr1.cc:919
+#line 338 "dhcp6_parser.yy" // lalr1.cc:907
{
// List consisting of a single element.
- ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
}
-#line 937 "dhcp6_parser.cc" // lalr1.cc:919
+#line 934 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 52:
-#line 340 "dhcp6_parser.yy" // lalr1.cc:919
+#line 342 "dhcp6_parser.yy" // lalr1.cc:907
{
// List ending with , and a value.
- ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
}
-#line 946 "dhcp6_parser.cc" // lalr1.cc:919
+#line 943 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 53:
-#line 347 "dhcp6_parser.yy" // lalr1.cc:919
+#line 349 "dhcp6_parser.yy" // lalr1.cc:907
{
// List parsing about to start
}
-#line 954 "dhcp6_parser.cc" // lalr1.cc:919
+#line 951 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 54:
-#line 349 "dhcp6_parser.yy" // lalr1.cc:919
+#line 351 "dhcp6_parser.yy" // lalr1.cc:907
{
// list parsing complete. Put any sanity checking here
//ctx.stack_.pop_back();
}
-#line 963 "dhcp6_parser.cc" // lalr1.cc:919
+#line 960 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 57:
-#line 358 "dhcp6_parser.yy" // lalr1.cc:919
+#line 360 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(s);
}
-#line 972 "dhcp6_parser.cc" // lalr1.cc:919
+#line 969 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 58:
-#line 362 "dhcp6_parser.yy" // lalr1.cc:919
+#line 364 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(s);
}
-#line 981 "dhcp6_parser.cc" // lalr1.cc:919
+#line 978 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 59:
-#line 373 "dhcp6_parser.yy" // lalr1.cc:919
+#line 375 "dhcp6_parser.yy" // lalr1.cc:907
{
const std::string& where = ctx.contextName();
- const std::string& keyword = yystack_[1].value.as < std::string > ();
+ const std::string& keyword = yystack_[1].value.as< std::string > ();
error(yystack_[1].location,
"got unexpected keyword \"" + keyword + "\" in " + where + " map.");
}
-#line 992 "dhcp6_parser.cc" // lalr1.cc:919
+#line 989 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 60:
-#line 383 "dhcp6_parser.yy" // lalr1.cc:919
+#line 385 "dhcp6_parser.yy" // lalr1.cc:907
{
// This code is executed when we're about to start parsing
// the content of the map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1003 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1000 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 61:
-#line 388 "dhcp6_parser.yy" // lalr1.cc:919
+#line 390 "dhcp6_parser.yy" // lalr1.cc:907
{
// map parsing completed. If we ever want to do any wrap up
// (maybe some sanity checking), this would be the best place
// Dhcp6 is required
ctx.require("Dhcp6", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
}
-#line 1016 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1013 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 70:
-#line 411 "dhcp6_parser.yy" // lalr1.cc:919
+#line 413 "dhcp6_parser.yy" // lalr1.cc:907
{
// This code is executed when we're about to start parsing
// the content of the map
ctx.stack_.push_back(m);
ctx.enter(ctx.DHCP6);
}
-#line 1029 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1026 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 71:
-#line 418 "dhcp6_parser.yy" // lalr1.cc:919
+#line 420 "dhcp6_parser.yy" // lalr1.cc:907
{
// No global parameter is required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1039 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1036 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 72:
-#line 426 "dhcp6_parser.yy" // lalr1.cc:919
+#line 428 "dhcp6_parser.yy" // lalr1.cc:907
{
// Parse the Dhcp6 map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1049 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1046 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 73:
-#line 430 "dhcp6_parser.yy" // lalr1.cc:919
+#line 432 "dhcp6_parser.yy" // lalr1.cc:907
{
// No global parameter is required
// parsing completed
}
-#line 1058 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1055 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 109:
-#line 476 "dhcp6_parser.yy" // lalr1.cc:919
+#line 478 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1066 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1063 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 110:
-#line 478 "dhcp6_parser.yy" // lalr1.cc:919
+#line 480 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr datadir(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("data-directory", datadir);
ctx.leave();
}
-#line 1076 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1073 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 111:
-#line 484 "dhcp6_parser.yy" // lalr1.cc:919
+#line 486 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("preferred-lifetime", prf);
}
-#line 1085 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1082 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 112:
-#line 489 "dhcp6_parser.yy" // lalr1.cc:919
+#line 491 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("valid-lifetime", prf);
}
-#line 1094 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1091 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 113:
-#line 494 "dhcp6_parser.yy" // lalr1.cc:919
+#line 496 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("renew-timer", prf);
}
-#line 1103 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1100 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 114:
-#line 499 "dhcp6_parser.yy" // lalr1.cc:919
+#line 501 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("rebind-timer", prf);
}
-#line 1112 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1109 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 115:
-#line 504 "dhcp6_parser.yy" // lalr1.cc:919
+#line 506 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("decline-probation-period", dpp);
}
-#line 1121 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1118 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 116:
-#line 509 "dhcp6_parser.yy" // lalr1.cc:919
+#line 511 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1129 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1126 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 117:
-#line 511 "dhcp6_parser.yy" // lalr1.cc:919
+#line 513 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr stag(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-tag", stag);
ctx.leave();
}
-#line 1139 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1136 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 118:
-#line 517 "dhcp6_parser.yy" // lalr1.cc:919
+#line 519 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interfaces-config", i);
ctx.stack_.push_back(i);
ctx.enter(ctx.INTERFACES_CONFIG);
}
-#line 1150 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1147 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 119:
-#line 522 "dhcp6_parser.yy" // lalr1.cc:919
+#line 524 "dhcp6_parser.yy" // lalr1.cc:907
{
// No interfaces config param is required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1160 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1157 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 120:
-#line 528 "dhcp6_parser.yy" // lalr1.cc:919
+#line 530 "dhcp6_parser.yy" // lalr1.cc:907
{
// Parse the interfaces-config map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1170 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1167 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 121:
-#line 532 "dhcp6_parser.yy" // lalr1.cc:919
+#line 534 "dhcp6_parser.yy" // lalr1.cc:907
{
// No interfaces config param is required
// parsing completed
}
-#line 1179 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1176 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 129:
-#line 548 "dhcp6_parser.yy" // lalr1.cc:919
+#line 550 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interfaces", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1190 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1187 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 130:
-#line 553 "dhcp6_parser.yy" // lalr1.cc:919
+#line 555 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1199 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1196 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 131:
-#line 558 "dhcp6_parser.yy" // lalr1.cc:919
+#line 560 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("re-detect", b);
}
-#line 1208 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1205 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 132:
-#line 564 "dhcp6_parser.yy" // lalr1.cc:919
+#line 566 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("lease-database", i);
ctx.stack_.push_back(i);
ctx.enter(ctx.LEASE_DATABASE);
}
-#line 1219 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1216 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 133:
-#line 569 "dhcp6_parser.yy" // lalr1.cc:919
+#line 571 "dhcp6_parser.yy" // lalr1.cc:907
{
// The type parameter is required
ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1230 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1227 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 134:
-#line 576 "dhcp6_parser.yy" // lalr1.cc:919
+#line 578 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hosts-database", i);
ctx.stack_.push_back(i);
ctx.enter(ctx.HOSTS_DATABASE);
}
-#line 1241 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1238 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 135:
-#line 581 "dhcp6_parser.yy" // lalr1.cc:919
+#line 583 "dhcp6_parser.yy" // lalr1.cc:907
{
// The type parameter is required
ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1252 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1249 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 136:
-#line 588 "dhcp6_parser.yy" // lalr1.cc:919
+#line 590 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hosts-databases", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.HOSTS_DATABASE);
}
-#line 1263 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1260 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 137:
-#line 593 "dhcp6_parser.yy" // lalr1.cc:919
+#line 595 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1272 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1269 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 142:
-#line 606 "dhcp6_parser.yy" // lalr1.cc:919
+#line 608 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1282 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1279 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 143:
-#line 610 "dhcp6_parser.yy" // lalr1.cc:919
+#line 612 "dhcp6_parser.yy" // lalr1.cc:907
{
// The type parameter is required
ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 1292 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1289 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 166:
-#line 642 "dhcp6_parser.yy" // lalr1.cc:919
+#line 644 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.DATABASE_TYPE);
}
-#line 1300 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1297 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 167:
-#line 644 "dhcp6_parser.yy" // lalr1.cc:919
+#line 646 "dhcp6_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1309 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1306 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 168:
-#line 649 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
-#line 1315 "dhcp6_parser.cc" // lalr1.cc:919
+#line 651 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
+#line 1312 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 169:
-#line 650 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
-#line 1321 "dhcp6_parser.cc" // lalr1.cc:919
+#line 652 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
+#line 1318 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 170:
-#line 651 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
-#line 1327 "dhcp6_parser.cc" // lalr1.cc:919
+#line 653 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
+#line 1324 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 171:
-#line 652 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
-#line 1333 "dhcp6_parser.cc" // lalr1.cc:919
+#line 654 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
+#line 1330 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 172:
-#line 655 "dhcp6_parser.yy" // lalr1.cc:919
+#line 657 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1341 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1338 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 173:
-#line 657 "dhcp6_parser.yy" // lalr1.cc:919
+#line 659 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("user", user);
ctx.leave();
}
-#line 1351 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1348 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 174:
-#line 663 "dhcp6_parser.yy" // lalr1.cc:919
+#line 665 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1359 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1356 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 175:
-#line 665 "dhcp6_parser.yy" // lalr1.cc:919
+#line 667 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("password", pwd);
ctx.leave();
}
-#line 1369 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1366 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 176:
-#line 671 "dhcp6_parser.yy" // lalr1.cc:919
+#line 673 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1377 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1374 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 177:
-#line 673 "dhcp6_parser.yy" // lalr1.cc:919
+#line 675 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("host", h);
ctx.leave();
}
-#line 1387 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1384 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 178:
-#line 679 "dhcp6_parser.yy" // lalr1.cc:919
+#line 681 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("port", p);
}
-#line 1396 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1393 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 179:
-#line 684 "dhcp6_parser.yy" // lalr1.cc:919
+#line 686 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1404 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1401 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 180:
-#line 686 "dhcp6_parser.yy" // lalr1.cc:919
+#line 688 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("name", name);
ctx.leave();
}
-#line 1414 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1411 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 181:
-#line 692 "dhcp6_parser.yy" // lalr1.cc:919
+#line 694 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("persist", n);
}
-#line 1423 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1420 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 182:
-#line 697 "dhcp6_parser.yy" // lalr1.cc:919
+#line 699 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("lfc-interval", n);
}
-#line 1432 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1429 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 183:
-#line 702 "dhcp6_parser.yy" // lalr1.cc:919
+#line 704 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("readonly", n);
}
-#line 1441 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1438 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 184:
-#line 707 "dhcp6_parser.yy" // lalr1.cc:919
+#line 709 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("connect-timeout", n);
}
-#line 1450 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1447 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 185:
-#line 712 "dhcp6_parser.yy" // lalr1.cc:919
+#line 714 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reconnect-wait-time", n);
}
-#line 1459 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1456 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 186:
-#line 717 "dhcp6_parser.yy" // lalr1.cc:919
+#line 719 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("request-timeout", n);
}
-#line 1468 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1465 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 187:
-#line 722 "dhcp6_parser.yy" // lalr1.cc:919
+#line 724 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("tcp-keepalive", n);
}
-#line 1477 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1474 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 188:
-#line 727 "dhcp6_parser.yy" // lalr1.cc:919
+#line 729 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("tcp-nodelay", n);
}
-#line 1486 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1483 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 189:
-#line 732 "dhcp6_parser.yy" // lalr1.cc:919
+#line 734 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1494 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1491 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 190:
-#line 734 "dhcp6_parser.yy" // lalr1.cc:919
+#line 736 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr cp(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("contact-points", cp);
ctx.leave();
}
-#line 1504 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1501 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 191:
-#line 740 "dhcp6_parser.yy" // lalr1.cc:919
+#line 742 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("max-reconnect-tries", n);
}
-#line 1513 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1510 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 192:
-#line 745 "dhcp6_parser.yy" // lalr1.cc:919
+#line 747 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1521 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1518 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 193:
-#line 747 "dhcp6_parser.yy" // lalr1.cc:919
+#line 749 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr ks(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("keyspace", ks);
ctx.leave();
}
-#line 1531 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1528 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 194:
-#line 753 "dhcp6_parser.yy" // lalr1.cc:919
+#line 755 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1539 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1536 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 195:
-#line 755 "dhcp6_parser.yy" // lalr1.cc:919
+#line 757 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr c(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("consistency", c);
ctx.leave();
}
-#line 1549 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1546 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 196:
-#line 761 "dhcp6_parser.yy" // lalr1.cc:919
+#line 763 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1557 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1554 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 197:
-#line 763 "dhcp6_parser.yy" // lalr1.cc:919
+#line 765 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr c(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("serial-consistency", c);
ctx.leave();
}
-#line 1567 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1564 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 198:
-#line 769 "dhcp6_parser.yy" // lalr1.cc:919
+#line 771 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("sanity-checks", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.SANITY_CHECKS);
}
-#line 1578 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1575 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 199:
-#line 774 "dhcp6_parser.yy" // lalr1.cc:919
+#line 776 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1587 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1584 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 203:
-#line 784 "dhcp6_parser.yy" // lalr1.cc:919
+#line 786 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1595 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1592 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 204:
-#line 786 "dhcp6_parser.yy" // lalr1.cc:919
+#line 788 "dhcp6_parser.yy" // lalr1.cc:907
{
- if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
- (string(yystack_[0].value.as < std::string > ()) == "warn") ||
- (string(yystack_[0].value.as < std::string > ()) == "fix") ||
- (string(yystack_[0].value.as < std::string > ()) == "fix-del") ||
- (string(yystack_[0].value.as < std::string > ()) == "del")) {
- ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ if ( (string(yystack_[0].value.as< std::string > ()) == "none") ||
+ (string(yystack_[0].value.as< std::string > ()) == "warn") ||
+ (string(yystack_[0].value.as< std::string > ()) == "fix") ||
+ (string(yystack_[0].value.as< std::string > ()) == "fix-del") ||
+ (string(yystack_[0].value.as< std::string > ()) == "del")) {
+ ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("lease-checks", user);
ctx.leave();
} else {
- error(yystack_[0].location, "Unsupported 'lease-checks value: " + string(yystack_[0].value.as < std::string > ()) +
+ error(yystack_[0].location, "Unsupported 'lease-checks value: " + string(yystack_[0].value.as< std::string > ()) +
", supported values are: none, warn, fix, fix-del, del");
}
}
-#line 1615 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1612 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 205:
-#line 802 "dhcp6_parser.yy" // lalr1.cc:919
+#line 804 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("mac-sources", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.MAC_SOURCES);
}
-#line 1626 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1623 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 206:
-#line 807 "dhcp6_parser.yy" // lalr1.cc:919
+#line 809 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1635 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1632 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 211:
-#line 820 "dhcp6_parser.yy" // lalr1.cc:919
+#line 822 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(duid);
}
-#line 1644 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1641 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 212:
-#line 825 "dhcp6_parser.yy" // lalr1.cc:919
+#line 827 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr duid(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(duid);
}
-#line 1653 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1650 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 213:
-#line 830 "dhcp6_parser.yy" // lalr1.cc:919
+#line 832 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("host-reservation-identifiers", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
}
-#line 1664 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1661 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 214:
-#line 835 "dhcp6_parser.yy" // lalr1.cc:919
+#line 837 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1673 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1670 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 220:
-#line 849 "dhcp6_parser.yy" // lalr1.cc:919
+#line 851 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(hwaddr);
}
-#line 1682 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1679 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 221:
-#line 854 "dhcp6_parser.yy" // lalr1.cc:919
+#line 856 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(flex_id);
}
-#line 1691 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1688 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 222:
-#line 861 "dhcp6_parser.yy" // lalr1.cc:919
+#line 863 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("relay-supplied-options", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1702 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1699 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 223:
-#line 866 "dhcp6_parser.yy" // lalr1.cc:919
+#line 868 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1711 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1708 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 224:
-#line 871 "dhcp6_parser.yy" // lalr1.cc:919
+#line 873 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hooks-libraries", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.HOOKS_LIBRARIES);
}
-#line 1722 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1719 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 225:
-#line 876 "dhcp6_parser.yy" // lalr1.cc:919
+#line 878 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1731 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1728 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 230:
-#line 889 "dhcp6_parser.yy" // lalr1.cc:919
+#line 891 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1741 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1738 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 231:
-#line 893 "dhcp6_parser.yy" // lalr1.cc:919
+#line 895 "dhcp6_parser.yy" // lalr1.cc:907
{
// The library hooks parameter is required
ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 1751 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1748 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 232:
-#line 899 "dhcp6_parser.yy" // lalr1.cc:919
+#line 901 "dhcp6_parser.yy" // lalr1.cc:907
{
// Parse the hooks-libraries list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1761 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1758 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 233:
-#line 903 "dhcp6_parser.yy" // lalr1.cc:919
+#line 905 "dhcp6_parser.yy" // lalr1.cc:907
{
// The library hooks parameter is required
ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 1771 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1768 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 239:
-#line 918 "dhcp6_parser.yy" // lalr1.cc:919
+#line 920 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1779 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1776 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 240:
-#line 920 "dhcp6_parser.yy" // lalr1.cc:919
+#line 922 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("library", lib);
ctx.leave();
}
-#line 1789 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1786 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 241:
-#line 926 "dhcp6_parser.yy" // lalr1.cc:919
+#line 928 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1797 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1794 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 242:
-#line 928 "dhcp6_parser.yy" // lalr1.cc:919
+#line 930 "dhcp6_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1806 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1803 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 243:
-#line 934 "dhcp6_parser.yy" // lalr1.cc:919
+#line 936 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("expired-leases-processing", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.EXPIRED_LEASES_PROCESSING);
}
-#line 1817 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1814 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 244:
-#line 939 "dhcp6_parser.yy" // lalr1.cc:919
+#line 941 "dhcp6_parser.yy" // lalr1.cc:907
{
// No expired lease parameter is required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1827 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1824 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 253:
-#line 957 "dhcp6_parser.yy" // lalr1.cc:919
+#line 959 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reclaim-timer-wait-time", value);
}
-#line 1836 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1833 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 254:
-#line 962 "dhcp6_parser.yy" // lalr1.cc:919
+#line 964 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value);
}
-#line 1845 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1842 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 255:
-#line 967 "dhcp6_parser.yy" // lalr1.cc:919
+#line 969 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hold-reclaimed-time", value);
}
-#line 1854 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1851 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 256:
-#line 972 "dhcp6_parser.yy" // lalr1.cc:919
+#line 974 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("max-reclaim-leases", value);
}
-#line 1863 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1860 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 257:
-#line 977 "dhcp6_parser.yy" // lalr1.cc:919
+#line 979 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("max-reclaim-time", value);
}
-#line 1872 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1869 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 258:
-#line 982 "dhcp6_parser.yy" // lalr1.cc:919
+#line 984 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("unwarned-reclaim-cycles", value);
}
-#line 1881 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1878 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 259:
-#line 990 "dhcp6_parser.yy" // lalr1.cc:919
+#line 992 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("subnet6", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.SUBNET6);
}
-#line 1892 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1889 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 260:
-#line 995 "dhcp6_parser.yy" // lalr1.cc:919
+#line 997 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1901 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1898 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 265:
-#line 1015 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1017 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1911 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1908 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 266:
-#line 1019 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1021 "dhcp6_parser.yy" // lalr1.cc:907
{
// Once we reached this place, the subnet parsing is now complete.
// If we want to, we can implement default values here.
ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 1937 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1934 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 267:
-#line 1041 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1043 "dhcp6_parser.yy" // lalr1.cc:907
{
// Parse the subnet6 list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1947 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1944 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 268:
-#line 1045 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1047 "dhcp6_parser.yy" // lalr1.cc:907
{
// The subnet subnet6 parameter is required
ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 1957 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1954 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 291:
-#line 1079 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1081 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1965 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1962 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 292:
-#line 1081 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1083 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("subnet", subnet);
ctx.leave();
}
-#line 1975 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1972 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 293:
-#line 1087 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1089 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1983 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1980 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 294:
-#line 1089 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1091 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interface", iface);
ctx.leave();
}
-#line 1993 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1990 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 295:
-#line 1095 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1097 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2001 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1998 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 296:
-#line 1097 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1099 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interface-id", iface);
ctx.leave();
}
-#line 2011 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2008 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 297:
-#line 1103 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1105 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2019 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2016 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 298:
-#line 1105 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1107 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("client-class", cls);
ctx.leave();
}
-#line 2029 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2026 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 299:
-#line 1111 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1113 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("require-client-classes", c);
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2040 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2037 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 300:
-#line 1116 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1118 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2049 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2046 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 301:
-#line 1121 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1123 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.RESERVATION_MODE);
}
-#line 2057 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2054 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 302:
-#line 1123 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1125 "dhcp6_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 2066 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2063 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 303:
-#line 1128 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
-#line 2072 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1130 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
+#line 2069 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 304:
-#line 1129 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
-#line 2078 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1131 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
+#line 2075 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 305:
-#line 1130 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
-#line 2084 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1132 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
+#line 2081 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 306:
-#line 1131 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
-#line 2090 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1133 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
+#line 2087 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 307:
-#line 1134 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1136 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("id", id);
}
-#line 2099 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2096 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 308:
-#line 1139 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1141 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("rapid-commit", rc);
}
-#line 2108 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2105 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 309:
-#line 1147 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1149 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("shared-networks", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.SHARED_NETWORK);
}
-#line 2119 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2116 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 310:
-#line 1152 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1154 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2128 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2125 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 315:
-#line 1167 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1169 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2138 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2135 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 316:
-#line 1171 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1173 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
}
-#line 2146 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2143 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 336:
-#line 1202 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1204 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("option-def", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.OPTION_DEF);
}
-#line 2157 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2154 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 337:
-#line 1207 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1209 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2166 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2163 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 338:
-#line 1215 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1217 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 2175 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2172 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 339:
-#line 1218 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1220 "dhcp6_parser.yy" // lalr1.cc:907
{
// parsing completed
}
-#line 2183 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2180 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 344:
-#line 1234 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1236 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2193 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2190 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 345:
-#line 1238 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1240 "dhcp6_parser.yy" // lalr1.cc:907
{
// The name, code and type option def parameters are required.
ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 2205 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2202 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 346:
-#line 1249 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1251 "dhcp6_parser.yy" // lalr1.cc:907
{
// Parse the option-def list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 2215 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2212 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 347:
-#line 1253 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1255 "dhcp6_parser.yy" // lalr1.cc:907
{
// The name, code and type option def parameters are required.
ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 2227 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2224 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 363:
-#line 1285 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1287 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("code", code);
}
-#line 2236 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2233 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 365:
-#line 1292 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1294 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2244 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2241 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 366:
-#line 1294 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1296 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("type", prf);
ctx.leave();
}
-#line 2254 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2251 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 367:
-#line 1300 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1302 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2262 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2259 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 368:
-#line 1302 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1304 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr rtypes(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("record-types", rtypes);
ctx.leave();
}
-#line 2272 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2269 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 369:
-#line 1308 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1310 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2280 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2277 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 370:
-#line 1310 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1312 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("space", space);
ctx.leave();
}
-#line 2290 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2287 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 372:
-#line 1318 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1320 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2298 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2295 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 373:
-#line 1320 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1322 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("encapsulate", encap);
ctx.leave();
}
-#line 2308 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2305 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 374:
-#line 1326 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1328 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("array", array);
}
-#line 2317 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2314 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 375:
-#line 1335 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1337 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("option-data", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.OPTION_DATA);
}
-#line 2328 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2325 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 376:
-#line 1340 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1342 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2337 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2334 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 381:
-#line 1359 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1361 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2347 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2344 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 382:
-#line 1363 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1365 "dhcp6_parser.yy" // lalr1.cc:907
{
/// @todo: the code or name parameters are required.
ctx.stack_.pop_back();
}
-#line 2356 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2353 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 383:
-#line 1371 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1373 "dhcp6_parser.yy" // lalr1.cc:907
{
// Parse the option-data list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 2366 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2363 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 384:
-#line 1375 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1377 "dhcp6_parser.yy" // lalr1.cc:907
{
/// @todo: the code or name parameters are required.
// parsing completed
}
-#line 2375 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2372 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 399:
-#line 1408 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1410 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2383 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2380 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 400:
-#line 1410 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1412 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("data", data);
ctx.leave();
}
-#line 2393 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2390 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 403:
-#line 1420 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1422 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("csv-format", space);
}
-#line 2402 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2399 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 404:
-#line 1425 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1427 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr persist(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("always-send", persist);
}
-#line 2411 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2408 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 405:
-#line 1433 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1435 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pools", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.POOLS);
}
-#line 2422 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2419 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 406:
-#line 1438 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1440 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2431 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2428 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 411:
-#line 1453 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1455 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2441 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2438 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 412:
-#line 1457 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1459 "dhcp6_parser.yy" // lalr1.cc:907
{
// The pool parameter is required.
ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 2451 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2448 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 413:
-#line 1463 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1465 "dhcp6_parser.yy" // lalr1.cc:907
{
// Parse the pool list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 2461 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2458 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 414:
-#line 1467 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1469 "dhcp6_parser.yy" // lalr1.cc:907
{
// The pool parameter is required.
ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
}
-#line 2470 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2467 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 424:
-#line 1485 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1487 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2478 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2475 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 425:
-#line 1487 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1489 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pool", pool);
ctx.leave();
}
-#line 2488 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2485 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 426:
-#line 1493 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1495 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2496 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2493 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 427:
-#line 1495 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1497 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr parent = ctx.stack_.back();
- ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
+ ElementPtr user_context = yystack_[0].value.as< ElementPtr > ();
ConstElementPtr old = parent->get("user-context");
// Handle already existing user context
parent->set("user-context", user_context);
ctx.leave();
}
-#line 2523 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2520 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 428:
-#line 1518 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1520 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2531 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2528 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 429:
-#line 1520 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1522 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr parent = ctx.stack_.back();
ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
- ElementPtr comment(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr comment(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
user_context->set("comment", comment);
// Handle already existing user context
parent->set("user-context", user_context);
ctx.leave();
}
-#line 2560 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2557 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 430:
-#line 1548 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1550 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pd-pools", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.PD_POOLS);
}
-#line 2571 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2568 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 431:
-#line 1553 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1555 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2580 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2577 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 436:
-#line 1568 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1570 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2590 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2587 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 437:
-#line 1572 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1574 "dhcp6_parser.yy" // lalr1.cc:907
{
// The prefix, prefix len and delegated len parameters are required.
ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 2602 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2599 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 438:
-#line 1580 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1582 "dhcp6_parser.yy" // lalr1.cc:907
{
// Parse the pd-pool list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 2612 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2609 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 439:
-#line 1584 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1586 "dhcp6_parser.yy" // lalr1.cc:907
{
// The prefix, prefix len and delegated len parameters are required.
ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 2624 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2621 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 453:
-#line 1609 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1611 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2632 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2629 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 454:
-#line 1611 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1613 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("prefix", prf);
ctx.leave();
}
-#line 2642 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2639 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 455:
-#line 1617 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1619 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("prefix-len", prf);
}
-#line 2651 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2648 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 456:
-#line 1622 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1624 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2659 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2656 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 457:
-#line 1624 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1626 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("excluded-prefix", prf);
ctx.leave();
}
-#line 2669 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2666 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 458:
-#line 1630 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1632 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("excluded-prefix-len", prf);
}
-#line 2678 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2675 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 459:
-#line 1635 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1637 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr deleg(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("delegated-len", deleg);
}
-#line 2687 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2684 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 460:
-#line 1643 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1645 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reservations", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.RESERVATIONS);
}
-#line 2698 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2695 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 461:
-#line 1648 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1650 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2707 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2704 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 466:
-#line 1661 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1663 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2717 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2714 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 467:
-#line 1665 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1667 "dhcp6_parser.yy" // lalr1.cc:907
{
/// @todo: an identifier parameter is required.
ctx.stack_.pop_back();
}
-#line 2726 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2723 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 468:
-#line 1670 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1672 "dhcp6_parser.yy" // lalr1.cc:907
{
// Parse the reservations list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 2736 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2733 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 469:
-#line 1674 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1676 "dhcp6_parser.yy" // lalr1.cc:907
{
/// @todo: an identifier parameter is required.
// parsing completed
}
-#line 2745 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2742 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 485:
-#line 1701 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1703 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ip-addresses", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2756 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2753 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 486:
-#line 1706 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1708 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2765 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2762 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 487:
-#line 1711 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1713 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("prefixes", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2776 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2773 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 488:
-#line 1716 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1718 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2785 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2782 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 489:
-#line 1721 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1723 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2793 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2790 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 490:
-#line 1723 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1725 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("duid", d);
ctx.leave();
}
-#line 2803 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2800 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 491:
-#line 1729 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1731 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2811 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2808 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 492:
-#line 1731 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1733 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hw-address", hw);
ctx.leave();
}
-#line 2821 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2818 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 493:
-#line 1737 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1739 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2829 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2826 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 494:
-#line 1739 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1741 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hostname", host);
ctx.leave();
}
-#line 2839 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2836 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 495:
-#line 1745 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1747 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2847 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2844 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 496:
-#line 1747 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1749 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("flex-id", hw);
ctx.leave();
}
-#line 2857 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2854 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 497:
-#line 1753 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1755 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("client-classes", c);
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2868 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2865 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 498:
-#line 1758 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1760 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2877 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2874 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 499:
-#line 1766 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1768 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("relay", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.RELAY);
}
-#line 2888 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2885 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 500:
-#line 1771 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1773 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2897 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2894 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 503:
-#line 1780 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1782 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2905 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2902 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 504:
-#line 1782 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1784 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr addr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ip-address", addr);
ctx.leave();
}
-#line 2915 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2912 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 505:
-#line 1791 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1793 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("client-classes", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.CLIENT_CLASSES);
}
-#line 2926 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2923 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 506:
-#line 1796 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1798 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2935 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2932 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 509:
-#line 1805 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1807 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2945 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2942 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 510:
-#line 1809 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1811 "dhcp6_parser.yy" // lalr1.cc:907
{
// The name client class parameter is required.
ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 2955 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2952 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 523:
-#line 1834 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1836 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2963 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2960 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 524:
-#line 1836 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1838 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("test", test);
ctx.leave();
}
-#line 2973 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2970 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 525:
-#line 1842 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1844 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("only-if-required", b);
}
-#line 2982 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2979 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 526:
-#line 1850 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1852 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-id", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.SERVER_ID);
}
-#line 2993 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2990 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 527:
-#line 1855 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1857 "dhcp6_parser.yy" // lalr1.cc:907
{
// The type parameter is required.
ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3004 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3001 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 539:
-#line 1877 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1879 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.DUID_TYPE);
}
-#line 3012 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3009 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 540:
-#line 1879 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1881 "dhcp6_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 3021 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3018 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 541:
-#line 1884 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); }
-#line 3027 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1886 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); }
+#line 3024 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 542:
-#line 1885 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); }
-#line 3033 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1887 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); }
+#line 3030 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 543:
-#line 1886 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); }
-#line 3039 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1888 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); }
+#line 3036 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 544:
-#line 1889 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1891 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("htype", htype);
}
-#line 3048 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3045 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 545:
-#line 1894 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1896 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3056 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3053 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 546:
-#line 1896 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1898 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("identifier", id);
ctx.leave();
}
-#line 3066 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3063 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 547:
-#line 1902 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1904 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("time", time);
}
-#line 3075 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3072 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 548:
-#line 1907 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1909 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enterprise-id", time);
}
-#line 3084 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3081 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 549:
-#line 1914 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1916 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("dhcp4o6-port", time);
}
-#line 3093 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3090 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 550:
-#line 1921 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1923 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("control-socket", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.CONTROL_SOCKET);
}
-#line 3104 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3101 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 551:
-#line 1926 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1928 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3113 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3110 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 559:
-#line 1942 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1944 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3121 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3118 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 560:
-#line 1944 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1946 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-type", stype);
ctx.leave();
}
-#line 3131 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3128 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 561:
-#line 1950 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1952 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3139 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3136 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 562:
-#line 1952 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1954 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-name", name);
ctx.leave();
}
-#line 3149 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3146 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 563:
-#line 1960 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1962 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3157 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3154 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 564:
-#line 1962 "dhcp6_parser.yy" // lalr1.cc:919
+#line 1964 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr qc = yystack_[0].value.as < ElementPtr > ();
+ ElementPtr qc = yystack_[0].value.as< ElementPtr > ();
ctx.stack_.back()->set("dhcp-queue-control", qc);
// Doing this manually, because dhcp-queue-control
ctx.leave();
}
-#line 3197 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3194 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 565:
-#line 2000 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2002 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("dhcp-ddns", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.DHCP_DDNS);
}
-#line 3208 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3205 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 566:
-#line 2005 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2007 "dhcp6_parser.yy" // lalr1.cc:907
{
// The enable updates DHCP DDNS parameter is required.
ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3219 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3216 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 567:
-#line 2012 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2014 "dhcp6_parser.yy" // lalr1.cc:907
{
// Parse the dhcp-ddns map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3229 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3226 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 568:
-#line 2016 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2018 "dhcp6_parser.yy" // lalr1.cc:907
{
// The enable updates DHCP DDNS parameter is required.
ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 3239 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3236 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 589:
-#line 2046 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2048 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enable-updates", b);
}
-#line 3248 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3245 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 590:
-#line 2051 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2053 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3256 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3253 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 591:
-#line 2053 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2055 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("qualifying-suffix", s);
ctx.leave();
}
-#line 3266 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3263 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 592:
-#line 2059 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2061 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3274 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3271 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 593:
-#line 2061 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2063 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-ip", s);
ctx.leave();
}
-#line 3284 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3281 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 594:
-#line 2067 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2069 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-port", i);
}
-#line 3293 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3290 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 595:
-#line 2072 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2074 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3301 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3298 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 596:
-#line 2074 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2076 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("sender-ip", s);
ctx.leave();
}
-#line 3311 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3308 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 597:
-#line 2080 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2082 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("sender-port", i);
}
-#line 3320 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3317 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 598:
-#line 2085 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2087 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("max-queue-size", i);
}
-#line 3329 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3326 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 599:
-#line 2090 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2092 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NCR_PROTOCOL);
}
-#line 3337 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3334 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 600:
-#line 2092 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2094 "dhcp6_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 3346 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3343 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 601:
-#line 2098 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 3352 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2100 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
+#line 3349 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 602:
-#line 2099 "dhcp6_parser.yy" // lalr1.cc:919
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 3358 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2101 "dhcp6_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
+#line 3355 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 603:
-#line 2102 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2104 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NCR_FORMAT);
}
-#line 3366 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3363 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 604:
-#line 2104 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2106 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ncr-format", json);
ctx.leave();
}
-#line 3376 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3373 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 605:
-#line 2110 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2112 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("override-no-update", b);
}
-#line 3385 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3382 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 606:
-#line 2115 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2117 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("override-client-update", b);
}
-#line 3394 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3391 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 607:
-#line 2120 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2122 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.REPLACE_CLIENT_NAME);
}
-#line 3402 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3399 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 608:
-#line 2122 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2124 "dhcp6_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 3411 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3408 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 609:
-#line 2128 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2130 "dhcp6_parser.yy" // lalr1.cc:907
{
- yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
+ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
}
-#line 3419 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3416 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 610:
-#line 2131 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2133 "dhcp6_parser.yy" // lalr1.cc:907
{
- yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
+ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
}
-#line 3427 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3424 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 611:
-#line 2134 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2136 "dhcp6_parser.yy" // lalr1.cc:907
{
- yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
+ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
}
-#line 3435 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3432 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 612:
-#line 2137 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2139 "dhcp6_parser.yy" // lalr1.cc:907
{
- yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
+ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
}
-#line 3443 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3440 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 613:
-#line 2140 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2142 "dhcp6_parser.yy" // lalr1.cc:907
{
error(yystack_[0].location, "boolean values for the replace-client-name are "
"no longer supported");
}
-#line 3452 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3449 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 614:
-#line 2146 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2148 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3460 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3457 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 615:
-#line 2148 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2150 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("generated-prefix", s);
ctx.leave();
}
-#line 3470 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3467 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 616:
-#line 2154 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2156 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3478 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3475 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 617:
-#line 2156 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2158 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hostname-char-set", s);
ctx.leave();
}
-#line 3488 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3485 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 618:
-#line 2162 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2164 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3496 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3493 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 619:
-#line 2164 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2166 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hostname-char-replacement", s);
ctx.leave();
}
-#line 3506 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3503 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 620:
-#line 2172 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2174 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3514 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3511 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 621:
-#line 2174 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2176 "dhcp6_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 3523 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3520 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 622:
-#line 2179 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2181 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3531 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3528 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 623:
-#line 2181 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2183 "dhcp6_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 3540 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3537 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 624:
-#line 2186 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2188 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3548 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3545 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 625:
-#line 2188 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2190 "dhcp6_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("Control-agent", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 3557 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3554 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 626:
-#line 2195 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2197 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("config-control", i);
ctx.stack_.push_back(i);
ctx.enter(ctx.CONFIG_CONTROL);
}
-#line 3568 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3565 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 627:
-#line 2200 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2202 "dhcp6_parser.yy" // lalr1.cc:907
{
// No config control params are required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3578 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3575 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 628:
-#line 2206 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2208 "dhcp6_parser.yy" // lalr1.cc:907
{
// Parse the config-control map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3588 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3585 "dhcp6_parser.cc" // lalr1.cc:907
break;
case 629:
-#line 2210 "dhcp6_parser.yy" // lalr1.cc:919
+#line 2212 "dhcp6_parser.yy" // lalr1.cc:907
{
// No config_control params are required
// parsing completed
}
-#line 3597 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3594 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 633:
-#line 2224 "dhcp6_parser.yy" // lalr1.cc:919
+ case 634:
+#line 2227 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("config-databases", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.CONFIG_DATABASE);
}
-#line 3608 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3605 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 634:
-#line 2229 "dhcp6_parser.yy" // lalr1.cc:919
+ case 635:
+#line 2232 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3617 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3614 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 635:
-#line 2239 "dhcp6_parser.yy" // lalr1.cc:919
+ case 636:
+#line 2237 "dhcp6_parser.yy" // lalr1.cc:907
+ {
+ 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 3623 "dhcp6_parser.cc" // lalr1.cc:907
+ break;
+
+ case 637:
+#line 2247 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("Logging", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.LOGGING);
}
-#line 3628 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3634 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 636:
-#line 2244 "dhcp6_parser.yy" // lalr1.cc:919
+ case 638:
+#line 2252 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3637 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3643 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 637:
-#line 2249 "dhcp6_parser.yy" // lalr1.cc:919
+ case 639:
+#line 2257 "dhcp6_parser.yy" // lalr1.cc:907
{
// Parse the Logging map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3647 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3653 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 638:
-#line 2253 "dhcp6_parser.yy" // lalr1.cc:919
+ case 640:
+#line 2261 "dhcp6_parser.yy" // lalr1.cc:907
{
// parsing completed
}
-#line 3655 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3661 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 642:
-#line 2269 "dhcp6_parser.yy" // lalr1.cc:919
+ case 644:
+#line 2277 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("loggers", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.LOGGERS);
}
-#line 3666 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3672 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 643:
-#line 2274 "dhcp6_parser.yy" // lalr1.cc:919
+ case 645:
+#line 2282 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3675 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3681 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 646:
-#line 2286 "dhcp6_parser.yy" // lalr1.cc:919
+ case 648:
+#line 2294 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(l);
ctx.stack_.push_back(l);
}
-#line 3685 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3691 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 647:
-#line 2290 "dhcp6_parser.yy" // lalr1.cc:919
+ case 649:
+#line 2298 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
}
-#line 3693 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3699 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 657:
-#line 2307 "dhcp6_parser.yy" // lalr1.cc:919
+ case 659:
+#line 2315 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("debuglevel", dl);
}
-#line 3702 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3708 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 658:
-#line 2312 "dhcp6_parser.yy" // lalr1.cc:919
+ case 660:
+#line 2320 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3710 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3716 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 659:
-#line 2314 "dhcp6_parser.yy" // lalr1.cc:919
+ case 661:
+#line 2322 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("severity", sev);
ctx.leave();
}
-#line 3720 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3726 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 660:
-#line 2320 "dhcp6_parser.yy" // lalr1.cc:919
+ case 662:
+#line 2328 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("output_options", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.OUTPUT_OPTIONS);
}
-#line 3731 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3737 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 661:
-#line 2325 "dhcp6_parser.yy" // lalr1.cc:919
+ case 663:
+#line 2333 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3740 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3746 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 664:
-#line 2334 "dhcp6_parser.yy" // lalr1.cc:919
+ case 666:
+#line 2342 "dhcp6_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3750 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3756 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 665:
-#line 2338 "dhcp6_parser.yy" // lalr1.cc:919
+ case 667:
+#line 2346 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
}
-#line 3758 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3764 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 672:
-#line 2352 "dhcp6_parser.yy" // lalr1.cc:919
+ case 674:
+#line 2360 "dhcp6_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3766 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3772 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 673:
-#line 2354 "dhcp6_parser.yy" // lalr1.cc:919
+ case 675:
+#line 2362 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("output", sev);
ctx.leave();
}
-#line 3776 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3782 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 674:
-#line 2360 "dhcp6_parser.yy" // lalr1.cc:919
+ case 676:
+#line 2368 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("flush", flush);
}
-#line 3785 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3791 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 675:
-#line 2365 "dhcp6_parser.yy" // lalr1.cc:919
+ case 677:
+#line 2373 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxsize", maxsize);
}
-#line 3794 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3800 "dhcp6_parser.cc" // lalr1.cc:907
break;
- case 676:
-#line 2370 "dhcp6_parser.yy" // lalr1.cc:919
+ case 678:
+#line 2378 "dhcp6_parser.yy" // lalr1.cc:907
{
- ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxver", maxver);
}
-#line 3803 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3809 "dhcp6_parser.cc" // lalr1.cc:907
break;
-#line 3807 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3813 "dhcp6_parser.cc" // lalr1.cc:907
default:
break;
}
#if YY_EXCEPTIONS
catch (const syntax_error& yyexc)
{
- YYCDEBUG << "Caught exception: " << yyexc.what() << '\n';
error (yyexc);
YYERROR;
}
}
goto yynewstate;
-
/*--------------------------------------.
| yyerrlab -- here on detecting error. |
`--------------------------------------*/
| yyerrorlab -- error raised explicitly by YYERROR. |
`---------------------------------------------------*/
yyerrorlab:
- /* Pacify compilers when the user code never invokes YYERROR and
- the label yyerrorlab therefore never appears in user code. */
- if (false)
- YYERROR;
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ if (false)
+ goto yyerrorlab;
/* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */
yypop_ (yylen);
yylen = 0;
goto yyerrlab1;
-
/*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR. |
`-------------------------------------------------------------*/
}
goto yynewstate;
-
- /*-------------------------------------.
- | yyacceptlab -- YYACCEPT comes here. |
- `-------------------------------------*/
+ // Accept.
yyacceptlab:
yyresult = 0;
goto yyreturn;
-
- /*-----------------------------------.
- | yyabortlab -- YYABORT comes here. |
- `-----------------------------------*/
+ // Abort.
yyabortlab:
yyresult = 1;
goto yyreturn;
-
- /*-----------------------------------------------------.
- | yyreturn -- parsing is finished, return the result. |
- `-----------------------------------------------------*/
yyreturn:
if (!yyla.empty ())
yy_destroy_ ("Cleanup: discarding lookahead", yyla);
}
- const short Dhcp6Parser::yypact_ninf_ = -833;
+ const short Dhcp6Parser::yypact_ninf_ = -837;
const signed char Dhcp6Parser::yytable_ninf_ = -1;
const short
Dhcp6Parser::yypact_[] =
{
- 415, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, 71, 65, 68, 82,
- 83, 90, 98, 99, 116, 151, 163, 200, 230, 236,
- 238, 251, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, 65, 94, 27, 69, 23, 227, 107, 35,
- 167, 233, 73, 268, -52, 366, 138, 266, -833, 285,
- 302, 312, 298, 324, -833, -833, -833, -833, -833, 335,
- -833, 37, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, 339, 345, 347, 351, 355, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, 357, -833, -833, -833,
- -833, 54, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, 361, -833, 70, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, 364,
- 365, -833, -833, -833, -833, -833, -833, -833, -833, 76,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, 131, -833, -833, -833, -833, -833, 367, -833, 383,
- 387, -833, -833, -833, -833, -833, -833, 132, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, 334, 350, -833, -833, -833,
- -833, -833, -833, -833, -833, 397, -833, -833, 405, -833,
- -833, -833, 408, -833, -833, 411, 419, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- 422, 436, -833, -833, -833, -833, 435, 441, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- 159, -833, -833, -833, 442, -833, -833, 443, -833, 444,
- 446, -833, -833, 447, 448, -833, -833, -833, -833, -833,
- -833, -833, 177, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- 187, -833, -833, -833, 244, -833, -833, -833, 65, 65,
- -833, 280, 450, 451, 454, 457, 460, -833, 27, -833,
- 461, 462, 463, 464, 465, 466, 271, 297, 299, 300,
- 303, 468, 472, 475, 476, 477, 478, 479, 480, 481,
- 483, 484, 485, 499, 500, 501, 502, 503, 340, 504,
- 505, 508, 69, -833, 509, 341, 23, -833, 512, 514,
- 515, 516, 517, 352, 348, 519, 521, 523, 227, -833,
- 524, 107, -833, 528, 360, 529, 362, 363, 35, -833,
- 531, 536, 537, 538, 539, 540, 541, -833, 167, -833,
- 542, 545, 377, 548, 549, 550, 379, -833, 73, 552,
- 381, 382, -833, 268, 555, 556, -37, -833, 386, 561,
- 563, 394, 565, 396, 414, 567, 585, 416, 418, 586,
- 587, 589, 591, 366, -833, 592, 138, -833, 595, 266,
- -833, -833, -833, 597, 596, 598, 65, 65, 65, -833,
- 429, 599, 600, 601, 603, 606, -833, -833, -833, -833,
- -833, 431, 607, 608, 609, 610, 445, 178, 611, 614,
- 615, 616, 617, 618, 620, 621, 622, 623, -833, 625,
- 610, 626, -833, 629, -833, -833, 630, 631, 449, 455,
- 467, -833, -833, 629, 469, 632, -833, 470, -833, 471,
- -833, 473, -833, -833, -833, 629, 629, 629, 474, 482,
- 486, 487, -833, 488, 489, -833, 490, 491, 492, -833,
- -833, 493, -833, -833, -833, 494, 65, -833, -833, 495,
- 496, -833, 497, -833, -833, 40, 498, -833, -833, -33,
- 506, 507, 510, -833, 633, -833, 636, -833, 65, 69,
- 138, -833, -833, -833, -833, 266, 23, 193, 193, 638,
- -833, 641, 642, 643, -833, -833, -833, -833, -833, -833,
- -833, -833, 644, -53, 65, 104, 530, 645, 646, 647,
- 204, 134, 8, -833, 366, -833, -833, 649, 650, -833,
- -833, -833, -833, -833, -48, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, 651,
- 638, -833, 265, 278, 323, 326, -833, -833, -833, -833,
- 667, 668, 669, 670, 671, -833, 672, 673, -833, -833,
- -833, 674, 677, 678, -833, 327, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, 330, -833, 679, 624,
- -833, -833, 680, 681, -833, -833, 682, 684, -833, -833,
- 683, 687, -833, -833, 685, 689, -833, -833, -833, 130,
- -833, -833, -833, 688, -833, -833, -833, 153, -833, -833,
- -833, -833, 338, -833, -833, -833, 168, -833, -833, 690,
- 692, -833, -833, 691, 695, -833, 696, 697, 698, 699,
- 700, 701, 342, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, 702, 703, 704, -833, -833, -833, -833, 349,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, 359, -833, -833, -833, 378, 520, -833, 693, 706,
- -833, -833, 705, 707, -833, -833, -833, 708, -833, -833,
- 183, -833, 709, -833, -833, -833, -833, 710, 713, 714,
- 715, 546, 547, 551, 553, 554, 717, 557, 558, 718,
- 720, 722, 559, 560, 562, 193, -833, -833, 193, -833,
- 638, 227, -833, 641, 73, -833, 642, 268, -833, 643,
- 388, -833, 644, -53, -833, -833, 104, -833, 723, 530,
- -833, 215, 645, -833, 167, -833, 646, -52, -833, 647,
- 566, 568, 569, 570, 571, 572, 204, -833, 726, 731,
- 573, 574, 575, 134, -833, 732, 733, 8, -833, -833,
- -833, 735, 736, 107, -833, 649, 35, -833, 650, 746,
- -833, 142, 651, -833, -833, 124, 578, 579, 580, -833,
- -833, -833, -833, -833, 581, -833, -833, 582, 583, 584,
- -833, -833, -833, -833, 390, -833, 400, -833, 750, -833,
- 751, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, 403, -833, -833, -833, -833,
- -833, -833, -833, -833, 588, -833, -833, 756, -833, -833,
- -833, -833, -833, 754, 760, -833, -833, -833, -833, -833,
- 757, -833, 410, -833, -833, -833, -833, -833, -833, -833,
- -833, 103, 593, -833, -833, -833, -833, 594, 602, -833,
- -833, 605, 413, -833, 417, -833, 612, -833, 764, -833,
- -833, -833, -833, -833, 420, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, 388, -833, -833, 765,
- 619, -833, 215, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, 766, 590, 767, 142,
- -833, -833, 634, -833, -833, 768, -833, 637, -833, -833,
- 769, -833, -833, 272, -833, 12, 769, -833, -833, 770,
- 775, 778, 434, -833, -833, -833, -833, -833, -833, 788,
- 628, 648, 652, 12, -833, 639, -833, -833, -833, -833,
- -833
+ 418, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, 57, 65, 64, 66,
+ 68, 87, 91, 126, 133, 148, 164, 184, 195, 203,
+ 229, 230, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, 65, -95, 27, 69, 22, 234, 72, 39,
+ 196, 188, 41, 262, -53, 375, 96, 144, -837, 242,
+ 249, 269, 263, 281, -837, -837, -837, -837, -837, 307,
+ -837, 94, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, 309, 316, 317, 323, 341, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, 347, -837, -837, -837,
+ -837, 123, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, 353, -837, 140, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, 357,
+ 367, -837, -837, -837, -837, -837, -837, -837, -837, 141,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, 178, -837, -837, -837, -837, -837, 369, -837, 385,
+ 410, -837, -837, -837, -837, -837, -837, 187, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, 416, 352, -837, -837, -837,
+ -837, -837, -837, -837, -837, 417, -837, -837, 423, -837,
+ -837, -837, 424, -837, -837, 422, 390, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ 433, 435, -837, -837, -837, -837, 434, 440, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ 191, -837, -837, -837, 442, -837, -837, 443, -837, 444,
+ 445, -837, -837, 446, 448, -837, -837, -837, -837, -837,
+ -837, -837, 260, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ 261, -837, -837, -837, 449, 264, -837, -837, -837, -837,
+ 65, 65, -837, 280, 451, 452, 453, 456, 459, -837,
+ 27, -837, 462, 463, 464, 465, 466, 467, 297, 298,
+ 299, 300, 301, 474, 475, 477, 478, 479, 480, 481,
+ 482, 483, 485, 486, 487, 488, 489, 490, 491, 492,
+ 322, 494, 495, 509, 69, -837, 510, 338, 22, -837,
+ 512, 513, 514, 518, 519, 349, 348, 523, 524, 525,
+ 234, -837, 526, 72, -837, 527, 362, 531, 363, 364,
+ 39, -837, 532, 536, 537, 539, 540, 541, 542, -837,
+ 196, -837, 543, 544, 378, 546, 551, 552, 381, -837,
+ 41, 553, 382, 383, -837, 262, 557, 558, -17, -837,
+ 388, 560, 562, 394, 567, 400, 419, 568, 569, 415,
+ 420, 570, 589, 591, 592, 375, -837, 594, 96, -837,
+ 595, 425, 144, -837, -837, -837, 599, 598, 600, 65,
+ 65, 65, -837, 432, 601, 602, 603, 604, 608, -837,
+ -837, -837, -837, -837, 441, 609, 611, 612, 613, 447,
+ 221, 614, 617, 618, 619, 620, 621, 623, 624, 625,
+ 626, -837, 627, 613, 629, -837, 632, -837, -837, 633,
+ 634, 457, 468, 469, -837, -837, 632, 470, 638, -837,
+ 472, -837, 473, -837, 476, -837, -837, -837, 632, 632,
+ 632, 484, 493, 496, 497, -837, 498, 499, -837, 500,
+ 501, 502, -837, -837, 503, -837, -837, -837, 504, 65,
+ -837, -837, 505, 506, -837, 507, -837, -837, -98, 508,
+ -837, -837, 34, 511, 515, 516, -837, 635, -837, 636,
+ -837, -837, 65, 69, 96, -837, -837, -837, -837, 144,
+ 22, 193, 193, 642, -837, 644, 645, 646, -837, -837,
+ -837, -837, -837, -837, -837, -837, 647, -50, 65, 315,
+ 571, 648, 649, 652, 152, 138, 128, -837, 375, -837,
+ -837, 653, 654, -837, -837, -837, -837, -837, -49, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, 655, 642, -837, 267, 278, 279, 320,
+ -837, -837, -837, -837, 659, 660, 661, 662, 664, -837,
+ 665, 678, -837, -837, -837, 679, 680, 682, -837, 321,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ 332, -837, 681, 615, -837, -837, 685, 622, -837, -837,
+ 686, 690, -837, -837, 688, 692, -837, -837, 691, 693,
+ -837, -837, -837, 119, -837, -837, -837, 694, -837, -837,
+ -837, 166, -837, -837, -837, -837, 333, -837, -837, -837,
+ 176, -837, -837, 695, 696, -837, -837, 697, 699, -837,
+ 684, 700, 701, 702, 703, 704, 334, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, 705, 706, 707, -837,
+ -837, -837, -837, 335, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, 336, -837, -837, -837, 344,
+ 538, -837, 708, 710, -837, -837, 709, 713, -837, -837,
+ -837, 711, -837, -837, 197, -837, 712, -837, -837, -837,
+ -837, 716, 717, 718, 719, 455, 521, 549, 548, 554,
+ 722, 555, 556, 723, 724, 728, 559, 561, 563, 193,
+ -837, -837, 193, -837, 642, 234, -837, 644, 41, -837,
+ 645, 262, -837, 646, 389, -837, 647, -50, -837, -837,
+ 315, -837, 729, 571, -837, 77, 648, -837, 196, -837,
+ 649, -53, -837, 652, 564, 566, 572, 573, 574, 575,
+ 152, -837, 731, 733, 576, 577, 578, 138, -837, 734,
+ 738, 128, -837, -837, -837, 737, 714, 72, -837, 653,
+ 39, -837, 654, 740, -837, 13, 655, -837, -837, 398,
+ 580, 581, 582, -837, -837, -837, -837, -837, 583, -837,
+ -837, 584, 585, 586, -837, -837, -837, -837, 345, -837,
+ 351, -837, 753, -837, 754, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, 360,
+ -837, -837, -837, -837, -837, -837, -837, -837, 590, -837,
+ -837, 741, -837, -837, -837, -837, -837, 755, 743, -837,
+ -837, -837, -837, -837, 757, -837, 361, -837, -837, -837,
+ -837, -837, -837, -837, -837, 104, 593, -837, -837, -837,
+ -837, 596, 597, -837, -837, 605, 380, -837, 387, -837,
+ 606, -837, 762, -837, -837, -837, -837, -837, 397, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ 389, -837, -837, 764, 631, -837, 77, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ 765, 607, 768, 13, -837, -837, 637, -837, -837, 769,
+ -837, 640, -837, -837, 766, -837, -837, 412, -837, -18,
+ 766, -837, -837, 771, 772, 773, 399, -837, -837, -837,
+ -837, -837, -837, 774, 639, 650, 651, -18, -837, 641,
+ -837, -837, -837, -837, -837
};
const unsigned short
0, 0, 1, 47, 40, 36, 35, 32, 33, 34,
39, 3, 37, 38, 60, 5, 72, 7, 120, 9,
267, 11, 413, 13, 438, 15, 468, 17, 338, 19,
- 346, 21, 383, 23, 232, 25, 567, 27, 637, 29,
+ 346, 21, 383, 23, 232, 25, 567, 27, 639, 29,
628, 31, 49, 43, 0, 0, 0, 0, 0, 0,
470, 0, 348, 385, 0, 0, 0, 0, 51, 0,
- 50, 0, 0, 44, 70, 635, 620, 622, 624, 0,
+ 50, 0, 0, 44, 70, 637, 620, 622, 624, 0,
69, 0, 62, 64, 66, 67, 68, 65, 109, 626,
118, 132, 134, 136, 0, 0, 0, 0, 0, 116,
259, 336, 375, 426, 428, 301, 309, 205, 222, 213,
0, 234, 237, 238, 0, 590, 592, 0, 595, 0,
0, 599, 603, 0, 0, 607, 614, 616, 618, 588,
586, 587, 0, 569, 571, 572, 573, 574, 575, 576,
- 577, 578, 579, 580, 581, 582, 583, 584, 585, 642,
- 0, 639, 641, 633, 0, 630, 632, 48, 0, 0,
- 41, 0, 0, 0, 0, 0, 0, 59, 0, 61,
+ 577, 578, 579, 580, 581, 582, 583, 584, 585, 644,
+ 0, 641, 643, 634, 0, 0, 630, 632, 633, 48,
+ 0, 0, 41, 0, 0, 0, 0, 0, 0, 59,
+ 0, 61, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 73, 0, 0, 0, 121,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 268, 0, 0, 414, 0, 0, 0, 0, 0,
+ 0, 439, 0, 0, 0, 0, 0, 0, 0, 469,
+ 0, 339, 0, 0, 0, 0, 0, 0, 0, 347,
+ 0, 0, 0, 0, 384, 0, 0, 0, 0, 233,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 73, 0, 0, 0, 121, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 268,
- 0, 0, 414, 0, 0, 0, 0, 0, 0, 439,
- 0, 0, 0, 0, 0, 0, 0, 469, 0, 339,
- 0, 0, 0, 0, 0, 0, 0, 347, 0, 0,
- 0, 0, 384, 0, 0, 0, 0, 233, 0, 0,
+ 0, 0, 0, 0, 0, 0, 568, 0, 0, 640,
+ 0, 0, 0, 629, 52, 45, 0, 0, 0, 0,
+ 0, 0, 63, 0, 0, 0, 0, 0, 0, 111,
+ 112, 113, 114, 115, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 568, 0, 0, 638, 0, 0,
- 629, 52, 45, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 111, 112, 113, 114,
- 115, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 549, 0,
- 0, 0, 75, 0, 131, 123, 0, 0, 0, 0,
- 0, 307, 308, 0, 0, 0, 270, 0, 416, 0,
- 455, 0, 458, 459, 441, 0, 0, 0, 0, 0,
- 0, 0, 473, 0, 0, 363, 0, 0, 0, 374,
- 351, 0, 403, 404, 388, 0, 0, 235, 589, 0,
- 0, 594, 0, 597, 598, 0, 0, 605, 606, 0,
- 0, 0, 0, 570, 0, 640, 0, 631, 0, 0,
- 0, 621, 623, 625, 110, 0, 0, 0, 0, 138,
- 117, 261, 340, 377, 42, 427, 429, 303, 304, 305,
- 306, 302, 311, 0, 49, 0, 0, 0, 462, 226,
- 0, 0, 0, 564, 0, 53, 130, 407, 432, 292,
- 294, 296, 300, 298, 0, 425, 454, 457, 498, 486,
- 488, 490, 492, 494, 496, 366, 180, 370, 368, 373,
- 400, 240, 242, 591, 593, 596, 601, 602, 600, 604,
- 609, 610, 611, 612, 613, 608, 615, 617, 619, 0,
- 138, 46, 0, 0, 0, 0, 166, 172, 174, 176,
- 0, 0, 0, 0, 0, 189, 0, 0, 192, 194,
- 196, 0, 0, 0, 165, 0, 144, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 158, 159, 160,
- 161, 156, 157, 162, 163, 164, 0, 142, 0, 139,
- 140, 265, 0, 262, 263, 344, 0, 341, 342, 381,
- 0, 378, 379, 315, 0, 312, 313, 211, 212, 0,
- 207, 209, 210, 0, 220, 221, 217, 0, 215, 218,
- 219, 203, 0, 200, 202, 509, 0, 507, 466, 0,
- 463, 464, 230, 0, 227, 228, 0, 0, 0, 0,
- 0, 0, 0, 245, 247, 248, 249, 250, 251, 252,
- 539, 545, 0, 0, 0, 538, 535, 536, 537, 0,
- 528, 530, 533, 531, 532, 534, 559, 561, 558, 556,
- 557, 0, 552, 554, 555, 0, 55, 411, 0, 408,
- 409, 436, 0, 433, 434, 503, 502, 0, 501, 646,
- 0, 644, 0, 71, 636, 627, 119, 0, 0, 0,
+ 0, 549, 0, 0, 0, 75, 0, 131, 123, 0,
+ 0, 0, 0, 0, 307, 308, 0, 0, 0, 270,
+ 0, 416, 0, 455, 0, 458, 459, 441, 0, 0,
+ 0, 0, 0, 0, 0, 473, 0, 0, 363, 0,
+ 0, 0, 374, 351, 0, 403, 404, 388, 0, 0,
+ 235, 589, 0, 0, 594, 0, 597, 598, 0, 0,
+ 605, 606, 0, 0, 0, 0, 570, 0, 642, 0,
+ 636, 631, 0, 0, 0, 621, 623, 625, 110, 0,
+ 0, 0, 0, 138, 117, 261, 340, 377, 42, 427,
+ 429, 303, 304, 305, 306, 302, 311, 0, 49, 0,
+ 0, 0, 462, 226, 0, 0, 0, 564, 0, 53,
+ 130, 407, 432, 292, 294, 296, 300, 298, 0, 425,
+ 454, 457, 498, 486, 488, 490, 492, 494, 496, 366,
+ 180, 370, 368, 373, 400, 240, 242, 591, 593, 596,
+ 601, 602, 600, 604, 609, 610, 611, 612, 613, 608,
+ 615, 617, 619, 0, 138, 46, 0, 0, 0, 0,
+ 166, 172, 174, 176, 0, 0, 0, 0, 0, 189,
+ 0, 0, 192, 194, 196, 0, 0, 0, 165, 0,
+ 144, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 158, 159, 160, 161, 156, 157, 162, 163, 164,
+ 0, 142, 0, 139, 140, 265, 0, 262, 263, 344,
+ 0, 341, 342, 381, 0, 378, 379, 315, 0, 312,
+ 313, 211, 212, 0, 207, 209, 210, 0, 220, 221,
+ 217, 0, 215, 218, 219, 203, 0, 200, 202, 509,
+ 0, 507, 466, 0, 463, 464, 230, 0, 227, 228,
+ 0, 0, 0, 0, 0, 0, 0, 245, 247, 248,
+ 249, 250, 251, 252, 539, 545, 0, 0, 0, 538,
+ 535, 536, 537, 0, 528, 530, 533, 531, 532, 534,
+ 559, 561, 558, 556, 557, 0, 552, 554, 555, 0,
+ 55, 411, 0, 408, 409, 436, 0, 433, 434, 503,
+ 502, 0, 501, 648, 0, 646, 0, 71, 638, 627,
+ 119, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 133, 135, 0, 137,
- 0, 0, 260, 0, 348, 337, 0, 385, 376, 0,
- 0, 310, 0, 0, 206, 223, 0, 214, 0, 0,
- 199, 511, 0, 506, 470, 461, 0, 0, 225, 0,
- 0, 0, 0, 0, 0, 0, 0, 244, 0, 0,
- 0, 0, 0, 0, 527, 0, 0, 0, 551, 566,
- 57, 0, 56, 0, 406, 0, 0, 431, 0, 0,
- 500, 0, 0, 643, 634, 0, 0, 0, 0, 178,
- 181, 182, 183, 184, 0, 191, 185, 0, 0, 0,
- 186, 187, 188, 145, 0, 141, 0, 264, 0, 343,
- 0, 380, 335, 330, 332, 323, 324, 319, 320, 321,
- 322, 328, 329, 327, 331, 0, 317, 325, 333, 334,
- 326, 314, 208, 216, 0, 201, 523, 0, 521, 522,
- 518, 519, 520, 0, 512, 513, 515, 516, 517, 508,
- 0, 465, 0, 229, 253, 254, 255, 256, 257, 258,
- 246, 0, 0, 544, 547, 548, 529, 0, 0, 553,
- 54, 0, 0, 410, 0, 435, 0, 660, 0, 658,
- 656, 650, 654, 655, 0, 648, 652, 653, 651, 645,
- 168, 169, 170, 171, 167, 173, 175, 177, 190, 193,
- 195, 197, 143, 266, 345, 382, 0, 316, 204, 0,
- 0, 510, 0, 467, 231, 541, 542, 543, 540, 546,
- 560, 562, 58, 412, 437, 504, 0, 0, 0, 0,
- 647, 318, 0, 525, 514, 0, 657, 0, 649, 524,
- 0, 659, 664, 0, 662, 0, 0, 661, 672, 0,
- 0, 0, 0, 666, 668, 669, 670, 671, 663, 0,
- 0, 0, 0, 0, 665, 0, 674, 675, 676, 667,
- 673
+ 133, 135, 0, 137, 0, 0, 260, 0, 348, 337,
+ 0, 385, 376, 0, 0, 310, 0, 0, 206, 223,
+ 0, 214, 0, 0, 199, 511, 0, 506, 470, 461,
+ 0, 0, 225, 0, 0, 0, 0, 0, 0, 0,
+ 0, 244, 0, 0, 0, 0, 0, 0, 527, 0,
+ 0, 0, 551, 566, 57, 0, 56, 0, 406, 0,
+ 0, 431, 0, 0, 500, 0, 0, 645, 635, 0,
+ 0, 0, 0, 178, 181, 182, 183, 184, 0, 191,
+ 185, 0, 0, 0, 186, 187, 188, 145, 0, 141,
+ 0, 264, 0, 343, 0, 380, 335, 330, 332, 323,
+ 324, 319, 320, 321, 322, 328, 329, 327, 331, 0,
+ 317, 325, 333, 334, 326, 314, 208, 216, 0, 201,
+ 523, 0, 521, 522, 518, 519, 520, 0, 512, 513,
+ 515, 516, 517, 508, 0, 465, 0, 229, 253, 254,
+ 255, 256, 257, 258, 246, 0, 0, 544, 547, 548,
+ 529, 0, 0, 553, 54, 0, 0, 410, 0, 435,
+ 0, 662, 0, 660, 658, 652, 656, 657, 0, 650,
+ 654, 655, 653, 647, 168, 169, 170, 171, 167, 173,
+ 175, 177, 190, 193, 195, 197, 143, 266, 345, 382,
+ 0, 316, 204, 0, 0, 510, 0, 467, 231, 541,
+ 542, 543, 540, 546, 560, 562, 58, 412, 437, 504,
+ 0, 0, 0, 0, 649, 318, 0, 525, 514, 0,
+ 659, 0, 651, 524, 0, 661, 666, 0, 664, 0,
+ 0, 663, 674, 0, 0, 0, 0, 668, 670, 671,
+ 672, 673, 665, 0, 0, 0, 0, 0, 667, 0,
+ 676, 677, 678, 669, 675
};
const short
Dhcp6Parser::yypgoto_[] =
{
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, 43, -833, -457,
- -833, 192, -833, -833, -833, -833, 158, -833, -451, -833,
- -833, -833, -74, -833, -833, -833, 426, -833, -833, -833,
- -833, 222, 311, -833, -833, -62, -46, -45, -43, -833,
- -833, -833, -833, -833, -833, -833, 224, 425, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, 155, -833, -29,
- -833, -572, -7, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -70, -833, -605, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -35, -833, -833, -833, -833,
- -833, -21, -592, -833, -833, -833, -833, -23, -833, -833,
- -833, -833, -833, -833, -833, -833, -28, -833, -833, -833,
- -31, 398, -833, -833, -833, -833, -833, -833, -833, -34,
- -833, -833, -833, -833, -833, -833, -832, -833, -833, -833,
- -9, -833, -833, -833, 4, 438, -833, -833, -831, -833,
- -830, -833, -36, -833, -32, -833, -42, -833, -833, -833,
- -827, -833, -833, -833, -833, -5, -833, -833, -178, 780,
- -833, -833, -833, -833, -833, 3, -833, -833, -833, 10,
- -833, 424, -833, -76, -833, -833, -833, -833, -833, -69,
- -833, -833, -833, -833, -833, -11, -833, -833, -833, 6,
- -833, -833, -833, 5, -833, 423, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -39, -833, -833,
- -833, -26, 459, -833, -833, -58, -833, -24, -833, -833,
- -833, -833, -833, -40, -833, -833, -833, -25, 456, -833,
- -833, -833, -833, -833, -833, -833, -60, -833, -833, -833,
- -1, -833, -833, -833, 9, -833, 440, 252, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -824, -833, -833, -833, -833, -833, -833, -833, 13,
- -833, -833, -833, -154, -833, -833, -833, -833, -833, -833,
- -833, -4, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -6, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, 269, 421, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
- -833, -833, -833, 295, 427, -833, -833, -833, -833, -833,
- -833, 306, 428, -833, -833, -833, -15, -833, -833, -161,
- -833, -833, -833, -833, -833, -833, -177, -833, -833, -193,
- -833, -833, -833, -833, -833
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, 43, -837, -460,
+ -837, 266, -837, -837, -837, -837, 165, -837, -472, -837,
+ -837, -837, -74, -837, -837, -837, 426, -837, -837, -837,
+ -837, 205, 395, -837, -837, -62, -46, -45, -43, -837,
+ -837, -837, -837, -837, -837, -837, 186, 421, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, 150, -837, -19,
+ -837, -576, -7, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -70, -837, -609, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -35, -837, -837, -837, -837,
+ -837, -37, -596, -837, -837, -837, -837, -23, -837, -837,
+ -837, -837, -837, -837, -837, -837, -33, -837, -837, -837,
+ -26, 401, -837, -837, -837, -837, -837, -837, -837, -44,
+ -837, -837, -837, -837, -837, -837, -836, -837, -837, -837,
+ -9, -837, -837, -837, 1, 438, -837, -837, -835, -837,
+ -834, -837, -36, -837, -32, -837, -42, -837, -837, -837,
+ -831, -837, -837, -837, -837, -6, -837, -837, -179, 781,
+ -837, -837, -837, -837, -837, 3, -837, -837, -837, 7,
+ -837, 429, -837, -76, -837, -837, -837, -837, -837, -69,
+ -837, -837, -837, -837, -837, -11, -837, -837, -837, 5,
+ -837, -837, -837, 8, -837, 411, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -39, -837, -837,
+ -837, -31, 458, -837, -837, -58, -837, -24, -837, -837,
+ -837, -837, -837, -40, -837, -837, -837, -30, 454, -837,
+ -837, -837, -837, -837, -837, -837, -60, -837, -837, -837,
+ 2, -837, -837, -837, 9, -837, 450, 247, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -828, -837, -837, -837, -837, -837, -837, -837, 12,
+ -837, -837, -837, -157, -837, -837, -837, -837, -837, -837,
+ -837, -5, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -8, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, 270, 427, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+ -837, -837, -837, 295, 413, -837, -837, -837, -837, -837,
+ -837, -837, 303, 428, -837, -837, -837, -16, -837, -837,
+ -162, -837, -837, -837, -837, -837, -837, -177, -837, -837,
+ -193, -837, -837, -837, -837, -837
};
const short
{
-1, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 88, 41, 42,
- 73, 605, 92, 93, 43, 72, 89, 90, 626, 806,
- 901, 902, 694, 45, 74, 101, 102, 103, 362, 47,
- 75, 141, 142, 143, 370, 144, 145, 146, 147, 148,
- 149, 381, 150, 372, 49, 76, 178, 179, 180, 404,
- 181, 151, 373, 152, 374, 153, 375, 718, 719, 720,
- 848, 695, 696, 697, 827, 1024, 698, 828, 699, 829,
- 700, 830, 701, 702, 441, 703, 704, 705, 706, 707,
- 708, 709, 710, 711, 836, 712, 713, 839, 714, 840,
- 715, 841, 154, 392, 752, 753, 754, 868, 155, 389,
- 739, 740, 741, 742, 156, 391, 747, 748, 749, 750,
- 157, 390, 158, 395, 763, 764, 765, 877, 65, 84,
- 310, 311, 312, 454, 313, 455, 159, 396, 772, 773,
- 774, 775, 776, 777, 778, 779, 160, 382, 722, 723,
- 724, 851, 51, 77, 199, 200, 201, 410, 202, 411,
- 203, 412, 204, 416, 205, 415, 161, 387, 611, 207,
- 208, 162, 388, 734, 735, 736, 860, 955, 956, 163,
- 383, 59, 81, 726, 727, 728, 854, 61, 82, 275,
- 276, 277, 278, 279, 280, 281, 440, 282, 444, 283,
- 443, 284, 285, 445, 286, 164, 384, 730, 731, 732,
- 857, 63, 83, 296, 297, 298, 299, 300, 449, 301,
- 302, 303, 304, 210, 408, 808, 809, 810, 903, 53,
- 78, 221, 222, 223, 420, 165, 385, 166, 386, 213,
- 409, 812, 813, 814, 906, 55, 79, 237, 238, 239,
- 423, 240, 241, 425, 242, 243, 167, 394, 759, 760,
- 761, 874, 57, 80, 255, 256, 257, 258, 431, 259,
- 432, 260, 433, 261, 434, 262, 435, 263, 436, 264,
- 430, 215, 417, 817, 818, 909, 168, 393, 756, 757,
- 871, 973, 974, 975, 976, 977, 1039, 978, 169, 397,
- 789, 790, 791, 888, 1048, 792, 793, 889, 794, 795,
- 170, 171, 399, 801, 802, 803, 895, 804, 896, 172,
- 400, 173, 401, 67, 85, 332, 333, 334, 335, 459,
- 336, 460, 337, 338, 462, 339, 340, 341, 465, 658,
- 342, 466, 343, 344, 345, 469, 665, 346, 470, 347,
- 471, 348, 472, 104, 364, 105, 365, 106, 366, 174,
- 371, 71, 87, 354, 355, 356, 478, 107, 363, 69,
- 86, 350, 351, 352, 475, 820, 821, 911, 1014, 1015,
- 1016, 1017, 1058, 1018, 1056, 1073, 1074, 1075, 1082, 1083,
- 1084, 1089, 1085, 1086, 1087
+ 73, 609, 92, 93, 43, 72, 89, 90, 630, 810,
+ 905, 906, 698, 45, 74, 101, 102, 103, 364, 47,
+ 75, 141, 142, 143, 372, 144, 145, 146, 147, 148,
+ 149, 383, 150, 374, 49, 76, 178, 179, 180, 406,
+ 181, 151, 375, 152, 376, 153, 377, 722, 723, 724,
+ 852, 699, 700, 701, 831, 1028, 702, 832, 703, 833,
+ 704, 834, 705, 706, 443, 707, 708, 709, 710, 711,
+ 712, 713, 714, 715, 840, 716, 717, 843, 718, 844,
+ 719, 845, 154, 394, 756, 757, 758, 872, 155, 391,
+ 743, 744, 745, 746, 156, 393, 751, 752, 753, 754,
+ 157, 392, 158, 397, 767, 768, 769, 881, 65, 84,
+ 310, 311, 312, 456, 313, 457, 159, 398, 776, 777,
+ 778, 779, 780, 781, 782, 783, 160, 384, 726, 727,
+ 728, 855, 51, 77, 199, 200, 201, 412, 202, 413,
+ 203, 414, 204, 418, 205, 417, 161, 389, 615, 207,
+ 208, 162, 390, 738, 739, 740, 864, 959, 960, 163,
+ 385, 59, 81, 730, 731, 732, 858, 61, 82, 275,
+ 276, 277, 278, 279, 280, 281, 442, 282, 446, 283,
+ 445, 284, 285, 447, 286, 164, 386, 734, 735, 736,
+ 861, 63, 83, 296, 297, 298, 299, 300, 451, 301,
+ 302, 303, 304, 210, 410, 812, 813, 814, 907, 53,
+ 78, 221, 222, 223, 422, 165, 387, 166, 388, 213,
+ 411, 816, 817, 818, 910, 55, 79, 237, 238, 239,
+ 425, 240, 241, 427, 242, 243, 167, 396, 763, 764,
+ 765, 878, 57, 80, 255, 256, 257, 258, 433, 259,
+ 434, 260, 435, 261, 436, 262, 437, 263, 438, 264,
+ 432, 215, 419, 821, 822, 913, 168, 395, 760, 761,
+ 875, 977, 978, 979, 980, 981, 1043, 982, 169, 399,
+ 793, 794, 795, 892, 1052, 796, 797, 893, 798, 799,
+ 170, 171, 401, 805, 806, 807, 899, 808, 900, 172,
+ 402, 173, 403, 67, 85, 332, 333, 334, 335, 461,
+ 336, 462, 337, 338, 464, 339, 340, 341, 467, 662,
+ 342, 468, 343, 344, 345, 471, 669, 346, 472, 347,
+ 473, 348, 474, 104, 366, 105, 367, 106, 368, 174,
+ 373, 71, 87, 355, 356, 357, 480, 358, 107, 365,
+ 69, 86, 350, 351, 352, 477, 824, 825, 915, 1018,
+ 1019, 1020, 1021, 1062, 1022, 1060, 1077, 1078, 1079, 1086,
+ 1087, 1088, 1093, 1089, 1090, 1091
};
const unsigned short
Dhcp6Parser::yytable_[] =
{
100, 140, 177, 194, 217, 231, 251, 294, 273, 292,
- 309, 329, 274, 293, 295, 195, 786, 214, 182, 211,
- 224, 235, 253, 746, 287, 305, 716, 330, 948, 949,
- 950, 196, 197, 954, 198, 206, 960, 94, 175, 176,
- 368, 737, 218, 232, 245, 369, 219, 233, 604, 307,
- 308, 815, 183, 212, 225, 236, 254, 402, 288, 306,
- 40, 331, 403, 604, 307, 308, 209, 220, 234, 252,
- 33, 32, 34, 406, 35, 44, 123, 124, 407, 418,
- 108, 109, 632, 110, 419, 122, 111, 112, 113, 46,
- 48, 123, 124, 266, 638, 639, 640, 50, 226, 227,
- 228, 229, 230, 123, 124, 52, 54, 660, 661, 662,
- 663, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 738, 99, 191, 56, 267, 192, 268, 269, 796, 797,
- 270, 271, 272, 863, 421, 428, 864, 123, 124, 422,
- 429, 123, 124, 664, 125, 1020, 1021, 1022, 1023, 126,
- 127, 128, 129, 130, 780, 131, 866, 122, 58, 867,
- 132, 1078, 456, 681, 1079, 1080, 1081, 457, 216, 133,
- 60, 872, 134, 95, 873, 123, 124, 656, 657, 135,
- 473, 99, 96, 97, 98, 474, 912, 136, 137, 913,
- 476, 138, 139, 267, 191, 477, 99, 192, 737, 744,
- 99, 745, 123, 124, 948, 949, 950, 62, 99, 954,
- 123, 124, 960, 676, 1045, 1046, 1047, 122, 677, 678,
- 679, 680, 681, 682, 683, 684, 685, 686, 687, 688,
- 689, 690, 691, 692, 693, 123, 124, 64, 36, 37,
- 38, 39, 99, 66, 267, 68, 99, 479, 781, 782,
- 783, 784, 480, 244, 607, 608, 609, 610, 70, 245,
- 246, 247, 248, 249, 250, 122, 267, 91, 402, 114,
- 115, 116, 117, 823, 746, 1076, 934, 122, 1077, 353,
- 99, 476, 121, 123, 124, 349, 824, 184, 786, 185,
- 1007, 357, 1008, 1009, 100, 123, 124, 186, 187, 188,
- 189, 190, 125, 966, 967, 358, 360, 99, 766, 767,
- 768, 769, 770, 771, 191, 99, 359, 192, 132, 267,
- 289, 268, 269, 290, 291, 193, 479, 361, 140, 406,
- 845, 825, 177, 845, 826, 846, 123, 124, 847, 367,
- 99, 869, 437, 376, 194, 886, 870, 217, 182, 377,
- 887, 378, 893, 438, 231, 379, 195, 894, 214, 380,
- 211, 398, 897, 224, 251, 405, 99, 898, 413, 414,
- 235, 424, 196, 197, 273, 198, 206, 294, 274, 292,
- 253, 473, 183, 293, 295, 218, 899, 426, 99, 219,
- 287, 427, 232, 845, 212, 305, 233, 225, 1032, 329,
- 99, 481, 482, 418, 236, 439, 1036, 209, 1033, 442,
- 220, 1037, 446, 456, 254, 330, 421, 234, 1044, 447,
- 428, 1053, 448, 1059, 288, 1054, 450, 252, 1060, 306,
- 114, 115, 116, 117, 123, 124, 120, 1093, 122, 267,
- 451, 99, 1094, 452, 453, 496, 458, 461, 463, 331,
- 464, 467, 468, 483, 484, 485, 123, 124, 486, 187,
- 188, 487, 190, 125, 488, 490, 491, 492, 493, 494,
- 495, 497, 501, 498, 499, 191, 502, 500, 192, 503,
- 504, 505, 506, 507, 508, 509, 193, 510, 511, 512,
+ 309, 329, 274, 293, 295, 195, 790, 214, 182, 211,
+ 224, 235, 253, 750, 287, 305, 720, 330, 952, 953,
+ 954, 196, 197, 958, 198, 206, 964, 94, 175, 176,
+ 660, 661, 218, 232, 245, 741, 219, 233, 608, 307,
+ 308, 819, 183, 212, 225, 236, 254, 32, 288, 306,
+ 40, 331, 266, 608, 636, 267, 209, 220, 234, 252,
+ 33, 44, 34, 46, 35, 48, 642, 643, 644, 91,
+ 108, 109, 123, 124, 110, 307, 308, 111, 112, 113,
+ 122, 123, 124, 267, 50, 268, 269, 370, 52, 270,
+ 271, 272, 371, 226, 227, 228, 229, 230, 123, 124,
+ 123, 124, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 99, 867, 122, 742, 868, 404, 191, 122, 267,
+ 192, 405, 1082, 54, 216, 1083, 1084, 1085, 123, 124,
+ 56, 123, 124, 408, 420, 125, 123, 124, 409, 421,
+ 126, 127, 128, 129, 130, 58, 131, 353, 354, 784,
+ 191, 132, 1011, 192, 1012, 1013, 970, 971, 685, 870,
+ 133, 60, 871, 134, 95, 664, 665, 666, 667, 876,
+ 135, 423, 877, 96, 97, 98, 424, 99, 136, 137,
+ 430, 62, 138, 139, 458, 431, 99, 123, 124, 459,
+ 916, 99, 64, 917, 952, 953, 954, 123, 124, 958,
+ 66, 668, 964, 99, 680, 99, 1049, 1050, 1051, 681,
+ 682, 683, 684, 685, 686, 687, 688, 689, 690, 691,
+ 692, 693, 694, 695, 696, 697, 68, 70, 121, 36,
+ 37, 38, 39, 99, 349, 267, 99, 122, 359, 800,
+ 801, 99, 360, 785, 786, 787, 788, 770, 771, 772,
+ 773, 774, 775, 475, 478, 123, 124, 482, 476, 479,
+ 404, 362, 483, 361, 750, 827, 938, 114, 115, 116,
+ 117, 478, 482, 244, 363, 122, 828, 829, 790, 245,
+ 246, 247, 248, 249, 250, 184, 100, 185, 611, 612,
+ 613, 614, 99, 123, 124, 186, 187, 188, 189, 190,
+ 125, 369, 99, 378, 267, 289, 268, 269, 290, 291,
+ 379, 380, 191, 408, 849, 192, 132, 381, 830, 850,
+ 140, 123, 124, 193, 177, 849, 873, 890, 897, 901,
+ 851, 874, 891, 898, 902, 382, 194, 475, 849, 217,
+ 182, 400, 903, 1036, 420, 440, 231, 407, 195, 1037,
+ 214, 415, 211, 1040, 458, 224, 251, 99, 1041, 1048,
+ 99, 416, 235, 426, 196, 197, 273, 198, 206, 294,
+ 274, 292, 253, 423, 183, 293, 295, 218, 1057, 428,
+ 430, 219, 287, 450, 232, 1058, 212, 305, 233, 225,
+ 1063, 329, 1097, 484, 485, 1064, 236, 1098, 99, 209,
+ 741, 748, 220, 749, 429, 1080, 254, 330, 1081, 234,
+ 1024, 1025, 1026, 1027, 439, 441, 288, 444, 448, 252,
+ 449, 306, 114, 115, 116, 117, 99, 452, 120, 453,
+ 122, 267, 454, 455, 123, 124, 460, 463, 465, 466,
+ 469, 331, 470, 481, 486, 487, 488, 489, 123, 124,
+ 490, 187, 188, 491, 190, 125, 493, 494, 495, 496,
+ 497, 498, 499, 500, 501, 502, 503, 191, 504, 505,
+ 192, 506, 507, 508, 509, 510, 511, 512, 193, 513,
+ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
- 324, 325, 326, 513, 514, 515, 516, 517, 519, 520,
- 327, 328, 521, 523, 518, 140, 526, 524, 527, 528,
- 529, 530, 177, 533, 532, 534, 531, 535, 537, 591,
- 592, 593, 539, 541, 540, 545, 542, 543, 182, 99,
- 546, 547, 548, 549, 550, 551, 553, 785, 798, 554,
- 329, 555, 556, 557, 558, 559, 561, 562, 563, 565,
- 566, 99, 568, 787, 799, 569, 330, 570, 571, 572,
- 573, 575, 183, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 574, 576,
- 579, 580, 577, 581, 578, 582, 584, 788, 800, 586,
- 331, 588, 594, 589, 600, 590, 595, 596, 597, 652,
- 598, 599, 601, 602, 603, 751, 612, 34, 606, 613,
- 614, 615, 629, 617, 616, 618, 619, 850, 630, 620,
- 621, 671, 622, 624, 625, 627, 628, 659, 669, 634,
- 631, 670, 633, 635, 636, 717, 637, 641, 721, 725,
- 729, 733, 755, 758, 762, 642, 807, 811, 819, 643,
- 644, 645, 646, 647, 648, 649, 650, 651, 653, 654,
- 655, 831, 832, 833, 834, 835, 837, 838, 842, 666,
- 667, 843, 844, 668, 853, 849, 852, 856, 855, 858,
- 859, 861, 862, 900, 865, 876, 875, 878, 879, 904,
- 880, 881, 882, 883, 884, 885, 890, 891, 892, 905,
- 908, 907, 623, 522, 915, 914, 910, 916, 917, 918,
- 919, 924, 927, 920, 928, 921, 929, 964, 923, 922,
- 991, 925, 926, 930, 931, 992, 997, 998, 932, 1001,
- 984, 1000, 985, 986, 987, 988, 989, 993, 994, 995,
- 1006, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1034, 1035,
- 1040, 1038, 1041, 1042, 1066, 1043, 1049, 1050, 1057, 1062,
- 1065, 1067, 743, 1070, 1090, 1051, 1072, 194, 1052, 1091,
- 273, 294, 1092, 292, 274, 1055, 942, 293, 295, 195,
- 947, 214, 1095, 211, 489, 1063, 287, 968, 943, 305,
- 251, 969, 958, 309, 1096, 196, 197, 1069, 198, 206,
- 1071, 672, 1100, 971, 944, 945, 253, 946, 953, 785,
- 675, 935, 1097, 798, 951, 822, 1098, 212, 952, 217,
- 288, 525, 231, 306, 965, 787, 959, 1010, 933, 799,
- 209, 1011, 962, 963, 937, 224, 982, 972, 235, 957,
- 254, 983, 990, 1012, 567, 936, 536, 961, 1061, 939,
- 970, 265, 940, 252, 938, 941, 1003, 218, 1005, 788,
- 232, 219, 560, 800, 233, 981, 564, 1002, 552, 225,
- 538, 1004, 236, 980, 544, 979, 816, 1013, 1064, 996,
- 674, 999, 220, 805, 583, 234, 673, 1019, 1068, 1088,
- 1099, 0, 0, 0, 585, 0, 587, 0, 0, 0,
+ 324, 325, 326, 524, 526, 527, 529, 530, 531, 140,
+ 327, 328, 532, 533, 534, 535, 177, 536, 537, 538,
+ 540, 542, 595, 596, 597, 544, 548, 543, 545, 546,
+ 549, 550, 182, 551, 552, 553, 554, 556, 557, 99,
+ 559, 789, 802, 558, 329, 560, 561, 564, 562, 565,
+ 566, 568, 569, 99, 572, 571, 573, 791, 803, 574,
+ 330, 575, 578, 579, 582, 576, 183, 1, 2, 3,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 580, 583, 577, 584, 585, 581, 587, 589,
+ 590, 792, 804, 592, 331, 593, 598, 594, 599, 600,
+ 601, 602, 656, 603, 605, 604, 606, 607, 854, 616,
+ 34, 610, 617, 618, 619, 857, 621, 620, 622, 623,
+ 923, 633, 624, 625, 626, 675, 628, 629, 631, 632,
+ 673, 674, 634, 635, 637, 638, 639, 640, 663, 721,
+ 641, 725, 729, 733, 737, 759, 762, 755, 645, 766,
+ 811, 815, 823, 835, 836, 837, 838, 646, 839, 841,
+ 647, 648, 649, 650, 651, 652, 653, 654, 655, 657,
+ 658, 659, 842, 846, 847, 670, 848, 853, 884, 671,
+ 672, 856, 859, 860, 862, 863, 866, 865, 924, 880,
+ 869, 879, 883, 882, 885, 886, 887, 888, 889, 894,
+ 895, 896, 904, 909, 908, 911, 912, 1005, 918, 914,
+ 919, 920, 921, 922, 925, 926, 928, 931, 932, 927,
+ 929, 930, 933, 968, 934, 995, 935, 996, 1001, 988,
+ 936, 989, 1002, 1004, 1010, 1044, 1046, 990, 991, 992,
+ 993, 997, 998, 999, 1029, 1030, 1031, 1032, 1033, 1034,
+ 1035, 1038, 1039, 1045, 1042, 1047, 1061, 1053, 1066, 1069,
+ 1054, 1055, 1071, 1076, 1074, 1094, 1095, 1096, 1099, 1056,
+ 1059, 194, 1070, 747, 273, 294, 679, 292, 274, 627,
+ 946, 293, 295, 195, 951, 214, 492, 211, 676, 525,
+ 287, 972, 947, 305, 251, 973, 962, 309, 1067, 196,
+ 197, 1073, 198, 206, 1075, 1104, 1100, 975, 948, 949,
+ 253, 950, 957, 789, 826, 1101, 1102, 802, 955, 528,
+ 966, 212, 956, 217, 288, 939, 231, 306, 969, 791,
+ 963, 1014, 937, 803, 209, 1015, 994, 967, 941, 224,
+ 987, 976, 235, 961, 254, 986, 940, 1016, 539, 570,
+ 965, 1065, 265, 943, 974, 942, 567, 252, 945, 944,
+ 1007, 218, 1009, 792, 232, 219, 1006, 804, 233, 563,
+ 1008, 541, 985, 225, 547, 820, 236, 984, 983, 1068,
+ 555, 1017, 1000, 1003, 678, 591, 220, 677, 809, 234,
+ 1023, 1072, 586, 1092, 1103, 0, 588, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 942, 0, 0, 0, 947, 0, 968, 0,
- 0, 0, 969, 0, 943, 0, 0, 0, 958, 0,
- 0, 0, 0, 0, 971, 1010, 0, 0, 0, 1011,
- 944, 945, 0, 946, 953, 0, 0, 0, 0, 0,
- 951, 1012, 0, 0, 952, 0, 0, 0, 0, 0,
- 0, 0, 959, 0, 0, 0, 0, 0, 972, 0,
- 0, 0, 0, 0, 0, 957, 0, 0, 0, 0,
- 0, 970, 0, 0, 0, 1013
+ 0, 0, 0, 0, 0, 0, 946, 0, 0, 0,
+ 951, 0, 972, 0, 0, 0, 973, 0, 947, 0,
+ 0, 0, 962, 0, 0, 0, 0, 0, 975, 1014,
+ 0, 0, 0, 1015, 948, 949, 0, 950, 957, 0,
+ 0, 0, 0, 0, 955, 1016, 0, 0, 956, 0,
+ 0, 0, 0, 0, 0, 0, 963, 0, 0, 0,
+ 0, 0, 976, 0, 0, 0, 0, 0, 0, 961,
+ 0, 0, 0, 0, 0, 974, 0, 0, 0, 1017
};
const short
Dhcp6Parser::yycheck_[] =
{
74, 75, 76, 77, 78, 79, 80, 83, 82, 83,
- 84, 85, 82, 83, 83, 77, 621, 77, 76, 77,
- 78, 79, 80, 615, 82, 83, 598, 85, 860, 860,
- 860, 77, 77, 860, 77, 77, 860, 10, 15, 16,
- 3, 94, 78, 79, 92, 8, 78, 79, 505, 101,
- 102, 99, 76, 77, 78, 79, 80, 3, 82, 83,
- 17, 85, 8, 520, 101, 102, 77, 78, 79, 80,
- 5, 0, 7, 3, 9, 7, 68, 69, 8, 3,
- 11, 12, 533, 14, 8, 50, 17, 18, 19, 7,
- 7, 68, 69, 20, 545, 546, 547, 7, 63, 64,
- 65, 66, 67, 68, 69, 7, 7, 140, 141, 142,
- 143, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 173, 173, 87, 7, 51, 90, 53, 54, 120, 121,
- 57, 58, 59, 3, 3, 3, 6, 68, 69, 8,
- 8, 68, 69, 176, 75, 21, 22, 23, 24, 80,
- 81, 82, 83, 84, 20, 86, 3, 50, 7, 6,
- 91, 149, 3, 29, 152, 153, 154, 8, 61, 100,
- 7, 3, 103, 146, 6, 68, 69, 137, 138, 110,
- 3, 173, 155, 156, 157, 8, 3, 118, 119, 6,
- 3, 122, 123, 51, 87, 8, 173, 90, 94, 95,
- 173, 97, 68, 69, 1036, 1036, 1036, 7, 173, 1036,
- 68, 69, 1036, 20, 111, 112, 113, 50, 25, 26,
+ 84, 85, 82, 83, 83, 77, 625, 77, 76, 77,
+ 78, 79, 80, 619, 82, 83, 602, 85, 864, 864,
+ 864, 77, 77, 864, 77, 77, 864, 10, 16, 17,
+ 138, 139, 78, 79, 93, 95, 78, 79, 508, 102,
+ 103, 100, 76, 77, 78, 79, 80, 0, 82, 83,
+ 17, 85, 21, 523, 536, 52, 77, 78, 79, 80,
+ 5, 7, 7, 7, 9, 7, 548, 549, 550, 174,
+ 11, 12, 69, 70, 15, 102, 103, 18, 19, 20,
+ 51, 69, 70, 52, 7, 54, 55, 3, 7, 58,
+ 59, 60, 8, 64, 65, 66, 67, 68, 69, 70,
+ 69, 70, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 174, 3, 51, 174, 6, 3, 88, 51, 52,
+ 91, 8, 150, 7, 62, 153, 154, 155, 69, 70,
+ 7, 69, 70, 3, 3, 76, 69, 70, 8, 8,
+ 81, 82, 83, 84, 85, 7, 87, 13, 14, 21,
+ 88, 92, 149, 91, 151, 152, 89, 90, 30, 3,
+ 101, 7, 6, 104, 147, 141, 142, 143, 144, 3,
+ 111, 3, 6, 156, 157, 158, 8, 174, 119, 120,
+ 3, 7, 123, 124, 3, 8, 174, 69, 70, 8,
+ 3, 174, 7, 6, 1040, 1040, 1040, 69, 70, 1040,
+ 7, 177, 1040, 174, 21, 174, 112, 113, 114, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 68, 69, 7, 173, 174,
- 175, 176, 173, 7, 51, 7, 173, 3, 114, 115,
- 116, 117, 8, 86, 76, 77, 78, 79, 7, 92,
- 93, 94, 95, 96, 97, 50, 51, 173, 3, 42,
- 43, 44, 45, 8, 866, 3, 848, 50, 6, 13,
- 173, 3, 49, 68, 69, 147, 8, 60, 893, 62,
- 148, 6, 150, 151, 368, 68, 69, 70, 71, 72,
- 73, 74, 75, 88, 89, 3, 8, 173, 104, 105,
- 106, 107, 108, 109, 87, 173, 4, 90, 91, 51,
- 52, 53, 54, 55, 56, 98, 3, 3, 402, 3,
- 3, 8, 406, 3, 8, 8, 68, 69, 8, 4,
- 173, 3, 8, 4, 418, 3, 8, 421, 406, 4,
- 8, 4, 3, 3, 428, 4, 418, 8, 418, 4,
- 418, 4, 3, 421, 438, 4, 173, 8, 4, 4,
- 428, 4, 418, 418, 448, 418, 418, 453, 448, 453,
- 438, 3, 406, 453, 453, 421, 8, 4, 173, 421,
- 448, 4, 428, 3, 418, 453, 428, 421, 8, 473,
- 173, 358, 359, 3, 428, 8, 3, 418, 8, 4,
- 421, 8, 4, 3, 438, 473, 3, 428, 8, 8,
- 3, 8, 3, 3, 448, 8, 4, 438, 8, 453,
- 42, 43, 44, 45, 68, 69, 48, 3, 50, 51,
- 4, 173, 8, 8, 3, 174, 4, 4, 4, 473,
- 4, 4, 4, 173, 4, 4, 68, 69, 4, 71,
- 72, 4, 74, 75, 4, 4, 4, 4, 4, 4,
- 4, 174, 4, 174, 174, 87, 4, 174, 90, 4,
- 4, 4, 4, 4, 4, 4, 98, 4, 4, 4,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 134, 135, 136, 4, 4, 4, 4, 4, 4, 4,
- 144, 145, 4, 4, 174, 589, 4, 176, 4, 4,
- 4, 4, 596, 4, 176, 4, 174, 4, 4, 486,
- 487, 488, 4, 4, 174, 4, 174, 174, 596, 173,
- 4, 4, 4, 4, 4, 4, 4, 621, 622, 4,
- 624, 174, 4, 4, 4, 176, 4, 176, 176, 4,
- 4, 173, 176, 621, 622, 4, 624, 4, 174, 4,
- 174, 4, 596, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 167, 168, 169, 170, 171, 172, 174, 4,
- 4, 4, 176, 4, 176, 4, 4, 621, 622, 4,
- 624, 4, 173, 7, 173, 7, 7, 7, 7, 566,
- 7, 5, 5, 5, 5, 85, 5, 7, 173, 5,
- 5, 5, 173, 5, 7, 5, 5, 3, 173, 7,
- 7, 588, 7, 7, 5, 5, 5, 139, 5, 7,
- 173, 5, 173, 173, 173, 7, 173, 173, 7, 7,
- 7, 7, 7, 7, 7, 173, 7, 7, 7, 173,
- 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
- 173, 4, 4, 4, 4, 4, 4, 4, 4, 173,
- 173, 4, 4, 173, 3, 6, 6, 3, 6, 6,
- 3, 6, 3, 173, 6, 3, 6, 6, 3, 6,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 3,
- 3, 6, 520, 402, 4, 6, 8, 4, 4, 4,
- 174, 4, 4, 176, 4, 174, 4, 4, 174, 176,
- 4, 174, 174, 174, 174, 4, 4, 4, 176, 3,
- 174, 6, 174, 174, 174, 174, 174, 174, 174, 174,
- 4, 173, 173, 173, 173, 173, 173, 173, 8, 8,
- 4, 173, 8, 3, 174, 8, 173, 173, 4, 4,
- 4, 4, 614, 5, 4, 173, 7, 851, 173, 4,
- 854, 857, 4, 857, 854, 173, 860, 857, 857, 851,
- 860, 851, 4, 851, 368, 176, 854, 871, 860, 857,
- 874, 871, 860, 877, 176, 851, 851, 173, 851, 851,
- 173, 589, 173, 871, 860, 860, 874, 860, 860, 893,
- 596, 850, 174, 897, 860, 670, 174, 851, 860, 903,
- 854, 406, 906, 857, 869, 893, 860, 911, 845, 897,
- 851, 911, 863, 866, 853, 903, 877, 871, 906, 860,
- 874, 879, 886, 911, 456, 851, 418, 862, 1036, 856,
- 871, 81, 857, 874, 854, 859, 905, 903, 908, 893,
- 906, 903, 448, 897, 906, 876, 453, 903, 438, 903,
- 421, 906, 906, 874, 428, 872, 634, 911, 1042, 893,
- 595, 897, 903, 624, 473, 906, 590, 912, 1059, 1076,
- 1093, -1, -1, -1, 476, -1, 479, -1, -1, -1,
+ 37, 38, 39, 40, 41, 42, 7, 7, 50, 174,
+ 175, 176, 177, 174, 148, 52, 174, 51, 6, 121,
+ 122, 174, 3, 115, 116, 117, 118, 105, 106, 107,
+ 108, 109, 110, 3, 3, 69, 70, 3, 8, 8,
+ 3, 8, 8, 4, 870, 8, 852, 43, 44, 45,
+ 46, 3, 3, 87, 3, 51, 8, 8, 897, 93,
+ 94, 95, 96, 97, 98, 61, 370, 63, 77, 78,
+ 79, 80, 174, 69, 70, 71, 72, 73, 74, 75,
+ 76, 4, 174, 4, 52, 53, 54, 55, 56, 57,
+ 4, 4, 88, 3, 3, 91, 92, 4, 8, 8,
+ 404, 69, 70, 99, 408, 3, 3, 3, 3, 3,
+ 8, 8, 8, 8, 8, 4, 420, 3, 3, 423,
+ 408, 4, 8, 8, 3, 3, 430, 4, 420, 8,
+ 420, 4, 420, 3, 3, 423, 440, 174, 8, 8,
+ 174, 4, 430, 4, 420, 420, 450, 420, 420, 455,
+ 450, 455, 440, 3, 408, 455, 455, 423, 8, 4,
+ 3, 423, 450, 3, 430, 8, 420, 455, 430, 423,
+ 3, 475, 3, 360, 361, 8, 430, 8, 174, 420,
+ 95, 96, 423, 98, 4, 3, 440, 475, 6, 430,
+ 22, 23, 24, 25, 8, 8, 450, 4, 4, 440,
+ 8, 455, 43, 44, 45, 46, 174, 4, 49, 4,
+ 51, 52, 8, 3, 69, 70, 4, 4, 4, 4,
+ 4, 475, 4, 4, 174, 4, 4, 4, 69, 70,
+ 4, 72, 73, 4, 75, 76, 4, 4, 4, 4,
+ 4, 4, 175, 175, 175, 175, 175, 88, 4, 4,
+ 91, 4, 4, 4, 4, 4, 4, 4, 99, 4,
+ 4, 4, 4, 4, 4, 4, 4, 175, 4, 4,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 4, 4, 177, 4, 4, 4, 593,
+ 145, 146, 4, 4, 175, 177, 600, 4, 4, 4,
+ 4, 4, 489, 490, 491, 4, 4, 175, 175, 175,
+ 4, 4, 600, 4, 4, 4, 4, 4, 4, 174,
+ 4, 625, 626, 175, 628, 4, 4, 4, 177, 177,
+ 177, 4, 4, 174, 4, 177, 4, 625, 626, 175,
+ 628, 4, 4, 4, 4, 175, 600, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 177, 4, 175, 4, 4, 177, 4, 4,
+ 175, 625, 626, 4, 628, 7, 174, 7, 7, 7,
+ 7, 7, 569, 5, 5, 174, 5, 5, 3, 5,
+ 7, 174, 5, 5, 5, 3, 5, 7, 5, 5,
+ 175, 174, 7, 7, 7, 592, 7, 5, 5, 5,
+ 5, 5, 174, 174, 174, 7, 174, 174, 140, 7,
+ 174, 7, 7, 7, 7, 7, 7, 86, 174, 7,
+ 7, 7, 7, 4, 4, 4, 4, 174, 4, 4,
+ 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
+ 174, 174, 4, 4, 4, 174, 4, 6, 4, 174,
+ 174, 6, 6, 3, 6, 3, 3, 6, 177, 3,
+ 6, 6, 3, 6, 4, 4, 4, 4, 4, 4,
+ 4, 4, 174, 3, 6, 6, 3, 3, 6, 8,
+ 4, 4, 4, 4, 175, 177, 4, 4, 4, 175,
+ 175, 175, 4, 4, 175, 4, 175, 4, 4, 175,
+ 177, 175, 4, 6, 4, 4, 3, 175, 175, 175,
+ 175, 175, 175, 175, 174, 174, 174, 174, 174, 174,
+ 174, 8, 8, 8, 174, 8, 4, 174, 4, 4,
+ 174, 174, 4, 7, 5, 4, 4, 4, 4, 174,
+ 174, 855, 175, 618, 858, 861, 600, 861, 858, 523,
+ 864, 861, 861, 855, 864, 855, 370, 855, 593, 404,
+ 858, 875, 864, 861, 878, 875, 864, 881, 177, 855,
+ 855, 174, 855, 855, 174, 174, 177, 875, 864, 864,
+ 878, 864, 864, 897, 674, 175, 175, 901, 864, 408,
+ 867, 855, 864, 907, 858, 854, 910, 861, 873, 897,
+ 864, 915, 849, 901, 855, 915, 890, 870, 857, 907,
+ 883, 875, 910, 864, 878, 881, 855, 915, 420, 458,
+ 866, 1040, 81, 860, 875, 858, 455, 878, 863, 861,
+ 909, 907, 912, 897, 910, 907, 907, 901, 910, 450,
+ 910, 423, 880, 907, 430, 638, 910, 878, 876, 1046,
+ 440, 915, 897, 901, 599, 482, 907, 594, 628, 910,
+ 916, 1063, 475, 1080, 1097, -1, 478, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 1036, -1, -1, -1, 1036, -1, 1042, -1,
- -1, -1, 1042, -1, 1036, -1, -1, -1, 1036, -1,
- -1, -1, -1, -1, 1042, 1059, -1, -1, -1, 1059,
- 1036, 1036, -1, 1036, 1036, -1, -1, -1, -1, -1,
- 1036, 1059, -1, -1, 1036, -1, -1, -1, -1, -1,
- -1, -1, 1036, -1, -1, -1, -1, -1, 1042, -1,
- -1, -1, -1, -1, -1, 1036, -1, -1, -1, -1,
- -1, 1042, -1, -1, -1, 1059
+ -1, -1, -1, -1, -1, -1, 1040, -1, -1, -1,
+ 1040, -1, 1046, -1, -1, -1, 1046, -1, 1040, -1,
+ -1, -1, 1040, -1, -1, -1, -1, -1, 1046, 1063,
+ -1, -1, -1, 1063, 1040, 1040, -1, 1040, 1040, -1,
+ -1, -1, -1, -1, 1040, 1063, -1, -1, 1040, -1,
+ -1, -1, -1, -1, -1, -1, 1040, -1, -1, -1,
+ -1, -1, 1046, -1, -1, -1, -1, -1, -1, 1040,
+ -1, -1, -1, -1, -1, 1046, -1, -1, -1, 1063
};
const unsigned short
Dhcp6Parser::yystos_[] =
{
- 0, 158, 159, 160, 161, 162, 163, 164, 165, 166,
- 167, 168, 169, 170, 171, 172, 178, 179, 180, 181,
- 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 0, 5, 7, 9, 173, 174, 175, 176,
- 194, 195, 196, 201, 7, 210, 7, 216, 7, 231,
- 7, 329, 7, 406, 7, 422, 7, 439, 7, 358,
- 7, 364, 7, 388, 7, 305, 7, 500, 7, 546,
- 7, 538, 202, 197, 211, 217, 232, 330, 407, 423,
- 440, 359, 365, 389, 306, 501, 547, 539, 194, 203,
- 204, 173, 199, 200, 10, 146, 155, 156, 157, 173,
- 209, 212, 213, 214, 530, 532, 534, 544, 11, 12,
- 14, 17, 18, 19, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 68, 69, 75, 80, 81, 82, 83,
- 84, 86, 91, 100, 103, 110, 118, 119, 122, 123,
- 209, 218, 219, 220, 222, 223, 224, 225, 226, 227,
- 229, 238, 240, 242, 279, 285, 291, 297, 299, 313,
- 323, 343, 348, 356, 382, 412, 414, 433, 463, 475,
- 487, 488, 496, 498, 536, 15, 16, 209, 233, 234,
- 235, 237, 412, 414, 60, 62, 70, 71, 72, 73,
- 74, 87, 90, 98, 209, 222, 223, 224, 225, 331,
- 332, 333, 335, 337, 339, 341, 343, 346, 347, 382,
- 400, 412, 414, 416, 433, 458, 61, 209, 339, 341,
- 382, 408, 409, 410, 412, 414, 63, 64, 65, 66,
- 67, 209, 339, 341, 382, 412, 414, 424, 425, 426,
- 428, 429, 431, 432, 86, 92, 93, 94, 95, 96,
- 97, 209, 382, 412, 414, 441, 442, 443, 444, 446,
- 448, 450, 452, 454, 456, 356, 20, 51, 53, 54,
- 57, 58, 59, 209, 260, 366, 367, 368, 369, 370,
- 371, 372, 374, 376, 378, 379, 381, 412, 414, 52,
- 55, 56, 209, 260, 370, 376, 390, 391, 392, 393,
- 394, 396, 397, 398, 399, 412, 414, 101, 102, 209,
- 307, 308, 309, 311, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, 134, 135, 136, 144, 145, 209,
- 412, 414, 502, 503, 504, 505, 507, 509, 510, 512,
- 513, 514, 517, 519, 520, 521, 524, 526, 528, 147,
- 548, 549, 550, 13, 540, 541, 542, 6, 3, 4,
- 8, 3, 215, 545, 531, 533, 535, 4, 3, 8,
- 221, 537, 230, 239, 241, 243, 4, 4, 4, 4,
- 4, 228, 324, 357, 383, 413, 415, 344, 349, 286,
- 298, 292, 280, 464, 434, 300, 314, 476, 4, 489,
- 497, 499, 3, 8, 236, 4, 3, 8, 401, 417,
- 334, 336, 338, 4, 4, 342, 340, 459, 3, 8,
- 411, 3, 8, 427, 4, 430, 4, 4, 3, 8,
- 457, 445, 447, 449, 451, 453, 455, 8, 3, 8,
- 373, 261, 4, 377, 375, 380, 4, 8, 3, 395,
- 4, 4, 8, 3, 310, 312, 3, 8, 4, 506,
- 508, 4, 511, 4, 4, 515, 518, 4, 4, 522,
- 525, 527, 529, 3, 8, 551, 3, 8, 543, 3,
- 8, 194, 194, 173, 4, 4, 4, 4, 4, 213,
- 4, 4, 4, 4, 4, 4, 174, 174, 174, 174,
- 174, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 174, 4,
- 4, 4, 219, 4, 176, 234, 4, 4, 4, 4,
- 4, 174, 176, 4, 4, 4, 332, 4, 409, 4,
- 174, 4, 174, 174, 425, 4, 4, 4, 4, 4,
- 4, 4, 443, 4, 4, 174, 4, 4, 4, 176,
- 368, 4, 176, 176, 392, 4, 4, 308, 176, 4,
- 4, 174, 4, 174, 174, 4, 4, 176, 176, 4,
- 4, 4, 4, 503, 4, 549, 4, 541, 4, 7,
- 7, 194, 194, 194, 173, 7, 7, 7, 7, 5,
- 173, 5, 5, 5, 196, 198, 173, 76, 77, 78,
- 79, 345, 5, 5, 5, 5, 7, 5, 5, 5,
- 7, 7, 7, 198, 7, 5, 205, 5, 5, 173,
- 173, 173, 205, 173, 7, 173, 173, 173, 205, 205,
- 205, 173, 173, 173, 173, 173, 173, 173, 173, 173,
- 173, 173, 194, 173, 173, 173, 137, 138, 516, 139,
- 140, 141, 142, 143, 176, 523, 173, 173, 173, 5,
- 5, 194, 218, 548, 540, 233, 20, 25, 26, 27,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 209, 248, 249, 250, 253, 255,
- 257, 259, 260, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 272, 273, 275, 277, 248, 7, 244, 245,
- 246, 7, 325, 326, 327, 7, 360, 361, 362, 7,
- 384, 385, 386, 7, 350, 351, 352, 94, 173, 287,
- 288, 289, 290, 203, 95, 97, 289, 293, 294, 295,
- 296, 85, 281, 282, 283, 7, 465, 466, 7, 435,
- 436, 437, 7, 301, 302, 303, 104, 105, 106, 107,
- 108, 109, 315, 316, 317, 318, 319, 320, 321, 322,
- 20, 114, 115, 116, 117, 209, 262, 412, 414, 477,
- 478, 479, 482, 483, 485, 486, 120, 121, 209, 412,
- 414, 490, 491, 492, 494, 502, 206, 7, 402, 403,
- 404, 7, 418, 419, 420, 99, 444, 460, 461, 7,
- 552, 553, 244, 8, 8, 8, 8, 251, 254, 256,
- 258, 4, 4, 4, 4, 4, 271, 4, 4, 274,
- 276, 278, 4, 4, 4, 3, 8, 8, 247, 6,
- 3, 328, 6, 3, 363, 6, 3, 387, 6, 3,
- 353, 6, 3, 3, 6, 6, 3, 6, 284, 3,
- 8, 467, 3, 6, 438, 6, 3, 304, 6, 3,
- 4, 4, 4, 4, 4, 4, 3, 8, 480, 484,
- 4, 4, 4, 3, 8, 493, 495, 3, 8, 8,
- 173, 207, 208, 405, 6, 3, 421, 6, 3, 462,
- 8, 554, 3, 6, 6, 4, 4, 4, 4, 174,
- 176, 174, 176, 174, 4, 174, 174, 4, 4, 4,
- 174, 174, 176, 249, 248, 246, 331, 327, 366, 362,
- 390, 386, 209, 222, 223, 224, 225, 260, 323, 335,
- 337, 339, 341, 343, 347, 354, 355, 382, 412, 414,
- 458, 352, 288, 294, 4, 282, 88, 89, 209, 260,
- 382, 412, 414, 468, 469, 470, 471, 472, 474, 466,
- 441, 437, 307, 303, 174, 174, 174, 174, 174, 174,
- 316, 4, 4, 174, 174, 174, 478, 4, 4, 491,
- 6, 3, 408, 404, 424, 420, 4, 148, 150, 151,
- 209, 260, 412, 414, 555, 556, 557, 558, 560, 553,
- 21, 22, 23, 24, 252, 173, 173, 173, 173, 173,
- 173, 173, 8, 8, 8, 8, 3, 8, 173, 473,
- 4, 8, 3, 8, 8, 111, 112, 113, 481, 173,
- 173, 173, 173, 8, 8, 173, 561, 4, 559, 3,
- 8, 355, 4, 176, 470, 4, 174, 4, 556, 173,
- 5, 173, 7, 562, 563, 564, 3, 6, 149, 152,
- 153, 154, 565, 566, 567, 569, 570, 571, 563, 568,
- 4, 4, 4, 3, 8, 4, 176, 174, 174, 566,
- 173
+ 0, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 179, 180, 181, 182,
+ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 0, 5, 7, 9, 174, 175, 176, 177,
+ 195, 196, 197, 202, 7, 211, 7, 217, 7, 232,
+ 7, 330, 7, 407, 7, 423, 7, 440, 7, 359,
+ 7, 365, 7, 389, 7, 306, 7, 501, 7, 548,
+ 7, 539, 203, 198, 212, 218, 233, 331, 408, 424,
+ 441, 360, 366, 390, 307, 502, 549, 540, 195, 204,
+ 205, 174, 200, 201, 10, 147, 156, 157, 158, 174,
+ 210, 213, 214, 215, 531, 533, 535, 546, 11, 12,
+ 15, 18, 19, 20, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 69, 70, 76, 81, 82, 83, 84,
+ 85, 87, 92, 101, 104, 111, 119, 120, 123, 124,
+ 210, 219, 220, 221, 223, 224, 225, 226, 227, 228,
+ 230, 239, 241, 243, 280, 286, 292, 298, 300, 314,
+ 324, 344, 349, 357, 383, 413, 415, 434, 464, 476,
+ 488, 489, 497, 499, 537, 16, 17, 210, 234, 235,
+ 236, 238, 413, 415, 61, 63, 71, 72, 73, 74,
+ 75, 88, 91, 99, 210, 223, 224, 225, 226, 332,
+ 333, 334, 336, 338, 340, 342, 344, 347, 348, 383,
+ 401, 413, 415, 417, 434, 459, 62, 210, 340, 342,
+ 383, 409, 410, 411, 413, 415, 64, 65, 66, 67,
+ 68, 210, 340, 342, 383, 413, 415, 425, 426, 427,
+ 429, 430, 432, 433, 87, 93, 94, 95, 96, 97,
+ 98, 210, 383, 413, 415, 442, 443, 444, 445, 447,
+ 449, 451, 453, 455, 457, 357, 21, 52, 54, 55,
+ 58, 59, 60, 210, 261, 367, 368, 369, 370, 371,
+ 372, 373, 375, 377, 379, 380, 382, 413, 415, 53,
+ 56, 57, 210, 261, 371, 377, 391, 392, 393, 394,
+ 395, 397, 398, 399, 400, 413, 415, 102, 103, 210,
+ 308, 309, 310, 312, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, 134, 135, 136, 137, 145, 146, 210,
+ 413, 415, 503, 504, 505, 506, 508, 510, 511, 513,
+ 514, 515, 518, 520, 521, 522, 525, 527, 529, 148,
+ 550, 551, 552, 13, 14, 541, 542, 543, 545, 6,
+ 3, 4, 8, 3, 216, 547, 532, 534, 536, 4,
+ 3, 8, 222, 538, 231, 240, 242, 244, 4, 4,
+ 4, 4, 4, 229, 325, 358, 384, 414, 416, 345,
+ 350, 287, 299, 293, 281, 465, 435, 301, 315, 477,
+ 4, 490, 498, 500, 3, 8, 237, 4, 3, 8,
+ 402, 418, 335, 337, 339, 4, 4, 343, 341, 460,
+ 3, 8, 412, 3, 8, 428, 4, 431, 4, 4,
+ 3, 8, 458, 446, 448, 450, 452, 454, 456, 8,
+ 3, 8, 374, 262, 4, 378, 376, 381, 4, 8,
+ 3, 396, 4, 4, 8, 3, 311, 313, 3, 8,
+ 4, 507, 509, 4, 512, 4, 4, 516, 519, 4,
+ 4, 523, 526, 528, 530, 3, 8, 553, 3, 8,
+ 544, 4, 3, 8, 195, 195, 174, 4, 4, 4,
+ 4, 4, 214, 4, 4, 4, 4, 4, 4, 175,
+ 175, 175, 175, 175, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 175, 4, 4, 4, 220, 4, 177, 235, 4,
+ 4, 4, 4, 4, 175, 177, 4, 4, 4, 333,
+ 4, 410, 4, 175, 4, 175, 175, 426, 4, 4,
+ 4, 4, 4, 4, 4, 444, 4, 4, 175, 4,
+ 4, 4, 177, 369, 4, 177, 177, 393, 4, 4,
+ 309, 177, 4, 4, 175, 4, 175, 175, 4, 4,
+ 177, 177, 4, 4, 4, 4, 504, 4, 551, 4,
+ 175, 542, 4, 7, 7, 195, 195, 195, 174, 7,
+ 7, 7, 7, 5, 174, 5, 5, 5, 197, 199,
+ 174, 77, 78, 79, 80, 346, 5, 5, 5, 5,
+ 7, 5, 5, 5, 7, 7, 7, 199, 7, 5,
+ 206, 5, 5, 174, 174, 174, 206, 174, 7, 174,
+ 174, 174, 206, 206, 206, 174, 174, 174, 174, 174,
+ 174, 174, 174, 174, 174, 174, 195, 174, 174, 174,
+ 138, 139, 517, 140, 141, 142, 143, 144, 177, 524,
+ 174, 174, 174, 5, 5, 195, 219, 550, 541, 234,
+ 21, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 210, 249,
+ 250, 251, 254, 256, 258, 260, 261, 263, 264, 265,
+ 266, 267, 268, 269, 270, 271, 273, 274, 276, 278,
+ 249, 7, 245, 246, 247, 7, 326, 327, 328, 7,
+ 361, 362, 363, 7, 385, 386, 387, 7, 351, 352,
+ 353, 95, 174, 288, 289, 290, 291, 204, 96, 98,
+ 290, 294, 295, 296, 297, 86, 282, 283, 284, 7,
+ 466, 467, 7, 436, 437, 438, 7, 302, 303, 304,
+ 105, 106, 107, 108, 109, 110, 316, 317, 318, 319,
+ 320, 321, 322, 323, 21, 115, 116, 117, 118, 210,
+ 263, 413, 415, 478, 479, 480, 483, 484, 486, 487,
+ 121, 122, 210, 413, 415, 491, 492, 493, 495, 503,
+ 207, 7, 403, 404, 405, 7, 419, 420, 421, 100,
+ 445, 461, 462, 7, 554, 555, 245, 8, 8, 8,
+ 8, 252, 255, 257, 259, 4, 4, 4, 4, 4,
+ 272, 4, 4, 275, 277, 279, 4, 4, 4, 3,
+ 8, 8, 248, 6, 3, 329, 6, 3, 364, 6,
+ 3, 388, 6, 3, 354, 6, 3, 3, 6, 6,
+ 3, 6, 285, 3, 8, 468, 3, 6, 439, 6,
+ 3, 305, 6, 3, 4, 4, 4, 4, 4, 4,
+ 3, 8, 481, 485, 4, 4, 4, 3, 8, 494,
+ 496, 3, 8, 8, 174, 208, 209, 406, 6, 3,
+ 422, 6, 3, 463, 8, 556, 3, 6, 6, 4,
+ 4, 4, 4, 175, 177, 175, 177, 175, 4, 175,
+ 175, 4, 4, 4, 175, 175, 177, 250, 249, 247,
+ 332, 328, 367, 363, 391, 387, 210, 223, 224, 225,
+ 226, 261, 324, 336, 338, 340, 342, 344, 348, 355,
+ 356, 383, 413, 415, 459, 353, 289, 295, 4, 283,
+ 89, 90, 210, 261, 383, 413, 415, 469, 470, 471,
+ 472, 473, 475, 467, 442, 438, 308, 304, 175, 175,
+ 175, 175, 175, 175, 317, 4, 4, 175, 175, 175,
+ 479, 4, 4, 492, 6, 3, 409, 405, 425, 421,
+ 4, 149, 151, 152, 210, 261, 413, 415, 557, 558,
+ 559, 560, 562, 555, 22, 23, 24, 25, 253, 174,
+ 174, 174, 174, 174, 174, 174, 8, 8, 8, 8,
+ 3, 8, 174, 474, 4, 8, 3, 8, 8, 112,
+ 113, 114, 482, 174, 174, 174, 174, 8, 8, 174,
+ 563, 4, 561, 3, 8, 356, 4, 177, 471, 4,
+ 175, 4, 558, 174, 5, 174, 7, 564, 565, 566,
+ 3, 6, 150, 153, 154, 155, 567, 568, 569, 571,
+ 572, 573, 565, 570, 4, 4, 4, 3, 8, 4,
+ 177, 175, 175, 568, 174
};
const unsigned short
Dhcp6Parser::yyr1_[] =
{
- 0, 177, 179, 178, 180, 178, 181, 178, 182, 178,
- 183, 178, 184, 178, 185, 178, 186, 178, 187, 178,
- 188, 178, 189, 178, 190, 178, 191, 178, 192, 178,
- 193, 178, 194, 194, 194, 194, 194, 194, 194, 195,
- 197, 196, 198, 199, 199, 200, 200, 202, 201, 203,
- 203, 204, 204, 206, 205, 207, 207, 208, 208, 209,
- 211, 210, 212, 212, 213, 213, 213, 213, 213, 213,
- 215, 214, 217, 216, 218, 218, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 221,
- 220, 222, 223, 224, 225, 226, 228, 227, 230, 229,
- 232, 231, 233, 233, 234, 234, 234, 234, 234, 236,
- 235, 237, 239, 238, 241, 240, 243, 242, 244, 244,
- 245, 245, 247, 246, 248, 248, 249, 249, 249, 249,
- 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
- 249, 249, 249, 249, 249, 249, 251, 250, 252, 252,
- 252, 252, 254, 253, 256, 255, 258, 257, 259, 261,
- 260, 262, 263, 264, 265, 266, 267, 268, 269, 271,
- 270, 272, 274, 273, 276, 275, 278, 277, 280, 279,
- 281, 281, 282, 284, 283, 286, 285, 287, 287, 288,
- 288, 289, 290, 292, 291, 293, 293, 294, 294, 294,
- 295, 296, 298, 297, 300, 299, 301, 301, 302, 302,
- 304, 303, 306, 305, 307, 307, 307, 308, 308, 310,
- 309, 312, 311, 314, 313, 315, 315, 316, 316, 316,
- 316, 316, 316, 317, 318, 319, 320, 321, 322, 324,
- 323, 325, 325, 326, 326, 328, 327, 330, 329, 331,
- 331, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 334, 333, 336, 335, 338, 337, 340, 339, 342,
- 341, 344, 343, 345, 345, 345, 345, 346, 347, 349,
- 348, 350, 350, 351, 351, 353, 352, 354, 354, 355,
- 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 357, 356, 359, 358,
- 360, 360, 361, 361, 363, 362, 365, 364, 366, 366,
- 367, 367, 368, 368, 368, 368, 368, 368, 368, 368,
- 368, 368, 369, 370, 371, 373, 372, 375, 374, 377,
- 376, 378, 380, 379, 381, 383, 382, 384, 384, 385,
- 385, 387, 386, 389, 388, 390, 390, 391, 391, 392,
- 392, 392, 392, 392, 392, 392, 392, 392, 393, 395,
- 394, 396, 397, 398, 399, 401, 400, 402, 402, 403,
- 403, 405, 404, 407, 406, 408, 408, 409, 409, 409,
- 409, 409, 409, 409, 411, 410, 413, 412, 415, 414,
- 417, 416, 418, 418, 419, 419, 421, 420, 423, 422,
- 424, 424, 425, 425, 425, 425, 425, 425, 425, 425,
- 425, 425, 425, 427, 426, 428, 430, 429, 431, 432,
- 434, 433, 435, 435, 436, 436, 438, 437, 440, 439,
- 441, 441, 442, 442, 443, 443, 443, 443, 443, 443,
- 443, 443, 443, 443, 443, 445, 444, 447, 446, 449,
- 448, 451, 450, 453, 452, 455, 454, 457, 456, 459,
- 458, 460, 460, 462, 461, 464, 463, 465, 465, 467,
- 466, 468, 468, 469, 469, 470, 470, 470, 470, 470,
- 470, 470, 471, 473, 472, 474, 476, 475, 477, 477,
- 478, 478, 478, 478, 478, 478, 478, 478, 478, 480,
- 479, 481, 481, 481, 482, 484, 483, 485, 486, 487,
- 489, 488, 490, 490, 491, 491, 491, 491, 491, 493,
- 492, 495, 494, 497, 496, 499, 498, 501, 500, 502,
- 502, 503, 503, 503, 503, 503, 503, 503, 503, 503,
- 503, 503, 503, 503, 503, 503, 503, 503, 503, 504,
- 506, 505, 508, 507, 509, 511, 510, 512, 513, 515,
- 514, 516, 516, 518, 517, 519, 520, 522, 521, 523,
- 523, 523, 523, 523, 525, 524, 527, 526, 529, 528,
- 531, 530, 533, 532, 535, 534, 537, 536, 539, 538,
- 540, 540, 541, 543, 542, 545, 544, 547, 546, 548,
- 548, 549, 551, 550, 552, 552, 554, 553, 555, 555,
- 556, 556, 556, 556, 556, 556, 556, 557, 559, 558,
- 561, 560, 562, 562, 564, 563, 565, 565, 566, 566,
- 566, 566, 568, 567, 569, 570, 571
+ 0, 178, 180, 179, 181, 179, 182, 179, 183, 179,
+ 184, 179, 185, 179, 186, 179, 187, 179, 188, 179,
+ 189, 179, 190, 179, 191, 179, 192, 179, 193, 179,
+ 194, 179, 195, 195, 195, 195, 195, 195, 195, 196,
+ 198, 197, 199, 200, 200, 201, 201, 203, 202, 204,
+ 204, 205, 205, 207, 206, 208, 208, 209, 209, 210,
+ 212, 211, 213, 213, 214, 214, 214, 214, 214, 214,
+ 216, 215, 218, 217, 219, 219, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 222,
+ 221, 223, 224, 225, 226, 227, 229, 228, 231, 230,
+ 233, 232, 234, 234, 235, 235, 235, 235, 235, 237,
+ 236, 238, 240, 239, 242, 241, 244, 243, 245, 245,
+ 246, 246, 248, 247, 249, 249, 250, 250, 250, 250,
+ 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
+ 250, 250, 250, 250, 250, 250, 252, 251, 253, 253,
+ 253, 253, 255, 254, 257, 256, 259, 258, 260, 262,
+ 261, 263, 264, 265, 266, 267, 268, 269, 270, 272,
+ 271, 273, 275, 274, 277, 276, 279, 278, 281, 280,
+ 282, 282, 283, 285, 284, 287, 286, 288, 288, 289,
+ 289, 290, 291, 293, 292, 294, 294, 295, 295, 295,
+ 296, 297, 299, 298, 301, 300, 302, 302, 303, 303,
+ 305, 304, 307, 306, 308, 308, 308, 309, 309, 311,
+ 310, 313, 312, 315, 314, 316, 316, 317, 317, 317,
+ 317, 317, 317, 318, 319, 320, 321, 322, 323, 325,
+ 324, 326, 326, 327, 327, 329, 328, 331, 330, 332,
+ 332, 333, 333, 333, 333, 333, 333, 333, 333, 333,
+ 333, 333, 333, 333, 333, 333, 333, 333, 333, 333,
+ 333, 335, 334, 337, 336, 339, 338, 341, 340, 343,
+ 342, 345, 344, 346, 346, 346, 346, 347, 348, 350,
+ 349, 351, 351, 352, 352, 354, 353, 355, 355, 356,
+ 356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 358, 357, 360, 359,
+ 361, 361, 362, 362, 364, 363, 366, 365, 367, 367,
+ 368, 368, 369, 369, 369, 369, 369, 369, 369, 369,
+ 369, 369, 370, 371, 372, 374, 373, 376, 375, 378,
+ 377, 379, 381, 380, 382, 384, 383, 385, 385, 386,
+ 386, 388, 387, 390, 389, 391, 391, 392, 392, 393,
+ 393, 393, 393, 393, 393, 393, 393, 393, 394, 396,
+ 395, 397, 398, 399, 400, 402, 401, 403, 403, 404,
+ 404, 406, 405, 408, 407, 409, 409, 410, 410, 410,
+ 410, 410, 410, 410, 412, 411, 414, 413, 416, 415,
+ 418, 417, 419, 419, 420, 420, 422, 421, 424, 423,
+ 425, 425, 426, 426, 426, 426, 426, 426, 426, 426,
+ 426, 426, 426, 428, 427, 429, 431, 430, 432, 433,
+ 435, 434, 436, 436, 437, 437, 439, 438, 441, 440,
+ 442, 442, 443, 443, 444, 444, 444, 444, 444, 444,
+ 444, 444, 444, 444, 444, 446, 445, 448, 447, 450,
+ 449, 452, 451, 454, 453, 456, 455, 458, 457, 460,
+ 459, 461, 461, 463, 462, 465, 464, 466, 466, 468,
+ 467, 469, 469, 470, 470, 471, 471, 471, 471, 471,
+ 471, 471, 472, 474, 473, 475, 477, 476, 478, 478,
+ 479, 479, 479, 479, 479, 479, 479, 479, 479, 481,
+ 480, 482, 482, 482, 483, 485, 484, 486, 487, 488,
+ 490, 489, 491, 491, 492, 492, 492, 492, 492, 494,
+ 493, 496, 495, 498, 497, 500, 499, 502, 501, 503,
+ 503, 504, 504, 504, 504, 504, 504, 504, 504, 504,
+ 504, 504, 504, 504, 504, 504, 504, 504, 504, 505,
+ 507, 506, 509, 508, 510, 512, 511, 513, 514, 516,
+ 515, 517, 517, 519, 518, 520, 521, 523, 522, 524,
+ 524, 524, 524, 524, 526, 525, 528, 527, 530, 529,
+ 532, 531, 534, 533, 536, 535, 538, 537, 540, 539,
+ 541, 541, 542, 542, 544, 543, 545, 547, 546, 549,
+ 548, 550, 550, 551, 553, 552, 554, 554, 556, 555,
+ 557, 557, 558, 558, 558, 558, 558, 558, 558, 559,
+ 561, 560, 563, 562, 564, 564, 566, 565, 567, 567,
+ 568, 568, 568, 568, 570, 569, 571, 572, 573
};
const unsigned char
4, 1, 1, 0, 4, 3, 3, 0, 4, 1,
1, 1, 1, 1, 0, 4, 0, 4, 0, 4,
0, 4, 0, 4, 0, 4, 0, 6, 0, 4,
- 1, 3, 1, 0, 6, 0, 6, 0, 4, 1,
- 3, 1, 0, 6, 1, 3, 0, 4, 1, 3,
- 1, 1, 1, 1, 1, 1, 1, 3, 0, 4,
- 0, 6, 1, 3, 0, 4, 1, 3, 1, 1,
- 1, 1, 0, 4, 3, 3, 3
+ 1, 3, 1, 1, 0, 6, 3, 0, 6, 0,
+ 4, 1, 3, 1, 0, 6, 1, 3, 0, 4,
+ 1, 3, 1, 1, 1, 1, 1, 1, 1, 3,
+ 0, 4, 0, 6, 1, 3, 0, 4, 1, 3,
+ 1, 1, 1, 1, 0, 4, 3, 3, 3
};
{
"\"end of file\"", "error", "$undefined", "\",\"", "\":\"", "\"[\"",
"\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Dhcp6\"", "\"data-directory\"",
- "\"config-control\"", "\"config-databases\"", "\"interfaces-config\"",
- "\"interfaces\"", "\"re-detect\"", "\"lease-database\"",
- "\"hosts-database\"", "\"hosts-databases\"", "\"type\"", "\"memfile\"",
- "\"mysql\"", "\"postgresql\"", "\"cql\"", "\"user\"", "\"password\"",
- "\"host\"", "\"port\"", "\"persist\"", "\"lfc-interval\"",
- "\"readonly\"", "\"connect-timeout\"", "\"contact-points\"",
- "\"max-reconnect-tries\"", "\"reconnect-wait-time\"", "\"keyspace\"",
- "\"consistency\"", "\"serial-consistency\"", "\"request-timeout\"",
- "\"tcp-keepalive\"", "\"tcp-nodelay\"", "\"preferred-lifetime\"",
- "\"valid-lifetime\"", "\"renew-timer\"", "\"rebind-timer\"",
- "\"decline-probation-period\"", "\"server-tag\"", "\"subnet6\"",
- "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"",
- "\"space\"", "\"csv-format\"", "\"always-send\"", "\"record-types\"",
- "\"encapsulate\"", "\"array\"", "\"pools\"", "\"pool\"", "\"pd-pools\"",
- "\"prefix\"", "\"prefix-len\"", "\"excluded-prefix\"",
- "\"excluded-prefix-len\"", "\"delegated-len\"", "\"user-context\"",
- "\"comment\"", "\"subnet\"", "\"interface\"", "\"interface-id\"",
- "\"id\"", "\"rapid-commit\"", "\"reservation-mode\"", "\"disabled\"",
- "\"out-of-pool\"", "\"global\"", "\"all\"", "\"shared-networks\"",
- "\"mac-sources\"", "\"relay-supplied-options\"",
+ "\"config-control\"", "\"config-databases\"",
+ "\"config-fetch-wait-time\"", "\"interfaces-config\"", "\"interfaces\"",
+ "\"re-detect\"", "\"lease-database\"", "\"hosts-database\"",
+ "\"hosts-databases\"", "\"type\"", "\"memfile\"", "\"mysql\"",
+ "\"postgresql\"", "\"cql\"", "\"user\"", "\"password\"", "\"host\"",
+ "\"port\"", "\"persist\"", "\"lfc-interval\"", "\"readonly\"",
+ "\"connect-timeout\"", "\"contact-points\"", "\"max-reconnect-tries\"",
+ "\"reconnect-wait-time\"", "\"keyspace\"", "\"consistency\"",
+ "\"serial-consistency\"", "\"request-timeout\"", "\"tcp-keepalive\"",
+ "\"tcp-nodelay\"", "\"preferred-lifetime\"", "\"valid-lifetime\"",
+ "\"renew-timer\"", "\"rebind-timer\"", "\"decline-probation-period\"",
+ "\"server-tag\"", "\"subnet6\"", "\"option-def\"", "\"option-data\"",
+ "\"name\"", "\"data\"", "\"code\"", "\"space\"", "\"csv-format\"",
+ "\"always-send\"", "\"record-types\"", "\"encapsulate\"", "\"array\"",
+ "\"pools\"", "\"pool\"", "\"pd-pools\"", "\"prefix\"", "\"prefix-len\"",
+ "\"excluded-prefix\"", "\"excluded-prefix-len\"", "\"delegated-len\"",
+ "\"user-context\"", "\"comment\"", "\"subnet\"", "\"interface\"",
+ "\"interface-id\"", "\"id\"", "\"rapid-commit\"", "\"reservation-mode\"",
+ "\"disabled\"", "\"out-of-pool\"", "\"global\"", "\"all\"",
+ "\"shared-networks\"", "\"mac-sources\"", "\"relay-supplied-options\"",
"\"host-reservation-identifiers\"", "\"sanity-checks\"",
"\"lease-checks\"", "\"client-classes\"", "\"require-client-classes\"",
"\"test\"", "\"only-if-required\"", "\"client-class\"",
"dhcp4_json_object", "$@118", "dhcpddns_json_object", "$@119",
"control_agent_json_object", "$@120", "config_control", "$@121",
"sub_config_control", "$@122", "config_control_params",
- "config_control_param", "config_databases", "$@123", "logging_object",
- "$@124", "sub_logging", "$@125", "logging_params", "logging_param",
- "loggers", "$@126", "loggers_entries", "logger_entry", "$@127",
- "logger_params", "logger_param", "debuglevel", "severity", "$@128",
- "output_options_list", "$@129", "output_options_list_content",
- "output_entry", "$@130", "output_params_list", "output_params", "output",
- "$@131", "flush", "maxsize", "maxver", YY_NULLPTR
+ "config_control_param", "config_databases", "$@123",
+ "config_fetch_wait_time", "logging_object", "$@124", "sub_logging",
+ "$@125", "logging_params", "logging_param", "loggers", "$@126",
+ "loggers_entries", "logger_entry", "$@127", "logger_params",
+ "logger_param", "debuglevel", "severity", "$@128", "output_options_list",
+ "$@129", "output_options_list_content", "output_entry", "$@130",
+ "output_params_list", "output_params", "output", "$@131", "flush",
+ "maxsize", "maxver", YY_NULLPTR
};
#if PARSER6_DEBUG
const unsigned short
Dhcp6Parser::yyrline_[] =
{
- 0, 260, 260, 260, 261, 261, 262, 262, 263, 263,
- 264, 264, 265, 265, 266, 266, 267, 267, 268, 268,
- 269, 269, 270, 270, 271, 271, 272, 272, 273, 273,
- 274, 274, 282, 283, 284, 285, 286, 287, 288, 291,
- 296, 296, 307, 310, 311, 314, 318, 325, 325, 332,
- 333, 336, 340, 347, 347, 354, 355, 358, 362, 373,
- 383, 383, 398, 399, 403, 404, 405, 406, 407, 408,
- 411, 411, 426, 426, 435, 436, 441, 442, 443, 444,
- 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
- 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
- 465, 466, 467, 468, 469, 470, 471, 472, 473, 476,
- 476, 484, 489, 494, 499, 504, 509, 509, 517, 517,
- 528, 528, 537, 538, 541, 542, 543, 544, 545, 548,
- 548, 558, 564, 564, 576, 576, 588, 588, 598, 599,
- 602, 603, 606, 606, 616, 617, 620, 621, 622, 623,
- 624, 625, 626, 627, 628, 629, 630, 631, 632, 633,
- 634, 635, 636, 637, 638, 639, 642, 642, 649, 650,
- 651, 652, 655, 655, 663, 663, 671, 671, 679, 684,
- 684, 692, 697, 702, 707, 712, 717, 722, 727, 732,
- 732, 740, 745, 745, 753, 753, 761, 761, 769, 769,
- 779, 780, 782, 784, 784, 802, 802, 812, 813, 816,
- 817, 820, 825, 830, 830, 840, 841, 844, 845, 846,
- 849, 854, 861, 861, 871, 871, 881, 882, 885, 886,
- 889, 889, 899, 899, 909, 910, 911, 914, 915, 918,
- 918, 926, 926, 934, 934, 945, 946, 949, 950, 951,
- 952, 953, 954, 957, 962, 967, 972, 977, 982, 990,
- 990, 1003, 1004, 1007, 1008, 1015, 1015, 1041, 1041, 1052,
- 1053, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
- 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075,
- 1076, 1079, 1079, 1087, 1087, 1095, 1095, 1103, 1103, 1111,
- 1111, 1121, 1121, 1128, 1129, 1130, 1131, 1134, 1139, 1147,
- 1147, 1158, 1159, 1163, 1164, 1167, 1167, 1175, 1176, 1179,
- 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189,
- 1190, 1191, 1192, 1193, 1194, 1195, 1202, 1202, 1215, 1215,
- 1224, 1225, 1228, 1229, 1234, 1234, 1249, 1249, 1263, 1264,
- 1267, 1268, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278,
- 1279, 1280, 1283, 1285, 1290, 1292, 1292, 1300, 1300, 1308,
- 1308, 1316, 1318, 1318, 1326, 1335, 1335, 1347, 1348, 1353,
- 1354, 1359, 1359, 1371, 1371, 1383, 1384, 1389, 1390, 1395,
- 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1406, 1408,
- 1408, 1416, 1418, 1420, 1425, 1433, 1433, 1445, 1446, 1449,
- 1450, 1453, 1453, 1463, 1463, 1472, 1473, 1476, 1477, 1478,
- 1479, 1480, 1481, 1482, 1485, 1485, 1493, 1493, 1518, 1518,
- 1548, 1548, 1560, 1561, 1564, 1565, 1568, 1568, 1580, 1580,
- 1592, 1593, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603,
- 1604, 1605, 1606, 1609, 1609, 1617, 1622, 1622, 1630, 1635,
- 1643, 1643, 1653, 1654, 1657, 1658, 1661, 1661, 1670, 1670,
- 1679, 1680, 1683, 1684, 1688, 1689, 1690, 1691, 1692, 1693,
- 1694, 1695, 1696, 1697, 1698, 1701, 1701, 1711, 1711, 1721,
- 1721, 1729, 1729, 1737, 1737, 1745, 1745, 1753, 1753, 1766,
- 1766, 1776, 1777, 1780, 1780, 1791, 1791, 1801, 1802, 1805,
- 1805, 1815, 1816, 1819, 1820, 1823, 1824, 1825, 1826, 1827,
- 1828, 1829, 1832, 1834, 1834, 1842, 1850, 1850, 1862, 1863,
- 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1877,
- 1877, 1884, 1885, 1886, 1889, 1894, 1894, 1902, 1907, 1914,
- 1921, 1921, 1931, 1932, 1935, 1936, 1937, 1938, 1939, 1942,
- 1942, 1950, 1950, 1960, 1960, 2000, 2000, 2012, 2012, 2022,
- 2023, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034,
- 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2046,
- 2051, 2051, 2059, 2059, 2067, 2072, 2072, 2080, 2085, 2090,
- 2090, 2098, 2099, 2102, 2102, 2110, 2115, 2120, 2120, 2128,
- 2131, 2134, 2137, 2140, 2146, 2146, 2154, 2154, 2162, 2162,
- 2172, 2172, 2179, 2179, 2186, 2186, 2195, 2195, 2206, 2206,
- 2216, 2217, 2221, 2224, 2224, 2239, 2239, 2249, 2249, 2260,
- 2261, 2265, 2269, 2269, 2281, 2282, 2286, 2286, 2294, 2295,
- 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2307, 2312, 2312,
- 2320, 2320, 2330, 2331, 2334, 2334, 2342, 2343, 2346, 2347,
- 2348, 2349, 2352, 2352, 2360, 2365, 2370
+ 0, 262, 262, 262, 263, 263, 264, 264, 265, 265,
+ 266, 266, 267, 267, 268, 268, 269, 269, 270, 270,
+ 271, 271, 272, 272, 273, 273, 274, 274, 275, 275,
+ 276, 276, 284, 285, 286, 287, 288, 289, 290, 293,
+ 298, 298, 309, 312, 313, 316, 320, 327, 327, 334,
+ 335, 338, 342, 349, 349, 356, 357, 360, 364, 375,
+ 385, 385, 400, 401, 405, 406, 407, 408, 409, 410,
+ 413, 413, 428, 428, 437, 438, 443, 444, 445, 446,
+ 447, 448, 449, 450, 451, 452, 453, 454, 455, 456,
+ 457, 458, 459, 460, 461, 462, 463, 464, 465, 466,
+ 467, 468, 469, 470, 471, 472, 473, 474, 475, 478,
+ 478, 486, 491, 496, 501, 506, 511, 511, 519, 519,
+ 530, 530, 539, 540, 543, 544, 545, 546, 547, 550,
+ 550, 560, 566, 566, 578, 578, 590, 590, 600, 601,
+ 604, 605, 608, 608, 618, 619, 622, 623, 624, 625,
+ 626, 627, 628, 629, 630, 631, 632, 633, 634, 635,
+ 636, 637, 638, 639, 640, 641, 644, 644, 651, 652,
+ 653, 654, 657, 657, 665, 665, 673, 673, 681, 686,
+ 686, 694, 699, 704, 709, 714, 719, 724, 729, 734,
+ 734, 742, 747, 747, 755, 755, 763, 763, 771, 771,
+ 781, 782, 784, 786, 786, 804, 804, 814, 815, 818,
+ 819, 822, 827, 832, 832, 842, 843, 846, 847, 848,
+ 851, 856, 863, 863, 873, 873, 883, 884, 887, 888,
+ 891, 891, 901, 901, 911, 912, 913, 916, 917, 920,
+ 920, 928, 928, 936, 936, 947, 948, 951, 952, 953,
+ 954, 955, 956, 959, 964, 969, 974, 979, 984, 992,
+ 992, 1005, 1006, 1009, 1010, 1017, 1017, 1043, 1043, 1054,
+ 1055, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067,
+ 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077,
+ 1078, 1081, 1081, 1089, 1089, 1097, 1097, 1105, 1105, 1113,
+ 1113, 1123, 1123, 1130, 1131, 1132, 1133, 1136, 1141, 1149,
+ 1149, 1160, 1161, 1165, 1166, 1169, 1169, 1177, 1178, 1181,
+ 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191,
+ 1192, 1193, 1194, 1195, 1196, 1197, 1204, 1204, 1217, 1217,
+ 1226, 1227, 1230, 1231, 1236, 1236, 1251, 1251, 1265, 1266,
+ 1269, 1270, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280,
+ 1281, 1282, 1285, 1287, 1292, 1294, 1294, 1302, 1302, 1310,
+ 1310, 1318, 1320, 1320, 1328, 1337, 1337, 1349, 1350, 1355,
+ 1356, 1361, 1361, 1373, 1373, 1385, 1386, 1391, 1392, 1397,
+ 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1408, 1410,
+ 1410, 1418, 1420, 1422, 1427, 1435, 1435, 1447, 1448, 1451,
+ 1452, 1455, 1455, 1465, 1465, 1474, 1475, 1478, 1479, 1480,
+ 1481, 1482, 1483, 1484, 1487, 1487, 1495, 1495, 1520, 1520,
+ 1550, 1550, 1562, 1563, 1566, 1567, 1570, 1570, 1582, 1582,
+ 1594, 1595, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605,
+ 1606, 1607, 1608, 1611, 1611, 1619, 1624, 1624, 1632, 1637,
+ 1645, 1645, 1655, 1656, 1659, 1660, 1663, 1663, 1672, 1672,
+ 1681, 1682, 1685, 1686, 1690, 1691, 1692, 1693, 1694, 1695,
+ 1696, 1697, 1698, 1699, 1700, 1703, 1703, 1713, 1713, 1723,
+ 1723, 1731, 1731, 1739, 1739, 1747, 1747, 1755, 1755, 1768,
+ 1768, 1778, 1779, 1782, 1782, 1793, 1793, 1803, 1804, 1807,
+ 1807, 1817, 1818, 1821, 1822, 1825, 1826, 1827, 1828, 1829,
+ 1830, 1831, 1834, 1836, 1836, 1844, 1852, 1852, 1864, 1865,
+ 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1879,
+ 1879, 1886, 1887, 1888, 1891, 1896, 1896, 1904, 1909, 1916,
+ 1923, 1923, 1933, 1934, 1937, 1938, 1939, 1940, 1941, 1944,
+ 1944, 1952, 1952, 1962, 1962, 2002, 2002, 2014, 2014, 2024,
+ 2025, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036,
+ 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2048,
+ 2053, 2053, 2061, 2061, 2069, 2074, 2074, 2082, 2087, 2092,
+ 2092, 2100, 2101, 2104, 2104, 2112, 2117, 2122, 2122, 2130,
+ 2133, 2136, 2139, 2142, 2148, 2148, 2156, 2156, 2164, 2164,
+ 2174, 2174, 2181, 2181, 2188, 2188, 2197, 2197, 2208, 2208,
+ 2218, 2219, 2223, 2224, 2227, 2227, 2237, 2247, 2247, 2257,
+ 2257, 2268, 2269, 2273, 2277, 2277, 2289, 2290, 2294, 2294,
+ 2302, 2303, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2315,
+ 2320, 2320, 2328, 2328, 2338, 2339, 2342, 2342, 2350, 2351,
+ 2354, 2355, 2356, 2357, 2360, 2360, 2368, 2373, 2378
};
// Print the state stack on the debug stream.
#endif // PARSER6_DEBUG
-#line 14 "dhcp6_parser.yy" // lalr1.cc:1242
+#line 14 "dhcp6_parser.yy" // lalr1.cc:1218
} } // isc::dhcp
-#line 5140 "dhcp6_parser.cc" // lalr1.cc:1242
-#line 2375 "dhcp6_parser.yy" // lalr1.cc:1243
+#line 5135 "dhcp6_parser.cc" // lalr1.cc:1218
+#line 2383 "dhcp6_parser.yy" // lalr1.cc:1219
void
-// A Bison parser, made by GNU Bison 3.3.2.
+// A Bison parser, made by GNU Bison 3.2.1.
// Skeleton interface for Bison LALR(1) parsers in C++
-// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc.
+// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
#ifndef YY_PARSER6_DHCP6_PARSER_H_INCLUDED
# define YY_PARSER6_DHCP6_PARSER_H_INCLUDED
// // "%code requires" blocks.
-#line 17 "dhcp6_parser.yy" // lalr1.cc:401
+#line 17 "dhcp6_parser.yy" // lalr1.cc:404
#include <string>
#include <cc/data.h>
using namespace isc::data;
using namespace std;
-#line 60 "dhcp6_parser.h" // lalr1.cc:401
+#line 60 "dhcp6_parser.h" // lalr1.cc:404
# include <cassert>
# include <cstdlib> // std::abort
# include <string>
# include <vector>
-#if defined __cplusplus
-# define YY_CPLUSPLUS __cplusplus
-#else
-# define YY_CPLUSPLUS 199711L
-#endif
-
// Support move semantics when possible.
-#if 201103L <= YY_CPLUSPLUS
+#if defined __cplusplus && 201103L <= __cplusplus
# define YY_MOVE std::move
# define YY_MOVE_OR_COPY move
# define YY_MOVE_REF(Type) Type&&
# define YY_RVREF(Type) const Type&
# define YY_COPY(Type) const Type&
#endif
-
-// Support noexcept when possible.
-#if 201103L <= YY_CPLUSPLUS
-# define YY_NOEXCEPT noexcept
-# define YY_NOTHROW
-#else
-# define YY_NOEXCEPT
-# define YY_NOTHROW throw ()
-#endif
-
-// Support constexpr when possible.
-#if 201703 <= YY_CPLUSPLUS
-# define YY_CONSTEXPR constexpr
-#else
-# define YY_CONSTEXPR
-#endif
# include "location.hh"
#include <typeinfo>
#ifndef YYASSERT
# endif /* ! defined YYDEBUG */
#endif /* ! defined PARSER6_DEBUG */
-#line 14 "dhcp6_parser.yy" // lalr1.cc:401
+#line 14 "dhcp6_parser.yy" // lalr1.cc:404
namespace isc { namespace dhcp {
-#line 184 "dhcp6_parser.h" // lalr1.cc:401
+#line 162 "dhcp6_parser.h" // lalr1.cc:404
+ /// A stack with random access from its top.
+ template <typename T, typename S = std::vector<T> >
+ class stack
+ {
+ public:
+ // Hide our reversed order.
+ typedef typename S::reverse_iterator iterator;
+ typedef typename S::const_reverse_iterator const_iterator;
+ typedef typename S::size_type size_type;
+ stack (size_type n = 200)
+ : seq_ (n)
+ {}
- /// A Bison parser.
- class Dhcp6Parser
+ /// Random access.
+ ///
+ /// Index 0 returns the topmost element.
+ T&
+ operator[] (size_type i)
+ {
+ return seq_[size () - 1 - i];
+ }
+
+ /// Random access.
+ ///
+ /// Index 0 returns the topmost element.
+ T&
+ operator[] (int i)
+ {
+ return operator[] (size_type (i));
+ }
+
+ /// Random access.
+ ///
+ /// Index 0 returns the topmost element.
+ const T&
+ operator[] (size_type i) const
+ {
+ return seq_[size () - 1 - i];
+ }
+
+ /// Random access.
+ ///
+ /// Index 0 returns the topmost element.
+ const T&
+ operator[] (int i) const
+ {
+ return operator[] (size_type (i));
+ }
+
+ /// Steal the contents of \a t.
+ ///
+ /// Close to move-semantics.
+ void
+ push (YY_MOVE_REF (T) t)
+ {
+ seq_.push_back (T ());
+ operator[](0).move (t);
+ }
+
+ void
+ pop (int n = 1)
+ {
+ for (; 0 < n; --n)
+ seq_.pop_back ();
+ }
+
+ void
+ clear ()
+ {
+ seq_.clear ();
+ }
+
+ size_type
+ size () const
+ {
+ return seq_.size ();
+ }
+
+ const_iterator
+ begin () const
+ {
+ return seq_.rbegin ();
+ }
+
+ const_iterator
+ end () const
+ {
+ return seq_.rend ();
+ }
+
+ private:
+ stack (const stack&);
+ stack& operator= (const stack&);
+ /// The wrapped container.
+ S seq_;
+ };
+
+ /// Present a slice of the top of a stack.
+ template <typename T, typename S = stack<T> >
+ class slice
{
public:
-#ifndef PARSER6_STYPE
- /// A buffer to store and retrieve objects.
+ slice (const S& stack, int range)
+ : stack_ (stack)
+ , range_ (range)
+ {}
+
+ const T&
+ operator[] (int i) const
+ {
+ return stack_[range_ - i];
+ }
+
+ private:
+ const S& stack_;
+ int range_;
+ };
+
+
+
+ /// A char[S] buffer to store and retrieve objects.
///
/// Sort of a variant, but does not keep track of the nature
/// of the stored data, since that knowledge is available
- /// via the current parser state.
- class semantic_type
+ /// via the current state.
+ template <size_t S>
+ struct variant
{
- public:
/// Type of *this.
- typedef semantic_type self_type;
+ typedef variant<S> self_type;
/// Empty construction.
- semantic_type () YY_NOEXCEPT
+ variant ()
: yybuffer_ ()
, yytypeid_ (YY_NULLPTR)
{}
/// Construct and fill.
template <typename T>
- semantic_type (YY_RVREF (T) t)
+ variant (YY_RVREF (T) t)
: yytypeid_ (&typeid (T))
{
- YYASSERT (sizeof (T) <= size);
+ YYASSERT (sizeof (T) <= S);
new (yyas_<T> ()) T (YY_MOVE (t));
}
/// Destruction, allowed only if empty.
- ~semantic_type () YY_NOEXCEPT
+ ~variant ()
{
YYASSERT (!yytypeid_);
}
-# if 201103L <= YY_CPLUSPLUS
- /// Instantiate a \a T in here from \a t.
- template <typename T, typename... U>
- T&
- emplace (U&&... u)
- {
- YYASSERT (!yytypeid_);
- YYASSERT (sizeof (T) <= size);
- yytypeid_ = & typeid (T);
- return *new (yyas_<T> ()) T (std::forward <U>(u)...);
- }
-# else
/// Instantiate an empty \a T in here.
template <typename T>
T&
emplace ()
{
YYASSERT (!yytypeid_);
- YYASSERT (sizeof (T) <= size);
+ YYASSERT (sizeof (T) <= S);
yytypeid_ = & typeid (T);
return *new (yyas_<T> ()) T ();
}
+# if defined __cplusplus && 201103L <= __cplusplus
+ /// Instantiate a \a T in here from \a t.
+ template <typename T, typename U>
+ T&
+ emplace (U&& u)
+ {
+ YYASSERT (!yytypeid_);
+ YYASSERT (sizeof (T) <= S);
+ yytypeid_ = & typeid (T);
+ return *new (yyas_<T> ()) T (std::forward <U>(u));
+ }
+# else
/// Instantiate a \a T in here from \a t.
template <typename T>
T&
emplace (const T& t)
{
YYASSERT (!yytypeid_);
- YYASSERT (sizeof (T) <= size);
+ YYASSERT (sizeof (T) <= S);
yytypeid_ = & typeid (T);
return *new (yyas_<T> ()) T (t);
}
/// Accessor to a built \a T.
template <typename T>
T&
- as () YY_NOEXCEPT
+ as ()
{
YYASSERT (yytypeid_);
YYASSERT (*yytypeid_ == typeid (T));
- YYASSERT (sizeof (T) <= size);
+ YYASSERT (sizeof (T) <= S);
return *yyas_<T> ();
}
/// Const accessor to a built \a T (for %printer).
template <typename T>
const T&
- as () const YY_NOEXCEPT
+ as () const
{
YYASSERT (yytypeid_);
YYASSERT (*yytypeid_ == typeid (T));
- YYASSERT (sizeof (T) <= size);
+ YYASSERT (sizeof (T) <= S);
return *yyas_<T> ();
}
- /// Swap the content with \a that, of same type.
+ /// Swap the content with \a other, of same type.
///
/// Both variants must be built beforehand, because swapping the actual
/// data requires reading it (with as()), and this is not possible on
/// unconstructed variants: it would require some dynamic testing, which
/// should not be the variant's responsibility.
/// Swapping between built and (possibly) non-built is done with
- /// self_type::move ().
+ /// variant::move ().
template <typename T>
void
- swap (self_type& that) YY_NOEXCEPT
+ swap (self_type& other)
{
YYASSERT (yytypeid_);
- YYASSERT (*yytypeid_ == *that.yytypeid_);
- std::swap (as<T> (), that.as<T> ());
+ YYASSERT (*yytypeid_ == *other.yytypeid_);
+ std::swap (as<T> (), other.as<T> ());
}
- /// Move the content of \a that to this.
+ /// Move the content of \a other to this.
///
- /// Destroys \a that.
+ /// Destroys \a other.
template <typename T>
void
- move (self_type& that)
+ move (self_type& other)
{
-# if 201103L <= YY_CPLUSPLUS
- emplace<T> (std::move (that.as<T> ()));
+# if defined __cplusplus && 201103L <= __cplusplus
+ emplace<T> (std::move (other.as<T> ()));
# else
emplace<T> ();
- swap<T> (that);
+ swap<T> (other);
# endif
- that.destroy<T> ();
+ other.destroy<T> ();
}
-# if 201103L <= YY_CPLUSPLUS
- /// Move the content of \a that to this.
+# if defined __cplusplus && 201103L <= __cplusplus
+ /// Move the content of \a other to this.
template <typename T>
void
- move (self_type&& that)
+ move (self_type&& other)
{
- emplace<T> (std::move (that.as<T> ()));
- that.destroy<T> ();
+ emplace<T> (std::move (other.as<T> ()));
+ other.destroy<T> ();
}
#endif
- /// Copy the content of \a that to this.
+ /// Copy the content of \a other to this.
template <typename T>
void
- copy (const self_type& that)
+ copy (const self_type& other)
{
- emplace<T> (that.as<T> ());
+ emplace<T> (other.as<T> ());
}
/// Destroy the stored \a T.
private:
/// Prohibit blind copies.
self_type& operator= (const self_type&);
- semantic_type (const self_type&);
+ variant (const self_type&);
/// Accessor to raw memory as \a T.
template <typename T>
T*
- yyas_ () YY_NOEXCEPT
+ yyas_ ()
{
void *yyp = yybuffer_.yyraw;
return static_cast<T*> (yyp);
/// Const accessor to raw memory as \a T.
template <typename T>
const T*
- yyas_ () const YY_NOEXCEPT
+ yyas_ () const
{
const void *yyp = yybuffer_.yyraw;
return static_cast<const T*> (yyp);
}
+ union
+ {
+ /// Strongest alignment constraints.
+ long double yyalign_me;
+ /// A buffer large enough to store any of the semantic values.
+ char yyraw[S];
+ } yybuffer_;
+
+ /// Whether the content is built: if defined, the name of the stored type.
+ const std::type_info *yytypeid_;
+ };
+
+
+ /// A Bison parser.
+ class Dhcp6Parser
+ {
+ public:
+#ifndef PARSER6_STYPE
/// An auxiliary type to compute the largest semantic type.
union union_type
{
// "constant string"
char dummy5[sizeof (std::string)];
- };
-
- /// The size of the largest semantic type.
- enum { size = sizeof (union_type) };
-
- /// A buffer to store semantic values.
- union
- {
- /// Strongest alignment constraints.
- long double yyalign_me;
- /// A buffer large enough to store any of the semantic values.
- char yyraw[size];
- } yybuffer_;
-
- /// Whether the content is built: if defined, the name of the stored type.
- const std::type_info *yytypeid_;
- };
+};
+ /// Symbol semantic values.
+ typedef variant<sizeof (union_type)> semantic_type;
#else
typedef PARSER6_STYPE semantic_type;
#endif
/// Syntax errors thrown from user actions.
struct syntax_error : std::runtime_error
{
- syntax_error (const location_type& l, const std::string& m)
- : std::runtime_error (m)
- , location (l)
- {}
-
- syntax_error (const syntax_error& s)
- : std::runtime_error (s.what ())
- , location (s.location)
- {}
-
- ~syntax_error () YY_NOEXCEPT YY_NOTHROW;
-
+ syntax_error (const location_type& l, const std::string& m);
location_type location;
};
TOKEN_DATA_DIRECTORY = 266,
TOKEN_CONFIG_CONTROL = 267,
TOKEN_CONFIG_DATABASES = 268,
- TOKEN_INTERFACES_CONFIG = 269,
- TOKEN_INTERFACES = 270,
- TOKEN_RE_DETECT = 271,
- TOKEN_LEASE_DATABASE = 272,
- TOKEN_HOSTS_DATABASE = 273,
- TOKEN_HOSTS_DATABASES = 274,
- TOKEN_TYPE = 275,
- TOKEN_MEMFILE = 276,
- TOKEN_MYSQL = 277,
- TOKEN_POSTGRESQL = 278,
- TOKEN_CQL = 279,
- TOKEN_USER = 280,
- TOKEN_PASSWORD = 281,
- TOKEN_HOST = 282,
- TOKEN_PORT = 283,
- TOKEN_PERSIST = 284,
- TOKEN_LFC_INTERVAL = 285,
- TOKEN_READONLY = 286,
- TOKEN_CONNECT_TIMEOUT = 287,
- TOKEN_CONTACT_POINTS = 288,
- TOKEN_MAX_RECONNECT_TRIES = 289,
- TOKEN_RECONNECT_WAIT_TIME = 290,
- TOKEN_KEYSPACE = 291,
- TOKEN_CONSISTENCY = 292,
- TOKEN_SERIAL_CONSISTENCY = 293,
- TOKEN_REQUEST_TIMEOUT = 294,
- TOKEN_TCP_KEEPALIVE = 295,
- TOKEN_TCP_NODELAY = 296,
- TOKEN_PREFERRED_LIFETIME = 297,
- TOKEN_VALID_LIFETIME = 298,
- TOKEN_RENEW_TIMER = 299,
- TOKEN_REBIND_TIMER = 300,
- TOKEN_DECLINE_PROBATION_PERIOD = 301,
- TOKEN_SERVER_TAG = 302,
- TOKEN_SUBNET6 = 303,
- TOKEN_OPTION_DEF = 304,
- TOKEN_OPTION_DATA = 305,
- TOKEN_NAME = 306,
- TOKEN_DATA = 307,
- TOKEN_CODE = 308,
- TOKEN_SPACE = 309,
- TOKEN_CSV_FORMAT = 310,
- TOKEN_ALWAYS_SEND = 311,
- TOKEN_RECORD_TYPES = 312,
- TOKEN_ENCAPSULATE = 313,
- TOKEN_ARRAY = 314,
- TOKEN_POOLS = 315,
- TOKEN_POOL = 316,
- TOKEN_PD_POOLS = 317,
- TOKEN_PREFIX = 318,
- TOKEN_PREFIX_LEN = 319,
- TOKEN_EXCLUDED_PREFIX = 320,
- TOKEN_EXCLUDED_PREFIX_LEN = 321,
- TOKEN_DELEGATED_LEN = 322,
- TOKEN_USER_CONTEXT = 323,
- TOKEN_COMMENT = 324,
- TOKEN_SUBNET = 325,
- TOKEN_INTERFACE = 326,
- TOKEN_INTERFACE_ID = 327,
- TOKEN_ID = 328,
- TOKEN_RAPID_COMMIT = 329,
- TOKEN_RESERVATION_MODE = 330,
- TOKEN_DISABLED = 331,
- TOKEN_OUT_OF_POOL = 332,
- TOKEN_GLOBAL = 333,
- TOKEN_ALL = 334,
- TOKEN_SHARED_NETWORKS = 335,
- TOKEN_MAC_SOURCES = 336,
- TOKEN_RELAY_SUPPLIED_OPTIONS = 337,
- TOKEN_HOST_RESERVATION_IDENTIFIERS = 338,
- TOKEN_SANITY_CHECKS = 339,
- TOKEN_LEASE_CHECKS = 340,
- TOKEN_CLIENT_CLASSES = 341,
- TOKEN_REQUIRE_CLIENT_CLASSES = 342,
- TOKEN_TEST = 343,
- TOKEN_ONLY_IF_REQUIRED = 344,
- TOKEN_CLIENT_CLASS = 345,
- TOKEN_RESERVATIONS = 346,
- TOKEN_IP_ADDRESSES = 347,
- TOKEN_PREFIXES = 348,
- TOKEN_DUID = 349,
- TOKEN_HW_ADDRESS = 350,
- TOKEN_HOSTNAME = 351,
- TOKEN_FLEX_ID = 352,
- TOKEN_RELAY = 353,
- TOKEN_IP_ADDRESS = 354,
- TOKEN_HOOKS_LIBRARIES = 355,
- TOKEN_LIBRARY = 356,
- TOKEN_PARAMETERS = 357,
- TOKEN_EXPIRED_LEASES_PROCESSING = 358,
- TOKEN_RECLAIM_TIMER_WAIT_TIME = 359,
- TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 360,
- TOKEN_HOLD_RECLAIMED_TIME = 361,
- TOKEN_MAX_RECLAIM_LEASES = 362,
- TOKEN_MAX_RECLAIM_TIME = 363,
- TOKEN_UNWARNED_RECLAIM_CYCLES = 364,
- TOKEN_SERVER_ID = 365,
- TOKEN_LLT = 366,
- TOKEN_EN = 367,
- TOKEN_LL = 368,
- TOKEN_IDENTIFIER = 369,
- TOKEN_HTYPE = 370,
- TOKEN_TIME = 371,
- TOKEN_ENTERPRISE_ID = 372,
- TOKEN_DHCP4O6_PORT = 373,
- TOKEN_CONTROL_SOCKET = 374,
- TOKEN_SOCKET_TYPE = 375,
- TOKEN_SOCKET_NAME = 376,
- TOKEN_DHCP_QUEUE_CONTROL = 377,
- TOKEN_DHCP_DDNS = 378,
- TOKEN_ENABLE_UPDATES = 379,
- TOKEN_QUALIFYING_SUFFIX = 380,
- TOKEN_SERVER_IP = 381,
- TOKEN_SERVER_PORT = 382,
- TOKEN_SENDER_IP = 383,
- TOKEN_SENDER_PORT = 384,
- TOKEN_MAX_QUEUE_SIZE = 385,
- TOKEN_NCR_PROTOCOL = 386,
- TOKEN_NCR_FORMAT = 387,
- TOKEN_OVERRIDE_NO_UPDATE = 388,
- TOKEN_OVERRIDE_CLIENT_UPDATE = 389,
- TOKEN_REPLACE_CLIENT_NAME = 390,
- TOKEN_GENERATED_PREFIX = 391,
- TOKEN_UDP = 392,
- TOKEN_TCP = 393,
- TOKEN_JSON = 394,
- TOKEN_WHEN_PRESENT = 395,
- TOKEN_NEVER = 396,
- TOKEN_ALWAYS = 397,
- TOKEN_WHEN_NOT_PRESENT = 398,
- TOKEN_HOSTNAME_CHAR_SET = 399,
- TOKEN_HOSTNAME_CHAR_REPLACEMENT = 400,
- TOKEN_LOGGING = 401,
- TOKEN_LOGGERS = 402,
- TOKEN_OUTPUT_OPTIONS = 403,
- TOKEN_OUTPUT = 404,
- TOKEN_DEBUGLEVEL = 405,
- TOKEN_SEVERITY = 406,
- TOKEN_FLUSH = 407,
- TOKEN_MAXSIZE = 408,
- TOKEN_MAXVER = 409,
- TOKEN_DHCP4 = 410,
- TOKEN_DHCPDDNS = 411,
- TOKEN_CONTROL_AGENT = 412,
- TOKEN_TOPLEVEL_JSON = 413,
- TOKEN_TOPLEVEL_DHCP6 = 414,
- TOKEN_SUB_DHCP6 = 415,
- TOKEN_SUB_INTERFACES6 = 416,
- TOKEN_SUB_SUBNET6 = 417,
- TOKEN_SUB_POOL6 = 418,
- TOKEN_SUB_PD_POOL = 419,
- TOKEN_SUB_RESERVATION = 420,
- TOKEN_SUB_OPTION_DEFS = 421,
- TOKEN_SUB_OPTION_DEF = 422,
- TOKEN_SUB_OPTION_DATA = 423,
- TOKEN_SUB_HOOKS_LIBRARY = 424,
- TOKEN_SUB_DHCP_DDNS = 425,
- TOKEN_SUB_LOGGING = 426,
- TOKEN_SUB_CONFIG_CONTROL = 427,
- TOKEN_STRING = 428,
- TOKEN_INTEGER = 429,
- TOKEN_FLOAT = 430,
- TOKEN_BOOLEAN = 431
+ TOKEN_CONFIG_FETCH_WAIT_TIME = 269,
+ TOKEN_INTERFACES_CONFIG = 270,
+ TOKEN_INTERFACES = 271,
+ TOKEN_RE_DETECT = 272,
+ TOKEN_LEASE_DATABASE = 273,
+ TOKEN_HOSTS_DATABASE = 274,
+ TOKEN_HOSTS_DATABASES = 275,
+ TOKEN_TYPE = 276,
+ TOKEN_MEMFILE = 277,
+ TOKEN_MYSQL = 278,
+ TOKEN_POSTGRESQL = 279,
+ TOKEN_CQL = 280,
+ TOKEN_USER = 281,
+ TOKEN_PASSWORD = 282,
+ TOKEN_HOST = 283,
+ TOKEN_PORT = 284,
+ TOKEN_PERSIST = 285,
+ TOKEN_LFC_INTERVAL = 286,
+ TOKEN_READONLY = 287,
+ TOKEN_CONNECT_TIMEOUT = 288,
+ TOKEN_CONTACT_POINTS = 289,
+ TOKEN_MAX_RECONNECT_TRIES = 290,
+ TOKEN_RECONNECT_WAIT_TIME = 291,
+ TOKEN_KEYSPACE = 292,
+ TOKEN_CONSISTENCY = 293,
+ TOKEN_SERIAL_CONSISTENCY = 294,
+ TOKEN_REQUEST_TIMEOUT = 295,
+ TOKEN_TCP_KEEPALIVE = 296,
+ TOKEN_TCP_NODELAY = 297,
+ TOKEN_PREFERRED_LIFETIME = 298,
+ TOKEN_VALID_LIFETIME = 299,
+ TOKEN_RENEW_TIMER = 300,
+ TOKEN_REBIND_TIMER = 301,
+ TOKEN_DECLINE_PROBATION_PERIOD = 302,
+ TOKEN_SERVER_TAG = 303,
+ TOKEN_SUBNET6 = 304,
+ TOKEN_OPTION_DEF = 305,
+ TOKEN_OPTION_DATA = 306,
+ TOKEN_NAME = 307,
+ TOKEN_DATA = 308,
+ TOKEN_CODE = 309,
+ TOKEN_SPACE = 310,
+ TOKEN_CSV_FORMAT = 311,
+ TOKEN_ALWAYS_SEND = 312,
+ TOKEN_RECORD_TYPES = 313,
+ TOKEN_ENCAPSULATE = 314,
+ TOKEN_ARRAY = 315,
+ TOKEN_POOLS = 316,
+ TOKEN_POOL = 317,
+ TOKEN_PD_POOLS = 318,
+ TOKEN_PREFIX = 319,
+ TOKEN_PREFIX_LEN = 320,
+ TOKEN_EXCLUDED_PREFIX = 321,
+ TOKEN_EXCLUDED_PREFIX_LEN = 322,
+ TOKEN_DELEGATED_LEN = 323,
+ TOKEN_USER_CONTEXT = 324,
+ TOKEN_COMMENT = 325,
+ TOKEN_SUBNET = 326,
+ TOKEN_INTERFACE = 327,
+ TOKEN_INTERFACE_ID = 328,
+ TOKEN_ID = 329,
+ TOKEN_RAPID_COMMIT = 330,
+ TOKEN_RESERVATION_MODE = 331,
+ TOKEN_DISABLED = 332,
+ TOKEN_OUT_OF_POOL = 333,
+ TOKEN_GLOBAL = 334,
+ TOKEN_ALL = 335,
+ TOKEN_SHARED_NETWORKS = 336,
+ TOKEN_MAC_SOURCES = 337,
+ TOKEN_RELAY_SUPPLIED_OPTIONS = 338,
+ TOKEN_HOST_RESERVATION_IDENTIFIERS = 339,
+ TOKEN_SANITY_CHECKS = 340,
+ TOKEN_LEASE_CHECKS = 341,
+ TOKEN_CLIENT_CLASSES = 342,
+ TOKEN_REQUIRE_CLIENT_CLASSES = 343,
+ TOKEN_TEST = 344,
+ TOKEN_ONLY_IF_REQUIRED = 345,
+ TOKEN_CLIENT_CLASS = 346,
+ TOKEN_RESERVATIONS = 347,
+ TOKEN_IP_ADDRESSES = 348,
+ TOKEN_PREFIXES = 349,
+ TOKEN_DUID = 350,
+ TOKEN_HW_ADDRESS = 351,
+ TOKEN_HOSTNAME = 352,
+ TOKEN_FLEX_ID = 353,
+ TOKEN_RELAY = 354,
+ TOKEN_IP_ADDRESS = 355,
+ TOKEN_HOOKS_LIBRARIES = 356,
+ TOKEN_LIBRARY = 357,
+ TOKEN_PARAMETERS = 358,
+ TOKEN_EXPIRED_LEASES_PROCESSING = 359,
+ TOKEN_RECLAIM_TIMER_WAIT_TIME = 360,
+ TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 361,
+ TOKEN_HOLD_RECLAIMED_TIME = 362,
+ TOKEN_MAX_RECLAIM_LEASES = 363,
+ TOKEN_MAX_RECLAIM_TIME = 364,
+ TOKEN_UNWARNED_RECLAIM_CYCLES = 365,
+ TOKEN_SERVER_ID = 366,
+ TOKEN_LLT = 367,
+ TOKEN_EN = 368,
+ TOKEN_LL = 369,
+ TOKEN_IDENTIFIER = 370,
+ TOKEN_HTYPE = 371,
+ TOKEN_TIME = 372,
+ TOKEN_ENTERPRISE_ID = 373,
+ TOKEN_DHCP4O6_PORT = 374,
+ TOKEN_CONTROL_SOCKET = 375,
+ TOKEN_SOCKET_TYPE = 376,
+ TOKEN_SOCKET_NAME = 377,
+ TOKEN_DHCP_QUEUE_CONTROL = 378,
+ TOKEN_DHCP_DDNS = 379,
+ TOKEN_ENABLE_UPDATES = 380,
+ TOKEN_QUALIFYING_SUFFIX = 381,
+ TOKEN_SERVER_IP = 382,
+ TOKEN_SERVER_PORT = 383,
+ TOKEN_SENDER_IP = 384,
+ TOKEN_SENDER_PORT = 385,
+ TOKEN_MAX_QUEUE_SIZE = 386,
+ TOKEN_NCR_PROTOCOL = 387,
+ TOKEN_NCR_FORMAT = 388,
+ TOKEN_OVERRIDE_NO_UPDATE = 389,
+ TOKEN_OVERRIDE_CLIENT_UPDATE = 390,
+ TOKEN_REPLACE_CLIENT_NAME = 391,
+ TOKEN_GENERATED_PREFIX = 392,
+ TOKEN_UDP = 393,
+ TOKEN_TCP = 394,
+ TOKEN_JSON = 395,
+ TOKEN_WHEN_PRESENT = 396,
+ TOKEN_NEVER = 397,
+ TOKEN_ALWAYS = 398,
+ TOKEN_WHEN_NOT_PRESENT = 399,
+ TOKEN_HOSTNAME_CHAR_SET = 400,
+ TOKEN_HOSTNAME_CHAR_REPLACEMENT = 401,
+ TOKEN_LOGGING = 402,
+ TOKEN_LOGGERS = 403,
+ TOKEN_OUTPUT_OPTIONS = 404,
+ TOKEN_OUTPUT = 405,
+ TOKEN_DEBUGLEVEL = 406,
+ TOKEN_SEVERITY = 407,
+ TOKEN_FLUSH = 408,
+ TOKEN_MAXSIZE = 409,
+ TOKEN_MAXVER = 410,
+ TOKEN_DHCP4 = 411,
+ TOKEN_DHCPDDNS = 412,
+ TOKEN_CONTROL_AGENT = 413,
+ TOKEN_TOPLEVEL_JSON = 414,
+ TOKEN_TOPLEVEL_DHCP6 = 415,
+ TOKEN_SUB_DHCP6 = 416,
+ TOKEN_SUB_INTERFACES6 = 417,
+ TOKEN_SUB_SUBNET6 = 418,
+ TOKEN_SUB_POOL6 = 419,
+ TOKEN_SUB_PD_POOL = 420,
+ TOKEN_SUB_RESERVATION = 421,
+ TOKEN_SUB_OPTION_DEFS = 422,
+ TOKEN_SUB_OPTION_DEF = 423,
+ TOKEN_SUB_OPTION_DATA = 424,
+ TOKEN_SUB_HOOKS_LIBRARY = 425,
+ TOKEN_SUB_DHCP_DDNS = 426,
+ TOKEN_SUB_LOGGING = 427,
+ TOKEN_SUB_CONFIG_CONTROL = 428,
+ TOKEN_STRING = 429,
+ TOKEN_INTEGER = 430,
+ TOKEN_FLOAT = 431,
+ TOKEN_BOOLEAN = 432
};
};
typedef Base super_type;
/// Default constructor.
- basic_symbol ()
- : value ()
- , location ()
- {}
-
-#if 201103L <= YY_CPLUSPLUS
- /// Move constructor.
- basic_symbol (basic_symbol&& that);
-#endif
+ basic_symbol ();
+
+ /// Move or copy constructor.
+ basic_symbol (YY_RVREF (basic_symbol) other);
- /// Copy constructor.
- basic_symbol (const basic_symbol& that);
/// Constructor for valueless symbols, and symbols from each type.
-#if 201103L <= YY_CPLUSPLUS
- basic_symbol (typename Base::kind_type t, location_type&& l)
- : Base (t)
- , location (std::move (l))
- {}
-#else
- basic_symbol (typename Base::kind_type t, const location_type& l)
- : Base (t)
- , location (l)
- {}
-#endif
-#if 201103L <= YY_CPLUSPLUS
- basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l)
- : Base (t)
- , value (std::move (v))
- , location (std::move (l))
- {}
-#else
- basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l)
- : Base (t)
- , value (v)
- , location (l)
- {}
-#endif
-#if 201103L <= YY_CPLUSPLUS
- basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l)
- : Base (t)
- , value (std::move (v))
- , location (std::move (l))
- {}
-#else
- basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l)
- : Base (t)
- , value (v)
- , location (l)
- {}
-#endif
-#if 201103L <= YY_CPLUSPLUS
- basic_symbol (typename Base::kind_type t, double&& v, location_type&& l)
- : Base (t)
- , value (std::move (v))
- , location (std::move (l))
- {}
-#else
- basic_symbol (typename Base::kind_type t, const double& v, const location_type& l)
- : Base (t)
- , value (v)
- , location (l)
- {}
-#endif
-#if 201103L <= YY_CPLUSPLUS
- basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l)
- : Base (t)
- , value (std::move (v))
- , location (std::move (l))
- {}
-#else
- basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l)
- : Base (t)
- , value (v)
- , location (l)
- {}
-#endif
-#if 201103L <= YY_CPLUSPLUS
- basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l)
- : Base (t)
- , value (std::move (v))
- , location (std::move (l))
- {}
-#else
- basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l)
- : Base (t)
- , value (v)
- , location (l)
- {}
-#endif
+ basic_symbol (typename Base::kind_type t, YY_RVREF (location_type) l);
+ basic_symbol (typename Base::kind_type t, YY_RVREF (ElementPtr) v, YY_RVREF (location_type) l);
+ basic_symbol (typename Base::kind_type t, YY_RVREF (bool) v, YY_RVREF (location_type) l);
+ basic_symbol (typename Base::kind_type t, YY_RVREF (double) v, YY_RVREF (location_type) l);
+ basic_symbol (typename Base::kind_type t, YY_RVREF (int64_t) v, YY_RVREF (location_type) l);
+ basic_symbol (typename Base::kind_type t, YY_RVREF (std::string) v, YY_RVREF (location_type) l);
+
/// Destroy the symbol.
- ~basic_symbol ()
- {
- clear ();
- }
+ ~basic_symbol ();
/// Destroy contents, and record that is empty.
- void clear ()
- {
- // User destructor.
- symbol_number_type yytype = this->type_get ();
- basic_symbol<Base>& yysym = *this;
- (void) yysym;
- switch (yytype)
- {
- default:
- break;
- }
-
- // Type destructor.
-switch (yytype)
- {
- case 194: // value
- case 198: // map_value
- case 252: // db_type
- case 345: // hr_mode
- case 481: // duid_type
- case 516: // ncr_protocol_value
- case 523: // replace_client_name_value
- value.template destroy< ElementPtr > ();
- break;
-
- case 176: // "boolean"
- value.template destroy< bool > ();
- break;
-
- case 175: // "floating point"
- value.template destroy< double > ();
- break;
-
- case 174: // "integer"
- value.template destroy< int64_t > ();
- break;
-
- case 173: // "constant string"
- value.template destroy< std::string > ();
- break;
-
- default:
- break;
- }
-
- Base::clear ();
- }
+ void clear ();
/// Whether empty.
- bool empty () const YY_NOEXCEPT;
+ bool empty () const;
/// Destructive move, \a s is emptied into this.
void move (basic_symbol& s);
location_type location;
private:
-#if YY_CPLUSPLUS < 201103L
+#if !defined __cplusplus || __cplusplus < 201103L
/// Assignment operator.
- basic_symbol& operator= (const basic_symbol& that);
+ basic_symbol& operator= (const basic_symbol& other);
#endif
};
/// Default constructor.
by_type ();
-#if 201103L <= YY_CPLUSPLUS
- /// Move constructor.
- by_type (by_type&& that);
-#endif
-
/// Copy constructor.
- by_type (const by_type& that);
+ by_type (const by_type& other);
/// The symbol type as needed by the constructor.
typedef token_type kind_type;
/// The (internal) type number (corresponding to \a type).
/// \a empty when empty.
- symbol_number_type type_get () const YY_NOEXCEPT;
+ symbol_number_type type_get () const;
/// The token.
- token_type token () const YY_NOEXCEPT;
+ token_type token () const;
/// The symbol type.
/// \a empty_symbol when empty.
};
/// "External" symbols: returned by the scanner.
- struct symbol_type : basic_symbol<by_type>
- {
- /// Superclass.
- typedef basic_symbol<by_type> super_type;
-
- /// Empty symbol.
- symbol_type () {}
-
- /// Constructor for valueless symbols, and symbols from each type.
-#if 201103L <= YY_CPLUSPLUS
- symbol_type (int tok, location_type l)
- : super_type(token_type (tok), std::move (l))
- {
- YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL);
- }
-#else
- symbol_type (int tok, const location_type& l)
- : super_type(token_type (tok), l)
- {
- YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- symbol_type (int tok, bool v, location_type l)
- : super_type(token_type (tok), std::move (v), std::move (l))
- {
- YYASSERT (tok == token::TOKEN_BOOLEAN);
- }
-#else
- symbol_type (int tok, const bool& v, const location_type& l)
- : super_type(token_type (tok), v, l)
- {
- YYASSERT (tok == token::TOKEN_BOOLEAN);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- symbol_type (int tok, double v, location_type l)
- : super_type(token_type (tok), std::move (v), std::move (l))
- {
- YYASSERT (tok == token::TOKEN_FLOAT);
- }
-#else
- symbol_type (int tok, const double& v, const location_type& l)
- : super_type(token_type (tok), v, l)
- {
- YYASSERT (tok == token::TOKEN_FLOAT);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- symbol_type (int tok, int64_t v, location_type l)
- : super_type(token_type (tok), std::move (v), std::move (l))
- {
- YYASSERT (tok == token::TOKEN_INTEGER);
- }
-#else
- symbol_type (int tok, const int64_t& v, const location_type& l)
- : super_type(token_type (tok), v, l)
- {
- YYASSERT (tok == token::TOKEN_INTEGER);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- symbol_type (int tok, std::string v, location_type l)
- : super_type(token_type (tok), std::move (v), std::move (l))
- {
- YYASSERT (tok == token::TOKEN_STRING);
- }
-#else
- symbol_type (int tok, const std::string& v, const location_type& l)
- : super_type(token_type (tok), v, l)
- {
- YYASSERT (tok == token::TOKEN_STRING);
- }
-#endif
- };
+ typedef basic_symbol<by_type> symbol_type;
/// Build a parser object.
Dhcp6Parser (isc::dhcp::Parser6Context& ctx_yyarg);
/// Report a syntax error.
void error (const syntax_error& err);
- // Implementation of make_symbol for each symbol type.
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_END (location_type l)
- {
- return symbol_type (token::TOKEN_END, std::move (l));
- }
-#else
- static
- symbol_type
- make_END (const location_type& l)
- {
- return symbol_type (token::TOKEN_END, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_COMMA (location_type l)
- {
- return symbol_type (token::TOKEN_COMMA, std::move (l));
- }
-#else
- static
- symbol_type
- make_COMMA (const location_type& l)
- {
- return symbol_type (token::TOKEN_COMMA, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_COLON (location_type l)
- {
- return symbol_type (token::TOKEN_COLON, std::move (l));
- }
-#else
- static
- symbol_type
- make_COLON (const location_type& l)
- {
- return symbol_type (token::TOKEN_COLON, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LSQUARE_BRACKET (location_type l)
- {
- return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l));
- }
-#else
- static
- symbol_type
- make_LSQUARE_BRACKET (const location_type& l)
- {
- return symbol_type (token::TOKEN_LSQUARE_BRACKET, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RSQUARE_BRACKET (location_type l)
- {
- return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l));
- }
-#else
- static
- symbol_type
- make_RSQUARE_BRACKET (const location_type& l)
- {
- return symbol_type (token::TOKEN_RSQUARE_BRACKET, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LCURLY_BRACKET (location_type l)
- {
- return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l));
- }
-#else
- static
- symbol_type
- make_LCURLY_BRACKET (const location_type& l)
- {
- return symbol_type (token::TOKEN_LCURLY_BRACKET, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RCURLY_BRACKET (location_type l)
- {
- return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l));
- }
-#else
- static
- symbol_type
- make_RCURLY_BRACKET (const location_type& l)
- {
- return symbol_type (token::TOKEN_RCURLY_BRACKET, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_NULL_TYPE (location_type l)
- {
- return symbol_type (token::TOKEN_NULL_TYPE, std::move (l));
- }
-#else
- static
- symbol_type
- make_NULL_TYPE (const location_type& l)
- {
- return symbol_type (token::TOKEN_NULL_TYPE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DHCP6 (location_type l)
- {
- return symbol_type (token::TOKEN_DHCP6, std::move (l));
- }
-#else
- static
- symbol_type
- make_DHCP6 (const location_type& l)
- {
- return symbol_type (token::TOKEN_DHCP6, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DATA_DIRECTORY (location_type l)
- {
- return symbol_type (token::TOKEN_DATA_DIRECTORY, std::move (l));
- }
-#else
- static
- symbol_type
- make_DATA_DIRECTORY (const location_type& l)
- {
- return symbol_type (token::TOKEN_DATA_DIRECTORY, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CONFIG_CONTROL (location_type l)
- {
- return symbol_type (token::TOKEN_CONFIG_CONTROL, std::move (l));
- }
-#else
- static
- symbol_type
- make_CONFIG_CONTROL (const location_type& l)
- {
- return symbol_type (token::TOKEN_CONFIG_CONTROL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CONFIG_DATABASES (location_type l)
- {
- return symbol_type (token::TOKEN_CONFIG_DATABASES, std::move (l));
- }
-#else
- static
- symbol_type
- make_CONFIG_DATABASES (const location_type& l)
- {
- return symbol_type (token::TOKEN_CONFIG_DATABASES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_INTERFACES_CONFIG (location_type l)
- {
- return symbol_type (token::TOKEN_INTERFACES_CONFIG, std::move (l));
- }
-#else
- static
- symbol_type
- make_INTERFACES_CONFIG (const location_type& l)
- {
- return symbol_type (token::TOKEN_INTERFACES_CONFIG, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_INTERFACES (location_type l)
- {
- return symbol_type (token::TOKEN_INTERFACES, std::move (l));
- }
-#else
- static
- symbol_type
- make_INTERFACES (const location_type& l)
- {
- return symbol_type (token::TOKEN_INTERFACES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RE_DETECT (location_type l)
- {
- return symbol_type (token::TOKEN_RE_DETECT, std::move (l));
- }
-#else
- static
- symbol_type
- make_RE_DETECT (const location_type& l)
- {
- return symbol_type (token::TOKEN_RE_DETECT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LEASE_DATABASE (location_type l)
- {
- return symbol_type (token::TOKEN_LEASE_DATABASE, std::move (l));
- }
-#else
- static
- symbol_type
- make_LEASE_DATABASE (const location_type& l)
- {
- return symbol_type (token::TOKEN_LEASE_DATABASE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_HOSTS_DATABASE (location_type l)
- {
- return symbol_type (token::TOKEN_HOSTS_DATABASE, std::move (l));
- }
-#else
- static
- symbol_type
- make_HOSTS_DATABASE (const location_type& l)
- {
- return symbol_type (token::TOKEN_HOSTS_DATABASE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_HOSTS_DATABASES (location_type l)
- {
- return symbol_type (token::TOKEN_HOSTS_DATABASES, std::move (l));
- }
-#else
- static
- symbol_type
- make_HOSTS_DATABASES (const location_type& l)
- {
- return symbol_type (token::TOKEN_HOSTS_DATABASES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_TYPE (location_type l)
- {
- return symbol_type (token::TOKEN_TYPE, std::move (l));
- }
-#else
- static
- symbol_type
- make_TYPE (const location_type& l)
- {
- return symbol_type (token::TOKEN_TYPE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MEMFILE (location_type l)
- {
- return symbol_type (token::TOKEN_MEMFILE, std::move (l));
- }
-#else
- static
- symbol_type
- make_MEMFILE (const location_type& l)
- {
- return symbol_type (token::TOKEN_MEMFILE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MYSQL (location_type l)
- {
- return symbol_type (token::TOKEN_MYSQL, std::move (l));
- }
-#else
- static
- symbol_type
- make_MYSQL (const location_type& l)
- {
- return symbol_type (token::TOKEN_MYSQL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_POSTGRESQL (location_type l)
- {
- return symbol_type (token::TOKEN_POSTGRESQL, std::move (l));
- }
-#else
- static
- symbol_type
- make_POSTGRESQL (const location_type& l)
- {
- return symbol_type (token::TOKEN_POSTGRESQL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CQL (location_type l)
- {
- return symbol_type (token::TOKEN_CQL, std::move (l));
- }
-#else
- static
- symbol_type
- make_CQL (const location_type& l)
- {
- return symbol_type (token::TOKEN_CQL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_USER (location_type l)
- {
- return symbol_type (token::TOKEN_USER, std::move (l));
- }
-#else
- static
- symbol_type
- make_USER (const location_type& l)
- {
- return symbol_type (token::TOKEN_USER, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_PASSWORD (location_type l)
- {
- return symbol_type (token::TOKEN_PASSWORD, std::move (l));
- }
-#else
- static
- symbol_type
- make_PASSWORD (const location_type& l)
- {
- return symbol_type (token::TOKEN_PASSWORD, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_HOST (location_type l)
- {
- return symbol_type (token::TOKEN_HOST, std::move (l));
- }
-#else
- static
- symbol_type
- make_HOST (const location_type& l)
- {
- return symbol_type (token::TOKEN_HOST, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_PORT (location_type l)
- {
- return symbol_type (token::TOKEN_PORT, std::move (l));
- }
-#else
- static
- symbol_type
- make_PORT (const location_type& l)
- {
- return symbol_type (token::TOKEN_PORT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_PERSIST (location_type l)
- {
- return symbol_type (token::TOKEN_PERSIST, std::move (l));
- }
-#else
- static
- symbol_type
- make_PERSIST (const location_type& l)
- {
- return symbol_type (token::TOKEN_PERSIST, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LFC_INTERVAL (location_type l)
- {
- return symbol_type (token::TOKEN_LFC_INTERVAL, std::move (l));
- }
-#else
- static
- symbol_type
- make_LFC_INTERVAL (const location_type& l)
- {
- return symbol_type (token::TOKEN_LFC_INTERVAL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_READONLY (location_type l)
- {
- return symbol_type (token::TOKEN_READONLY, std::move (l));
- }
-#else
- static
- symbol_type
- make_READONLY (const location_type& l)
- {
- return symbol_type (token::TOKEN_READONLY, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CONNECT_TIMEOUT (location_type l)
- {
- return symbol_type (token::TOKEN_CONNECT_TIMEOUT, std::move (l));
- }
-#else
- static
- symbol_type
- make_CONNECT_TIMEOUT (const location_type& l)
- {
- return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CONTACT_POINTS (location_type l)
- {
- return symbol_type (token::TOKEN_CONTACT_POINTS, std::move (l));
- }
-#else
- static
- symbol_type
- make_CONTACT_POINTS (const location_type& l)
- {
- return symbol_type (token::TOKEN_CONTACT_POINTS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MAX_RECONNECT_TRIES (location_type l)
- {
- return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, std::move (l));
- }
-#else
- static
- symbol_type
- make_MAX_RECONNECT_TRIES (const location_type& l)
- {
- return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RECONNECT_WAIT_TIME (location_type l)
- {
- return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, std::move (l));
- }
-#else
- static
- symbol_type
- make_RECONNECT_WAIT_TIME (const location_type& l)
- {
- return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_KEYSPACE (location_type l)
- {
- return symbol_type (token::TOKEN_KEYSPACE, std::move (l));
- }
-#else
- static
- symbol_type
- make_KEYSPACE (const location_type& l)
- {
- return symbol_type (token::TOKEN_KEYSPACE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CONSISTENCY (location_type l)
- {
- return symbol_type (token::TOKEN_CONSISTENCY, std::move (l));
- }
-#else
- static
- symbol_type
- make_CONSISTENCY (const location_type& l)
- {
- return symbol_type (token::TOKEN_CONSISTENCY, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SERIAL_CONSISTENCY (location_type l)
- {
- return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, std::move (l));
- }
-#else
- static
- symbol_type
- make_SERIAL_CONSISTENCY (const location_type& l)
- {
- return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_REQUEST_TIMEOUT (location_type l)
- {
- return symbol_type (token::TOKEN_REQUEST_TIMEOUT, std::move (l));
- }
-#else
- static
- symbol_type
- make_REQUEST_TIMEOUT (const location_type& l)
- {
- return symbol_type (token::TOKEN_REQUEST_TIMEOUT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_TCP_KEEPALIVE (location_type l)
- {
- return symbol_type (token::TOKEN_TCP_KEEPALIVE, std::move (l));
- }
-#else
- static
- symbol_type
- make_TCP_KEEPALIVE (const location_type& l)
- {
- return symbol_type (token::TOKEN_TCP_KEEPALIVE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_TCP_NODELAY (location_type l)
- {
- return symbol_type (token::TOKEN_TCP_NODELAY, std::move (l));
- }
-#else
- static
- symbol_type
- make_TCP_NODELAY (const location_type& l)
- {
- return symbol_type (token::TOKEN_TCP_NODELAY, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_PREFERRED_LIFETIME (location_type l)
- {
- return symbol_type (token::TOKEN_PREFERRED_LIFETIME, std::move (l));
- }
-#else
- static
- symbol_type
- make_PREFERRED_LIFETIME (const location_type& l)
- {
- return symbol_type (token::TOKEN_PREFERRED_LIFETIME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_VALID_LIFETIME (location_type l)
- {
- return symbol_type (token::TOKEN_VALID_LIFETIME, std::move (l));
- }
-#else
- static
- symbol_type
- make_VALID_LIFETIME (const location_type& l)
- {
- return symbol_type (token::TOKEN_VALID_LIFETIME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RENEW_TIMER (location_type l)
- {
- return symbol_type (token::TOKEN_RENEW_TIMER, std::move (l));
- }
-#else
- static
- symbol_type
- make_RENEW_TIMER (const location_type& l)
- {
- return symbol_type (token::TOKEN_RENEW_TIMER, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_REBIND_TIMER (location_type l)
- {
- return symbol_type (token::TOKEN_REBIND_TIMER, std::move (l));
- }
-#else
- static
- symbol_type
- make_REBIND_TIMER (const location_type& l)
- {
- return symbol_type (token::TOKEN_REBIND_TIMER, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DECLINE_PROBATION_PERIOD (location_type l)
- {
- return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, std::move (l));
- }
-#else
- static
- symbol_type
- make_DECLINE_PROBATION_PERIOD (const location_type& l)
- {
- return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SERVER_TAG (location_type l)
- {
- return symbol_type (token::TOKEN_SERVER_TAG, std::move (l));
- }
-#else
- static
- symbol_type
- make_SERVER_TAG (const location_type& l)
- {
- return symbol_type (token::TOKEN_SERVER_TAG, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUBNET6 (location_type l)
- {
- return symbol_type (token::TOKEN_SUBNET6, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUBNET6 (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUBNET6, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_OPTION_DEF (location_type l)
- {
- return symbol_type (token::TOKEN_OPTION_DEF, std::move (l));
- }
-#else
- static
- symbol_type
- make_OPTION_DEF (const location_type& l)
- {
- return symbol_type (token::TOKEN_OPTION_DEF, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_OPTION_DATA (location_type l)
- {
- return symbol_type (token::TOKEN_OPTION_DATA, std::move (l));
- }
-#else
- static
- symbol_type
- make_OPTION_DATA (const location_type& l)
- {
- return symbol_type (token::TOKEN_OPTION_DATA, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_NAME (location_type l)
- {
- return symbol_type (token::TOKEN_NAME, std::move (l));
- }
-#else
- static
- symbol_type
- make_NAME (const location_type& l)
- {
- return symbol_type (token::TOKEN_NAME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DATA (location_type l)
- {
- return symbol_type (token::TOKEN_DATA, std::move (l));
- }
-#else
- static
- symbol_type
- make_DATA (const location_type& l)
- {
- return symbol_type (token::TOKEN_DATA, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CODE (location_type l)
- {
- return symbol_type (token::TOKEN_CODE, std::move (l));
- }
-#else
- static
- symbol_type
- make_CODE (const location_type& l)
- {
- return symbol_type (token::TOKEN_CODE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SPACE (location_type l)
- {
- return symbol_type (token::TOKEN_SPACE, std::move (l));
- }
-#else
- static
- symbol_type
- make_SPACE (const location_type& l)
- {
- return symbol_type (token::TOKEN_SPACE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CSV_FORMAT (location_type l)
- {
- return symbol_type (token::TOKEN_CSV_FORMAT, std::move (l));
- }
-#else
- static
- symbol_type
- make_CSV_FORMAT (const location_type& l)
- {
- return symbol_type (token::TOKEN_CSV_FORMAT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_ALWAYS_SEND (location_type l)
- {
- return symbol_type (token::TOKEN_ALWAYS_SEND, std::move (l));
- }
-#else
- static
- symbol_type
- make_ALWAYS_SEND (const location_type& l)
- {
- return symbol_type (token::TOKEN_ALWAYS_SEND, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RECORD_TYPES (location_type l)
- {
- return symbol_type (token::TOKEN_RECORD_TYPES, std::move (l));
- }
-#else
- static
- symbol_type
- make_RECORD_TYPES (const location_type& l)
- {
- return symbol_type (token::TOKEN_RECORD_TYPES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_ENCAPSULATE (location_type l)
- {
- return symbol_type (token::TOKEN_ENCAPSULATE, std::move (l));
- }
-#else
- static
- symbol_type
- make_ENCAPSULATE (const location_type& l)
- {
- return symbol_type (token::TOKEN_ENCAPSULATE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_ARRAY (location_type l)
- {
- return symbol_type (token::TOKEN_ARRAY, std::move (l));
- }
-#else
- static
- symbol_type
- make_ARRAY (const location_type& l)
- {
- return symbol_type (token::TOKEN_ARRAY, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_POOLS (location_type l)
- {
- return symbol_type (token::TOKEN_POOLS, std::move (l));
- }
-#else
- static
- symbol_type
- make_POOLS (const location_type& l)
- {
- return symbol_type (token::TOKEN_POOLS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_POOL (location_type l)
- {
- return symbol_type (token::TOKEN_POOL, std::move (l));
- }
-#else
- static
- symbol_type
- make_POOL (const location_type& l)
- {
- return symbol_type (token::TOKEN_POOL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_PD_POOLS (location_type l)
- {
- return symbol_type (token::TOKEN_PD_POOLS, std::move (l));
- }
-#else
- static
- symbol_type
- make_PD_POOLS (const location_type& l)
- {
- return symbol_type (token::TOKEN_PD_POOLS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_PREFIX (location_type l)
- {
- return symbol_type (token::TOKEN_PREFIX, std::move (l));
- }
-#else
- static
- symbol_type
- make_PREFIX (const location_type& l)
- {
- return symbol_type (token::TOKEN_PREFIX, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_PREFIX_LEN (location_type l)
- {
- return symbol_type (token::TOKEN_PREFIX_LEN, std::move (l));
- }
-#else
- static
- symbol_type
- make_PREFIX_LEN (const location_type& l)
- {
- return symbol_type (token::TOKEN_PREFIX_LEN, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_EXCLUDED_PREFIX (location_type l)
- {
- return symbol_type (token::TOKEN_EXCLUDED_PREFIX, std::move (l));
- }
-#else
- static
- symbol_type
- make_EXCLUDED_PREFIX (const location_type& l)
- {
- return symbol_type (token::TOKEN_EXCLUDED_PREFIX, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_EXCLUDED_PREFIX_LEN (location_type l)
- {
- return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, std::move (l));
- }
-#else
- static
- symbol_type
- make_EXCLUDED_PREFIX_LEN (const location_type& l)
- {
- return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DELEGATED_LEN (location_type l)
- {
- return symbol_type (token::TOKEN_DELEGATED_LEN, std::move (l));
- }
-#else
- static
- symbol_type
- make_DELEGATED_LEN (const location_type& l)
- {
- return symbol_type (token::TOKEN_DELEGATED_LEN, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_USER_CONTEXT (location_type l)
- {
- return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l));
- }
-#else
- static
- symbol_type
- make_USER_CONTEXT (const location_type& l)
- {
- return symbol_type (token::TOKEN_USER_CONTEXT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_COMMENT (location_type l)
- {
- return symbol_type (token::TOKEN_COMMENT, std::move (l));
- }
-#else
- static
- symbol_type
- make_COMMENT (const location_type& l)
- {
- return symbol_type (token::TOKEN_COMMENT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUBNET (location_type l)
- {
- return symbol_type (token::TOKEN_SUBNET, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUBNET (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUBNET, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_INTERFACE (location_type l)
- {
- return symbol_type (token::TOKEN_INTERFACE, std::move (l));
- }
-#else
- static
- symbol_type
- make_INTERFACE (const location_type& l)
- {
- return symbol_type (token::TOKEN_INTERFACE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_INTERFACE_ID (location_type l)
- {
- return symbol_type (token::TOKEN_INTERFACE_ID, std::move (l));
- }
-#else
- static
- symbol_type
- make_INTERFACE_ID (const location_type& l)
- {
- return symbol_type (token::TOKEN_INTERFACE_ID, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_ID (location_type l)
- {
- return symbol_type (token::TOKEN_ID, std::move (l));
- }
-#else
- static
- symbol_type
- make_ID (const location_type& l)
- {
- return symbol_type (token::TOKEN_ID, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RAPID_COMMIT (location_type l)
- {
- return symbol_type (token::TOKEN_RAPID_COMMIT, std::move (l));
- }
-#else
- static
- symbol_type
- make_RAPID_COMMIT (const location_type& l)
- {
- return symbol_type (token::TOKEN_RAPID_COMMIT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RESERVATION_MODE (location_type l)
- {
- return symbol_type (token::TOKEN_RESERVATION_MODE, std::move (l));
- }
-#else
- static
- symbol_type
- make_RESERVATION_MODE (const location_type& l)
- {
- return symbol_type (token::TOKEN_RESERVATION_MODE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DISABLED (location_type l)
- {
- return symbol_type (token::TOKEN_DISABLED, std::move (l));
- }
-#else
- static
- symbol_type
- make_DISABLED (const location_type& l)
- {
- return symbol_type (token::TOKEN_DISABLED, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_OUT_OF_POOL (location_type l)
- {
- return symbol_type (token::TOKEN_OUT_OF_POOL, std::move (l));
- }
-#else
- static
- symbol_type
- make_OUT_OF_POOL (const location_type& l)
- {
- return symbol_type (token::TOKEN_OUT_OF_POOL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_GLOBAL (location_type l)
- {
- return symbol_type (token::TOKEN_GLOBAL, std::move (l));
- }
-#else
- static
- symbol_type
- make_GLOBAL (const location_type& l)
- {
- return symbol_type (token::TOKEN_GLOBAL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_ALL (location_type l)
- {
- return symbol_type (token::TOKEN_ALL, std::move (l));
- }
-#else
- static
- symbol_type
- make_ALL (const location_type& l)
- {
- return symbol_type (token::TOKEN_ALL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SHARED_NETWORKS (location_type l)
- {
- return symbol_type (token::TOKEN_SHARED_NETWORKS, std::move (l));
- }
-#else
- static
- symbol_type
- make_SHARED_NETWORKS (const location_type& l)
- {
- return symbol_type (token::TOKEN_SHARED_NETWORKS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MAC_SOURCES (location_type l)
- {
- return symbol_type (token::TOKEN_MAC_SOURCES, std::move (l));
- }
-#else
- static
- symbol_type
- make_MAC_SOURCES (const location_type& l)
- {
- return symbol_type (token::TOKEN_MAC_SOURCES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RELAY_SUPPLIED_OPTIONS (location_type l)
- {
- return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, std::move (l));
- }
-#else
- static
- symbol_type
- make_RELAY_SUPPLIED_OPTIONS (const location_type& l)
- {
- return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_HOST_RESERVATION_IDENTIFIERS (location_type l)
- {
- return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, std::move (l));
- }
-#else
- static
- symbol_type
- make_HOST_RESERVATION_IDENTIFIERS (const location_type& l)
- {
- return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SANITY_CHECKS (location_type l)
- {
- return symbol_type (token::TOKEN_SANITY_CHECKS, std::move (l));
- }
-#else
- static
- symbol_type
- make_SANITY_CHECKS (const location_type& l)
- {
- return symbol_type (token::TOKEN_SANITY_CHECKS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LEASE_CHECKS (location_type l)
- {
- return symbol_type (token::TOKEN_LEASE_CHECKS, std::move (l));
- }
-#else
- static
- symbol_type
- make_LEASE_CHECKS (const location_type& l)
- {
- return symbol_type (token::TOKEN_LEASE_CHECKS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CLIENT_CLASSES (location_type l)
- {
- return symbol_type (token::TOKEN_CLIENT_CLASSES, std::move (l));
- }
-#else
- static
- symbol_type
- make_CLIENT_CLASSES (const location_type& l)
- {
- return symbol_type (token::TOKEN_CLIENT_CLASSES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_REQUIRE_CLIENT_CLASSES (location_type l)
- {
- return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, std::move (l));
- }
-#else
- static
- symbol_type
- make_REQUIRE_CLIENT_CLASSES (const location_type& l)
- {
- return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_TEST (location_type l)
- {
- return symbol_type (token::TOKEN_TEST, std::move (l));
- }
-#else
- static
- symbol_type
- make_TEST (const location_type& l)
- {
- return symbol_type (token::TOKEN_TEST, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_ONLY_IF_REQUIRED (location_type l)
- {
- return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, std::move (l));
- }
-#else
- static
- symbol_type
- make_ONLY_IF_REQUIRED (const location_type& l)
- {
- return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CLIENT_CLASS (location_type l)
- {
- return symbol_type (token::TOKEN_CLIENT_CLASS, std::move (l));
- }
-#else
- static
- symbol_type
- make_CLIENT_CLASS (const location_type& l)
- {
- return symbol_type (token::TOKEN_CLIENT_CLASS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RESERVATIONS (location_type l)
- {
- return symbol_type (token::TOKEN_RESERVATIONS, std::move (l));
- }
-#else
- static
- symbol_type
- make_RESERVATIONS (const location_type& l)
- {
- return symbol_type (token::TOKEN_RESERVATIONS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_IP_ADDRESSES (location_type l)
- {
- return symbol_type (token::TOKEN_IP_ADDRESSES, std::move (l));
- }
-#else
- static
- symbol_type
- make_IP_ADDRESSES (const location_type& l)
- {
- return symbol_type (token::TOKEN_IP_ADDRESSES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_PREFIXES (location_type l)
- {
- return symbol_type (token::TOKEN_PREFIXES, std::move (l));
- }
-#else
- static
- symbol_type
- make_PREFIXES (const location_type& l)
- {
- return symbol_type (token::TOKEN_PREFIXES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DUID (location_type l)
- {
- return symbol_type (token::TOKEN_DUID, std::move (l));
- }
-#else
- static
- symbol_type
- make_DUID (const location_type& l)
- {
- return symbol_type (token::TOKEN_DUID, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_HW_ADDRESS (location_type l)
- {
- return symbol_type (token::TOKEN_HW_ADDRESS, std::move (l));
- }
-#else
- static
- symbol_type
- make_HW_ADDRESS (const location_type& l)
- {
- return symbol_type (token::TOKEN_HW_ADDRESS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_HOSTNAME (location_type l)
- {
- return symbol_type (token::TOKEN_HOSTNAME, std::move (l));
- }
-#else
- static
- symbol_type
- make_HOSTNAME (const location_type& l)
- {
- return symbol_type (token::TOKEN_HOSTNAME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_FLEX_ID (location_type l)
- {
- return symbol_type (token::TOKEN_FLEX_ID, std::move (l));
- }
-#else
- static
- symbol_type
- make_FLEX_ID (const location_type& l)
- {
- return symbol_type (token::TOKEN_FLEX_ID, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RELAY (location_type l)
- {
- return symbol_type (token::TOKEN_RELAY, std::move (l));
- }
-#else
- static
- symbol_type
- make_RELAY (const location_type& l)
- {
- return symbol_type (token::TOKEN_RELAY, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_IP_ADDRESS (location_type l)
- {
- return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l));
- }
-#else
- static
- symbol_type
- make_IP_ADDRESS (const location_type& l)
- {
- return symbol_type (token::TOKEN_IP_ADDRESS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_HOOKS_LIBRARIES (location_type l)
- {
- return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l));
- }
-#else
- static
- symbol_type
- make_HOOKS_LIBRARIES (const location_type& l)
- {
- return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LIBRARY (location_type l)
- {
- return symbol_type (token::TOKEN_LIBRARY, std::move (l));
- }
-#else
- static
- symbol_type
- make_LIBRARY (const location_type& l)
- {
- return symbol_type (token::TOKEN_LIBRARY, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_PARAMETERS (location_type l)
- {
- return symbol_type (token::TOKEN_PARAMETERS, std::move (l));
- }
-#else
- static
- symbol_type
- make_PARAMETERS (const location_type& l)
- {
- return symbol_type (token::TOKEN_PARAMETERS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_EXPIRED_LEASES_PROCESSING (location_type l)
- {
- return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, std::move (l));
- }
-#else
- static
- symbol_type
- make_EXPIRED_LEASES_PROCESSING (const location_type& l)
- {
- return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RECLAIM_TIMER_WAIT_TIME (location_type l)
- {
- return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, std::move (l));
- }
-#else
- static
- symbol_type
- make_RECLAIM_TIMER_WAIT_TIME (const location_type& l)
- {
- return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (location_type l)
- {
- return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, std::move (l));
- }
-#else
- static
- symbol_type
- make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l)
- {
- return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_HOLD_RECLAIMED_TIME (location_type l)
- {
- return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, std::move (l));
- }
-#else
- static
- symbol_type
- make_HOLD_RECLAIMED_TIME (const location_type& l)
- {
- return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MAX_RECLAIM_LEASES (location_type l)
- {
- return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, std::move (l));
- }
-#else
- static
- symbol_type
- make_MAX_RECLAIM_LEASES (const location_type& l)
- {
- return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MAX_RECLAIM_TIME (location_type l)
- {
- return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, std::move (l));
- }
-#else
- static
- symbol_type
- make_MAX_RECLAIM_TIME (const location_type& l)
- {
- return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_UNWARNED_RECLAIM_CYCLES (location_type l)
- {
- return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, std::move (l));
- }
-#else
- static
- symbol_type
- make_UNWARNED_RECLAIM_CYCLES (const location_type& l)
- {
- return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SERVER_ID (location_type l)
- {
- return symbol_type (token::TOKEN_SERVER_ID, std::move (l));
- }
-#else
- static
- symbol_type
- make_SERVER_ID (const location_type& l)
- {
- return symbol_type (token::TOKEN_SERVER_ID, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LLT (location_type l)
- {
- return symbol_type (token::TOKEN_LLT, std::move (l));
- }
-#else
- static
- symbol_type
- make_LLT (const location_type& l)
- {
- return symbol_type (token::TOKEN_LLT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_EN (location_type l)
- {
- return symbol_type (token::TOKEN_EN, std::move (l));
- }
-#else
- static
- symbol_type
- make_EN (const location_type& l)
- {
- return symbol_type (token::TOKEN_EN, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LL (location_type l)
- {
- return symbol_type (token::TOKEN_LL, std::move (l));
- }
-#else
- static
- symbol_type
- make_LL (const location_type& l)
- {
- return symbol_type (token::TOKEN_LL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_IDENTIFIER (location_type l)
- {
- return symbol_type (token::TOKEN_IDENTIFIER, std::move (l));
- }
-#else
- static
- symbol_type
- make_IDENTIFIER (const location_type& l)
- {
- return symbol_type (token::TOKEN_IDENTIFIER, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_HTYPE (location_type l)
- {
- return symbol_type (token::TOKEN_HTYPE, std::move (l));
- }
-#else
- static
- symbol_type
- make_HTYPE (const location_type& l)
- {
- return symbol_type (token::TOKEN_HTYPE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_TIME (location_type l)
- {
- return symbol_type (token::TOKEN_TIME, std::move (l));
- }
-#else
- static
- symbol_type
- make_TIME (const location_type& l)
- {
- return symbol_type (token::TOKEN_TIME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_ENTERPRISE_ID (location_type l)
- {
- return symbol_type (token::TOKEN_ENTERPRISE_ID, std::move (l));
- }
-#else
- static
- symbol_type
- make_ENTERPRISE_ID (const location_type& l)
- {
- return symbol_type (token::TOKEN_ENTERPRISE_ID, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DHCP4O6_PORT (location_type l)
- {
- return symbol_type (token::TOKEN_DHCP4O6_PORT, std::move (l));
- }
-#else
- static
- symbol_type
- make_DHCP4O6_PORT (const location_type& l)
- {
- return symbol_type (token::TOKEN_DHCP4O6_PORT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CONTROL_SOCKET (location_type l)
- {
- return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l));
- }
-#else
- static
- symbol_type
- make_CONTROL_SOCKET (const location_type& l)
- {
- return symbol_type (token::TOKEN_CONTROL_SOCKET, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SOCKET_TYPE (location_type l)
- {
- return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l));
- }
-#else
- static
- symbol_type
- make_SOCKET_TYPE (const location_type& l)
- {
- return symbol_type (token::TOKEN_SOCKET_TYPE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SOCKET_NAME (location_type l)
- {
- return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l));
- }
-#else
- static
- symbol_type
- make_SOCKET_NAME (const location_type& l)
- {
- return symbol_type (token::TOKEN_SOCKET_NAME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DHCP_QUEUE_CONTROL (location_type l)
- {
- return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, std::move (l));
- }
-#else
- static
- symbol_type
- make_DHCP_QUEUE_CONTROL (const location_type& l)
- {
- return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DHCP_DDNS (location_type l)
- {
- return symbol_type (token::TOKEN_DHCP_DDNS, std::move (l));
- }
-#else
- static
- symbol_type
- make_DHCP_DDNS (const location_type& l)
- {
- return symbol_type (token::TOKEN_DHCP_DDNS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_ENABLE_UPDATES (location_type l)
- {
- return symbol_type (token::TOKEN_ENABLE_UPDATES, std::move (l));
- }
-#else
- static
- symbol_type
- make_ENABLE_UPDATES (const location_type& l)
- {
- return symbol_type (token::TOKEN_ENABLE_UPDATES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_QUALIFYING_SUFFIX (location_type l)
- {
- return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, std::move (l));
- }
-#else
- static
- symbol_type
- make_QUALIFYING_SUFFIX (const location_type& l)
- {
- return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SERVER_IP (location_type l)
- {
- return symbol_type (token::TOKEN_SERVER_IP, std::move (l));
- }
-#else
- static
- symbol_type
- make_SERVER_IP (const location_type& l)
- {
- return symbol_type (token::TOKEN_SERVER_IP, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SERVER_PORT (location_type l)
- {
- return symbol_type (token::TOKEN_SERVER_PORT, std::move (l));
- }
-#else
- static
- symbol_type
- make_SERVER_PORT (const location_type& l)
- {
- return symbol_type (token::TOKEN_SERVER_PORT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SENDER_IP (location_type l)
- {
- return symbol_type (token::TOKEN_SENDER_IP, std::move (l));
- }
-#else
- static
- symbol_type
- make_SENDER_IP (const location_type& l)
- {
- return symbol_type (token::TOKEN_SENDER_IP, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SENDER_PORT (location_type l)
- {
- return symbol_type (token::TOKEN_SENDER_PORT, std::move (l));
- }
-#else
- static
- symbol_type
- make_SENDER_PORT (const location_type& l)
- {
- return symbol_type (token::TOKEN_SENDER_PORT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MAX_QUEUE_SIZE (location_type l)
- {
- return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, std::move (l));
- }
-#else
- static
- symbol_type
- make_MAX_QUEUE_SIZE (const location_type& l)
- {
- return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_NCR_PROTOCOL (location_type l)
- {
- return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l));
- }
-#else
- static
- symbol_type
- make_NCR_PROTOCOL (const location_type& l)
- {
- return symbol_type (token::TOKEN_NCR_PROTOCOL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_NCR_FORMAT (location_type l)
- {
- return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l));
- }
-#else
- static
- symbol_type
- make_NCR_FORMAT (const location_type& l)
- {
- return symbol_type (token::TOKEN_NCR_FORMAT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_OVERRIDE_NO_UPDATE (location_type l)
- {
- return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, std::move (l));
- }
-#else
- static
- symbol_type
- make_OVERRIDE_NO_UPDATE (const location_type& l)
- {
- return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_OVERRIDE_CLIENT_UPDATE (location_type l)
- {
- return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, std::move (l));
- }
-#else
- static
- symbol_type
- make_OVERRIDE_CLIENT_UPDATE (const location_type& l)
- {
- return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_REPLACE_CLIENT_NAME (location_type l)
- {
- return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, std::move (l));
- }
-#else
- static
- symbol_type
- make_REPLACE_CLIENT_NAME (const location_type& l)
- {
- return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_GENERATED_PREFIX (location_type l)
- {
- return symbol_type (token::TOKEN_GENERATED_PREFIX, std::move (l));
- }
-#else
- static
- symbol_type
- make_GENERATED_PREFIX (const location_type& l)
- {
- return symbol_type (token::TOKEN_GENERATED_PREFIX, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_UDP (location_type l)
- {
- return symbol_type (token::TOKEN_UDP, std::move (l));
- }
-#else
- static
- symbol_type
- make_UDP (const location_type& l)
- {
- return symbol_type (token::TOKEN_UDP, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_TCP (location_type l)
- {
- return symbol_type (token::TOKEN_TCP, std::move (l));
- }
-#else
- static
- symbol_type
- make_TCP (const location_type& l)
- {
- return symbol_type (token::TOKEN_TCP, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_JSON (location_type l)
- {
- return symbol_type (token::TOKEN_JSON, std::move (l));
- }
-#else
- static
- symbol_type
- make_JSON (const location_type& l)
- {
- return symbol_type (token::TOKEN_JSON, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_WHEN_PRESENT (location_type l)
- {
- return symbol_type (token::TOKEN_WHEN_PRESENT, std::move (l));
- }
-#else
- static
- symbol_type
- make_WHEN_PRESENT (const location_type& l)
- {
- return symbol_type (token::TOKEN_WHEN_PRESENT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_NEVER (location_type l)
- {
- return symbol_type (token::TOKEN_NEVER, std::move (l));
- }
-#else
- static
- symbol_type
- make_NEVER (const location_type& l)
- {
- return symbol_type (token::TOKEN_NEVER, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_ALWAYS (location_type l)
- {
- return symbol_type (token::TOKEN_ALWAYS, std::move (l));
- }
-#else
- static
- symbol_type
- make_ALWAYS (const location_type& l)
- {
- return symbol_type (token::TOKEN_ALWAYS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_WHEN_NOT_PRESENT (location_type l)
- {
- return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, std::move (l));
- }
-#else
- static
- symbol_type
- make_WHEN_NOT_PRESENT (const location_type& l)
- {
- return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_HOSTNAME_CHAR_SET (location_type l)
- {
- return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, std::move (l));
- }
-#else
- static
- symbol_type
- make_HOSTNAME_CHAR_SET (const location_type& l)
- {
- return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_HOSTNAME_CHAR_REPLACEMENT (location_type l)
- {
- return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, std::move (l));
- }
-#else
- static
- symbol_type
- make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l)
- {
- return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LOGGING (location_type l)
- {
- return symbol_type (token::TOKEN_LOGGING, std::move (l));
- }
-#else
- static
- symbol_type
- make_LOGGING (const location_type& l)
- {
- return symbol_type (token::TOKEN_LOGGING, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_LOGGERS (location_type l)
- {
- return symbol_type (token::TOKEN_LOGGERS, std::move (l));
- }
-#else
- static
- symbol_type
- make_LOGGERS (const location_type& l)
- {
- return symbol_type (token::TOKEN_LOGGERS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_OUTPUT_OPTIONS (location_type l)
- {
- return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l));
- }
-#else
- static
- symbol_type
- make_OUTPUT_OPTIONS (const location_type& l)
- {
- return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_OUTPUT (location_type l)
- {
- return symbol_type (token::TOKEN_OUTPUT, std::move (l));
- }
-#else
- static
- symbol_type
- make_OUTPUT (const location_type& l)
- {
- return symbol_type (token::TOKEN_OUTPUT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DEBUGLEVEL (location_type l)
- {
- return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l));
- }
-#else
- static
- symbol_type
- make_DEBUGLEVEL (const location_type& l)
- {
- return symbol_type (token::TOKEN_DEBUGLEVEL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SEVERITY (location_type l)
- {
- return symbol_type (token::TOKEN_SEVERITY, std::move (l));
- }
-#else
- static
- symbol_type
- make_SEVERITY (const location_type& l)
- {
- return symbol_type (token::TOKEN_SEVERITY, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_FLUSH (location_type l)
- {
- return symbol_type (token::TOKEN_FLUSH, std::move (l));
- }
-#else
- static
- symbol_type
- make_FLUSH (const location_type& l)
- {
- return symbol_type (token::TOKEN_FLUSH, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MAXSIZE (location_type l)
- {
- return symbol_type (token::TOKEN_MAXSIZE, std::move (l));
- }
-#else
- static
- symbol_type
- make_MAXSIZE (const location_type& l)
- {
- return symbol_type (token::TOKEN_MAXSIZE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MAXVER (location_type l)
- {
- return symbol_type (token::TOKEN_MAXVER, std::move (l));
- }
-#else
- static
- symbol_type
- make_MAXVER (const location_type& l)
- {
- return symbol_type (token::TOKEN_MAXVER, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DHCP4 (location_type l)
- {
- return symbol_type (token::TOKEN_DHCP4, std::move (l));
- }
-#else
- static
- symbol_type
- make_DHCP4 (const location_type& l)
- {
- return symbol_type (token::TOKEN_DHCP4, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DHCPDDNS (location_type l)
- {
- return symbol_type (token::TOKEN_DHCPDDNS, std::move (l));
- }
-#else
- static
- symbol_type
- make_DHCPDDNS (const location_type& l)
- {
- return symbol_type (token::TOKEN_DHCPDDNS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CONTROL_AGENT (location_type l)
- {
- return symbol_type (token::TOKEN_CONTROL_AGENT, std::move (l));
- }
-#else
- static
- symbol_type
- make_CONTROL_AGENT (const location_type& l)
- {
- return symbol_type (token::TOKEN_CONTROL_AGENT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_TOPLEVEL_JSON (location_type l)
- {
- return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l));
- }
-#else
- static
- symbol_type
- make_TOPLEVEL_JSON (const location_type& l)
- {
- return symbol_type (token::TOKEN_TOPLEVEL_JSON, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_TOPLEVEL_DHCP6 (location_type l)
- {
- return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, std::move (l));
- }
-#else
- static
- symbol_type
- make_TOPLEVEL_DHCP6 (const location_type& l)
- {
- return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_DHCP6 (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_DHCP6, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_DHCP6 (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_DHCP6, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_INTERFACES6 (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_INTERFACES6, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_INTERFACES6 (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_INTERFACES6, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_SUBNET6 (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_SUBNET6, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_SUBNET6 (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_SUBNET6, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_POOL6 (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_POOL6, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_POOL6 (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_POOL6, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_PD_POOL (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_PD_POOL, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_PD_POOL (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_PD_POOL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_RESERVATION (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_RESERVATION, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_RESERVATION (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_RESERVATION, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_OPTION_DEFS (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_OPTION_DEFS, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_OPTION_DEFS (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_OPTION_DEFS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_OPTION_DEF (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_OPTION_DEF, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_OPTION_DEF (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_OPTION_DEF, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_OPTION_DATA (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_OPTION_DATA, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_OPTION_DATA (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_OPTION_DATA, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_HOOKS_LIBRARY (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_HOOKS_LIBRARY (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_DHCP_DDNS (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_DHCP_DDNS, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_DHCP_DDNS (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_LOGGING (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_LOGGING, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_LOGGING (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_LOGGING, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_CONFIG_CONTROL (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_CONFIG_CONTROL (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_STRING (std::string v, location_type l)
- {
- return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l));
- }
-#else
- static
- symbol_type
- make_STRING (const std::string& v, const location_type& l)
- {
- return symbol_type (token::TOKEN_STRING, v, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_INTEGER (int64_t v, location_type l)
- {
- return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l));
- }
-#else
- static
- symbol_type
- make_INTEGER (const int64_t& v, const location_type& l)
- {
- return symbol_type (token::TOKEN_INTEGER, v, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_FLOAT (double v, location_type l)
- {
- return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l));
- }
-#else
- static
- symbol_type
- make_FLOAT (const double& v, const location_type& l)
- {
- return symbol_type (token::TOKEN_FLOAT, v, l);
- }
+ // Symbol constructors declarations.
+ static
+ symbol_type
+ make_END (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_COMMA (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_COLON (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LSQUARE_BRACKET (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RSQUARE_BRACKET (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LCURLY_BRACKET (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RCURLY_BRACKET (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_NULL_TYPE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DHCP6 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DATA_DIRECTORY (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CONFIG_CONTROL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CONFIG_DATABASES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CONFIG_FETCH_WAIT_TIME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_INTERFACES_CONFIG (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_INTERFACES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RE_DETECT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LEASE_DATABASE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HOSTS_DATABASE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HOSTS_DATABASES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_TYPE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MEMFILE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MYSQL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_POSTGRESQL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CQL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_USER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_PASSWORD (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HOST (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_PORT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_PERSIST (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LFC_INTERVAL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_READONLY (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CONNECT_TIMEOUT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CONTACT_POINTS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MAX_RECONNECT_TRIES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RECONNECT_WAIT_TIME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_KEYSPACE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CONSISTENCY (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SERIAL_CONSISTENCY (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_REQUEST_TIMEOUT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_TCP_KEEPALIVE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_TCP_NODELAY (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_PREFERRED_LIFETIME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_VALID_LIFETIME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RENEW_TIMER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_REBIND_TIMER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DECLINE_PROBATION_PERIOD (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SERVER_TAG (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUBNET6 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_OPTION_DEF (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_OPTION_DATA (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_NAME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DATA (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CODE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SPACE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CSV_FORMAT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_ALWAYS_SEND (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RECORD_TYPES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_ENCAPSULATE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_ARRAY (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_POOLS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_POOL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_PD_POOLS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_PREFIX (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_PREFIX_LEN (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_EXCLUDED_PREFIX (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_EXCLUDED_PREFIX_LEN (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DELEGATED_LEN (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_USER_CONTEXT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_COMMENT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUBNET (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_INTERFACE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_INTERFACE_ID (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_ID (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RAPID_COMMIT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RESERVATION_MODE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DISABLED (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_OUT_OF_POOL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_GLOBAL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_ALL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SHARED_NETWORKS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MAC_SOURCES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RELAY_SUPPLIED_OPTIONS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HOST_RESERVATION_IDENTIFIERS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SANITY_CHECKS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LEASE_CHECKS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CLIENT_CLASSES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_REQUIRE_CLIENT_CLASSES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_TEST (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_ONLY_IF_REQUIRED (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CLIENT_CLASS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RESERVATIONS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_IP_ADDRESSES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_PREFIXES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DUID (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HW_ADDRESS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HOSTNAME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_FLEX_ID (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RELAY (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_IP_ADDRESS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HOOKS_LIBRARIES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LIBRARY (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_PARAMETERS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_EXPIRED_LEASES_PROCESSING (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RECLAIM_TIMER_WAIT_TIME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HOLD_RECLAIMED_TIME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MAX_RECLAIM_LEASES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MAX_RECLAIM_TIME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_UNWARNED_RECLAIM_CYCLES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SERVER_ID (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LLT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_EN (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_IDENTIFIER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HTYPE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_TIME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_ENTERPRISE_ID (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DHCP4O6_PORT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CONTROL_SOCKET (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SOCKET_TYPE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SOCKET_NAME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DHCP_QUEUE_CONTROL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DHCP_DDNS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_ENABLE_UPDATES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_QUALIFYING_SUFFIX (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SERVER_IP (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SERVER_PORT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SENDER_IP (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SENDER_PORT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MAX_QUEUE_SIZE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_NCR_PROTOCOL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_NCR_FORMAT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_OVERRIDE_NO_UPDATE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_OVERRIDE_CLIENT_UPDATE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_REPLACE_CLIENT_NAME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_GENERATED_PREFIX (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_UDP (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_TCP (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_JSON (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_WHEN_PRESENT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_NEVER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_ALWAYS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_WHEN_NOT_PRESENT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HOSTNAME_CHAR_SET (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HOSTNAME_CHAR_REPLACEMENT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LOGGING (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LOGGERS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_OUTPUT_OPTIONS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_OUTPUT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DEBUGLEVEL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SEVERITY (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_FLUSH (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MAXSIZE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MAXVER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DHCP4 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DHCPDDNS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CONTROL_AGENT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_TOPLEVEL_JSON (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_TOPLEVEL_DHCP6 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_DHCP6 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_INTERFACES6 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_SUBNET6 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_POOL6 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_PD_POOL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_RESERVATION (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_OPTION_DEFS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_OPTION_DEF (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_OPTION_DATA (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_HOOKS_LIBRARY (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_DHCP_DDNS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_LOGGING (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_CONFIG_CONTROL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_STRING (YY_COPY (std::string) v, YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_INTEGER (YY_COPY (int64_t) v, YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_FLOAT (YY_COPY (double) v, YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_BOOLEAN (YY_COPY (bool) v, YY_COPY (location_type) l);
+
+
+
+ private:
+ /// This class is not copyable.
+ Dhcp6Parser (const Dhcp6Parser&);
+ Dhcp6Parser& operator= (const Dhcp6Parser&);
+
+ /// State numbers.
+ typedef int state_type;
+
+ /// Generate an error message.
+ /// \param yystate the state where the error occurred.
+ /// \param yyla the lookahead token.
+ virtual std::string yysyntax_error_ (state_type yystate,
+ const symbol_type& yyla) const;
+
+ /// Compute post-reduction state.
+ /// \param yystate the current state
+ /// \param yysym the nonterminal to push on the stack
+ state_type yy_lr_goto_state_ (state_type yystate, int yysym);
+
+ /// Whether the given \c yypact_ value indicates a defaulted state.
+ /// \param yyvalue the value to check
+ static bool yy_pact_value_is_default_ (int yyvalue);
+
+ /// Whether the given \c yytable_ value indicates a syntax error.
+ /// \param yyvalue the value to check
+ static bool yy_table_value_is_error_ (int yyvalue);
+
+ static const short yypact_ninf_;
+ static const signed char yytable_ninf_;
+
+ /// Convert a scanner token number \a t to a symbol number.
+ static token_number_type yytranslate_ (token_type t);
+
+ // Tables.
+ // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ // STATE-NUM.
+ static const short yypact_[];
+
+ // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+ // Performed when YYTABLE does not specify something else to do. Zero
+ // means the default is an error.
+ static const unsigned short yydefact_[];
+
+ // YYPGOTO[NTERM-NUM].
+ static const short yypgoto_[];
+
+ // YYDEFGOTO[NTERM-NUM].
+ static const short yydefgoto_[];
+
+ // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
+ // positive, shift that token. If negative, reduce the rule whose
+ // number is the opposite. If YYTABLE_NINF, syntax error.
+ static const unsigned short yytable_[];
+
+ static const short yycheck_[];
+
+ // YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ // symbol of state STATE-NUM.
+ static const unsigned short yystos_[];
+
+ // YYR1[YYN] -- Symbol number of symbol that rule YYN derives.
+ static const unsigned short yyr1_[];
+
+ // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.
+ static const unsigned char yyr2_[];
+
+
+ /// Convert the symbol name \a n to a form suitable for a diagnostic.
+ static std::string yytnamerr_ (const char *n);
+
+
+ /// For a symbol, its name in clear.
+ static const char* const yytname_[];
+#if PARSER6_DEBUG
+ // YYRLINE[YYN] -- Source line where rule number YYN was defined.
+ static const unsigned short yyrline_[];
+ /// Report on the debug stream that the rule \a r is going to be reduced.
+ virtual void yy_reduce_print_ (int r);
+ /// Print the state stack on the debug stream.
+ virtual void yystack_print_ ();
+
+ /// Debugging level.
+ int yydebug_;
+ /// Debug stream.
+ std::ostream* yycdebug_;
+
+ /// \brief Display a symbol type, value and location.
+ /// \param yyo The output stream.
+ /// \param yysym The symbol.
+ template <typename Base>
+ void yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const;
#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_BOOLEAN (bool v, location_type l)
- {
- return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l));
- }
-#else
- static
- symbol_type
- make_BOOLEAN (const bool& v, const location_type& l)
- {
- return symbol_type (token::TOKEN_BOOLEAN, v, l);
- }
+
+ /// \brief Reclaim the memory associated to a symbol.
+ /// \param yymsg Why this token is reclaimed.
+ /// If null, print nothing.
+ /// \param yysym The symbol.
+ template <typename Base>
+ void yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const;
+
+ private:
+ /// Type access provider for state based symbols.
+ struct by_state
+ {
+ /// Default constructor.
+ by_state ();
+
+ /// The symbol type as needed by the constructor.
+ typedef state_type kind_type;
+
+ /// Constructor.
+ by_state (kind_type s);
+
+ /// Copy constructor.
+ by_state (const by_state& other);
+
+ /// Record that this symbol is empty.
+ void clear ();
+
+ /// Steal the symbol type from \a that.
+ void move (by_state& that);
+
+ /// The (internal) type number (corresponding to \a state).
+ /// \a empty_symbol when empty.
+ symbol_number_type type_get () const;
+
+ /// The state number used to denote an empty symbol.
+ enum { empty_state = -1 };
+
+ /// The state.
+ /// \a empty when empty.
+ state_type state;
+ };
+
+ /// "Internal" symbol: element of the stack.
+ struct stack_symbol_type : basic_symbol<by_state>
+ {
+ /// Superclass.
+ typedef basic_symbol<by_state> super_type;
+ /// Construct an empty symbol.
+ stack_symbol_type ();
+ /// Move or copy construction.
+ stack_symbol_type (YY_RVREF (stack_symbol_type) that);
+ /// Steal the contents from \a sym to build this.
+ stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym);
+#if !defined __cplusplus || __cplusplus < 201103L
+ /// Assignment, needed by push_back by some old implementations.
+ /// Moves the contents of that.
+ stack_symbol_type& operator= (stack_symbol_type& that);
#endif
+ };
+
+ /// Stack type.
+ typedef stack<stack_symbol_type> stack_type;
+
+ /// The stack.
+ stack_type yystack_;
+
+ /// Push a new state on the stack.
+ /// \param m a debug message to display
+ /// if null, no trace is output.
+ /// \param sym the symbol
+ /// \warning the contents of \a s.value is stolen.
+ void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym);
+
+ /// Push a new look ahead token on the state on the stack.
+ /// \param m a debug message to display
+ /// if null, no trace is output.
+ /// \param s the state
+ /// \param sym the symbol (for its value and location).
+ /// \warning the contents of \a sym.value is stolen.
+ void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
+
+ /// Pop \a n symbols from the stack.
+ void yypop_ (int n = 1);
+
+ /// Constants.
+ enum
+ {
+ yyeof_ = 0,
+ yylast_ = 1039, ///< Last index in yytable_.
+ yynnts_ = 396, ///< Number of nonterminal symbols.
+ yyfinal_ = 32, ///< Termination state number.
+ yyterror_ = 1,
+ yyerrcode_ = 256,
+ yyntokens_ = 178 ///< Number of tokens.
+ };
+
+
+ // User arguments.
+ isc::dhcp::Parser6Context& ctx;
+ };
+
+ // Symbol number corresponding to token number t.
+ inline
+ Dhcp6Parser::token_number_type
+ Dhcp6Parser::yytranslate_ (token_type t)
+ {
+ static
+ const token_number_type
+ translate_table[] =
+ {
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177
+ };
+ const unsigned user_token_number_max_ = 432;
+ const token_number_type undef_token_ = 2;
+
+ if (static_cast<int> (t) <= yyeof_)
+ return yyeof_;
+ else if (static_cast<unsigned> (t) <= user_token_number_max_)
+ return translate_table[t];
+ else
+ return undef_token_;
+ }
+
+ inline
+ Dhcp6Parser::syntax_error::syntax_error (const location_type& l, const std::string& m)
+ : std::runtime_error (m)
+ , location (l)
+ {}
+
+ // basic_symbol.
+ template <typename Base>
+ Dhcp6Parser::basic_symbol<Base>::basic_symbol ()
+ : value ()
+ , location ()
+ {}
+
+ template <typename Base>
+ Dhcp6Parser::basic_symbol<Base>::basic_symbol (YY_RVREF (basic_symbol) other)
+ : Base (YY_MOVE (other))
+ , value ()
+ , location (YY_MOVE (other.location))
+ {
+ switch (other.type_get ())
+ {
+ case 195: // value
+ case 199: // map_value
+ case 253: // db_type
+ case 346: // hr_mode
+ case 482: // duid_type
+ case 517: // ncr_protocol_value
+ case 524: // replace_client_name_value
+ value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (other.value));
+ break;
+
+ case 177: // "boolean"
+ value.YY_MOVE_OR_COPY< bool > (YY_MOVE (other.value));
+ break;
+
+ case 176: // "floating point"
+ value.YY_MOVE_OR_COPY< double > (YY_MOVE (other.value));
+ break;
+
+ case 175: // "integer"
+ value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (other.value));
+ break;
+
+ case 174: // "constant string"
+ value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (other.value));
+ break;
+
+ default:
+ break;
+ }
+
+ }
+
+
+ // Implementation of basic_symbol constructor for each type.
+ template <typename Base>
+ Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, YY_RVREF (location_type) l)
+ : Base (t)
+ , location (YY_MOVE (l))
+ {}
+
+ template <typename Base>
+ Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, YY_RVREF (ElementPtr) v, YY_RVREF (location_type) l)
+ : Base (t)
+ , value (YY_MOVE (v))
+ , location (YY_MOVE (l))
+ {}
+
+ template <typename Base>
+ Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, YY_RVREF (bool) v, YY_RVREF (location_type) l)
+ : Base (t)
+ , value (YY_MOVE (v))
+ , location (YY_MOVE (l))
+ {}
+
+ template <typename Base>
+ Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, YY_RVREF (double) v, YY_RVREF (location_type) l)
+ : Base (t)
+ , value (YY_MOVE (v))
+ , location (YY_MOVE (l))
+ {}
+
+ template <typename Base>
+ Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, YY_RVREF (int64_t) v, YY_RVREF (location_type) l)
+ : Base (t)
+ , value (YY_MOVE (v))
+ , location (YY_MOVE (l))
+ {}
+
+ template <typename Base>
+ Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, YY_RVREF (std::string) v, YY_RVREF (location_type) l)
+ : Base (t)
+ , value (YY_MOVE (v))
+ , location (YY_MOVE (l))
+ {}
+
+
+
+ template <typename Base>
+ Dhcp6Parser::basic_symbol<Base>::~basic_symbol ()
+ {
+ clear ();
+ }
+
+ template <typename Base>
+ void
+ Dhcp6Parser::basic_symbol<Base>::clear ()
+ {
+ // User destructor.
+ symbol_number_type yytype = this->type_get ();
+ basic_symbol<Base>& yysym = *this;
+ (void) yysym;
+ switch (yytype)
+ {
+ default:
+ break;
+ }
+
+ // Type destructor.
+ switch (yytype)
+ {
+ case 195: // value
+ case 199: // map_value
+ case 253: // db_type
+ case 346: // hr_mode
+ case 482: // duid_type
+ case 517: // ncr_protocol_value
+ case 524: // replace_client_name_value
+ value.template destroy< ElementPtr > ();
+ break;
+
+ case 177: // "boolean"
+ value.template destroy< bool > ();
+ break;
+
+ case 176: // "floating point"
+ value.template destroy< double > ();
+ break;
+
+ case 175: // "integer"
+ value.template destroy< int64_t > ();
+ break;
+
+ case 174: // "constant string"
+ value.template destroy< std::string > ();
+ break;
+
+ default:
+ break;
+ }
+
+ Base::clear ();
+ }
+
+ template <typename Base>
+ bool
+ Dhcp6Parser::basic_symbol<Base>::empty () const
+ {
+ return Base::type_get () == empty_symbol;
+ }
+
+ template <typename Base>
+ void
+ Dhcp6Parser::basic_symbol<Base>::move (basic_symbol& s)
+ {
+ super_type::move (s);
+ switch (this->type_get ())
+ {
+ case 195: // value
+ case 199: // map_value
+ case 253: // db_type
+ case 346: // hr_mode
+ case 482: // duid_type
+ case 517: // ncr_protocol_value
+ case 524: // replace_client_name_value
+ value.move< ElementPtr > (YY_MOVE (s.value));
+ break;
+
+ case 177: // "boolean"
+ value.move< bool > (YY_MOVE (s.value));
+ break;
+
+ case 176: // "floating point"
+ value.move< double > (YY_MOVE (s.value));
+ break;
+
+ case 175: // "integer"
+ value.move< int64_t > (YY_MOVE (s.value));
+ break;
+
+ case 174: // "constant string"
+ value.move< std::string > (YY_MOVE (s.value));
+ break;
+
+ default:
+ break;
+ }
+
+ location = YY_MOVE (s.location);
+ }
+
+ // by_type.
+ inline
+ Dhcp6Parser::by_type::by_type ()
+ : type (empty_symbol)
+ {}
+
+ inline
+ Dhcp6Parser::by_type::by_type (const by_type& other)
+ : type (other.type)
+ {}
+
+ inline
+ Dhcp6Parser::by_type::by_type (token_type t)
+ : type (yytranslate_ (t))
+ {}
+
+ inline
+ void
+ Dhcp6Parser::by_type::clear ()
+ {
+ type = empty_symbol;
+ }
+
+ inline
+ void
+ Dhcp6Parser::by_type::move (by_type& that)
+ {
+ type = that.type;
+ that.clear ();
+ }
+
+ inline
+ int
+ Dhcp6Parser::by_type::type_get () const
+ {
+ return type;
+ }
+
+ inline
+ Dhcp6Parser::token_type
+ Dhcp6Parser::by_type::token () const
+ {
+ // YYTOKNUM[NUM] -- (External) token number corresponding to the
+ // (internal) symbol number NUM (which must be that of a token). */
+ static
+ const unsigned short
+ yytoken_number_[] =
+ {
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
+ 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
+ 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 426, 427, 428, 429, 430, 431, 432
+ };
+ return static_cast<token_type> (yytoken_number_[type]);
+ }
+
+ // Implementation of make_symbol for each symbol type.
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_END (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_END, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_COMMA (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_COMMA, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_COLON (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_COLON, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_LSQUARE_BRACKET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LSQUARE_BRACKET, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_RSQUARE_BRACKET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RSQUARE_BRACKET, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_LCURLY_BRACKET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LCURLY_BRACKET, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_RCURLY_BRACKET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RCURLY_BRACKET, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_NULL_TYPE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_NULL_TYPE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_DHCP6 (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP6, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_DATA_DIRECTORY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DATA_DIRECTORY, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_CONFIG_CONTROL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONFIG_CONTROL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_CONFIG_DATABASES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONFIG_DATABASES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_CONFIG_FETCH_WAIT_TIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_INTERFACES_CONFIG (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_INTERFACES_CONFIG, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_INTERFACES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_INTERFACES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_RE_DETECT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RE_DETECT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_LEASE_DATABASE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LEASE_DATABASE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_HOSTS_DATABASE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOSTS_DATABASE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_HOSTS_DATABASES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOSTS_DATABASES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_TYPE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_TYPE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_MEMFILE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MEMFILE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_MYSQL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MYSQL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_POSTGRESQL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_POSTGRESQL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_CQL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CQL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_USER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_USER, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_PASSWORD (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PASSWORD, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_HOST (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOST, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_PORT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PORT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_PERSIST (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PERSIST, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_LFC_INTERVAL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LFC_INTERVAL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_READONLY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_READONLY, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_CONNECT_TIMEOUT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONNECT_TIMEOUT, YY_MOVE (l));
+ }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_CONTACT_POINTS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONTACT_POINTS, YY_MOVE (l));
+ }
- private:
- /// This class is not copyable.
- Dhcp6Parser (const Dhcp6Parser&);
- Dhcp6Parser& operator= (const Dhcp6Parser&);
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_MAX_RECONNECT_TRIES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, YY_MOVE (l));
+ }
- /// State numbers.
- typedef int state_type;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_RECONNECT_WAIT_TIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, YY_MOVE (l));
+ }
- /// Generate an error message.
- /// \param yystate the state where the error occurred.
- /// \param yyla the lookahead token.
- virtual std::string yysyntax_error_ (state_type yystate,
- const symbol_type& yyla) const;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_KEYSPACE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_KEYSPACE, YY_MOVE (l));
+ }
- /// Compute post-reduction state.
- /// \param yystate the current state
- /// \param yysym the nonterminal to push on the stack
- state_type yy_lr_goto_state_ (state_type yystate, int yysym);
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_CONSISTENCY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONSISTENCY, YY_MOVE (l));
+ }
- /// Whether the given \c yypact_ value indicates a defaulted state.
- /// \param yyvalue the value to check
- static bool yy_pact_value_is_default_ (int yyvalue);
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SERIAL_CONSISTENCY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_REQUEST_TIMEOUT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_REQUEST_TIMEOUT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_TCP_KEEPALIVE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_TCP_KEEPALIVE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_TCP_NODELAY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_TCP_NODELAY, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_PREFERRED_LIFETIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PREFERRED_LIFETIME, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_VALID_LIFETIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_VALID_LIFETIME, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_RENEW_TIMER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RENEW_TIMER, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_REBIND_TIMER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_REBIND_TIMER, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_DECLINE_PROBATION_PERIOD (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SERVER_TAG (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SERVER_TAG, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUBNET6 (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUBNET6, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_OPTION_DEF (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OPTION_DEF, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_OPTION_DATA (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OPTION_DATA, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_NAME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_NAME, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_DATA (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DATA, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_CODE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CODE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SPACE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SPACE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_CSV_FORMAT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CSV_FORMAT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_ALWAYS_SEND (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ALWAYS_SEND, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_RECORD_TYPES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RECORD_TYPES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_ENCAPSULATE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ENCAPSULATE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_ARRAY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ARRAY, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_POOLS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_POOLS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_POOL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_POOL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_PD_POOLS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PD_POOLS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_PREFIX (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PREFIX, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_PREFIX_LEN (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PREFIX_LEN, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_EXCLUDED_PREFIX (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_EXCLUDED_PREFIX, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_EXCLUDED_PREFIX_LEN (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_DELEGATED_LEN (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DELEGATED_LEN, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_USER_CONTEXT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_USER_CONTEXT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_COMMENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_COMMENT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUBNET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUBNET, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_INTERFACE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_INTERFACE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_INTERFACE_ID (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_INTERFACE_ID, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_ID (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ID, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_RAPID_COMMIT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RAPID_COMMIT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_RESERVATION_MODE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RESERVATION_MODE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_DISABLED (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DISABLED, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_OUT_OF_POOL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OUT_OF_POOL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_GLOBAL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_GLOBAL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_ALL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ALL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SHARED_NETWORKS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SHARED_NETWORKS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_MAC_SOURCES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAC_SOURCES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_RELAY_SUPPLIED_OPTIONS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_HOST_RESERVATION_IDENTIFIERS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SANITY_CHECKS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SANITY_CHECKS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_LEASE_CHECKS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LEASE_CHECKS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_CLIENT_CLASSES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CLIENT_CLASSES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_REQUIRE_CLIENT_CLASSES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_TEST (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_TEST, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_ONLY_IF_REQUIRED (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_CLIENT_CLASS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CLIENT_CLASS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_RESERVATIONS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RESERVATIONS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_IP_ADDRESSES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_IP_ADDRESSES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_PREFIXES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PREFIXES, YY_MOVE (l));
+ }
- /// Whether the given \c yytable_ value indicates a syntax error.
- /// \param yyvalue the value to check
- static bool yy_table_value_is_error_ (int yyvalue);
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_DUID (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DUID, YY_MOVE (l));
+ }
- static const short yypact_ninf_;
- static const signed char yytable_ninf_;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_HW_ADDRESS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HW_ADDRESS, YY_MOVE (l));
+ }
- /// Convert a scanner token number \a t to a symbol number.
- static token_number_type yytranslate_ (token_type t);
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_HOSTNAME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOSTNAME, YY_MOVE (l));
+ }
- // Tables.
- // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- // STATE-NUM.
- static const short yypact_[];
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_FLEX_ID (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_FLEX_ID, YY_MOVE (l));
+ }
- // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
- // Performed when YYTABLE does not specify something else to do. Zero
- // means the default is an error.
- static const unsigned short yydefact_[];
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_RELAY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RELAY, YY_MOVE (l));
+ }
- // YYPGOTO[NTERM-NUM].
- static const short yypgoto_[];
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_IP_ADDRESS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_IP_ADDRESS, YY_MOVE (l));
+ }
- // YYDEFGOTO[NTERM-NUM].
- static const short yydefgoto_[];
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_HOOKS_LIBRARIES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOOKS_LIBRARIES, YY_MOVE (l));
+ }
- // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
- // positive, shift that token. If negative, reduce the rule whose
- // number is the opposite. If YYTABLE_NINF, syntax error.
- static const unsigned short yytable_[];
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_LIBRARY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LIBRARY, YY_MOVE (l));
+ }
- static const short yycheck_[];
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_PARAMETERS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PARAMETERS, YY_MOVE (l));
+ }
- // YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- // symbol of state STATE-NUM.
- static const unsigned short yystos_[];
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_EXPIRED_LEASES_PROCESSING (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, YY_MOVE (l));
+ }
- // YYR1[YYN] -- Symbol number of symbol that rule YYN derives.
- static const unsigned short yyr1_[];
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_RECLAIM_TIMER_WAIT_TIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, YY_MOVE (l));
+ }
- // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.
- static const unsigned char yyr2_[];
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, YY_MOVE (l));
+ }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_HOLD_RECLAIMED_TIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, YY_MOVE (l));
+ }
- /// Convert the symbol name \a n to a form suitable for a diagnostic.
- static std::string yytnamerr_ (const char *n);
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_MAX_RECLAIM_LEASES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, YY_MOVE (l));
+ }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_MAX_RECLAIM_TIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, YY_MOVE (l));
+ }
- /// For a symbol, its name in clear.
- static const char* const yytname_[];
-#if PARSER6_DEBUG
- // YYRLINE[YYN] -- Source line where rule number YYN was defined.
- static const unsigned short yyrline_[];
- /// Report on the debug stream that the rule \a r is going to be reduced.
- virtual void yy_reduce_print_ (int r);
- /// Print the state stack on the debug stream.
- virtual void yystack_print_ ();
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_UNWARNED_RECLAIM_CYCLES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, YY_MOVE (l));
+ }
- /// Debugging level.
- int yydebug_;
- /// Debug stream.
- std::ostream* yycdebug_;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SERVER_ID (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SERVER_ID, YY_MOVE (l));
+ }
- /// \brief Display a symbol type, value and location.
- /// \param yyo The output stream.
- /// \param yysym The symbol.
- template <typename Base>
- void yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const;
-#endif
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_LLT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LLT, YY_MOVE (l));
+ }
- /// \brief Reclaim the memory associated to a symbol.
- /// \param yymsg Why this token is reclaimed.
- /// If null, print nothing.
- /// \param yysym The symbol.
- template <typename Base>
- void yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_EN (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_EN, YY_MOVE (l));
+ }
- private:
- /// Type access provider for state based symbols.
- struct by_state
- {
- /// Default constructor.
- by_state () YY_NOEXCEPT;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_LL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LL, YY_MOVE (l));
+ }
- /// The symbol type as needed by the constructor.
- typedef state_type kind_type;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_IDENTIFIER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_IDENTIFIER, YY_MOVE (l));
+ }
- /// Constructor.
- by_state (kind_type s) YY_NOEXCEPT;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_HTYPE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HTYPE, YY_MOVE (l));
+ }
- /// Copy constructor.
- by_state (const by_state& that) YY_NOEXCEPT;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_TIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_TIME, YY_MOVE (l));
+ }
- /// Record that this symbol is empty.
- void clear () YY_NOEXCEPT;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_ENTERPRISE_ID (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ENTERPRISE_ID, YY_MOVE (l));
+ }
- /// Steal the symbol type from \a that.
- void move (by_state& that);
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_DHCP4O6_PORT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP4O6_PORT, YY_MOVE (l));
+ }
- /// The (internal) type number (corresponding to \a state).
- /// \a empty_symbol when empty.
- symbol_number_type type_get () const YY_NOEXCEPT;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_CONTROL_SOCKET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONTROL_SOCKET, YY_MOVE (l));
+ }
- /// The state number used to denote an empty symbol.
- enum { empty_state = -1 };
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SOCKET_TYPE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SOCKET_TYPE, YY_MOVE (l));
+ }
- /// The state.
- /// \a empty when empty.
- state_type state;
- };
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SOCKET_NAME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SOCKET_NAME, YY_MOVE (l));
+ }
- /// "Internal" symbol: element of the stack.
- struct stack_symbol_type : basic_symbol<by_state>
- {
- /// Superclass.
- typedef basic_symbol<by_state> super_type;
- /// Construct an empty symbol.
- stack_symbol_type ();
- /// Move or copy construction.
- stack_symbol_type (YY_RVREF (stack_symbol_type) that);
- /// Steal the contents from \a sym to build this.
- stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym);
-#if YY_CPLUSPLUS < 201103L
- /// Assignment, needed by push_back by some old implementations.
- /// Moves the contents of that.
- stack_symbol_type& operator= (stack_symbol_type& that);
-#endif
- };
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_DHCP_QUEUE_CONTROL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, YY_MOVE (l));
+ }
- /// A stack with random access from its top.
- template <typename T, typename S = std::vector<T> >
- class stack
- {
- public:
- // Hide our reversed order.
- typedef typename S::reverse_iterator iterator;
- typedef typename S::const_reverse_iterator const_iterator;
- typedef typename S::size_type size_type;
-
- stack (size_type n = 200)
- : seq_ (n)
- {}
-
- /// Random access.
- ///
- /// Index 0 returns the topmost element.
- T&
- operator[] (size_type i)
- {
- return seq_[size () - 1 - i];
- }
-
- /// Random access.
- ///
- /// Index 0 returns the topmost element.
- T&
- operator[] (int i)
- {
- return operator[] (size_type (i));
- }
-
- /// Random access.
- ///
- /// Index 0 returns the topmost element.
- const T&
- operator[] (size_type i) const
- {
- return seq_[size () - 1 - i];
- }
-
- /// Random access.
- ///
- /// Index 0 returns the topmost element.
- const T&
- operator[] (int i) const
- {
- return operator[] (size_type (i));
- }
-
- /// Steal the contents of \a t.
- ///
- /// Close to move-semantics.
- void
- push (YY_MOVE_REF (T) t)
- {
- seq_.push_back (T ());
- operator[] (0).move (t);
- }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_DHCP_DDNS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP_DDNS, YY_MOVE (l));
+ }
- /// Pop elements from the stack.
- void
- pop (int n = 1) YY_NOEXCEPT
- {
- for (; 0 < n; --n)
- seq_.pop_back ();
- }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_ENABLE_UPDATES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ENABLE_UPDATES, YY_MOVE (l));
+ }
- /// Pop all elements from the stack.
- void
- clear () YY_NOEXCEPT
- {
- seq_.clear ();
- }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_QUALIFYING_SUFFIX (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, YY_MOVE (l));
+ }
- /// Number of elements on the stack.
- size_type
- size () const YY_NOEXCEPT
- {
- return seq_.size ();
- }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SERVER_IP (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SERVER_IP, YY_MOVE (l));
+ }
- /// Iterator on top of the stack (going downwards).
- const_iterator
- begin () const YY_NOEXCEPT
- {
- return seq_.rbegin ();
- }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SERVER_PORT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SERVER_PORT, YY_MOVE (l));
+ }
- /// Bottom of the stack.
- const_iterator
- end () const YY_NOEXCEPT
- {
- return seq_.rend ();
- }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SENDER_IP (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SENDER_IP, YY_MOVE (l));
+ }
- /// Present a slice of the top of a stack.
- class slice
- {
- public:
- slice (const stack& stack, int range)
- : stack_ (stack)
- , range_ (range)
- {}
-
- const T&
- operator[] (int i) const
- {
- return stack_[range_ - i];
- }
-
- private:
- const stack& stack_;
- int range_;
- };
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SENDER_PORT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SENDER_PORT, YY_MOVE (l));
+ }
- private:
- stack (const stack&);
- stack& operator= (const stack&);
- /// The wrapped container.
- S seq_;
- };
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_MAX_QUEUE_SIZE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, YY_MOVE (l));
+ }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_NCR_PROTOCOL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_NCR_PROTOCOL, YY_MOVE (l));
+ }
- /// Stack type.
- typedef stack<stack_symbol_type> stack_type;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_NCR_FORMAT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_NCR_FORMAT, YY_MOVE (l));
+ }
- /// The stack.
- stack_type yystack_;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_OVERRIDE_NO_UPDATE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, YY_MOVE (l));
+ }
- /// Push a new state on the stack.
- /// \param m a debug message to display
- /// if null, no trace is output.
- /// \param sym the symbol
- /// \warning the contents of \a s.value is stolen.
- void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym);
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_OVERRIDE_CLIENT_UPDATE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, YY_MOVE (l));
+ }
- /// Push a new look ahead token on the state on the stack.
- /// \param m a debug message to display
- /// if null, no trace is output.
- /// \param s the state
- /// \param sym the symbol (for its value and location).
- /// \warning the contents of \a sym.value is stolen.
- void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym);
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_REPLACE_CLIENT_NAME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_GENERATED_PREFIX (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_GENERATED_PREFIX, YY_MOVE (l));
+ }
- /// Pop \a n symbols from the stack.
- void yypop_ (int n = 1);
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_UDP (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_UDP, YY_MOVE (l));
+ }
- /// Constants.
- enum
- {
- yyeof_ = 0,
- yylast_ = 1035, ///< Last index in yytable_.
- yynnts_ = 395, ///< Number of nonterminal symbols.
- yyfinal_ = 32, ///< Termination state number.
- yyterror_ = 1,
- yyerrcode_ = 256,
- yyntokens_ = 177 ///< Number of tokens.
- };
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_TCP (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_TCP, YY_MOVE (l));
+ }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_JSON (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_JSON, YY_MOVE (l));
+ }
- // User arguments.
- isc::dhcp::Parser6Context& ctx;
- };
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_WHEN_PRESENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_WHEN_PRESENT, YY_MOVE (l));
+ }
inline
- Dhcp6Parser::token_number_type
- Dhcp6Parser::yytranslate_ (token_type t)
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_NEVER (YY_COPY (location_type) l)
{
- // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
- // TOKEN-NUM as returned by yylex.
- static
- const token_number_type
- translate_table[] =
- {
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
- 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
- 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
- 175, 176
- };
- const unsigned user_token_number_max_ = 431;
- const token_number_type undef_token_ = 2;
+ return symbol_type (token::TOKEN_NEVER, YY_MOVE (l));
+ }
- if (static_cast<int> (t) <= yyeof_)
- return yyeof_;
- else if (static_cast<unsigned> (t) <= user_token_number_max_)
- return translate_table[t];
- else
- return undef_token_;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_ALWAYS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ALWAYS, YY_MOVE (l));
}
- // basic_symbol.
-#if 201103L <= YY_CPLUSPLUS
- template <typename Base>
- Dhcp6Parser::basic_symbol<Base>::basic_symbol (basic_symbol&& that)
- : Base (std::move (that))
- , value ()
- , location (std::move (that.location))
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_WHEN_NOT_PRESENT (YY_COPY (location_type) l)
{
- switch (this->type_get ())
- {
- case 194: // value
- case 198: // map_value
- case 252: // db_type
- case 345: // hr_mode
- case 481: // duid_type
- case 516: // ncr_protocol_value
- case 523: // replace_client_name_value
- value.move< ElementPtr > (std::move (that.value));
- break;
+ return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, YY_MOVE (l));
+ }
- case 176: // "boolean"
- value.move< bool > (std::move (that.value));
- break;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_HOSTNAME_CHAR_SET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, YY_MOVE (l));
+ }
- case 175: // "floating point"
- value.move< double > (std::move (that.value));
- break;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_HOSTNAME_CHAR_REPLACEMENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, YY_MOVE (l));
+ }
- case 174: // "integer"
- value.move< int64_t > (std::move (that.value));
- break;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_LOGGING (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LOGGING, YY_MOVE (l));
+ }
- case 173: // "constant string"
- value.move< std::string > (std::move (that.value));
- break;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_LOGGERS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LOGGERS, YY_MOVE (l));
+ }
- default:
- break;
- }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_OUTPUT_OPTIONS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OUTPUT_OPTIONS, YY_MOVE (l));
+ }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_OUTPUT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OUTPUT, YY_MOVE (l));
}
-#endif
- template <typename Base>
- Dhcp6Parser::basic_symbol<Base>::basic_symbol (const basic_symbol& that)
- : Base (that)
- , value ()
- , location (that.location)
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_DEBUGLEVEL (YY_COPY (location_type) l)
{
- switch (this->type_get ())
- {
- case 194: // value
- case 198: // map_value
- case 252: // db_type
- case 345: // hr_mode
- case 481: // duid_type
- case 516: // ncr_protocol_value
- case 523: // replace_client_name_value
- value.copy< ElementPtr > (YY_MOVE (that.value));
- break;
+ return symbol_type (token::TOKEN_DEBUGLEVEL, YY_MOVE (l));
+ }
- case 176: // "boolean"
- value.copy< bool > (YY_MOVE (that.value));
- break;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SEVERITY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SEVERITY, YY_MOVE (l));
+ }
- case 175: // "floating point"
- value.copy< double > (YY_MOVE (that.value));
- break;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_FLUSH (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_FLUSH, YY_MOVE (l));
+ }
- case 174: // "integer"
- value.copy< int64_t > (YY_MOVE (that.value));
- break;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_MAXSIZE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAXSIZE, YY_MOVE (l));
+ }
- case 173: // "constant string"
- value.copy< std::string > (YY_MOVE (that.value));
- break;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_MAXVER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAXVER, YY_MOVE (l));
+ }
- default:
- break;
- }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_DHCP4 (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP4, YY_MOVE (l));
+ }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_DHCPDDNS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCPDDNS, YY_MOVE (l));
}
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_CONTROL_AGENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONTROL_AGENT, YY_MOVE (l));
+ }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_TOPLEVEL_JSON (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_TOPLEVEL_JSON, YY_MOVE (l));
+ }
- template <typename Base>
- bool
- Dhcp6Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_TOPLEVEL_DHCP6 (YY_COPY (location_type) l)
{
- return Base::type_get () == empty_symbol;
+ return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, YY_MOVE (l));
}
- template <typename Base>
- void
- Dhcp6Parser::basic_symbol<Base>::move (basic_symbol& s)
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUB_DHCP6 (YY_COPY (location_type) l)
{
- super_type::move (s);
- switch (this->type_get ())
- {
- case 194: // value
- case 198: // map_value
- case 252: // db_type
- case 345: // hr_mode
- case 481: // duid_type
- case 516: // ncr_protocol_value
- case 523: // replace_client_name_value
- value.move< ElementPtr > (YY_MOVE (s.value));
- break;
+ return symbol_type (token::TOKEN_SUB_DHCP6, YY_MOVE (l));
+ }
- case 176: // "boolean"
- value.move< bool > (YY_MOVE (s.value));
- break;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUB_INTERFACES6 (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_INTERFACES6, YY_MOVE (l));
+ }
- case 175: // "floating point"
- value.move< double > (YY_MOVE (s.value));
- break;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUB_SUBNET6 (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_SUBNET6, YY_MOVE (l));
+ }
- case 174: // "integer"
- value.move< int64_t > (YY_MOVE (s.value));
- break;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUB_POOL6 (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_POOL6, YY_MOVE (l));
+ }
- case 173: // "constant string"
- value.move< std::string > (YY_MOVE (s.value));
- break;
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUB_PD_POOL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_PD_POOL, YY_MOVE (l));
+ }
- default:
- break;
- }
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUB_RESERVATION (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_RESERVATION, YY_MOVE (l));
+ }
- location = YY_MOVE (s.location);
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUB_OPTION_DEFS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_OPTION_DEFS, YY_MOVE (l));
}
- // by_type.
inline
- Dhcp6Parser::by_type::by_type ()
- : type (empty_symbol)
- {}
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUB_OPTION_DEF (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_OPTION_DEF, YY_MOVE (l));
+ }
-#if 201103L <= YY_CPLUSPLUS
inline
- Dhcp6Parser::by_type::by_type (by_type&& that)
- : type (that.type)
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUB_OPTION_DATA (YY_COPY (location_type) l)
{
- that.clear ();
+ return symbol_type (token::TOKEN_SUB_OPTION_DATA, YY_MOVE (l));
}
-#endif
inline
- Dhcp6Parser::by_type::by_type (const by_type& that)
- : type (that.type)
- {}
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUB_HOOKS_LIBRARY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, YY_MOVE (l));
+ }
inline
- Dhcp6Parser::by_type::by_type (token_type t)
- : type (yytranslate_ (t))
- {}
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUB_DHCP_DDNS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_DHCP_DDNS, YY_MOVE (l));
+ }
inline
- void
- Dhcp6Parser::by_type::clear ()
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUB_LOGGING (YY_COPY (location_type) l)
{
- type = empty_symbol;
+ return symbol_type (token::TOKEN_SUB_LOGGING, YY_MOVE (l));
}
inline
- void
- Dhcp6Parser::by_type::move (by_type& that)
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_SUB_CONFIG_CONTROL (YY_COPY (location_type) l)
{
- type = that.type;
- that.clear ();
+ return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, YY_MOVE (l));
}
inline
- int
- Dhcp6Parser::by_type::type_get () const YY_NOEXCEPT
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_STRING (YY_COPY (std::string) v, YY_COPY (location_type) l)
{
- return type;
+ return symbol_type (token::TOKEN_STRING, YY_MOVE (v), YY_MOVE (l));
}
inline
- Dhcp6Parser::token_type
- Dhcp6Parser::by_type::token () const YY_NOEXCEPT
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_INTEGER (YY_COPY (int64_t) v, YY_COPY (location_type) l)
{
- // YYTOKNUM[NUM] -- (External) token number corresponding to the
- // (internal) symbol number NUM (which must be that of a token). */
- static
- const unsigned short
- yytoken_number_[] =
- {
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
- 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
- 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
- 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
- 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
- 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
- 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
- 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
- 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
- 425, 426, 427, 428, 429, 430, 431
- };
- return token_type (yytoken_number_[type]);
+ return symbol_type (token::TOKEN_INTEGER, YY_MOVE (v), YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_FLOAT (YY_COPY (double) v, YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_FLOAT, YY_MOVE (v), YY_MOVE (l));
+ }
+
+ inline
+ Dhcp6Parser::symbol_type
+ Dhcp6Parser::make_BOOLEAN (YY_COPY (bool) v, YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_BOOLEAN, YY_MOVE (v), YY_MOVE (l));
}
-#line 14 "dhcp6_parser.yy" // lalr1.cc:401
+
+#line 14 "dhcp6_parser.yy" // lalr1.cc:404
} } // isc::dhcp
-#line 4196 "dhcp6_parser.h" // lalr1.cc:401
+#line 3326 "dhcp6_parser.h" // lalr1.cc:404
DATA_DIRECTORY "data-directory"
CONFIG_CONTROL "config-control"
CONFIG_DATABASES "config-databases"
+ CONFIG_FETCH_WAIT_TIME "config-fetch-wait-time"
+
INTERFACES_CONFIG "interfaces-config"
INTERFACES "interfaces"
RE_DETECT "re-detect"
// This defines a list of allowed parameters for each subnet.
config_control_param: config_databases
+ | config_fetch_wait_time
;
config_databases: CONFIG_DATABASES {
ctx.leave();
};
+config_fetch_wait_time: CONFIG_FETCH_WAIT_TIME COLON INTEGER {
+ ElementPtr value(new IntElement($3, ctx.loc2pos(@3)));
+ ctx.stack_.back()->set("config-fetch-wait-time", value);
+};
+
// --- logging entry -----------------------------------------
// This defines the top level "Logging" object. It parses
: io_service_(new IOService()), server_port_(server_port),
client_port_(client_port), serverid_(), shutdown_(true),
alloc_engine_(), name_change_reqs_(),
- network_state_(new NetworkState(NetworkState::DHCPv6))
-{
-
+ network_state_(new NetworkState(NetworkState::DHCPv6)),
+ cb_control_(new CBControlDHCPv6()) {
LOG_DEBUG(dhcp6_logger, DBG_DHCP6_START, DHCP6_OPEN_SOCKET)
.arg(server_port);
-// Copyright (C) 2011-2018 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2011-2019 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
#include <dhcp/pkt6.h>
#include <dhcpsrv/alloc_engine.h>
#include <dhcpsrv/callout_handle_store.h>
+#include <dhcpsrv/cb_ctl_dhcp6.h>
#include <dhcpsrv/cfg_option.h>
#include <dhcpsrv/d2_client_mgr.h>
#include <dhcpsrv/network_state.h>
/// @brief Destructor. Used during DHCPv6 service shutdown.
virtual ~Dhcpv6Srv();
+ /// @brief Checks if the server is running in unit test mode.
+ ///
+ /// @return true if the server is running in unit test mode,
+ /// false otherwise.
+ bool inTestMode() const {
+ return (server_port_ == 0);
+ }
+
/// @brief Returns pointer to the IO service used by the server.
asiolink::IOServicePtr& getIOService() {
return (io_service_);
return (network_state_);
}
+ /// @brief Returns an object which controls access to the configuration
+ /// backends.
+ ///
+ /// @return Pointer to the instance of the object which controls
+ /// access to the configuration backends.
+ CBControlDHCPv6Ptr getCBControl() const {
+ return (cb_control_);
+ }
+
/// @brief returns Kea version on stdout and exit.
/// redeclaration/redefinition. @ref isc::process::Daemon::getVersion()
static std::string getVersion(bool extended);
/// disabled subnet/network scopes.
NetworkStatePtr network_state_;
+ /// @brief Controls access to the configuration backends.
+ CBControlDHCPv6Ptr cb_control_;
};
}; // namespace isc::dhcp
#include <dhcp6/dhcp6_log.h>
#include <dhcp6/dhcp6_srv.h>
#include <dhcp/iface_mgr.h>
+#include <dhcpsrv/cb_ctl_dhcp4.h>
#include <dhcpsrv/cfg_option.h>
#include <dhcpsrv/cfgmgr.h>
#include <dhcpsrv/db_type.h>
if (!check_only) {
TimerMgr::instance()->unregisterTimers();
server.discardPackets();
+ server.getCBControl()->reset();
}
// Revert any runtime option definitions configured so far and not committed.
// the parsers. It is declared outside the loop so in case of error, the
// name of the failing parser can be retrieved within the "catch" clause.
ConfigPair config_pair;
+ SrvConfigPtr srv_config;
try {
-
- SrvConfigPtr srv_config = CfgMgr::instance().getStagingCfg();
+ // Get the staging configuration.
+ srv_config = CfgMgr::instance().getStagingCfg();
// Preserve all scalar global parameters
srv_config->extractConfiguredGlobals(config_set);
const HooksConfig& libraries =
CfgMgr::instance().getStagingCfg()->getHooksConfig();
libraries.loadLibraries();
+
+ // If there are config backends, fetch and merge into staging config
+ server.getCBControl()->databaseConfigFetch(srv_config,
+ CBControlDHCPv6::FetchMode::FETCH_ALL);
}
catch (const isc::Exception& ex) {
LOG_ERROR(dhcp6_logger, DHCP6_PARSER_COMMIT_FAIL).arg(ex.what());
-// Generated 201903231444
-// A Bison parser, made by GNU Bison 3.3.2.
+// A Bison parser, made by GNU Bison 3.2.1.
// Locations for Bison parsers in C++
-// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc.
+// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
-// Generated 201903231444
-// A Bison parser, made by GNU Bison 3.3.2.
+// A Bison parser, made by GNU Bison 3.2.1.
// Starting with Bison 3.2, this file is useless: the structure it
// used to define is now defined in "location.hh".
-// Generated 201903231444
-// A Bison parser, made by GNU Bison 3.3.2.
+// A Bison parser, made by GNU Bison 3.2.1.
// Starting with Bison 3.2, this file is useless: the structure it
// used to define is now defined with the parser itself.
--- /dev/null
+// Copyright (C) 2019 Internet Systems Consortium, Inc. ("ISC")
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#include <config.h>
+
+#include <arpa/inet.h>
+#include <gtest/gtest.h>
+
+#include <database/backend_selector.h>
+#include <dhcp/tests/iface_mgr_test_config.h>
+#include <dhcp6/dhcp6_srv.h>
+#include <dhcp6/ctrl_dhcp6_srv.h>
+#include <dhcp6/json_config_parser.h>
+#include <dhcpsrv/subnet.h>
+#include <dhcpsrv/cfgmgr.h>
+#include <dhcpsrv/cfg_subnets6.h>
+#include <dhcpsrv/testutils/generic_backend_unittest.h>
+#include <dhcpsrv/testutils/test_config_backend_dhcp6.h>
+
+#include "dhcp6_test_utils.h"
+#include "get_config_unittest.h"
+
+#include <boost/foreach.hpp>
+#include <boost/scoped_ptr.hpp>
+
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <limits.h>
+
+using namespace isc::asiolink;
+using namespace isc::config;
+using namespace isc::data;
+using namespace isc::dhcp;
+using namespace isc::dhcp::test;
+using namespace isc::db;
+using namespace std;
+
+namespace {
+
+/// @brief Test fixture for testing external configuration merging
+class Dhcp6CBTest : public GenericBackendTest {
+protected:
+ /// @brief Pre test set up
+ /// Called prior to each test. It creates two configuration backends
+ /// that differ by host name ("db1" and "db2"). It then registers
+ /// a backend factory that will return them rather than create
+ /// new instances. The backends need to pre-exist so they can be
+ /// populated prior to calling server configure. It uses
+ /// TestConfigBackend instances but with a type of "memfile" to pass
+ /// parsing. Doing it all here allows us to use ASSERTs if we feel like
+ /// it.
+ virtual void SetUp() {
+ DatabaseConnection::ParameterMap params;
+ params[std::string("type")] = std::string("memfile");
+ params[std::string("host")] = std::string("db1");
+ db1_.reset(new TestConfigBackendDHCPv6(params));
+
+ params[std::string("host")] = std::string("db2");
+ db2_.reset(new TestConfigBackendDHCPv6(params));
+
+ ConfigBackendDHCPv6Mgr::instance().registerBackendFactory("memfile",
+ [this](const DatabaseConnection::ParameterMap& params)
+ -> ConfigBackendDHCPv6Ptr {
+ auto host = params.find("host");
+ if (host != params.end()) {
+ if (host->second == "db1") {
+ return (db1_);
+ } else if (host->second == "db2") {
+ return (db2_);
+ }
+ }
+
+ // Apparently we're looking for one that does not prexist.
+ return (TestConfigBackendDHCPv6Ptr(new TestConfigBackendDHCPv6(params)));
+ });
+ }
+
+ /// @brief Clean up after each test
+ virtual void TearDown() {
+ // Unregister the factory to be tidy.
+ ConfigBackendDHCPv6Mgr::instance().unregisterBackendFactory("memfile");
+ }
+
+public:
+
+ /// Constructor
+ Dhcp6CBTest()
+ : rcode_(-1), db1_selector("db1"), db2_selector("db1") {
+ // Open port 0 means to not do anything at all. We don't want to
+ // deal with sockets here, just check if configuration handling
+ // is sane.
+ srv_.reset(new ControlledDhcpv6Srv(0));
+
+ // Create fresh context.
+ resetConfiguration();
+ }
+
+ /// Destructor
+ virtual ~Dhcp6CBTest() {
+ resetConfiguration();
+ };
+
+ /// @brief Reset configuration singletons.
+ void resetConfiguration() {
+ CfgMgr::instance().clear();
+ ConfigBackendDHCPv6Mgr::destroy();
+ }
+
+ /// @brief Convenience method for running configuration
+ ///
+ /// This method does not throw, but signals errors using gtest macros.
+ ///
+ /// @param config text to be parsed as JSON
+ /// @param expected_code expected code (see cc/command_interpreter.h)
+ /// @param exp_error expected text error (check skipped if empty)
+ void configure(std::string config, int expected_code,
+ std::string exp_error = "") {
+ ConstElementPtr json;
+ try {
+ json = parseDHCP6(config, true);
+ } catch(const std::exception& ex) {
+ ADD_FAILURE() << "parseDHCP6 failed: " << ex.what();
+ }
+
+ ConstElementPtr status;
+ ASSERT_NO_THROW(status = configureDhcp6Server(*srv_, json));
+ ASSERT_TRUE(status);
+
+ int rcode;
+ ConstElementPtr comment = parseAnswer(rcode, status);
+ ASSERT_EQ(expected_code, rcode) << " comment: "
+ << comment->stringValue();
+
+ string text;
+ ASSERT_NO_THROW(text = comment->stringValue());
+
+ if (expected_code != rcode) {
+ std::cout << "Reported status: " << text << std::endl;
+ }
+
+ if ((rcode != 0)) {
+ if (!exp_error.empty()) {
+ ASSERT_EQ(exp_error, text);
+ }
+ }
+ }
+
+ boost::scoped_ptr<Dhcpv6Srv> srv_; ///< DHCP6 server under test
+ int rcode_; ///< Return code from element parsing
+ ConstElementPtr comment_; ///< Reason for parse fail
+
+ BackendSelector db1_selector; ///< BackendSelector by host for first config backend
+ BackendSelector db2_selector; ///< BackendSelector by host for second config backend
+
+ TestConfigBackendDHCPv6Ptr db1_; ///< First configuration backend instance
+ TestConfigBackendDHCPv6Ptr db2_; ///< Second configuration backend instance
+};
+
+// This test verifies that externally configured globals are
+// merged correctly into staging configuration.
+TEST_F(Dhcp6CBTest, mergeGlobals) {
+ string base_config =
+ "{ \n"
+ " \"interfaces-config\": { \n"
+ " \"interfaces\": [\"*\" ] \n"
+ " }, \n"
+ " \"echo-client-id\": false, \n"
+ " \"decline-probation-period\": 7000, \n"
+ " \"valid-lifetime\": 1000, \n"
+ " \"rebind-timer\": 800, \n"
+ " \"server-hostname\": \"overwrite.me.com\", \n"
+ " \"config-control\": { \n"
+ " \"config-databases\": [ { \n"
+ " \"type\": \"memfile\", \n"
+ " \"host\": \"db1\" \n"
+ " },{ \n"
+ " \"type\": \"memfile\", \n"
+ " \"host\": \"db2\" \n"
+ " } \n"
+ " ] \n"
+ " } \n"
+ "} \n";
+
+ extractConfig(base_config);
+
+ // Make some globals:
+ StampedValuePtr server_hostname(new StampedValue("server-hostname", "isc.example.org"));
+ StampedValuePtr decline_period(new StampedValue("decline-probation-period", Element::create(86400)));
+ StampedValuePtr calc_tee_times(new StampedValue("calculate-tee-times", Element::create(bool(false))));
+ StampedValuePtr t2_percent(new StampedValue("t2-percent", Element::create(0.75)));
+ StampedValuePtr renew_timer(new StampedValue("renew-timer", Element::create(500)));
+
+ // Let's add all of the globals to the second backend. This will verify
+ // we find them there.
+ db2_->createUpdateGlobalParameter6(ServerSelector::ALL(), server_hostname);
+ db2_->createUpdateGlobalParameter6(ServerSelector::ALL(), decline_period);
+ db2_->createUpdateGlobalParameter6(ServerSelector::ALL(), calc_tee_times);
+ db2_->createUpdateGlobalParameter6(ServerSelector::ALL(), t2_percent);
+ db2_->createUpdateGlobalParameter6(ServerSelector::ALL(), renew_timer);
+
+ // Should parse and merge without error.
+ ASSERT_NO_FATAL_FAILURE(configure(base_config, CONTROL_RESULT_SUCCESS, ""));
+
+ // Verify the composite staging is correct. (Remember that
+ // CfgMgr::instance().commit() hasn't been called)
+ SrvConfigPtr staging_cfg = CfgMgr::instance().getStagingCfg();
+
+ // echo-client-id is set explicitly in the original config, meanwhile
+ // the backend config does not set it, so the explicit value wins.
+ EXPECT_FALSE(staging_cfg->getEchoClientId());
+
+ // decline-probation-period is an explicit member that should come
+ // from the backend.
+ EXPECT_EQ(86400, staging_cfg->getDeclinePeriod());
+
+ // Verify that the implicit globals from JSON are there.
+ ASSERT_NO_FATAL_FAILURE(checkConfiguredGlobal(staging_cfg, "valid-lifetime",
+ Element::create(1000)));
+ ASSERT_NO_FATAL_FAILURE(checkConfiguredGlobal(staging_cfg, "rebind-timer",
+ Element::create(800)));
+
+ // Verify that the implicit globals from the backend are there.
+ ASSERT_NO_FATAL_FAILURE(checkConfiguredGlobal(staging_cfg, server_hostname));
+ ASSERT_NO_FATAL_FAILURE(checkConfiguredGlobal(staging_cfg, calc_tee_times));
+ ASSERT_NO_FATAL_FAILURE(checkConfiguredGlobal(staging_cfg, t2_percent));
+ ASSERT_NO_FATAL_FAILURE(checkConfiguredGlobal(staging_cfg, renew_timer));
+}
+
+#if 0
+// This test verifies that externally configured option definitions
+// merged correctly into staging configuration.
+TEST_F(Dhcp6CBTest, mergeOptionDefs) {
+ string base_config =
+ "{ \n"
+ " \"option-def\": [ { \n"
+ " \"name\": \"one\", \n"
+ " \"code\": 1, \n"
+ " \"type\": \"ipv6-address\", \n"
+ " \"space\": \"isc\" \n"
+ " }, \n"
+ " { \n"
+ " \"name\": \"two\", \n"
+ " \"code\": 2, \n"
+ " \"type\": \"string\", \n"
+ " \"space\": \"isc\" \n"
+ " } \n"
+ " ], \n"
+ " \"config-control\": { \n"
+ " \"config-databases\": [ { \n"
+ " \"type\": \"memfile\", \n"
+ " \"host\": \"db1\" \n"
+ " },{ \n"
+ " \"type\": \"memfile\", \n"
+ " \"host\": \"db2\" \n"
+ " } \n"
+ " ] \n"
+ " } \n"
+ "} \n";
+
+ extractConfig(base_config);
+
+ // Create option one replacement and add it to first backend.
+ OptionDefinitionPtr def;
+ def.reset(new OptionDefinition("one", 101, "uint16"));
+ def->setOptionSpaceName("isc");
+ db1_->createUpdateOptionDef6(ServerSelector::ALL(), def);
+
+ // Create option three and add it to first backend.
+ def.reset(new OptionDefinition("three", 3, "string"));
+ def->setOptionSpaceName("isc");
+ db1_->createUpdateOptionDef6(ServerSelector::ALL(), def);
+
+ // Create option four and add it to second backend.
+ def.reset(new OptionDefinition("four", 4, "string"));
+ def->setOptionSpaceName("isc");
+ db2_->createUpdateOptionDef6(ServerSelector::ALL(), def);
+
+ // Should parse and merge without error.
+ ASSERT_NO_FATAL_FAILURE(configure(base_config, CONTROL_RESULT_SUCCESS, ""));
+
+ // Verify the composite staging is correct.
+ SrvConfigPtr staging_cfg = CfgMgr::instance().getStagingCfg();
+ ConstCfgOptionDefPtr option_defs = staging_cfg->getCfgOptionDef();
+
+ // Definition "one" from first backend should be there.
+ OptionDefinitionPtr found_def = option_defs->get("isc", "one");
+ ASSERT_TRUE(found_def);
+ EXPECT_EQ(101, found_def->getCode());
+ EXPECT_EQ(OptionDataType::OPT_UINT16_TYPE, found_def->getType());
+
+ // Definition "two" from JSON config should be there.
+ found_def = option_defs->get("isc", "two");
+ ASSERT_TRUE(found_def);
+ EXPECT_EQ(2, found_def->getCode());
+
+ // Definition "three" from first backend should be there.
+ found_def = option_defs->get("isc", "three");
+ ASSERT_TRUE(found_def);
+ EXPECT_EQ(3, found_def->getCode());
+
+ // Definition "four" from first backend should not be there.
+ found_def = option_defs->get("isc", "four");
+ ASSERT_FALSE(found_def);
+}
+
+// This test verifies that externally configured options
+// merged correctly into staging configuration.
+TEST_F(Dhcp6CBTest, mergeOptions) {
+ string base_config =
+ "{ \n"
+ " \"option-data\": [ { \n"
+ " \"name\": \"dhcp-message\", \n"
+ " \"data\": \"0A0B0C0D\", \n"
+ " \"csv-format\": false \n"
+ " },{ \n"
+ " \"name\": \"host-name\", \n"
+ " \"data\": \"old.example.com\", \n"
+ " \"csv-format\": true \n"
+ " } \n"
+ " ], \n"
+ " \"config-control\": { \n"
+ " \"config-databases\": [ { \n"
+ " \"type\": \"memfile\", \n"
+ " \"host\": \"db1\" \n"
+ " },{ \n"
+ " \"type\": \"memfile\", \n"
+ " \"host\": \"db2\" \n"
+ " } \n"
+ " ] \n"
+ " } \n"
+ "} \n";
+
+ extractConfig(base_config);
+
+ OptionDescriptorPtr opt;
+
+ // Add host-name to the first backend.
+ opt.reset(new OptionDescriptor(
+ createOption<OptionString>(Option::V6, DHO_HOST_NAME,
+ true, false, "new.example.com")));
+ opt->space_name_ = DHCP6_OPTION_SPACE;
+ db1_->createUpdateOption6(ServerSelector::ALL(), opt);
+
+ // Add boot-file-name to the first backend.
+ opt.reset(new OptionDescriptor(
+ createOption<OptionString>(Option::V6, DHO_BOOT_FILE_NAME,
+ true, false, "my-boot-file")));
+ opt->space_name_ = DHCP6_OPTION_SPACE;
+ db1_->createUpdateOption6(ServerSelector::ALL(), opt);
+
+ // Add boot-file-name to the second backend.
+ opt.reset(new OptionDescriptor(
+ createOption<OptionString>(Option::V6, DHO_BOOT_FILE_NAME,
+ true, false, "your-boot-file")));
+ opt->space_name_ = DHCP6_OPTION_SPACE;
+ db2_->createUpdateOption6(ServerSelector::ALL(), opt);
+
+ // Should parse and merge without error.
+ ASSERT_NO_FATAL_FAILURE(configure(base_config, CONTROL_RESULT_SUCCESS, ""));
+
+ // Verify the composite staging is correct.
+ SrvConfigPtr staging_cfg = CfgMgr::instance().getStagingCfg();
+
+ // Option definition from JSON should be there.
+ CfgOptionPtr options = staging_cfg->getCfgOption();
+
+ // dhcp-message should come from the original config.
+ OptionDescriptor found_opt = options->get("dhcp6", DHO_DHCP_MESSAGE);
+ ASSERT_TRUE(found_opt.option_);
+ EXPECT_EQ("0x0A0B0C0D", found_opt.option_->toHexString());
+
+ // host-name should come from the first back end,
+ // (overwriting the original).
+ found_opt = options->get("dhcp6", DHO_HOST_NAME);
+ ASSERT_TRUE(found_opt.option_);
+ EXPECT_EQ("new.example.com", found_opt.option_->toString());
+
+ // booth-file-name should come from the first back end.
+ found_opt = options->get("dhcp6", DHO_BOOT_FILE_NAME);
+ ASSERT_TRUE(found_opt.option_);
+ EXPECT_EQ("my-boot-file", found_opt.option_->toString());
+}
+
+// This test verifies that externally configured shared-networks are
+// merged correctly into staging configuration.
+TEST_F(Dhcp6CBTest, mergeSharedNetworks) {
+ string base_config =
+ "{ \n"
+ " \"interfaces-config\": { \n"
+ " \"interfaces\": [\"*\" ] \n"
+ " }, \n"
+ " \"valid-lifetime\": 4000, \n"
+ " \"config-control\": { \n"
+ " \"config-databases\": [ { \n"
+ " \"type\": \"memfile\", \n"
+ " \"host\": \"db1\" \n"
+ " },{ \n"
+ " \"type\": \"memfile\", \n"
+ " \"host\": \"db2\" \n"
+ " } \n"
+ " ] \n"
+ " }, \n"
+ " \"shared-networks\": [ { \n"
+ " \"name\": \"two\" \n"
+ " }] \n"
+ "} \n";
+
+ extractConfig(base_config);
+
+ // Make a few networks
+ SharedNetwork6Ptr network1(new SharedNetwork6("one"));
+ SharedNetwork6Ptr network3(new SharedNetwork6("three"));
+
+ // Add network1 to db1 and network3 to db2
+ db1_->createUpdateSharedNetwork6(ServerSelector::ALL(), network1);
+ db2_->createUpdateSharedNetwork6(ServerSelector::ALL(), network3);
+
+ // Should parse and merge without error.
+ ASSERT_NO_FATAL_FAILURE(configure(base_config, CONTROL_RESULT_SUCCESS, ""));
+
+ // Verify the composite staging is correct. (Remember that
+ // CfgMgr::instance().commit() hasn't been called)
+ SrvConfigPtr staging_cfg = CfgMgr::instance().getStagingCfg();
+
+ CfgSharedNetworks4Ptr networks = staging_cfg->getCfgSharedNetworks4();
+ SharedNetwork6Ptr staged_network;
+
+ // SharedNetwork One should have been added from db1 config
+ staged_network = networks->getByName("one");
+ ASSERT_TRUE(staged_network);
+
+ // Subnet2 should have come from the json config
+ staged_network = networks->getByName("two");
+ ASSERT_TRUE(staged_network);
+
+ // Subnet3, which is in db2 should not have been merged.
+ // We queried db1 first and the query returned data. In
+ // other words, we iterate over the backends, asking for
+ // data. We use the first data, we find.
+ staged_network = networks->getByName("three");
+ ASSERT_FALSE(staged_network);
+}
+
+// This test verifies that externally configured subnets are
+// merged correctly into staging configuration.
+TEST_F(Dhcp6CBTest, mergeSubnets) {
+ string base_config =
+ "{ \n"
+ " \"interfaces-config\": { \n"
+ " \"interfaces\": [\"*\" ] \n"
+ " }, \n"
+ " \"valid-lifetime\": 4000, \n"
+ " \"config-control\": { \n"
+ " \"config-databases\": [ { \n"
+ " \"type\": \"memfile\", \n"
+ " \"host\": \"db1\" \n"
+ " },{ \n"
+ " \"type\": \"memfile\", \n"
+ " \"host\": \"db2\" \n"
+ " } \n"
+ " ] \n"
+ " }, \n"
+ " \"subnet6\": [ \n"
+ " { \n"
+ " \"id\": 2,\n"
+ " \"subnet\": \"192.0.3.0/24\" \n"
+ " } ]\n"
+ "} \n";
+
+ extractConfig(base_config);
+
+ // Make a few subnets
+ Subnet6Ptr subnet1(new Subnet6(IOAddress("192.0.2.0"), 26, 1, 2, 3, SubnetID(1)));
+ Subnet6Ptr subnet3(new Subnet6(IOAddress("192.0.4.0"), 26, 1, 2, 3, SubnetID(3)));
+
+ // Add subnet1 to db1 and subnet3 to db2
+ db1_->createUpdateSubnet6(ServerSelector::ALL(), subnet1);
+ db2_->createUpdateSubnet6(ServerSelector::ALL(), subnet3);
+
+ // Should parse and merge without error.
+ configure(base_config, CONTROL_RESULT_SUCCESS, "");
+
+ // Verify the composite staging is correct. (Remember that
+ // CfgMgr::instance().commit() hasn't been called)
+
+ SrvConfigPtr staging_cfg = CfgMgr::instance().getStagingCfg();
+
+ CfgSubnets6Ptr subnets = staging_cfg->getCfgSubnets6();
+ Subnet6Ptr staged_subnet;
+
+ // Subnet1 should have been added from db1 config
+ staged_subnet = subnets->getSubnet(1);
+ ASSERT_TRUE(staged_subnet);
+
+ // Subnet2 should have come from the json config
+ staged_subnet = subnets->getSubnet(2);
+ ASSERT_TRUE(staged_subnet);
+
+ // Subnet3, which is in db2 should not have been merged, since it is
+ // first found, first used?
+ staged_subnet = subnets->getSubnet(3);
+ ASSERT_FALSE(staged_subnet);
+}
+#endif
+
+}
#include <dhcpsrv/subnet.h>
#include <dhcpsrv/subnet_selector.h>
#include <dhcpsrv/testutils/config_result_check.h>
+#include <dhcpsrv/testutils/test_config_backend_dhcp6.h>
#include <hooks/hooks_manager.h>
#include <process/config_ctl_info.h>
" \"rebind-timer\": 2000, \n"
" \"renew-timer\": 1000, \n"
" \"config-control\": { \n"
+ " \"config-fetch-wait-time\": 10, \n"
" \"config-databases\": [ { \n"
" \"type\": \"mysql\", \n"
" \"name\": \"keatest1\", \n"
// This test verifies that configuration control info gets populated.
TEST_F(Dhcp6ParserTest, configControlInfo) {
string config = PARSER_CONFIGS[8];
- extractConfig(config);
+
+ // Should be able to register a backend factory for "mysql".
+ ASSERT_TRUE(TestConfigBackendDHCPv6::
+ registerBackendType(ConfigBackendDHCPv6Mgr::instance(),
+ "mysql"));
+
configure(config, CONTROL_RESULT_SUCCESS, "");
// Make sure the config control info is there.
dblist.front().getAccessString());
EXPECT_EQ("name=keatest2 password=keatest type=mysql user=keatest",
dblist.back().getAccessString());
+
+ // Verify that the config-fetch-wait-time is correct.
+ EXPECT_FALSE(info->getConfigFetchWaitTime().unspecified());
+ EXPECT_EQ(10, info->getConfigFetchWaitTime().get());
}
// Check whether it is possible to configure server-tag
" }\n"
" ],\n"
" \"valid-lifetime\": 4000\n"
-" }\n",
- // CONFIGURATION 58
-"{\n"
-" \"config-control\": {\n"
-" \"config-databases\": [\n"
-" {\n"
-" \"name\": \"keatest1\",\n"
-" \"password\": \"keatest\",\n"
-" \"type\": \"mysql\",\n"
-" \"user\": \"keatest\"\n"
-" },\n"
-" {\n"
-" \"name\": \"keatest2\",\n"
-" \"password\": \"keatest\",\n"
-" \"type\": \"mysql\",\n"
-" \"user\": \"keatest\"\n"
-" }\n"
-" ]\n"
-" },\n"
-" \"interfaces-config\": {\n"
-" \"interfaces\": [ \"*\" ],\n"
-" \"re-detect\": false\n"
-" },\n"
-" \"rebind-timer\": 2000,\n"
-" \"renew-timer\": 1000,\n"
-" \"valid-lifetime\": 4000\n"
" }\n"
};
" }\n"
" ],\n"
" \"valid-lifetime\": 4000\n"
-" }\n",
- // CONFIGURATION 58
-"{\n"
-" \"config-control\": {\n"
-" \"config-databases\": [\n"
-" {\n"
-" \"name\": \"keatest1\",\n"
-" \"password\": \"keatest\",\n"
-" \"type\": \"mysql\",\n"
-" \"user\": \"keatest\"\n"
-" },\n"
-" {\n"
-" \"name\": \"keatest2\",\n"
-" \"password\": \"keatest\",\n"
-" \"type\": \"mysql\",\n"
-" \"user\": \"keatest\"\n"
-" }\n"
-" ]\n"
-" },\n"
-" \"decline-probation-period\": 86400,\n"
-" \"dhcp-ddns\": {\n"
-" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\n"
-" \"hostname-char-replacement\": \"\",\n"
-" \"hostname-char-set\": \"\",\n"
-" \"max-queue-size\": 1024,\n"
-" \"ncr-format\": \"JSON\",\n"
-" \"ncr-protocol\": \"UDP\",\n"
-" \"override-client-update\": false,\n"
-" \"override-no-update\": false,\n"
-" \"qualifying-suffix\": \"\",\n"
-" \"replace-client-name\": \"never\",\n"
-" \"sender-ip\": \"0.0.0.0\",\n"
-" \"sender-port\": 0,\n"
-" \"server-ip\": \"127.0.0.1\",\n"
-" \"server-port\": 53001\n"
-" },\n"
-" \"dhcp-queue-control\": {\n"
-" \"capacity\": 500,\n"
-" \"enable-queue\": false,\n"
-" \"queue-type\": \"kea-ring6\"\n"
-" },\n"
-" \"dhcp4o6-port\": 0,\n"
-" \"expired-leases-processing\": {\n"
-" \"flush-reclaimed-timer-wait-time\": 25,\n"
-" \"hold-reclaimed-time\": 3600,\n"
-" \"max-reclaim-leases\": 100,\n"
-" \"max-reclaim-time\": 250,\n"
-" \"reclaim-timer-wait-time\": 10,\n"
-" \"unwarned-reclaim-cycles\": 5\n"
-" },\n"
-" \"hooks-libraries\": [ ],\n"
-" \"host-reservation-identifiers\": [ \"hw-address\", \"duid\" ],\n"
-" \"interfaces-config\": {\n"
-" \"interfaces\": [ \"*\" ],\n"
-" \"re-detect\": false\n"
-" },\n"
-" \"lease-database\": {\n"
-" \"type\": \"memfile\"\n"
-" },\n"
-" \"mac-sources\": [ \"any\" ],\n"
-" \"option-data\": [ ],\n"
-" \"option-def\": [ ],\n"
-" \"rebind-timer\": 2000,\n"
-" \"relay-supplied-options\": [ \"65\" ],\n"
-" \"renew-timer\": 1000,\n"
-" \"sanity-checks\": {\n"
-" \"lease-checks\": \"warn\"\n"
-" },\n"
-" \"server-id\": {\n"
-" \"enterprise-id\": 0,\n"
-" \"htype\": 0,\n"
-" \"identifier\": \"\",\n"
-" \"persist\": true,\n"
-" \"time\": 0,\n"
-" \"type\": \"LLT\"\n"
-" },\n"
-" \"shared-networks\": [ ],\n"
-" \"subnet6\": [ ],\n"
-" \"valid-lifetime\": 4000\n"
" }\n"
};
#include <dhcp6/ctrl_dhcp6_srv.h>
#include <dhcp6/parser_context.h>
#include <dhcp6/tests/dhcp6_test_utils.h>
+#include <dhcpsrv/cb_ctl_dhcp4.h>
#include <dhcpsrv/cfgmgr.h>
#include <dhcpsrv/lease.h>
#include <dhcpsrv/lease_mgr_factory.h>
+#include <process/config_base.h>
#ifdef HAVE_MYSQL
#include <mysql/testutils/mysql_schema.h>
#include <log/logger_support.h>
#include <util/stopwatch.h>
+#include <boost/pointer_cast.hpp>
#include <boost/scoped_ptr.hpp>
#include <gtest/gtest.h>
+#include <functional>
#include <fstream>
#include <iostream>
#include <sstream>
namespace {
+/// @brief Test implementation of the @c CBControlDHCPv6.
+///
+/// This implementation is installed on the test server instance. It
+/// overrides the implementation of the @c databaseConfigFetch function
+/// to verify arguments passed to this function and throw an exception
+/// when desired in the negative test scenarios. It doesn't do the
+/// actual configuration fetch as this is tested elswhere and would
+/// require setting up a database configuration backend.
+class TestCBControlDHCPv6 : public CBControlDHCPv6 {
+public:
+
+ /// @brief Constructor.
+ TestCBControlDHCPv6()
+ : CBControlDHCPv6(), db_config_fetch_calls_(0),
+ enable_check_fetch_mode_(false), enable_throw_(false) {
+ }
+
+ /// @brief Stub implementation of the "fetch" function.
+ ///
+ /// It checks if the @c fetch_updates_only is set to true when it
+ /// is a later than first invocation of the function. It also
+ /// throws an exception when desired by a test, to verify that the
+ /// server gracefully handles such exception.
+ ///
+ /// @param fetch_mode value indicating if the method is called upon the
+ /// server start up or it is called to fetch configuration updates.
+ ///
+ /// @throw Unexpected when configured to do so.
+ virtual void databaseConfigFetch(const process::ConfigPtr&,
+ const FetchMode& fetch_mode) {
+ ++db_config_fetch_calls_;
+
+ if (enable_check_fetch_mode_) {
+ if ((db_config_fetch_calls_ <= 1) && (fetch_mode == FetchMode::FETCH_UPDATE)) {
+ ADD_FAILURE() << "databaseConfigFetch was called with the value "
+ "of fetch_mode=FetchMode::FETCH_UPDATE upon the server configuration";
+
+ } else if ((db_config_fetch_calls_ > 1) && (fetch_mode == FetchMode::FETCH_ALL)) {
+ ADD_FAILURE() << "databaseConfigFetch was called with the value "
+ "of fetch_mode=FetchMode::FETCH_ALL during fetching the updates";
+ }
+ }
+
+ if (enable_throw_) {
+ isc_throw(Unexpected, "testing if exceptions are corectly handled");
+ }
+ }
+
+ /// @brief Returns number of invocations of the @c databaseConfigFetch.
+ size_t getDatabaseConfigFetchCalls() const {
+ return (db_config_fetch_calls_);
+ }
+
+ /// @brief Enables checking of the @c fetch_mode value.
+ void enableCheckFetchMode() {
+ enable_check_fetch_mode_ = true;
+ }
+
+ /// @brief Enables the object to throw from @c databaseConfigFetch.
+ void enableThrow() {
+ enable_throw_ = true;
+ }
+
+private:
+
+ /// @brief Counter holding number of invocations of the @c databaseConfigFetch.
+ size_t db_config_fetch_calls_;
+
+ /// @brief Boolean flag indicated if the value of the @c fetch_mode
+ /// should be verified.
+ bool enable_check_fetch_mode_;
+
+ /// @brief Boolean flag indicating if the @c databaseConfigFetch should
+ /// throw.
+ bool enable_throw_;
+};
+
+/// @brief Shared pointer to the @c TestCBControlDHCPv6.
+typedef boost::shared_ptr<TestCBControlDHCPv6> TestCBControlDHCPv6Ptr;
+
+/// @brief "Naked" DHCPv6 server.
+///
+/// Exposes internal fields and installs stub implementation of the
+/// @c CBControlDHCPv6 object.
class NakedControlledDhcpv6Srv: public ControlledDhcpv6Srv {
- // "Naked" DHCPv6 server, exposes internal fields
public:
- NakedControlledDhcpv6Srv():ControlledDhcpv6Srv(0) { }
+ /// @brief Constructor.
+ NakedControlledDhcpv6Srv()
+ : ControlledDhcpv6Srv(0) {
+ // We're replacing the @c CBControlDHCPv6 instance with our
+ // stub implementation used in tests.
+ cb_control_.reset(new TestCBControlDHCPv6());
+ }
+
using ControlledDhcpv6Srv::signal_handler_;
};
///
/// @param io_service Pointer to the IO service to be ran.
/// @param timeout_ms Amount of time after which the method returns.
- void runTimersWithTimeout(const IOServicePtr& io_service, const long timeout_ms) {
+ /// @param cond Pointer to the function which if returns true it
+ /// stops the IO service and causes the function to return.
+ void runTimersWithTimeout(const IOServicePtr& io_service, const long timeout_ms,
+ std::function<bool()> cond = std::function<bool()>()) {
IntervalTimer timer(*io_service);
- timer.setup([&io_service]() {
+ bool stopped = false;
+ timer.setup([&io_service, &stopped]() {
io_service->stop();
+ stopped = true;
}, timeout_ms, IntervalTimer::ONE_SHOT);
- io_service->run();
+
+ // Run as long as the timeout hasn't occurred and the interrupting
+ // condition is not specified or not met.
+ while (!stopped && (!cond || !cond())) {
+ io_service->run_one();
+ }
io_service->get_io_service().reset();
}
+ /// @brief This test verifies that the timer used to fetch the configuration
+ /// updates from the database works as expected.
+ void testConfigBackendTimer(const int config_wait_fetch_time,
+ const bool throw_during_fetch = false) {
+ std::ostringstream config;
+ config <<
+ "{ \"Dhcp6\": {"
+ "\"interfaces-config\": {"
+ " \"interfaces\": [ ]"
+ "},"
+ "\"lease-database\": {"
+ " \"type\": \"memfile\","
+ " \"persist\": false"
+ "},"
+ "\"config-control\": {"
+ " \"config-fetch-wait-time\": " << config_wait_fetch_time <<
+ "},"
+ "\"rebind-timer\": 2000, "
+ "\"renew-timer\": 1000, \n"
+ "\"subnet6\": [ ],"
+ "\"valid-lifetime\": 4000 }"
+ "}";
+ writeFile(TEST_FILE, config.str());
+
+ // Create an instance of the server and initialize it.
+ boost::scoped_ptr<NakedControlledDhcpv6Srv> srv;
+ ASSERT_NO_THROW(srv.reset(new NakedControlledDhcpv6Srv()));
+ ASSERT_NO_THROW(srv->init(TEST_FILE));
+
+ // Get the CBControlDHCPv6 object belonging to this server.
+ auto cb_control = boost::dynamic_pointer_cast<TestCBControlDHCPv6>(srv->getCBControl());
+
+ // Verify that the parameter passed to the databaseConfigFetch has an
+ // expected value.
+ cb_control->enableCheckFetchMode();
+
+ // Instruct our stub implementation of the CBControlDHCPv6 to throw as a
+ // result of fetch if desired.
+ if (throw_during_fetch) {
+ cb_control->enableThrow();
+ }
+
+ // So far there should be exactly one attempt to fetch the configuration
+ // from the backend. That's the attempt made upon startup.
+ EXPECT_EQ(1, cb_control->getDatabaseConfigFetchCalls());
+
+
+ if ((config_wait_fetch_time > 0) && (!throw_during_fetch)) {
+ // If we're configured to run the timer, we expect that it was
+ // invoked at least 3 times. This is sufficient to verify that
+ // the timer was scheduled and that the timer continued to run
+ // even when an exception occurred during fetch (that's why it
+ // is 3 not 2).
+ ASSERT_NO_THROW(runTimersWithTimeout(srv->getIOService(), 500,
+ [cb_control]() {
+ // Interrupt the timers poll if we have recorded at
+ // least 3 attempts to fetch the updates.
+ return (cb_control->getDatabaseConfigFetchCalls() >= 3);
+ }));
+ EXPECT_GE(cb_control->getDatabaseConfigFetchCalls(), 3);
+
+ } else {
+ ASSERT_NO_THROW(runTimersWithTimeout(srv->getIOService(), 500));
+
+ if (throw_during_fetch) {
+ // If we're simulating the failure condition the number
+ // of consecutive failures should not exceed 10. Therefore
+ // the number of recorded fetches should be 12. One at
+ // startup, 10 failures and one that causes the timer
+ // to stop.
+ EXPECT_EQ(12, cb_control->getDatabaseConfigFetchCalls());
+
+ } else {
+ // If the server is not configured to schedule the timer,
+ // we should still have one fetch attempt recorded.
+ EXPECT_EQ(1, cb_control->getDatabaseConfigFetchCalls());
+ }
+ }
+ }
+
static const char* TEST_FILE;
static const char* TEST_INCLUDE;
};
EXPECT_NO_THROW(static_cast<void>(LeaseMgrFactory::instance()));
}
+
+// This test verifies that the timer triggering configuration updates
+// is invoked according to the configured value of the
+// config-fetch-wait-time.
+TEST_F(JSONFileBackendTest, configBackendTimer) {
+ testConfigBackendTimer(1);
+}
+
+// This test verifies that the timer for triggering configuration updates
+// is not invoked when the value of the config-fetch-wait-time is set
+// to 0.
+TEST_F(JSONFileBackendTest, configBackendTimerDisabled) {
+ testConfigBackendTimer(0);
+}
+
+// This test verifies that the server will gracefully handle exceptions
+// thrown from the CBControlDHCPv6::databaseConfigFetch, i.e. will
+// reschedule the timer.
+TEST_F(JSONFileBackendTest, configBackendTimerWithThrow) {
+ // The true value instructs the test to throw during the fetch.
+ testConfigBackendTimer(1, true);
+}
+
// Starting tests which require MySQL backend availability. Those tests
// will not be executed if Kea has been compiled without the
// --with-mysql.
libkea_dhcpsrv_la_SOURCES += callout_handle_store.h
libkea_dhcpsrv_la_SOURCES += cb_ctl_dhcp.h
libkea_dhcpsrv_la_SOURCES += cb_ctl_dhcp4.cc cb_ctl_dhcp4.h
+libkea_dhcpsrv_la_SOURCES += cb_ctl_dhcp6.cc cb_ctl_dhcp6.h
libkea_dhcpsrv_la_SOURCES += cfg_4o6.cc cfg_4o6.h
libkea_dhcpsrv_la_SOURCES += cfg_consistency.cc cfg_consistency.h
libkea_dhcpsrv_la_SOURCES += cfg_db_access.cc cfg_db_access.h
--- /dev/null
+// Copyright (C) 2019 Internet Systems Consortium, Inc. ("ISC")
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#include <config.h>
+#include <dhcpsrv/cb_ctl_dhcp6.h>
+#include <dhcpsrv/cfgmgr.h>
+#include <dhcpsrv/dhcpsrv_log.h>
+
+using namespace isc::data;
+using namespace isc::process;
+
+namespace isc {
+namespace dhcp {
+
+void
+CBControlDHCPv6::databaseConfigApply(const db::BackendSelector& backend_selector,
+ const db::ServerSelector& server_selector,
+ const boost::posix_time::ptime& lb_modification_time,
+ const db::AuditEntryCollection& audit_entries) {
+ // Create the external config into which we'll fetch backend config data.
+ SrvConfigPtr external_cfg = CfgMgr::instance().createExternalCfg();
+
+ // First let's fetch the globals and add them to external config.
+ if (fetchConfigElement(audit_entries, "dhcp6_global_parameter")) {
+ data::StampedValueCollection globals;
+ globals = getMgr().getPool()->getModifiedGlobalParameters6(backend_selector, server_selector,
+ lb_modification_time);
+ addGlobalsToConfig(external_cfg, globals);
+ }
+
+ // Now we fetch the option definitions and add them.
+ if (fetchConfigElement(audit_entries, "dhcp6_option_def")) {
+ OptionDefContainer option_defs =
+ getMgr().getPool()->getModifiedOptionDefs6(backend_selector, server_selector,
+ lb_modification_time);
+ for (auto option_def = option_defs.begin(); option_def != option_defs.end(); ++option_def) {
+ external_cfg->getCfgOptionDef()->add((*option_def), (*option_def)->getOptionSpaceName());
+ }
+ }
+
+ // Next fetch the options. They are returned as a container of OptionDescriptors.
+ if (fetchConfigElement(audit_entries, "dhcp6_options")) {
+ OptionContainer options = getMgr().getPool()->getModifiedOptions6(backend_selector,
+ server_selector,
+ lb_modification_time);
+ for (auto option = options.begin(); option != options.end(); ++option) {
+ external_cfg->getCfgOption()->add((*option), (*option).space_name_);
+ }
+ }
+
+ // Now fetch the shared networks.
+ if (fetchConfigElement(audit_entries, "dhcp6_shared_network")) {
+ SharedNetwork6Collection networks =
+ getMgr().getPool()->getModifiedSharedNetworks6(backend_selector, server_selector,
+ lb_modification_time);
+ for (auto network = networks.begin(); network != networks.end(); ++network) {
+ external_cfg->getCfgSharedNetworks6()->add((*network));
+ }
+ }
+
+ // Next we fetch subnets.
+ if (fetchConfigElement(audit_entries, "dhcp6_subnet")) {
+ Subnet6Collection subnets = getMgr().getPool()->getModifiedSubnets6(backend_selector,
+ server_selector,
+ lb_modification_time);
+ for (auto subnet = subnets.begin(); subnet != subnets.end(); ++subnet) {
+ external_cfg->getCfgSubnets6()->add((*subnet));
+ }
+ }
+
+ if (audit_entries.empty()) {
+ CfgMgr::instance().mergeIntoStagingCfg(external_cfg->getSequence());
+
+ } else {
+ CfgMgr::instance().mergeIntoCurrentCfg(external_cfg->getSequence());
+ }
+ LOG_INFO(dhcpsrv_logger, DHCPSRV_CFGMGR_CONFIG6_MERGED);
+}
+
+
+} // end of namespace isc::dhcp
+} // end of namespace isc
--- /dev/null
+// Copyright (C) 2019 Internet Systems Consortium, Inc. ("ISC")
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef CB_CTL_DHCP6_H
+#define CB_CTL_DHCP6_H
+
+#include <dhcpsrv/cb_ctl_dhcp.h>
+#include <dhcpsrv/config_backend_dhcp6_mgr.h>
+#include <dhcpsrv/srv_config.h>
+
+namespace isc {
+namespace dhcp {
+
+/// @brief Implementation of the mechanisms to control the use of
+/// the Configuration Backends by the DHCPv6 server.
+///
+/// It implements fetching and merging DHCPv6 server configuration from
+/// the database into the staging or current configuration.
+///
+/// @tparam ConfigBackendMgrType Type of the Config Backend Manager used
+/// by the server implementing this class. For example, for the DHCPv6
+/// server it will be @c ConfigBackendDHCPv6Mgr.
+class CBControlDHCPv6 : public CBControlDHCP<ConfigBackendDHCPv6Mgr> {
+protected:
+
+ /// @brief DHCPv6 server specific method to fetch and apply back end
+ /// configuration into the local configuration.
+ ///
+ /// @param backend_selector Backend selector.
+ /// @param server_selector Server selector.
+ /// @param lb_modification_time Lower bound modification time for the
+ /// configuration elements to be fetched.
+ /// @param audit_entries Audit entries fetched from the database since
+ /// the last configuration update. This collection is empty if there
+ /// were no updates.
+ virtual void databaseConfigApply(const db::BackendSelector& backend_selector,
+ const db::ServerSelector& server_selector,
+ const boost::posix_time::ptime& lb_modification_time,
+ const db::AuditEntryCollection& audit_entries);
+};
+
+typedef boost::shared_ptr<CBControlDHCPv6> CBControlDHCPv6Ptr;
+
+} // end of namespace isc::dhcp
+} // end of namespace isc
+
+#endif // CB_CTL_DHCP6_H
-// File created from ../../../src/lib/dhcpsrv/dhcpsrv_messages.mes on Tue Mar 19 2019 10:19
+// File created from ../../../src/lib/dhcpsrv/dhcpsrv_messages.mes on Tue Mar 26 2019 13:08
#include <cstddef>
#include <log/message_types.h>
extern const isc::log::MessageID DHCPSRV_CFGMGR_CFG_DHCP_DDNS = "DHCPSRV_CFGMGR_CFG_DHCP_DDNS";
extern const isc::log::MessageID DHCPSRV_CFGMGR_CLEAR_ACTIVE_IFACES = "DHCPSRV_CFGMGR_CLEAR_ACTIVE_IFACES";
extern const isc::log::MessageID DHCPSRV_CFGMGR_CONFIG4_MERGED = "DHCPSRV_CFGMGR_CONFIG4_MERGED";
+extern const isc::log::MessageID DHCPSRV_CFGMGR_CONFIG6_MERGED = "DHCPSRV_CFGMGR_CONFIG6_MERGED";
extern const isc::log::MessageID DHCPSRV_CFGMGR_CONFIGURE_SERVERID = "DHCPSRV_CFGMGR_CONFIGURE_SERVERID";
extern const isc::log::MessageID DHCPSRV_CFGMGR_DEL_SUBNET4 = "DHCPSRV_CFGMGR_DEL_SUBNET4";
extern const isc::log::MessageID DHCPSRV_CFGMGR_DEL_SUBNET6 = "DHCPSRV_CFGMGR_DEL_SUBNET6";
"DHCPSRV_CFGMGR_CFG_DHCP_DDNS", "Setting DHCP-DDNS configuration to: %1",
"DHCPSRV_CFGMGR_CLEAR_ACTIVE_IFACES", "stop listening on all interfaces",
"DHCPSRV_CFGMGR_CONFIG4_MERGED", "Configuration backend data has been merged.",
+ "DHCPSRV_CFGMGR_CONFIG6_MERGED", "Configuration backend data has been merged.",
"DHCPSRV_CFGMGR_CONFIGURE_SERVERID", "server configuration includes specification of a server identifier",
"DHCPSRV_CFGMGR_DEL_SUBNET4", "IPv4 subnet %1 removed",
"DHCPSRV_CFGMGR_DEL_SUBNET6", "IPv6 subnet %1 removed",
-// File created from ../../../src/lib/dhcpsrv/dhcpsrv_messages.mes on Tue Mar 19 2019 10:19
+// File created from ../../../src/lib/dhcpsrv/dhcpsrv_messages.mes on Tue Mar 26 2019 13:08
#ifndef DHCPSRV_MESSAGES_H
#define DHCPSRV_MESSAGES_H
extern const isc::log::MessageID DHCPSRV_CFGMGR_CFG_DHCP_DDNS;
extern const isc::log::MessageID DHCPSRV_CFGMGR_CLEAR_ACTIVE_IFACES;
extern const isc::log::MessageID DHCPSRV_CFGMGR_CONFIG4_MERGED;
+extern const isc::log::MessageID DHCPSRV_CFGMGR_CONFIG6_MERGED;
extern const isc::log::MessageID DHCPSRV_CFGMGR_CONFIGURE_SERVERID;
extern const isc::log::MessageID DHCPSRV_CFGMGR_DEL_SUBNET4;
extern const isc::log::MessageID DHCPSRV_CFGMGR_DEL_SUBNET6;
successfully merged configuration data retrieved from its configuration
backends into the current configuration.
+% DHCPSRV_CFGMGR_CONFIG6_MERGED Configuration backend data has been merged.
+This is an informational message emitted when the DHCPv6 server has
+successfully merged configuration data retrieved from its configuration
+backends into the current configuration.
+
% DHCPSRV_CFGMGR_CONFIGURE_SERVERID server configuration includes specification of a server identifier
This warning message is issued when the server specified configuration of
a server identifier. If this new configuration overrides an existing