if (rcode == 0) {
CfgMgr::instance().getStagingCfg()->applyLoggingCfg();
- // Update the fetch globals callback.
- auto cfg = CfgMgr::instance().getStagingCfg()->getD2ClientConfig();
- cfg->setFetchGlobalsFn([]() -> ConstElementPtr {
- return (CfgMgr::instance().getCurrentCfg()->getConfiguredGlobals());
- });
-
// Use new configuration.
CfgMgr::instance().commit();
} else {
-#line 1 "dhcp4_lexer.cc"
+#line 2 "dhcp4_lexer.cc"
-#line 3 "dhcp4_lexer.cc"
+#line 4 "dhcp4_lexer.cc"
#define YY_INT_ALIGNED short int
/* %% [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 185
-#define YY_END_OF_BUFFER 186
+#define YY_NUM_RULES 191
+#define YY_END_OF_BUFFER 192
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[1597] =
+static const flex_int16_t yy_accept[1702] =
{ 0,
- 178, 178, 0, 0, 0, 0, 0, 0, 0, 0,
- 186, 184, 10, 11, 184, 1, 178, 175, 178, 178,
- 184, 177, 176, 184, 184, 184, 184, 184, 171, 172,
- 184, 184, 184, 173, 174, 5, 5, 5, 184, 184,
- 184, 10, 11, 0, 0, 167, 0, 0, 0, 0,
+ 184, 184, 0, 0, 0, 0, 0, 0, 0, 0,
+ 192, 190, 10, 11, 190, 1, 184, 181, 184, 184,
+ 190, 183, 182, 190, 190, 190, 190, 190, 177, 178,
+ 190, 190, 190, 179, 180, 5, 5, 5, 190, 190,
+ 190, 10, 11, 0, 0, 173, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- 178, 178, 0, 177, 178, 3, 2, 6, 0, 178,
+ 184, 184, 0, 183, 184, 3, 2, 6, 0, 184,
0, 0, 0, 0, 0, 0, 4, 0, 0, 9,
- 0, 168, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 170, 0, 0, 0,
+ 0, 174, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 176, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
+ 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 169, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 175, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 183, 181, 0, 180,
+ 0, 0, 0, 0, 0, 0, 0, 0, 189, 187,
- 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 147, 0, 146, 0, 0, 79, 0, 0, 0,
+ 0, 186, 185, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 153, 0, 152, 0, 0, 85, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 35, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 76, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
+ 82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 18, 0,
- 0, 0, 0, 182, 179, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 148, 0, 0, 150, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 0,
- 0, 0, 0, 0, 0, 0, 65, 0, 0, 0,
- 0, 0, 101, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 0,
+ 0, 18, 0, 0, 0, 0, 188, 185, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 154, 0,
+ 0, 156, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 86, 0, 0, 0, 0, 0, 0, 0, 71,
+ 0, 0, 0, 0, 0, 0, 107, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 38, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 70, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 74, 0, 39, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 98,
- 31, 0, 0, 36, 0, 0, 0, 0, 0, 0,
- 0, 0, 12, 155, 0, 152, 0, 151, 0, 0,
- 0, 111, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 104, 31, 0, 0, 36, 0, 0,
+ 0, 0, 0, 0, 0, 0, 12, 161, 0, 158,
+ 0, 157, 0, 0, 0, 117, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 90, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 33, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
- 0, 0, 0, 0, 0, 112, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 107,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
- 0, 0, 153, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 33, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 73, 0, 0, 0, 0,
+ 0, 0, 0, 0, 118, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 7, 0,
+ 0, 159, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 78, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,
- 0, 0, 0, 0, 0, 0, 92, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 88, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 71, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 85, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 70, 0,
+ 98, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 77, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 105, 0,
+ 0, 0, 91, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 76, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 117, 86, 0, 0, 0, 0, 0,
- 0, 91, 32, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 93, 40, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 111, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 123, 92, 0, 0, 0, 0, 0, 0,
+ 97, 32, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 99, 40, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 60, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 156, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 106,
+ 0, 0, 66, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 162, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 43, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 37, 0, 0,
- 0, 30, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 81, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 112, 0, 0, 0, 0, 0, 43,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 94, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 103, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 130, 0, 0, 0, 0, 0,
+ 0, 37, 0, 0, 0, 30, 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, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 109, 0, 0,
- 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 23, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 135,
- 0, 0, 0, 133, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 160, 0,
- 0, 0, 0, 0, 0, 0, 104, 0, 0, 0,
- 0, 0, 0, 0, 0, 108, 89, 0, 0, 0,
+ 0, 0, 0, 136, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 23, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 141, 0,
+ 0, 0, 139, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 166, 0, 0,
+ 0, 0, 0, 0, 0, 110, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 114, 0, 0, 0, 0, 0,
+ 95, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 108, 22, 0, 119,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 102, 22, 0, 113, 0, 0, 0, 0,
+ 0, 145, 0, 0, 0, 0, 68, 0, 0, 0,
+ 0, 0, 122, 34, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 59, 0, 0, 0, 89, 90, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 72, 0, 0, 0,
+ 0, 0, 0, 0, 0, 44, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 139, 0, 0,
- 0, 0, 62, 0, 0, 0, 0, 0, 116, 34,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 116,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 59, 0, 0, 0,
- 83, 84, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 66, 0, 0, 0, 0, 0, 0, 0,
- 0, 44, 0, 0, 0, 0, 0, 0, 0, 0,
- 110, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 164, 0, 63, 77, 0, 0, 0, 0,
-
- 0, 0, 0, 0, 0, 56, 0, 0, 0, 0,
- 0, 0, 0, 136, 0, 0, 134, 0, 128, 127,
- 0, 49, 0, 21, 0, 0, 0, 0, 0, 149,
- 0, 0, 0, 97, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 125, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 114, 15, 0, 41,
- 0, 0, 0, 0, 0, 0, 0, 0, 138, 0,
- 0, 0, 0, 0, 0, 57, 0, 0, 109, 0,
- 0, 0, 0, 100, 0, 0, 0, 0, 0, 0,
- 0, 69, 0, 158, 0, 157, 0, 163, 0, 0,
+ 0, 170, 0, 69, 83, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 56, 0, 0, 0, 0, 0,
+ 0, 0, 142, 0, 0, 140, 0, 134, 133, 0,
+ 49, 0, 21, 0, 0, 0, 0, 0, 155, 0,
+ 0, 0, 103, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 131, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 120, 15, 0, 41, 0, 0, 0, 0, 0, 0,
+ 0, 0, 144, 0, 0, 0, 0, 0, 0, 57,
+ 0, 0, 115, 0, 0, 0, 0, 106, 0, 0,
+ 0, 0, 0, 0, 0, 75, 0, 164, 0, 163,
+ 0, 169, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 14, 0, 0, 0, 48, 0, 0,
- 0, 0, 166, 0, 95, 27, 0, 0, 0, 50,
- 126, 0, 0, 0, 161, 131, 0, 0, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 24, 0, 137,
- 0, 0, 0, 52, 0, 0, 0, 0, 87, 0,
+ 0, 0, 14, 0, 0, 0, 48, 0, 0, 0,
+
+ 0, 172, 0, 101, 27, 0, 0, 0, 50, 132,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 167,
+ 137, 0, 0, 0, 0, 0, 0, 0, 0, 25,
+ 0, 0, 24, 0, 143, 0, 0, 0, 52, 0,
+ 0, 0, 0, 93, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 53, 0,
+ 0, 0, 0, 0, 42, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 121, 0,
+ 0, 0, 26, 0, 168, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 47, 0,
+
+ 0, 20, 0, 171, 67, 0, 165, 160, 0, 28,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
+ 0, 0, 149, 0, 0, 0, 0, 0, 0, 129,
+ 0, 0, 0, 105, 0, 0, 0, 0, 0, 0,
+ 0, 0, 80, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
+ 150, 13, 0, 0, 0, 0, 0, 0, 0, 138,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 135, 0, 0, 0, 0, 0,
+ 128, 0, 55, 54, 19, 0, 146, 0, 0, 0,
- 0, 0, 0, 53, 0, 0, 0, 0, 0, 42,
- 0, 0, 0, 0, 0, 0, 0, 115, 0, 0,
- 0, 26, 0, 162, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 47, 0, 0,
- 20, 0, 165, 61, 0, 159, 154, 0, 28, 0,
- 0, 0, 16, 0, 0, 143, 0, 0, 0, 0,
- 0, 0, 123, 0, 0, 0, 99, 0, 0, 0,
- 0, 0, 0, 0, 0, 74, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 144, 13, 0,
- 0, 0, 0, 0, 0, 0, 132, 0, 0, 0,
-
- 0, 0, 0, 0, 0, 0, 129, 0, 0, 0,
- 0, 0, 122, 0, 55, 54, 19, 0, 140, 0,
- 0, 0, 0, 45, 0, 82, 0, 0, 0, 0,
- 121, 0, 0, 51, 0, 0, 46, 142, 0, 0,
+ 0, 45, 0, 88, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 127, 0, 0, 51, 0, 0, 46,
+ 148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 29, 0, 0, 0, 0, 0, 141, 0, 96, 0,
- 0, 0, 0, 0, 0, 119, 124, 58, 0, 0,
- 0, 0, 118, 0, 0, 145, 0, 0, 0, 0,
- 0, 81, 0, 0, 120, 0
+ 0, 0, 0, 29, 0, 0, 65, 0, 0, 0,
+ 0, 0, 0, 147, 0, 102, 0, 0, 61, 0,
+ 0, 0, 0, 0, 0, 125, 130, 0, 63, 58,
+ 0, 0, 0, 0, 0, 124, 0, 0, 151, 0,
+ 0, 0, 62, 0, 0, 0, 87, 0, 0, 126,
+ 0
} ;
static const YY_CHAR yy_ec[256] =
3, 3, 3
} ;
-static const flex_int16_t yy_base[1609] =
+static const flex_int16_t yy_base[1714] =
{ 0,
0, 72, 21, 31, 43, 51, 54, 60, 91, 99,
- 1997, 1998, 34, 1993, 145, 0, 207, 1998, 214, 221,
- 13, 228, 1998, 1973, 118, 25, 2, 6, 1998, 1998,
- 73, 11, 17, 1998, 1998, 1998, 104, 1981, 1934, 0,
- 1971, 108, 1988, 24, 262, 1998, 1930, 67, 1929, 1935,
- 84, 75, 1927, 88, 226, 91, 89, 290, 196, 1926,
- 206, 285, 206, 210, 219, 60, 223, 1935, 247, 290,
- 315, 303, 231, 1918, 297, 321, 343, 324, 1937, 0,
- 380, 387, 401, 408, 424, 1998, 0, 1998, 429, 438,
- 216, 249, 220, 315, 335, 266, 1998, 1934, 1975, 1998,
-
- 342, 1998, 421, 1962, 312, 1920, 1930, 400, 10, 1925,
- 361, 323, 370, 387, 359, 1970, 0, 474, 392, 1912,
- 1909, 1913, 1915, 1908, 1916, 412, 1912, 1901, 1902, 78,
- 1918, 1901, 1910, 1910, 95, 1901, 400, 1902, 1900, 405,
- 1948, 1952, 1892, 1945, 1885, 1908, 1905, 1905, 1899, 310,
- 1892, 1890, 1884, 1889, 1883, 436, 1894, 1887, 1878, 1877,
- 1891, 413, 1877, 419, 1893, 1870, 470, 191, 400, 1891,
- 1888, 1889, 1887, 1922, 1921, 451, 1867, 1869, 472, 1861,
- 1878, 1870, 0, 471, 462, 446, 472, 473, 487, 1869,
- 1998, 0, 1914, 492, 1859, 1862, 475, 481, 1870, 499,
-
- 1915, 501, 1914, 509, 1913, 1998, 555, 1912, 519, 1871,
- 1863, 1850, 1866, 1865, 1862, 1861, 1852, 493, 1903, 1897,
- 1861, 1840, 1848, 1843, 1857, 1853, 1841, 1853, 1853, 1844,
- 1828, 1832, 1845, 1847, 1844, 1836, 1826, 1844, 1998, 1839,
- 1842, 1823, 1822, 1874, 1821, 1831, 1834, 483, 1830, 1869,
- 1817, 1828, 1866, 1811, 1869, 1804, 1819, 498, 1809, 1825,
- 1806, 1804, 1804, 1810, 1801, 1800, 1807, 1857, 1813, 1812,
- 1806, 486, 1813, 1808, 1800, 1790, 1805, 1804, 1799, 1803,
- 322, 1801, 1787, 1793, 1800, 1788, 1785, 1784, 542, 1779,
- 1793, 1836, 1795, 366, 1786, 527, 1998, 1998, 534, 1998,
-
- 1998, 1773, 0, 241, 515, 1775, 549, 536, 1831, 1782,
- 525, 1998, 1829, 1998, 1823, 593, 1998, 521, 1763, 1772,
- 1820, 1764, 1763, 1769, 1821, 1776, 1771, 1774, 1769, 530,
- 1998, 1771, 1815, 1768, 1765, 578, 1771, 1811, 1805, 1758,
- 1753, 1750, 1801, 1758, 1747, 1763, 1797, 1743, 586, 1757,
- 1742, 1755, 1742, 1752, 1747, 1754, 1749, 1745, 560, 1743,
- 1746, 1741, 1727, 1736, 1786, 513, 1780, 1998, 1779, 1729,
- 1728, 1727, 1720, 1722, 1726, 1715, 1732, 1727, 549, 1774,
- 1727, 1724, 1998, 1727, 1716, 1716, 1728, 531, 1703, 1704,
- 1725, 546, 1707, 1758, 1703, 1717, 1720, 1715, 1701, 1713,
-
- 1712, 1711, 1710, 1709, 1708, 556, 1751, 1750, 1998, 1692,
- 1691, 618, 1704, 1998, 1998, 1703, 0, 1692, 1684, 562,
- 1689, 1742, 1741, 1697, 1739, 1998, 1685, 1737, 1998, 596,
- 644, 589, 1736, 1678, 1689, 1682, 1684, 1672, 1998, 1677,
- 1683, 1686, 1669, 1684, 1671, 1670, 1998, 1672, 1669, 584,
- 1667, 1669, 1998, 1677, 1674, 1659, 1672, 1667, 625, 1674,
- 1662, 1655, 1706, 1998, 1653, 1669, 1703, 1664, 1661, 1662,
- 1664, 1698, 1649, 1644, 1643, 1694, 1638, 587, 1657, 1631,
- 1638, 1643, 1653, 1692, 1998, 1637, 1633, 1631, 1640, 1634,
- 1641, 1625, 1625, 1635, 1638, 1627, 1623, 1621, 1998, 1678,
-
- 1998, 1620, 1631, 1616, 1621, 1630, 1624, 1618, 1627, 1669,
- 1663, 1625, 1608, 1608, 1603, 1623, 1598, 1604, 1609, 1602,
- 1610, 1614, 1597, 1655, 1595, 1596, 1595, 1607, 1596, 1998,
- 1998, 1596, 1594, 1998, 1605, 1641, 1601, 0, 1585, 1602,
- 1642, 1590, 1998, 1998, 1587, 1998, 1593, 1998, 554, 600,
- 643, 1998, 1590, 1589, 1596, 1576, 1629, 1574, 1627, 1572,
- 1571, 1570, 1577, 1570, 1582, 1581, 1581, 1563, 1568, 1609,
- 1576, 1568, 1613, 1557, 1573, 1572, 1998, 1557, 1554, 1612,
- 1567, 1559, 1565, 1556, 1564, 1549, 1565, 1547, 1561, 603,
- 1543, 1537, 1542, 1557, 1554, 1555, 1534, 1544, 1550, 1593,
-
- 1548, 1540, 1998, 1533, 1535, 1544, 1542, 1581, 1580, 1531,
- 16, 1540, 1523, 1524, 1527, 1520, 1998, 1534, 1513, 1532,
- 1524, 1569, 1521, 1528, 1566, 1998, 1511, 1525, 1509, 1523,
- 1526, 1507, 1559, 1558, 1557, 1556, 1501, 1554, 1553, 1998,
- 328, 1515, 1514, 1511, 1511, 1509, 1492, 1497, 1499, 1998,
- 1505, 1495, 1998, 1542, 1488, 1545, 601, 629, 1486, 1484,
- 1491, 1482, 1535, 626, 1539, 627, 1533, 1493, 1531, 1530,
- 1482, 1472, 1527, 1478, 1486, 1487, 1523, 1484, 1478, 1465,
- 1473, 1518, 1522, 1477, 1476, 1998, 1477, 1470, 1459, 1472,
- 1475, 1470, 1471, 1468, 1467, 1463, 1469, 1464, 1507, 1506,
-
- 1454, 1444, 624, 1498, 1454, 1501, 1998, 1500, 1451, 1446,
- 1438, 1439, 1490, 1451, 1438, 171, 1998, 223, 340, 361,
- 384, 489, 504, 535, 578, 586, 594, 600, 662, 629,
- 617, 629, 674, 675, 676, 623, 678, 648, 643, 650,
- 646, 631, 643, 644, 1998, 699, 656, 658, 649, 662,
- 664, 649, 656, 662, 654, 668, 673, 714, 1998, 710,
- 686, 673, 678, 675, 676, 673, 671, 680, 1998, 670,
- 685, 682, 668, 675, 674, 672, 691, 688, 678, 676,
- 675, 686, 682, 738, 695, 685, 701, 691, 1998, 701,
- 702, 695, 706, 704, 749, 691, 693, 708, 695, 755,
-
- 712, 698, 701, 1998, 1998, 711, 716, 721, 709, 719,
- 721, 1998, 1998, 722, 726, 713, 707, 712, 730, 717,
- 767, 718, 770, 719, 777, 1998, 1998, 722, 726, 721,
- 781, 734, 724, 725, 721, 734, 745, 729, 747, 742,
- 743, 745, 738, 740, 741, 742, 742, 744, 759, 800,
- 757, 762, 739, 1998, 751, 752, 766, 756, 803, 761,
- 751, 766, 767, 754, 768, 1998, 787, 795, 764, 759,
- 814, 815, 778, 782, 823, 771, 766, 767, 779, 786,
- 775, 776, 772, 781, 776, 834, 791, 792, 783, 1998,
- 785, 797, 782, 799, 793, 840, 806, 790, 791, 1998,
-
- 807, 810, 793, 852, 795, 1998, 812, 815, 795, 813,
- 853, 811, 807, 804, 857, 858, 805, 823, 822, 823,
- 809, 824, 816, 823, 813, 831, 816, 1998, 824, 830,
- 877, 1998, 826, 831, 875, 826, 838, 832, 837, 835,
- 833, 835, 845, 890, 834, 839, 835, 894, 838, 850,
- 1998, 838, 846, 844, 841, 842, 851, 863, 847, 852,
- 862, 863, 868, 909, 867, 883, 888, 870, 867, 863,
- 858, 918, 861, 1998, 861, 881, 880, 871, 860, 877,
- 884, 927, 928, 875, 1998, 925, 872, 875, 874, 894,
- 891, 896, 897, 883, 891, 902, 882, 897, 904, 946,
-
- 1998, 947, 948, 899, 909, 911, 900, 896, 903, 912,
- 900, 907, 908, 960, 907, 905, 907, 924, 965, 915,
- 914, 920, 918, 916, 971, 972, 968, 1998, 930, 923,
- 914, 933, 921, 931, 928, 933, 929, 942, 942, 1998,
- 926, 928, 928, 1998, 929, 989, 928, 947, 949, 994,
- 995, 948, 933, 954, 953, 937, 942, 960, 1998, 950,
- 983, 974, 1006, 946, 968, 965, 1998, 952, 954, 971,
- 966, 970, 1015, 963, 967, 1998, 1998, 977, 977, 1015,
- 962, 1017, 964, 1024, 967, 978, 971, 977, 973, 991,
- 992, 994, 1998, 1998, 993, 1998, 978, 979, 998, 988,
-
- 981, 993, 1037, 1001, 990, 997, 998, 1998, 996, 1048,
- 989, 1050, 1998, 1051, 993, 999, 1006, 1050, 1998, 1998,
- 998, 1000, 1014, 1019, 1002, 1061, 1018, 1019, 1020, 1060,
- 1012, 1017, 1068, 1021, 1017, 1071, 1998, 1018, 1073, 1074,
- 1998, 1998, 1014, 1076, 1035, 1078, 1020, 1032, 1037, 1023,
- 1053, 1084, 1998, 1041, 1034, 1043, 1088, 1035, 1050, 1086,
- 1038, 1998, 1034, 1050, 1055, 1042, 1038, 1098, 1051, 1056,
- 1998, 1057, 1050, 1059, 1060, 1057, 1047, 1050, 1050, 1055,
- 1110, 1112, 1055, 1114, 1110, 1051, 1066, 1060, 1063, 1076,
- 1077, 1123, 1998, 1076, 1998, 1998, 1082, 1074, 1084, 1069,
-
- 1070, 1131, 1076, 1086, 1135, 1998, 1083, 1083, 1085, 1087,
- 1140, 1081, 1084, 1998, 1085, 1104, 1998, 1088, 1998, 1998,
- 1102, 1998, 1096, 1998, 1148, 1097, 1150, 1151, 1131, 1998,
- 1153, 1110, 1151, 1998, 1099, 1107, 1101, 1098, 1101, 1104,
- 1104, 1105, 1112, 1102, 1998, 1124, 1110, 1111, 1126, 1126,
- 1129, 1129, 1126, 1171, 1133, 1125, 1998, 1998, 1135, 1998,
- 1132, 1137, 1138, 1135, 1179, 1127, 1142, 1143, 1998, 1131,
- 1132, 1132, 1138, 1137, 1148, 1998, 1189, 1136, 1998, 1137,
- 1137, 1139, 1145, 1998, 1147, 1201, 1143, 1151, 1154, 1205,
- 1166, 1998, 1163, 1998, 1160, 1998, 1183, 1998, 1210, 1152,
-
- 1212, 1213, 1170, 1175, 1157, 1217, 1218, 1171, 1161, 1166,
- 1222, 1223, 1219, 1182, 1178, 1222, 1170, 1175, 1173, 1232,
- 1188, 1234, 1192, 1237, 1198, 1187, 1181, 1241, 1183, 1184,
- 1200, 1200, 1246, 1188, 1205, 1204, 1188, 1246, 1247, 1194,
- 1249, 1212, 1213, 1998, 1213, 1214, 1201, 1998, 1212, 1261,
- 1219, 1232, 1998, 1216, 1998, 1998, 1207, 1218, 1267, 1998,
- 1998, 1214, 1212, 1226, 1998, 1998, 1216, 1267, 1210, 1215,
- 1275, 1223, 1233, 1234, 1998, 1279, 1232, 1998, 1281, 1998,
- 1224, 1239, 1227, 1998, 1237, 1238, 1244, 1248, 1998, 1284,
- 1252, 1245, 1254, 1236, 1243, 1297, 1256, 1255, 1300, 1248,
-
- 1302, 1303, 1252, 1998, 1305, 1306, 1255, 1308, 1250, 1998,
- 1257, 1257, 1312, 1256, 1255, 1315, 1268, 1998, 1312, 1263,
- 1260, 1998, 1274, 1998, 1277, 1322, 1275, 1272, 1273, 1326,
- 1285, 1268, 1270, 1267, 1283, 1284, 1293, 1998, 1283, 1335,
- 1998, 1294, 1998, 1998, 1332, 1998, 1998, 1294, 1998, 1334,
- 1335, 1290, 1998, 1288, 1295, 1998, 1292, 1297, 1295, 1347,
- 1348, 1291, 1998, 1306, 1307, 1308, 1998, 1309, 1299, 1311,
- 1356, 1298, 1306, 1307, 1320, 1998, 1297, 1320, 1305, 1305,
- 1310, 1366, 1325, 1316, 1325, 1327, 1331, 1998, 1998, 1372,
- 1315, 1374, 1375, 1376, 1334, 1378, 1998, 1374, 1336, 1337,
-
- 1324, 1383, 1320, 1385, 1338, 1343, 1998, 1344, 1345, 1390,
- 1347, 1350, 1998, 1393, 1998, 1998, 1998, 1354, 1998, 1336,
- 1396, 1397, 1340, 1998, 1357, 1998, 1348, 1344, 1344, 1346,
- 1998, 1351, 1361, 1998, 1347, 1359, 1998, 1998, 1364, 1358,
- 1366, 1363, 1354, 1408, 1355, 1363, 1372, 1365, 1360, 1375,
- 1420, 1367, 1374, 1361, 1376, 1381, 1426, 1383, 1428, 1371,
- 1998, 1387, 1378, 1392, 1388, 1381, 1998, 1435, 1998, 1436,
- 1437, 1392, 1391, 1392, 1382, 1998, 1998, 1998, 1442, 1384,
- 1400, 1445, 1998, 1441, 1390, 1998, 1389, 1391, 1402, 1451,
- 1400, 1998, 1409, 1454, 1998, 1998, 1460, 1465, 1470, 1475,
-
- 1480, 1485, 1490, 1493, 1467, 1472, 1474, 1487
+ 2102, 2103, 34, 2098, 145, 0, 207, 2103, 214, 221,
+ 13, 228, 2103, 2078, 118, 25, 2, 6, 2103, 2103,
+ 73, 11, 17, 2103, 2103, 2103, 104, 2086, 2039, 0,
+ 2076, 108, 2093, 24, 262, 2103, 2035, 67, 2034, 2040,
+ 84, 75, 2032, 88, 226, 91, 89, 290, 196, 2031,
+ 206, 285, 206, 210, 219, 60, 223, 2040, 247, 290,
+ 315, 303, 231, 2023, 297, 321, 343, 324, 2042, 0,
+ 380, 387, 401, 408, 424, 2103, 0, 2103, 429, 438,
+ 216, 249, 220, 315, 335, 266, 2103, 2039, 2080, 2103,
+
+ 342, 2103, 421, 2067, 312, 2025, 2035, 400, 10, 2030,
+ 361, 323, 370, 387, 359, 2075, 0, 474, 392, 2017,
+ 2014, 2018, 2020, 2013, 2021, 412, 2017, 2006, 2007, 2012,
+ 78, 2022, 2005, 2014, 2014, 95, 2005, 400, 2006, 2004,
+ 405, 2052, 2056, 1996, 2049, 1989, 2012, 2009, 2009, 2003,
+ 310, 1996, 1994, 1988, 1993, 1987, 436, 1998, 1991, 1982,
+ 1981, 1995, 413, 1981, 419, 1997, 1974, 470, 191, 400,
+ 1995, 1992, 1993, 1991, 2026, 2025, 451, 1971, 1973, 472,
+ 1965, 1982, 1974, 0, 471, 462, 446, 472, 473, 487,
+ 1973, 2103, 0, 2018, 492, 1963, 1966, 475, 481, 1974,
+
+ 499, 2019, 501, 2018, 509, 2017, 2103, 555, 2016, 519,
+ 1975, 1967, 1954, 1970, 1969, 1966, 1965, 1956, 493, 2007,
+ 2001, 1965, 1946, 1943, 1951, 1946, 1960, 1956, 1944, 1956,
+ 1956, 1947, 1931, 1935, 1948, 1950, 1947, 1939, 1929, 1947,
+ 2103, 1942, 1945, 1926, 1925, 1977, 1924, 1934, 1937, 483,
+ 1933, 1972, 1920, 1931, 1969, 1914, 1972, 1907, 1922, 498,
+ 1912, 1928, 1909, 1907, 1907, 1913, 1904, 1903, 1910, 1960,
+ 1916, 1915, 1909, 486, 1916, 1911, 1903, 1893, 1908, 1907,
+ 1902, 1906, 322, 1904, 1890, 1896, 1903, 1891, 1888, 1887,
+ 542, 1882, 1896, 1939, 1898, 366, 1889, 527, 2103, 2103,
+
+ 534, 2103, 2103, 1876, 0, 241, 515, 1878, 549, 536,
+ 1934, 1885, 525, 2103, 1932, 2103, 1926, 593, 2103, 521,
+ 1866, 1875, 1923, 1867, 1866, 1872, 1924, 1879, 1874, 1877,
+ 1872, 530, 2103, 1874, 1918, 1912, 1870, 1867, 578, 1873,
+ 1913, 1907, 1860, 1855, 1852, 1903, 1860, 1849, 1865, 1899,
+ 1845, 586, 1859, 1844, 1857, 1844, 1854, 1849, 1856, 1851,
+ 1847, 560, 1845, 1848, 1843, 1829, 1838, 1888, 513, 1882,
+ 2103, 1881, 1831, 1830, 1829, 1822, 1824, 1828, 1817, 1834,
+ 1829, 549, 1876, 1829, 1826, 2103, 1829, 1818, 1818, 1830,
+ 531, 1805, 1806, 1827, 546, 1809, 1860, 1805, 1819, 1822,
+
+ 1817, 1803, 1815, 1814, 1813, 1812, 1811, 1810, 556, 1853,
+ 1852, 2103, 1794, 1793, 618, 1806, 2103, 2103, 1805, 0,
+ 1794, 1786, 562, 1791, 1844, 1843, 1799, 1841, 2103, 1787,
+ 1839, 2103, 596, 644, 589, 1838, 1780, 1791, 1784, 1786,
+ 1774, 2103, 1779, 1785, 1788, 1771, 1786, 1773, 1772, 2103,
+ 613, 1774, 1771, 584, 1769, 1771, 2103, 1779, 1776, 1761,
+ 1774, 1769, 625, 1776, 1764, 1757, 1808, 2103, 1755, 1771,
+ 1805, 1766, 1763, 1764, 1766, 1800, 1751, 1746, 1745, 1796,
+ 1740, 587, 1759, 1733, 1740, 1745, 1755, 1794, 2103, 1739,
+ 1735, 1733, 1742, 1736, 1743, 1727, 1727, 1737, 1740, 1729,
+
+ 1725, 1723, 2103, 1780, 2103, 1722, 1733, 1718, 1723, 1732,
+ 1726, 1720, 1729, 1771, 1765, 1727, 1710, 1710, 1705, 1725,
+ 1700, 1706, 1711, 1704, 1712, 1716, 1699, 1757, 1697, 1698,
+ 1697, 1709, 1698, 2103, 2103, 1698, 1696, 2103, 1707, 1743,
+ 1703, 0, 1687, 1704, 1744, 1692, 2103, 2103, 1689, 2103,
+ 1695, 2103, 554, 600, 643, 2103, 1692, 1691, 1698, 1678,
+ 1731, 1676, 1729, 1674, 1673, 1672, 1679, 1672, 1684, 1666,
+ 1666, 1681, 1680, 1679, 1678, 1678, 1660, 1665, 1706, 1673,
+ 1665, 1710, 1654, 1670, 1669, 2103, 1654, 1651, 1709, 1664,
+ 1656, 1662, 1653, 1661, 1646, 1662, 1644, 1658, 603, 1640,
+
+ 1634, 1639, 1654, 1651, 1652, 1631, 1641, 1647, 1690, 1645,
+ 1637, 2103, 1630, 1632, 1641, 1639, 1678, 1677, 1628, 16,
+ 1637, 1620, 1621, 1624, 1617, 2103, 1631, 1610, 1629, 1621,
+ 1666, 1618, 1625, 1663, 2103, 1608, 1622, 1606, 1620, 1623,
+ 1604, 1656, 1655, 1654, 1653, 1598, 1651, 1650, 2103, 668,
+ 1612, 1611, 1608, 1608, 1606, 1589, 1594, 1596, 2103, 1602,
+ 1592, 2103, 1639, 1585, 1642, 601, 629, 1583, 1581, 1588,
+ 1579, 1632, 630, 1636, 632, 1630, 1590, 1628, 1627, 1579,
+ 1577, 1585, 1588, 1572, 1573, 1564, 1619, 1570, 1578, 1579,
+ 1615, 1576, 1570, 1557, 1565, 1610, 1614, 1569, 1568, 2103,
+
+ 1569, 1562, 1551, 1564, 1567, 1562, 1563, 1560, 1559, 1555,
+ 1561, 1556, 1599, 1598, 163, 217, 629, 334, 336, 405,
+ 2103, 427, 441, 452, 534, 569, 623, 615, 621, 638,
+ 2103, 628, 646, 647, 649, 693, 694, 637, 648, 655,
+ 634, 640, 695, 659, 643, 655, 699, 700, 701, 648,
+ 703, 667, 662, 669, 665, 650, 662, 663, 2103, 718,
+ 675, 677, 668, 681, 683, 668, 675, 681, 673, 687,
+ 692, 733, 2103, 729, 705, 692, 697, 694, 695, 692,
+ 690, 699, 2103, 689, 704, 701, 687, 694, 693, 691,
+ 710, 707, 695, 702, 703, 712, 712, 702, 700, 699,
+
+ 710, 706, 762, 720, 710, 726, 716, 2103, 726, 726,
+ 719, 730, 728, 773, 715, 717, 732, 719, 779, 736,
+ 722, 725, 2103, 2103, 735, 740, 745, 733, 743, 745,
+ 2103, 2103, 746, 750, 737, 731, 736, 754, 741, 791,
+ 742, 794, 743, 801, 2103, 2103, 746, 750, 745, 805,
+ 758, 748, 749, 745, 758, 769, 753, 771, 766, 767,
+ 769, 762, 764, 765, 766, 766, 768, 783, 824, 781,
+ 786, 763, 2103, 775, 776, 790, 780, 827, 785, 775,
+ 790, 791, 778, 792, 2103, 811, 819, 788, 783, 838,
+ 839, 802, 806, 847, 795, 790, 791, 803, 810, 799,
+
+ 800, 796, 799, 800, 810, 819, 855, 810, 805, 864,
+ 821, 823, 814, 2103, 816, 827, 812, 828, 822, 869,
+ 835, 819, 820, 2103, 836, 839, 822, 881, 824, 2103,
+ 841, 844, 824, 842, 882, 840, 836, 833, 886, 887,
+ 834, 852, 851, 852, 838, 853, 845, 852, 842, 860,
+ 845, 2103, 853, 859, 906, 2103, 855, 860, 904, 855,
+ 867, 861, 866, 864, 862, 864, 874, 919, 863, 868,
+ 864, 923, 867, 879, 2103, 867, 875, 873, 870, 871,
+ 880, 892, 876, 881, 891, 892, 897, 938, 896, 912,
+ 917, 899, 896, 892, 887, 947, 890, 2103, 890, 910,
+
+ 909, 900, 889, 906, 913, 956, 917, 910, 914, 918,
+ 901, 962, 909, 2103, 959, 906, 909, 908, 928, 927,
+ 932, 933, 919, 927, 936, 916, 931, 938, 980, 2103,
+ 981, 982, 933, 943, 945, 934, 930, 937, 946, 934,
+ 941, 942, 994, 941, 939, 941, 958, 999, 949, 948,
+ 954, 952, 950, 1005, 1006, 1002, 2103, 964, 957, 948,
+ 967, 955, 965, 962, 967, 963, 976, 976, 2103, 960,
+ 962, 962, 2103, 963, 1023, 962, 981, 983, 1028, 1029,
+ 982, 967, 988, 987, 971, 976, 994, 2103, 984, 1017,
+ 1008, 1040, 980, 1002, 999, 2103, 986, 988, 1005, 1000,
+
+ 1004, 1049, 997, 1001, 2103, 993, 1010, 990, 1011, 1001,
+ 2103, 1016, 1016, 1054, 1001, 1057, 1004, 1064, 1007, 1018,
+ 1011, 1017, 1013, 1031, 1032, 1033, 2103, 2103, 1032, 2103,
+ 1017, 1018, 1037, 1027, 1020, 1032, 1076, 1040, 1029, 1036,
+ 1037, 2103, 1035, 1087, 1028, 1089, 2103, 1090, 1032, 1038,
+ 1045, 1089, 2103, 2103, 1037, 1039, 1053, 1058, 1041, 1100,
+ 1057, 1058, 1059, 1099, 1051, 1056, 1107, 1060, 1056, 1110,
+ 2103, 1057, 1112, 1113, 2103, 2103, 1053, 1115, 1074, 1117,
+ 1059, 1071, 1076, 1062, 1092, 1123, 2103, 1080, 1073, 1082,
+ 1127, 1074, 1089, 1125, 1077, 2103, 1073, 1089, 1090, 1091,
+
+ 1088, 1132, 1095, 1099, 1086, 1082, 1142, 1095, 1100, 2103,
+ 1101, 1094, 1103, 1104, 1101, 1092, 1095, 1095, 1100, 1155,
+ 1156, 1100, 1159, 1155, 1096, 1111, 1104, 1107, 1120, 1121,
+ 1167, 2103, 1120, 2103, 2103, 1125, 1119, 1129, 1114, 1115,
+ 1176, 1120, 1130, 1179, 2103, 1127, 1127, 1129, 1131, 1184,
+ 1125, 1128, 2103, 1129, 1148, 2103, 1132, 2103, 2103, 1146,
+ 2103, 1140, 2103, 1192, 1141, 1194, 1195, 1175, 2103, 1197,
+ 1154, 1195, 2103, 1143, 1151, 1145, 1142, 1145, 1148, 1148,
+ 1165, 1204, 1157, 1169, 1172, 1154, 1161, 1151, 2103, 1173,
+ 1159, 1160, 1176, 1176, 1179, 1179, 1176, 1220, 1182, 1174,
+
+ 2103, 2103, 1184, 2103, 1181, 1186, 1187, 1184, 1228, 1176,
+ 1191, 1192, 2103, 1180, 1181, 1181, 1187, 1186, 1197, 2103,
+ 1238, 1185, 2103, 1186, 1186, 1188, 1194, 2103, 1196, 1250,
+ 1192, 1200, 1203, 1254, 1215, 2103, 1212, 2103, 1209, 2103,
+ 1232, 2103, 1259, 1201, 1261, 1262, 1219, 1224, 1206, 1266,
+ 1267, 1263, 1227, 1224, 1220, 1213, 1225, 1215, 1220, 1276,
+ 1277, 1273, 1236, 1233, 1277, 1225, 1230, 1229, 1288, 1244,
+ 1290, 1248, 1292, 1253, 1242, 1236, 1296, 1238, 1239, 1255,
+ 1255, 1301, 1243, 1260, 1259, 1243, 1301, 1302, 1249, 1304,
+ 1267, 1268, 2103, 1268, 1269, 1256, 2103, 1267, 1316, 1274,
+
+ 1288, 2103, 1270, 2103, 2103, 1262, 1273, 1322, 2103, 2103,
+ 1268, 1273, 1271, 1321, 1279, 1284, 1275, 1273, 1287, 2103,
+ 2103, 1277, 1328, 1271, 1276, 1336, 1284, 1294, 1295, 2103,
+ 1340, 1293, 2103, 1342, 2103, 1285, 1300, 1288, 2103, 1300,
+ 1301, 1307, 1311, 2103, 1347, 1313, 1306, 1315, 1297, 1304,
+ 1358, 1317, 1316, 1361, 1309, 1363, 1364, 1313, 2103, 1366,
+ 1367, 1316, 1369, 1311, 2103, 1314, 1324, 1368, 1316, 1331,
+ 1318, 1324, 1324, 1379, 1323, 1322, 1382, 1335, 2103, 1379,
+ 1330, 1327, 2103, 1341, 2103, 1344, 1389, 1342, 1339, 1340,
+ 1393, 1352, 1335, 1337, 1334, 1350, 1351, 1360, 2103, 1350,
+
+ 1402, 2103, 1361, 2103, 2103, 1399, 2103, 2103, 1361, 2103,
+ 1401, 1363, 1364, 1349, 1350, 1358, 1412, 1408, 1363, 2103,
+ 1361, 1368, 2103, 1365, 1370, 1368, 1420, 1421, 1364, 2103,
+ 1379, 1380, 1381, 2103, 1382, 1372, 1384, 1429, 1371, 1379,
+ 1380, 1393, 2103, 1370, 1393, 1378, 1378, 1393, 1386, 1385,
+ 1396, 1383, 2103, 1388, 1444, 1403, 1394, 1403, 1405, 1409,
+ 2103, 2103, 1450, 1393, 1452, 1453, 1454, 1412, 1456, 2103,
+ 1452, 1414, 1415, 1402, 1461, 1398, 1463, 1416, 1417, 1407,
+ 1424, 1423, 1464, 1426, 2103, 1427, 1428, 1473, 1430, 1433,
+ 2103, 1476, 2103, 2103, 2103, 1437, 2103, 1419, 1479, 1480,
+
+ 1423, 2103, 1440, 2103, 1431, 1421, 1480, 1446, 1439, 1435,
+ 1432, 1432, 1434, 2103, 1439, 1449, 2103, 1435, 1447, 2103,
+ 2103, 1452, 1446, 1454, 1499, 1440, 1442, 1439, 1463, 1456,
+ 1447, 1501, 1448, 1456, 1465, 1458, 1453, 1468, 1513, 2103,
+ 1459, 1471, 1516, 1465, 1464, 1471, 1458, 1473, 1478, 1523,
+ 1480, 1525, 1468, 2103, 1484, 1528, 2103, 1485, 1487, 1478,
+ 1492, 1488, 1481, 2103, 1535, 2103, 1536, 1497, 2103, 1538,
+ 1539, 1494, 1493, 1494, 1484, 2103, 2103, 1485, 2103, 2103,
+ 1545, 1487, 1503, 1548, 1505, 2103, 1545, 1494, 2103, 1552,
+ 1494, 1496, 2103, 1507, 1556, 1505, 2103, 1514, 1559, 2103,
+
+ 2103, 1565, 1570, 1575, 1580, 1585, 1590, 1595, 1598, 1572,
+ 1577, 1579, 1592
} ;
-static const flex_int16_t yy_def[1609] =
+static const flex_int16_t yy_def[1714] =
{ 0,
- 1597, 1597, 1598, 1598, 1597, 1597, 1597, 1597, 1597, 1597,
- 1596, 1596, 1596, 1596, 1596, 1599, 1596, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1600,
- 1596, 1596, 1596, 1601, 15, 1596, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1602, 45, 45,
+ 1702, 1702, 1703, 1703, 1702, 1702, 1702, 1702, 1702, 1702,
+ 1701, 1701, 1701, 1701, 1701, 1704, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1705,
+ 1701, 1701, 1701, 1706, 15, 1701, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 1707, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1599,
- 1596, 1596, 1596, 1596, 1596, 1596, 1603, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1600, 1596,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 1704,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1708, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1705, 1701,
- 1601, 1596, 1596, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1604, 45, 1602, 45, 45,
+ 1706, 1701, 1701, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 1709, 45, 1707, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1603, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1605, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 1708, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1710, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1604, 1596, 1602, 45, 45, 45,
+ 45, 45, 45, 45, 45, 1709, 1701, 1707, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1596, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 1701, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1596, 1596, 1596, 1596, 1596,
+ 45, 45, 45, 45, 45, 45, 45, 1701, 1701, 1701,
- 1596, 1596, 1606, 45, 45, 45, 45, 45, 45, 45,
- 45, 1596, 45, 1596, 45, 1602, 1596, 45, 45, 45,
+ 1701, 1701, 1701, 1701, 1711, 45, 45, 45, 45, 45,
+ 45, 45, 45, 1701, 45, 1701, 45, 1707, 1701, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1596, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 1701, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1596, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1596, 45, 45, 45, 45, 45, 45, 45,
+ 1701, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 1701, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1596, 45,
- 45, 45, 45, 1596, 1596, 1596, 1607, 45, 45, 45,
- 45, 45, 45, 45, 45, 1596, 45, 45, 1596, 45,
- 1602, 45, 45, 45, 45, 45, 45, 45, 1596, 45,
- 45, 45, 45, 45, 45, 45, 1596, 45, 45, 45,
- 45, 45, 1596, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1596, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1596, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1596, 45,
+ 45, 1701, 45, 45, 45, 45, 1701, 1701, 1701, 1712,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1701, 45,
+ 45, 1701, 45, 1707, 45, 45, 45, 45, 45, 45,
+ 45, 1701, 45, 45, 45, 45, 45, 45, 45, 1701,
+ 45, 45, 45, 45, 45, 45, 1701, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 1701, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1701, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1596, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 1701, 45, 1701, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1596,
- 1596, 45, 45, 1596, 45, 45, 1596, 1608, 45, 45,
- 45, 45, 1596, 1596, 45, 1596, 45, 1596, 45, 45,
- 45, 1596, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1596, 45, 45, 45,
+ 45, 45, 45, 1701, 1701, 45, 45, 1701, 45, 45,
+ 1701, 1713, 45, 45, 45, 45, 1701, 1701, 45, 1701,
+ 45, 1701, 45, 45, 45, 1701, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 1701, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1596, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1596, 45, 45, 45,
- 45, 45, 45, 45, 45, 1596, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1596,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1596,
- 45, 45, 1596, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 1701, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 1701, 45, 45, 45, 45,
+ 45, 45, 45, 45, 1701, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1701, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1701, 45,
+ 45, 1701, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1596, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 1701,
- 45, 45, 45, 45, 45, 45, 1596, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1596, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1596, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1596, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1596, 45,
+ 1701, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 1701, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1701, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1596, 45,
+ 45, 45, 1701, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 1701, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1596, 1596, 45, 45, 45, 45, 45,
- 45, 1596, 1596, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1596, 1596, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 1701, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 1701, 1701, 45, 45, 45, 45, 45, 45,
+ 1701, 1701, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 1701, 1701, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1596, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1596, 45, 45, 45, 45,
+ 45, 45, 1701, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 1701, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1596,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1596,
- 45, 45, 45, 45, 45, 1596, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1596, 45, 45,
- 45, 1596, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 1701, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 1701, 45, 45, 45, 45, 45, 1701,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1596, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1596, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1596, 45, 45, 45, 45, 45,
+ 45, 1701, 45, 45, 45, 1701, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 1701, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 1701, 45, 45,
- 1596, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1596, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1596,
- 45, 45, 45, 1596, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1596, 45,
- 45, 45, 45, 45, 45, 45, 1596, 45, 45, 45,
- 45, 45, 45, 45, 45, 1596, 1596, 45, 45, 45,
+ 45, 45, 45, 1701, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 1701,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1596, 1596, 45, 1596, 45, 45, 45, 45,
-
- 45, 45, 45, 45, 45, 45, 45, 1596, 45, 45,
- 45, 45, 1596, 45, 45, 45, 45, 45, 1596, 1596,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1596, 45, 45, 45,
- 1596, 1596, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1596, 45, 45, 45, 45, 45, 45, 45,
- 45, 1596, 45, 45, 45, 45, 45, 45, 45, 45,
- 1596, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 1701, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1701, 45,
+ 45, 45, 1701, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 1701, 45, 45,
+ 45, 45, 45, 45, 45, 1701, 45, 45, 45, 45,
+
+ 45, 45, 45, 45, 1701, 45, 45, 45, 45, 45,
+ 1701, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 1701, 1701, 45, 1701,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 1701, 45, 45, 45, 45, 1701, 45, 45, 45,
+ 45, 45, 1701, 1701, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1596, 45, 1596, 1596, 45, 45, 45, 45,
-
- 45, 45, 45, 45, 45, 1596, 45, 45, 45, 45,
- 45, 45, 45, 1596, 45, 45, 1596, 45, 1596, 1596,
- 45, 1596, 45, 1596, 45, 45, 45, 45, 45, 1596,
- 45, 45, 45, 1596, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1596, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1596, 1596, 45, 1596,
- 45, 45, 45, 45, 45, 45, 45, 45, 1596, 45,
- 45, 45, 45, 45, 45, 1596, 45, 45, 1596, 45,
- 45, 45, 45, 1596, 45, 45, 45, 45, 45, 45,
- 45, 1596, 45, 1596, 45, 1596, 45, 1596, 45, 45,
+ 1701, 45, 45, 45, 1701, 1701, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 1701, 45, 45, 45,
+ 45, 45, 45, 45, 45, 1701, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 1701,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 1701, 45, 1701, 1701, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 1701, 45, 45, 45, 45, 45,
+ 45, 45, 1701, 45, 45, 1701, 45, 1701, 1701, 45,
+ 1701, 45, 1701, 45, 45, 45, 45, 45, 1701, 45,
+ 45, 45, 1701, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1701, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+
+ 1701, 1701, 45, 1701, 45, 45, 45, 45, 45, 45,
+ 45, 45, 1701, 45, 45, 45, 45, 45, 45, 1701,
+ 45, 45, 1701, 45, 45, 45, 45, 1701, 45, 45,
+ 45, 45, 45, 45, 45, 1701, 45, 1701, 45, 1701,
+ 45, 1701, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1596, 45, 45, 45, 1596, 45, 45,
- 45, 45, 1596, 45, 1596, 1596, 45, 45, 45, 1596,
- 1596, 45, 45, 45, 1596, 1596, 45, 45, 45, 45,
- 45, 45, 45, 45, 1596, 45, 45, 1596, 45, 1596,
- 45, 45, 45, 1596, 45, 45, 45, 45, 1596, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
-
- 45, 45, 45, 1596, 45, 45, 45, 45, 45, 1596,
- 45, 45, 45, 45, 45, 45, 45, 1596, 45, 45,
- 45, 1596, 45, 1596, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1596, 45, 45,
- 1596, 45, 1596, 1596, 45, 1596, 1596, 45, 1596, 45,
- 45, 45, 1596, 45, 45, 1596, 45, 45, 45, 45,
- 45, 45, 1596, 45, 45, 45, 1596, 45, 45, 45,
- 45, 45, 45, 45, 45, 1596, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1596, 1596, 45,
- 45, 45, 45, 45, 45, 45, 1596, 45, 45, 45,
-
- 45, 45, 45, 45, 45, 45, 1596, 45, 45, 45,
- 45, 45, 1596, 45, 1596, 1596, 1596, 45, 1596, 45,
- 45, 45, 45, 1596, 45, 1596, 45, 45, 45, 45,
- 1596, 45, 45, 1596, 45, 45, 1596, 1596, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 1701, 45, 45, 45, 1701, 45, 45, 45,
+
+ 45, 1701, 45, 1701, 1701, 45, 45, 45, 1701, 1701,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 1701,
+ 1701, 45, 45, 45, 45, 45, 45, 45, 45, 1701,
+ 45, 45, 1701, 45, 1701, 45, 45, 45, 1701, 45,
+ 45, 45, 45, 1701, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1701, 45,
+ 45, 45, 45, 45, 1701, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1701, 45,
+ 45, 45, 1701, 45, 1701, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 1701, 45,
+
+ 45, 1701, 45, 1701, 1701, 45, 1701, 1701, 45, 1701,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 1701,
+ 45, 45, 1701, 45, 45, 45, 45, 45, 45, 1701,
+ 45, 45, 45, 1701, 45, 45, 45, 45, 45, 45,
+ 45, 45, 1701, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 1701, 45, 45, 45, 45, 45, 45, 45,
+ 1701, 1701, 45, 45, 45, 45, 45, 45, 45, 1701,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1596, 45, 45, 45, 45, 45, 1596, 45, 1596, 45,
- 45, 45, 45, 45, 45, 1596, 1596, 1596, 45, 45,
- 45, 45, 1596, 45, 45, 1596, 45, 45, 45, 45,
- 45, 1596, 45, 45, 1596, 0, 1596, 1596, 1596, 1596,
+ 45, 45, 45, 45, 1701, 45, 45, 45, 45, 45,
+ 1701, 45, 1701, 1701, 1701, 45, 1701, 45, 45, 45,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596
+ 45, 1701, 45, 1701, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 1701, 45, 45, 1701, 45, 45, 1701,
+ 1701, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 1701,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 45, 1701, 45, 45, 1701, 45, 45, 45,
+ 45, 45, 45, 1701, 45, 1701, 45, 45, 1701, 45,
+ 45, 45, 45, 45, 45, 1701, 1701, 45, 1701, 1701,
+ 45, 45, 45, 45, 45, 1701, 45, 45, 1701, 45,
+ 45, 45, 1701, 45, 45, 45, 1701, 45, 45, 1701,
+
+ 0, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701
} ;
-static const flex_int16_t yy_nxt[2072] =
+static const flex_int16_t yy_nxt[2177] =
{ 0,
- 1596, 13, 14, 13, 1596, 15, 16, 1596, 17, 18,
+ 1701, 13, 14, 13, 1701, 15, 16, 1701, 17, 18,
19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
- 86, 717, 37, 14, 37, 87, 25, 26, 38, 102,
- 1596, 27, 37, 14, 37, 42, 28, 42, 38, 92,
- 93, 29, 198, 30, 13, 14, 13, 91, 92, 25,
+ 86, 731, 37, 14, 37, 87, 25, 26, 38, 102,
+ 1701, 27, 37, 14, 37, 42, 28, 42, 38, 92,
+ 93, 29, 199, 30, 13, 14, 13, 91, 92, 25,
31, 93, 13, 14, 13, 13, 14, 13, 32, 40,
- 718, 13, 14, 13, 33, 40, 103, 92, 93, 198,
+ 732, 13, 14, 13, 33, 40, 103, 92, 93, 199,
91, 34, 35, 13, 14, 13, 95, 15, 16, 96,
17, 18, 19, 20, 21, 22, 22, 22, 22, 22,
23, 24, 13, 14, 13, 91, 39, 105, 25, 26,
13, 14, 13, 27, 39, 42, 108, 42, 28, 42,
- 109, 42, 41, 29, 111, 30, 114, 115, 94, 140,
- 41, 25, 31, 105, 222, 223, 89, 141, 89, 108,
+ 109, 42, 41, 29, 111, 30, 114, 115, 94, 141,
+ 41, 25, 31, 105, 224, 225, 89, 142, 89, 108,
32, 90, 90, 90, 90, 90, 33, 111, 109, 114,
- 228, 115, 229, 34, 35, 44, 44, 44, 45, 45,
+ 230, 115, 231, 34, 35, 44, 44, 44, 45, 45,
46, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 47, 45, 45, 45, 45, 45, 48, 45, 49,
50, 45, 51, 45, 52, 53, 54, 45, 45, 45,
59, 60, 61, 62, 63, 64, 65, 66, 67, 52,
68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 57, 45, 45, 45, 45, 45, 81, 821,
+ 78, 79, 57, 45, 45, 45, 45, 45, 81, 825,
82, 82, 82, 82, 82, 81, 105, 84, 84, 84,
84, 84, 108, 83, 85, 85, 85, 85, 85, 81,
- 83, 84, 84, 84, 84, 84, 184, 83, 278, 279,
- 112, 123, 119, 134, 83, 108, 83, 186, 120, 124,
- 113, 121, 125, 83, 135, 126, 137, 127, 138, 128,
- 83, 142, 184, 112, 136, 139, 162, 83, 45, 185,
- 163, 143, 822, 144, 45, 186, 45, 45, 113, 45,
- 164, 45, 45, 45, 418, 117, 146, 147, 45, 45,
-
- 148, 45, 45, 186, 419, 185, 149, 45, 45, 45,
+ 83, 84, 84, 84, 84, 84, 185, 83, 280, 281,
+ 112, 123, 119, 135, 83, 108, 83, 187, 120, 124,
+ 113, 121, 125, 83, 136, 126, 138, 127, 139, 128,
+ 83, 143, 185, 112, 137, 140, 163, 83, 45, 186,
+ 164, 144, 826, 145, 45, 187, 45, 45, 113, 45,
+ 165, 45, 45, 45, 421, 117, 147, 148, 45, 45,
+
+ 149, 45, 45, 187, 422, 186, 150, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 129, 189, 45, 745, 130, 150, 45, 131, 132, 151,
- 45, 111, 166, 152, 746, 184, 167, 102, 45, 114,
- 133, 194, 45, 157, 45, 118, 201, 174, 175, 153,
- 154, 158, 155, 159, 156, 185, 168, 112, 160, 161,
- 169, 187, 179, 170, 247, 397, 411, 113, 248, 194,
- 171, 172, 180, 201, 103, 204, 173, 181, 398, 823,
- 176, 188, 177, 85, 85, 85, 85, 85, 81, 200,
-
- 82, 82, 82, 82, 82, 113, 83, 202, 204, 89,
- 824, 89, 178, 83, 90, 90, 90, 90, 90, 81,
- 203, 84, 84, 84, 84, 84, 101, 200, 412, 83,
- 197, 194, 825, 101, 83, 202, 83, 85, 85, 85,
- 85, 85, 90, 90, 90, 90, 90, 203, 208, 231,
- 83, 90, 90, 90, 90, 90, 197, 83, 280, 209,
- 216, 235, 281, 101, 236, 232, 282, 101, 237, 217,
- 218, 101, 298, 83, 200, 260, 261, 262, 264, 101,
- 269, 265, 266, 101, 201, 101, 192, 207, 207, 207,
- 207, 207, 297, 359, 826, 298, 207, 207, 207, 207,
-
- 207, 207, 200, 297, 254, 203, 296, 296, 371, 827,
- 308, 289, 309, 298, 305, 270, 271, 272, 297, 207,
- 207, 207, 207, 207, 207, 311, 273, 313, 274, 300,
- 275, 276, 292, 277, 296, 299, 301, 305, 308, 309,
- 315, 305, 387, 327, 372, 388, 360, 312, 311, 361,
- 313, 328, 406, 414, 499, 420, 329, 330, 373, 428,
- 414, 420, 425, 486, 318, 422, 423, 315, 316, 316,
- 316, 316, 316, 487, 424, 444, 414, 316, 316, 316,
- 316, 316, 316, 415, 420, 425, 657, 428, 450, 508,
- 432, 464, 445, 509, 451, 513, 465, 541, 828, 514,
-
- 316, 316, 316, 316, 316, 316, 431, 431, 431, 431,
- 431, 528, 500, 657, 529, 431, 431, 431, 431, 431,
- 431, 477, 478, 534, 541, 541, 479, 549, 535, 550,
- 577, 829, 567, 830, 658, 578, 596, 760, 431, 431,
- 431, 431, 431, 431, 466, 568, 597, 569, 653, 467,
- 696, 697, 551, 659, 549, 761, 550, 45, 45, 45,
- 45, 45, 658, 831, 832, 760, 45, 45, 45, 45,
- 45, 45, 833, 767, 770, 771, 834, 772, 761, 768,
- 808, 835, 836, 809, 837, 838, 839, 840, 841, 45,
- 45, 45, 45, 45, 45, 842, 843, 845, 846, 847,
-
- 850, 851, 852, 844, 854, 855, 848, 856, 853, 857,
- 849, 858, 859, 860, 861, 862, 863, 864, 865, 866,
- 867, 868, 869, 870, 871, 872, 873, 874, 875, 876,
+ 129, 190, 45, 130, 131, 151, 45, 132, 133, 152,
+ 45, 111, 167, 153, 829, 185, 168, 102, 45, 114,
+ 134, 195, 45, 158, 45, 118, 202, 175, 176, 154,
+ 155, 159, 156, 160, 157, 186, 169, 112, 161, 162,
+ 170, 188, 180, 171, 249, 400, 414, 113, 250, 195,
+ 172, 173, 181, 202, 103, 205, 174, 182, 401, 830,
+ 177, 189, 178, 85, 85, 85, 85, 85, 81, 201,
+
+ 82, 82, 82, 82, 82, 113, 83, 203, 205, 89,
+ 831, 89, 179, 83, 90, 90, 90, 90, 90, 81,
+ 204, 84, 84, 84, 84, 84, 101, 201, 415, 83,
+ 198, 195, 832, 101, 83, 203, 83, 85, 85, 85,
+ 85, 85, 90, 90, 90, 90, 90, 204, 209, 233,
+ 83, 90, 90, 90, 90, 90, 198, 83, 282, 210,
+ 217, 237, 283, 101, 238, 234, 284, 101, 239, 218,
+ 219, 101, 300, 83, 201, 262, 263, 264, 266, 101,
+ 271, 267, 268, 101, 202, 101, 193, 208, 208, 208,
+ 208, 208, 299, 362, 833, 300, 208, 208, 208, 208,
+
+ 208, 208, 201, 299, 256, 204, 298, 298, 374, 834,
+ 310, 291, 311, 300, 307, 272, 273, 274, 299, 208,
+ 208, 208, 208, 208, 208, 313, 275, 315, 276, 302,
+ 277, 278, 294, 279, 298, 301, 303, 307, 310, 311,
+ 317, 307, 390, 329, 375, 391, 363, 314, 313, 364,
+ 315, 330, 409, 417, 503, 423, 331, 332, 376, 431,
+ 417, 423, 428, 490, 320, 425, 426, 317, 318, 318,
+ 318, 318, 318, 491, 427, 447, 417, 318, 318, 318,
+ 318, 318, 318, 418, 423, 428, 666, 431, 454, 512,
+ 435, 468, 448, 513, 455, 517, 469, 545, 835, 518,
+
+ 318, 318, 318, 318, 318, 318, 434, 434, 434, 434,
+ 434, 532, 504, 666, 533, 434, 434, 434, 434, 434,
+ 434, 481, 482, 538, 545, 545, 483, 553, 539, 554,
+ 586, 836, 576, 837, 667, 587, 605, 774, 434, 434,
+ 434, 434, 434, 434, 470, 577, 606, 578, 662, 471,
+ 710, 711, 555, 668, 553, 775, 554, 45, 45, 45,
+ 45, 45, 667, 838, 569, 774, 45, 45, 45, 45,
+ 45, 45, 570, 759, 571, 572, 573, 781, 775, 784,
+ 785, 839, 786, 782, 760, 827, 840, 841, 828, 45,
+ 45, 45, 45, 45, 45, 842, 843, 844, 845, 846,
+
+ 847, 848, 849, 850, 851, 852, 853, 854, 855, 856,
+ 857, 858, 859, 860, 861, 862, 864, 865, 866, 869,
+ 870, 871, 863, 873, 874, 867, 875, 872, 876, 868,
877, 878, 879, 880, 881, 882, 883, 884, 885, 886,
- 887, 888, 889, 890, 891, 892, 893, 894, 895, 868,
- 896, 897, 898, 899, 900, 902, 903, 904, 905, 901,
- 906, 907, 908, 909, 910, 911, 912, 913, 914, 915,
- 916, 917, 918, 919, 920, 921, 923, 924, 925, 922,
- 926, 927, 928, 929, 930, 931, 932, 933, 934, 935,
+ 887, 888, 889, 890, 891, 892, 893, 894, 895, 896,
+ 897, 898, 899, 900, 901, 902, 903, 904, 905, 906,
+ 907, 908, 909, 910, 911, 912, 913, 914, 887, 915,
+ 916, 917, 918, 919, 920, 921, 922, 923, 924, 926,
+ 927, 928, 929, 925, 930, 931, 932, 933, 934, 935,
936, 937, 938, 939, 940, 941, 942, 943, 944, 945,
- 946, 947, 948, 949, 950, 951, 952, 953, 954, 955,
+ 947, 948, 949, 946, 950, 951, 952, 953, 954, 955,
956, 957, 958, 959, 960, 961, 962, 963, 964, 965,
966, 967, 968, 969, 970, 971, 972, 973, 974, 975,
976, 977, 978, 979, 980, 981, 982, 983, 984, 985,
- 986, 987, 988, 989, 967, 990, 991, 966, 992, 993,
- 994, 995, 996, 997, 998, 999, 1000, 1001, 1003, 1004,
- 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014,
- 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1025,
- 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1024,
+ 986, 987, 988, 989, 990, 991, 992, 993, 994, 995,
+ 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005,
+ 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 991, 1014,
+ 1015, 990, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023,
+ 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1032, 1033, 1034,
1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044,
- 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054,
- 1055, 1056, 1057, 1058, 1059, 1002, 1060, 1061, 1063, 1062,
- 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073,
- 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083,
- 1084, 1085, 1086, 1087, 1088, 1061, 1062, 1089, 1090, 1091,
- 1092, 1093, 1094, 1096, 1098, 1099, 1100, 1095, 1101, 1102,
- 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112,
- 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122,
- 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132,
- 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1097, 1140, 1141,
-
- 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151,
- 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161,
- 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171,
- 1172, 1173, 1151, 1174, 1175, 1176, 1177, 1178, 1152, 1179,
- 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189,
- 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199,
- 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
- 1210, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220,
- 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230,
- 1231, 1232, 1233, 1234, 1236, 1237, 1238, 1239, 1240, 1241,
-
- 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251,
- 1252, 1253, 1254, 1255, 1256, 1257, 1229, 1258, 1259, 1260,
- 1261, 1262, 1263, 1211, 1265, 1266, 1267, 1268, 1269, 1270,
- 1264, 1271, 1272, 1273, 1274, 1275, 1276, 1235, 1277, 1278,
- 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288,
- 1289, 1290, 1291, 1292, 1293, 1294, 1296, 1297, 1298, 1299,
- 1295, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308,
- 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318,
- 1297, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327,
- 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337,
-
- 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347,
- 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357,
- 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367,
- 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1377, 1378,
- 1379, 1352, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387,
+ 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1054, 1055,
+ 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1053, 1064,
+ 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
+ 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084,
+ 1085, 1086, 1087, 1088, 1031, 1089, 1090, 1092, 1091, 1093,
+ 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
+ 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113,
+ 1114, 1115, 1116, 1117, 1090, 1091, 1118, 1119, 1120, 1121,
+ 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1130, 1132, 1133,
+ 1134, 1129, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142,
+
+ 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152,
+ 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162,
+ 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172,
+ 1173, 1131, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181,
+ 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191,
+ 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201,
+ 1202, 1203, 1204, 1205, 1206, 1207, 1185, 1208, 1209, 1210,
+ 1211, 1212, 1186, 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, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249,
+ 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260,
+ 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270,
+ 1271, 1272, 1273, 1275, 1276, 1277, 1278, 1279, 1280, 1281,
+ 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291,
+ 1292, 1293, 1294, 1295, 1296, 1268, 1297, 1298, 1299, 1300,
+ 1301, 1302, 1250, 1303, 1304, 1305, 1306, 1307, 1309, 1310,
+ 1311, 1312, 1313, 1314, 1315, 1308, 1274, 1316, 1317, 1318,
+ 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328,
+ 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
+
+ 1340, 1341, 1342, 1343, 1339, 1344, 1345, 1346, 1347, 1348,
+ 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358,
+ 1359, 1360, 1361, 1362, 1341, 1363, 1364, 1365, 1366, 1367,
+ 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377,
+ 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387,
1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397,
1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407,
- 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417,
- 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427,
- 1428, 1429, 1430, 1431, 1432, 1376, 1406, 1433, 1434, 1435,
-
- 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445,
- 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455,
- 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465,
- 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475,
- 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485,
- 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495,
+ 1408, 1409, 1410, 1411, 1412, 1414, 1415, 1416, 1417, 1418,
+ 1419, 1420, 1421, 1422, 1423, 1413, 1424, 1425, 1426, 1427,
+ 1401, 1428, 1429, 1430, 1432, 1433, 1434, 1435, 1436, 1437,
+
+ 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447,
+ 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457,
+ 1458, 1459, 1460, 1462, 1461, 1463, 1464, 1465, 1466, 1467,
+ 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477,
+ 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487,
+ 1488, 1431, 1461, 1489, 1490, 1491, 1492, 1493, 1494, 1495,
1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505,
1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515,
1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525,
1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575,
1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585,
1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595,
- 12, 12, 12, 12, 12, 36, 36, 36, 36, 36,
- 80, 303, 80, 80, 80, 99, 417, 99, 538, 99,
- 101, 101, 101, 101, 101, 116, 116, 116, 116, 116,
- 183, 101, 183, 183, 183, 205, 205, 205, 820, 819,
-
- 818, 817, 816, 815, 814, 813, 812, 811, 810, 807,
- 806, 805, 804, 803, 802, 801, 800, 799, 798, 797,
- 796, 795, 794, 793, 792, 791, 790, 789, 788, 787,
- 786, 785, 784, 783, 782, 781, 780, 779, 778, 777,
- 776, 775, 774, 773, 769, 766, 765, 764, 763, 762,
- 759, 758, 757, 756, 755, 754, 753, 752, 751, 750,
- 749, 748, 747, 744, 743, 742, 741, 740, 739, 738,
- 737, 736, 735, 734, 733, 732, 731, 730, 729, 728,
- 727, 726, 725, 724, 723, 722, 721, 720, 719, 716,
- 715, 714, 713, 712, 711, 710, 709, 708, 707, 706,
-
- 705, 704, 703, 702, 701, 700, 699, 698, 695, 694,
- 693, 692, 691, 690, 689, 688, 687, 686, 685, 684,
- 683, 682, 681, 680, 679, 678, 677, 676, 675, 674,
- 673, 672, 671, 670, 669, 668, 667, 666, 665, 664,
- 663, 662, 661, 660, 656, 655, 654, 653, 652, 651,
- 650, 649, 648, 647, 646, 645, 644, 643, 642, 641,
- 640, 639, 638, 637, 636, 635, 634, 633, 632, 631,
- 630, 629, 628, 627, 626, 625, 624, 623, 622, 621,
- 620, 619, 618, 617, 616, 615, 614, 613, 612, 611,
- 610, 609, 608, 607, 606, 605, 604, 603, 602, 601,
-
- 600, 599, 598, 595, 594, 593, 592, 591, 590, 589,
- 588, 587, 586, 585, 584, 583, 582, 581, 580, 579,
- 576, 575, 574, 573, 572, 571, 570, 566, 565, 564,
- 563, 562, 561, 560, 559, 558, 557, 556, 555, 554,
- 553, 552, 548, 547, 546, 545, 544, 543, 542, 540,
- 539, 537, 536, 533, 532, 531, 530, 527, 526, 525,
- 524, 523, 522, 521, 520, 519, 518, 517, 516, 515,
- 512, 511, 510, 507, 506, 505, 504, 503, 502, 501,
- 498, 497, 496, 495, 494, 493, 492, 491, 490, 489,
- 488, 485, 484, 483, 482, 481, 480, 476, 475, 474,
-
- 473, 472, 471, 470, 469, 468, 463, 462, 461, 460,
- 459, 458, 457, 456, 455, 454, 453, 452, 449, 448,
- 447, 446, 443, 442, 441, 440, 439, 438, 437, 436,
- 435, 434, 433, 430, 429, 427, 426, 421, 416, 413,
- 410, 409, 408, 407, 405, 404, 403, 402, 401, 400,
- 399, 396, 395, 394, 393, 392, 391, 390, 389, 386,
- 385, 384, 383, 382, 381, 380, 379, 378, 377, 376,
- 375, 374, 370, 369, 368, 367, 366, 365, 364, 363,
- 362, 358, 357, 356, 355, 354, 353, 352, 351, 350,
- 349, 348, 347, 346, 345, 344, 343, 342, 341, 340,
-
- 339, 338, 337, 336, 335, 334, 333, 332, 331, 326,
- 325, 324, 323, 322, 321, 320, 319, 317, 206, 314,
- 312, 310, 307, 306, 304, 302, 295, 294, 293, 291,
- 290, 288, 287, 286, 285, 284, 283, 268, 267, 263,
- 259, 258, 257, 256, 255, 253, 252, 251, 250, 249,
- 246, 245, 244, 243, 242, 241, 240, 239, 238, 234,
- 233, 230, 227, 226, 225, 224, 221, 220, 219, 215,
- 214, 213, 212, 211, 210, 206, 199, 196, 195, 193,
- 191, 190, 182, 165, 145, 122, 110, 107, 106, 104,
- 43, 100, 98, 97, 88, 43, 1596, 11, 1596, 1596,
-
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596
+ 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605,
+ 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615,
+ 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625,
+ 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635,
+
+ 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645,
+ 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655,
+ 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665,
+ 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675,
+ 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685,
+ 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695,
+ 1696, 1697, 1698, 1699, 1700, 12, 12, 12, 12, 12,
+ 36, 36, 36, 36, 36, 80, 305, 80, 80, 80,
+ 99, 420, 99, 542, 99, 101, 101, 101, 101, 101,
+ 116, 116, 116, 116, 116, 184, 101, 184, 184, 184,
+
+ 206, 206, 206, 824, 823, 822, 821, 820, 819, 818,
+ 817, 816, 815, 814, 813, 812, 811, 810, 809, 808,
+ 807, 806, 805, 804, 803, 802, 801, 800, 799, 798,
+ 797, 796, 795, 794, 793, 792, 791, 790, 789, 788,
+ 787, 783, 780, 779, 778, 777, 776, 773, 772, 771,
+ 770, 769, 768, 767, 766, 765, 764, 763, 762, 761,
+ 758, 757, 756, 755, 754, 753, 752, 751, 750, 749,
+ 748, 747, 746, 745, 744, 743, 742, 741, 740, 739,
+ 738, 737, 736, 735, 734, 733, 730, 729, 728, 727,
+ 726, 725, 724, 723, 722, 721, 720, 719, 718, 717,
+
+ 716, 715, 714, 713, 712, 709, 708, 707, 706, 705,
+ 704, 703, 702, 701, 700, 699, 698, 697, 696, 695,
+ 694, 693, 692, 691, 690, 689, 688, 687, 686, 685,
+ 684, 683, 682, 681, 680, 679, 678, 677, 676, 675,
+ 674, 673, 672, 671, 670, 669, 665, 664, 663, 662,
+ 661, 660, 659, 658, 657, 656, 655, 654, 653, 652,
+ 651, 650, 649, 648, 647, 646, 645, 644, 643, 642,
+ 641, 640, 639, 638, 637, 636, 635, 634, 633, 632,
+ 631, 630, 629, 628, 627, 626, 625, 624, 623, 622,
+ 621, 620, 619, 618, 617, 616, 615, 614, 613, 612,
+
+ 611, 610, 609, 608, 607, 604, 603, 602, 601, 600,
+ 599, 598, 597, 596, 595, 594, 593, 592, 591, 590,
+ 589, 588, 585, 584, 583, 582, 581, 580, 579, 575,
+ 574, 568, 567, 566, 565, 564, 563, 562, 561, 560,
+ 559, 558, 557, 556, 552, 551, 550, 549, 548, 547,
+ 546, 544, 543, 541, 540, 537, 536, 535, 534, 531,
+ 530, 529, 528, 527, 526, 525, 524, 523, 522, 521,
+ 520, 519, 516, 515, 514, 511, 510, 509, 508, 507,
+ 506, 505, 502, 501, 500, 499, 498, 497, 496, 495,
+ 494, 493, 492, 489, 488, 487, 486, 485, 484, 480,
+
+ 479, 478, 477, 476, 475, 474, 473, 472, 467, 466,
+ 465, 464, 463, 462, 461, 460, 459, 458, 457, 456,
+ 453, 452, 451, 450, 449, 446, 445, 444, 443, 442,
+ 441, 440, 439, 438, 437, 436, 433, 432, 430, 429,
+ 424, 419, 416, 413, 412, 411, 410, 408, 407, 406,
+ 405, 404, 403, 402, 399, 398, 397, 396, 395, 394,
+ 393, 392, 389, 388, 387, 386, 385, 384, 383, 382,
+ 381, 380, 379, 378, 377, 373, 372, 371, 370, 369,
+ 368, 367, 366, 365, 361, 360, 359, 358, 357, 356,
+ 355, 354, 353, 352, 351, 350, 349, 348, 347, 346,
+
+ 345, 344, 343, 342, 341, 340, 339, 338, 337, 336,
+ 335, 334, 333, 328, 327, 326, 325, 324, 323, 322,
+ 321, 319, 207, 316, 314, 312, 309, 308, 306, 304,
+ 297, 296, 295, 293, 292, 290, 289, 288, 287, 286,
+ 285, 270, 269, 265, 261, 260, 259, 258, 257, 255,
+ 254, 253, 252, 251, 248, 247, 246, 245, 244, 243,
+ 242, 241, 240, 236, 235, 232, 229, 228, 227, 226,
+ 223, 222, 221, 220, 216, 215, 214, 213, 212, 211,
+ 207, 200, 197, 196, 194, 192, 191, 183, 166, 146,
+ 122, 110, 107, 106, 104, 43, 100, 98, 97, 88,
+
+ 43, 1701, 11, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701
} ;
-static const flex_int16_t yy_chk[2072] =
+static const flex_int16_t yy_chk[2177] =
{ 0,
0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 21, 611, 3, 3, 3, 21, 1, 1, 3, 44,
+ 21, 620, 3, 3, 3, 21, 1, 1, 3, 44,
0, 1, 4, 4, 4, 13, 1, 13, 4, 27,
28, 1, 109, 1, 5, 5, 5, 26, 32, 1,
1, 33, 6, 6, 6, 7, 7, 7, 1, 7,
- 611, 8, 8, 8, 1, 8, 44, 27, 28, 109,
+ 620, 8, 8, 8, 1, 8, 44, 27, 28, 109,
26, 1, 1, 2, 2, 2, 32, 2, 2, 33,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 9, 9, 9, 31, 5, 48, 2, 2,
10, 10, 10, 2, 6, 37, 51, 37, 2, 42,
52, 42, 9, 2, 54, 2, 56, 57, 31, 66,
- 10, 2, 2, 48, 130, 130, 25, 66, 25, 51,
+ 10, 2, 2, 48, 131, 131, 25, 66, 25, 51,
2, 25, 25, 25, 25, 25, 2, 54, 52, 56,
- 135, 57, 135, 2, 2, 15, 15, 15, 15, 15,
+ 136, 57, 136, 2, 2, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 17, 716,
+ 15, 15, 15, 15, 15, 15, 15, 15, 17, 715,
17, 17, 17, 17, 17, 19, 59, 19, 19, 19,
19, 19, 64, 17, 20, 20, 20, 20, 20, 22,
- 19, 22, 22, 22, 22, 22, 91, 20, 168, 168,
+ 19, 22, 22, 22, 22, 22, 91, 20, 169, 169,
55, 61, 59, 63, 22, 64, 17, 93, 59, 61,
55, 59, 61, 19, 63, 61, 64, 61, 65, 61,
20, 67, 91, 55, 63, 65, 73, 22, 45, 92,
- 73, 67, 718, 67, 45, 93, 45, 45, 55, 45,
- 73, 45, 45, 45, 304, 58, 69, 69, 45, 45,
+ 73, 67, 716, 67, 45, 93, 45, 45, 55, 45,
+ 73, 45, 45, 45, 306, 58, 69, 69, 45, 45,
- 69, 45, 58, 96, 304, 92, 69, 45, 45, 45,
+ 69, 45, 58, 96, 306, 92, 69, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 62, 96, 58, 641, 62, 70, 58, 62, 62, 70,
- 58, 71, 75, 70, 641, 94, 75, 101, 58, 78,
+ 62, 96, 58, 62, 62, 70, 58, 62, 62, 70,
+ 58, 71, 75, 70, 718, 94, 75, 101, 58, 78,
62, 105, 58, 72, 58, 58, 112, 77, 77, 70,
71, 72, 71, 72, 71, 95, 76, 77, 72, 72,
- 76, 94, 78, 76, 150, 281, 294, 77, 150, 105,
- 76, 76, 78, 112, 101, 115, 76, 78, 281, 719,
+ 76, 94, 78, 76, 151, 283, 296, 77, 151, 105,
+ 76, 76, 78, 112, 101, 115, 76, 78, 283, 719,
77, 95, 77, 81, 81, 81, 81, 81, 82, 111,
82, 82, 82, 82, 82, 77, 81, 113, 115, 83,
720, 83, 77, 82, 83, 83, 83, 83, 83, 84,
- 114, 84, 84, 84, 84, 84, 103, 111, 294, 81,
- 108, 119, 721, 103, 84, 113, 82, 85, 85, 85,
- 85, 85, 89, 89, 89, 89, 89, 114, 119, 137,
- 85, 90, 90, 90, 90, 90, 108, 84, 169, 119,
- 126, 140, 169, 103, 140, 137, 169, 103, 140, 126,
- 126, 103, 186, 85, 156, 162, 162, 162, 164, 103,
- 167, 164, 164, 103, 176, 103, 103, 118, 118, 118,
- 118, 118, 185, 248, 722, 186, 118, 118, 118, 118,
-
- 118, 118, 156, 188, 156, 179, 184, 187, 258, 723,
- 197, 176, 198, 189, 194, 167, 167, 167, 185, 118,
- 118, 118, 118, 118, 118, 200, 167, 202, 167, 188,
- 167, 167, 179, 167, 184, 187, 189, 194, 197, 198,
- 204, 209, 272, 218, 258, 272, 248, 289, 200, 248,
- 202, 218, 289, 296, 379, 305, 218, 218, 258, 311,
- 299, 318, 308, 366, 209, 307, 307, 204, 207, 207,
- 207, 207, 207, 366, 307, 330, 296, 207, 207, 207,
- 207, 207, 207, 299, 305, 308, 549, 311, 336, 388,
- 318, 349, 330, 388, 336, 392, 349, 420, 724, 392,
-
- 207, 207, 207, 207, 207, 207, 316, 316, 316, 316,
- 316, 406, 379, 549, 406, 316, 316, 316, 316, 316,
- 316, 359, 359, 412, 432, 420, 359, 430, 412, 430,
- 459, 725, 450, 726, 550, 459, 478, 657, 316, 316,
- 316, 316, 316, 316, 349, 450, 478, 450, 551, 349,
- 590, 590, 432, 551, 430, 658, 430, 431, 431, 431,
- 431, 431, 550, 727, 728, 657, 431, 431, 431, 431,
- 431, 431, 729, 664, 666, 666, 730, 666, 658, 664,
- 703, 731, 732, 703, 733, 734, 735, 736, 737, 431,
- 431, 431, 431, 431, 431, 738, 739, 740, 741, 741,
-
- 742, 743, 744, 739, 746, 747, 741, 748, 744, 749,
- 741, 750, 751, 752, 753, 754, 755, 756, 757, 758,
- 760, 761, 762, 763, 764, 765, 766, 767, 768, 770,
- 771, 772, 773, 774, 775, 776, 777, 778, 779, 780,
- 781, 782, 783, 784, 785, 786, 787, 788, 790, 761,
- 791, 792, 793, 794, 795, 796, 797, 798, 799, 795,
- 800, 801, 802, 803, 806, 807, 808, 809, 810, 811,
- 814, 815, 816, 817, 818, 819, 820, 821, 822, 819,
- 823, 824, 825, 828, 829, 830, 831, 832, 833, 834,
- 835, 836, 837, 838, 839, 840, 841, 842, 843, 844,
-
- 845, 846, 847, 848, 849, 850, 851, 852, 853, 855,
- 856, 857, 858, 859, 860, 861, 862, 863, 864, 865,
- 867, 868, 869, 870, 871, 872, 873, 874, 875, 876,
- 877, 878, 879, 880, 881, 882, 883, 884, 885, 886,
- 887, 888, 889, 891, 868, 892, 893, 867, 894, 895,
- 896, 897, 898, 899, 901, 902, 903, 904, 905, 907,
- 908, 909, 910, 911, 912, 913, 914, 915, 916, 917,
- 918, 919, 920, 921, 922, 923, 924, 925, 926, 927,
- 929, 930, 931, 933, 934, 935, 936, 937, 938, 926,
- 939, 940, 941, 942, 943, 944, 945, 946, 947, 948,
-
- 949, 950, 952, 953, 954, 955, 956, 957, 958, 959,
- 960, 961, 962, 963, 964, 904, 965, 966, 968, 967,
- 969, 970, 971, 972, 973, 975, 976, 977, 978, 979,
- 980, 981, 982, 983, 984, 986, 987, 988, 989, 990,
- 991, 992, 993, 994, 995, 966, 967, 996, 997, 998,
- 999, 1000, 1002, 1003, 1004, 1005, 1006, 1002, 1007, 1008,
- 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
- 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1029,
- 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039,
- 1041, 1042, 1043, 1045, 1046, 1047, 1048, 1003, 1049, 1050,
-
- 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1060, 1061,
- 1062, 1063, 1064, 1065, 1066, 1068, 1069, 1070, 1071, 1072,
- 1073, 1074, 1075, 1078, 1079, 1080, 1081, 1082, 1083, 1084,
- 1085, 1086, 1061, 1087, 1088, 1089, 1090, 1091, 1062, 1092,
- 1095, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105,
- 1106, 1107, 1109, 1110, 1111, 1112, 1114, 1115, 1116, 1117,
- 1118, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129,
- 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1138, 1139, 1140,
- 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152,
- 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1163, 1164,
-
- 1165, 1166, 1167, 1168, 1169, 1170, 1172, 1173, 1174, 1175,
- 1176, 1177, 1178, 1179, 1180, 1181, 1151, 1182, 1183, 1184,
- 1185, 1186, 1187, 1130, 1188, 1189, 1190, 1191, 1192, 1194,
- 1187, 1197, 1198, 1199, 1200, 1201, 1202, 1157, 1203, 1204,
- 1205, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1215, 1216,
- 1218, 1221, 1223, 1225, 1226, 1227, 1228, 1229, 1231, 1232,
- 1227, 1233, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242,
- 1243, 1244, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253,
- 1229, 1254, 1255, 1256, 1259, 1261, 1262, 1263, 1264, 1265,
- 1266, 1267, 1268, 1270, 1271, 1272, 1273, 1274, 1275, 1277,
-
- 1278, 1280, 1281, 1282, 1283, 1285, 1286, 1287, 1288, 1289,
- 1290, 1291, 1293, 1295, 1297, 1299, 1300, 1301, 1302, 1303,
- 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313,
- 1314, 1315, 1316, 1317, 1318, 1319, 1319, 1320, 1321, 1322,
- 1323, 1297, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331,
- 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341,
- 1342, 1343, 1345, 1346, 1347, 1349, 1350, 1351, 1352, 1354,
- 1357, 1358, 1359, 1362, 1363, 1364, 1367, 1368, 1369, 1370,
- 1371, 1372, 1373, 1374, 1376, 1377, 1379, 1381, 1382, 1383,
- 1385, 1386, 1387, 1388, 1390, 1320, 1352, 1391, 1392, 1393,
-
- 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403,
- 1405, 1406, 1407, 1408, 1409, 1411, 1412, 1413, 1414, 1415,
- 1416, 1417, 1419, 1420, 1421, 1423, 1425, 1426, 1427, 1428,
- 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1439,
- 1440, 1442, 1445, 1448, 1450, 1451, 1452, 1454, 1455, 1457,
- 1458, 1459, 1460, 1461, 1462, 1464, 1465, 1466, 1468, 1469,
- 1470, 1471, 1472, 1473, 1474, 1475, 1477, 1478, 1479, 1480,
- 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1490, 1491, 1492,
- 1493, 1494, 1495, 1496, 1498, 1499, 1500, 1501, 1502, 1503,
- 1504, 1505, 1506, 1508, 1509, 1510, 1511, 1512, 1514, 1518,
-
- 1520, 1521, 1522, 1523, 1525, 1527, 1528, 1529, 1530, 1532,
- 1533, 1535, 1536, 1539, 1540, 1541, 1542, 1543, 1544, 1545,
- 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555,
- 1556, 1557, 1558, 1559, 1560, 1562, 1563, 1564, 1565, 1566,
- 1568, 1570, 1571, 1572, 1573, 1574, 1575, 1579, 1580, 1581,
- 1582, 1584, 1585, 1587, 1588, 1589, 1590, 1591, 1593, 1594,
- 1597, 1597, 1597, 1597, 1597, 1598, 1598, 1598, 1598, 1598,
- 1599, 1605, 1599, 1599, 1599, 1600, 1606, 1600, 1607, 1600,
- 1601, 1601, 1601, 1601, 1601, 1602, 1602, 1602, 1602, 1602,
- 1603, 1608, 1603, 1603, 1603, 1604, 1604, 1604, 715, 714,
-
- 713, 712, 711, 710, 709, 708, 706, 705, 704, 702,
- 701, 700, 699, 698, 697, 696, 695, 694, 693, 692,
- 691, 690, 689, 688, 687, 685, 684, 683, 682, 681,
- 680, 679, 678, 677, 676, 675, 674, 673, 672, 671,
- 670, 669, 668, 667, 665, 663, 662, 661, 660, 659,
- 656, 655, 654, 652, 651, 649, 648, 647, 646, 645,
- 644, 643, 642, 639, 638, 637, 636, 635, 634, 633,
- 632, 631, 630, 629, 628, 627, 625, 624, 623, 622,
- 621, 620, 619, 618, 616, 615, 614, 613, 612, 610,
- 609, 608, 607, 606, 605, 604, 602, 601, 600, 599,
-
- 598, 597, 596, 595, 594, 593, 592, 591, 589, 588,
- 587, 586, 585, 584, 583, 582, 581, 580, 579, 578,
- 576, 575, 574, 573, 572, 571, 570, 569, 568, 567,
- 566, 565, 564, 563, 562, 561, 560, 559, 558, 557,
- 556, 555, 554, 553, 547, 545, 542, 541, 540, 539,
- 537, 536, 535, 533, 532, 529, 528, 527, 526, 525,
- 524, 523, 522, 521, 520, 519, 518, 517, 516, 515,
- 514, 513, 512, 511, 510, 509, 508, 507, 506, 505,
- 504, 503, 502, 500, 498, 497, 496, 495, 494, 493,
- 492, 491, 490, 489, 488, 487, 486, 484, 483, 482,
-
- 481, 480, 479, 477, 476, 475, 474, 473, 472, 471,
- 470, 469, 468, 467, 466, 465, 463, 462, 461, 460,
- 458, 457, 456, 455, 454, 452, 451, 449, 448, 446,
- 445, 444, 443, 442, 441, 440, 438, 437, 436, 435,
- 434, 433, 428, 427, 425, 424, 423, 422, 421, 419,
- 418, 416, 413, 411, 410, 408, 407, 405, 404, 403,
- 402, 401, 400, 399, 398, 397, 396, 395, 394, 393,
- 391, 390, 389, 387, 386, 385, 384, 382, 381, 380,
- 378, 377, 376, 375, 374, 373, 372, 371, 370, 369,
- 367, 365, 364, 363, 362, 361, 360, 358, 357, 356,
-
- 355, 354, 353, 352, 351, 350, 348, 347, 346, 345,
- 344, 343, 342, 341, 340, 339, 338, 337, 335, 334,
- 333, 332, 329, 328, 327, 326, 325, 324, 323, 322,
- 321, 320, 319, 315, 313, 310, 309, 306, 302, 295,
- 293, 292, 291, 290, 288, 287, 286, 285, 284, 283,
- 282, 280, 279, 278, 277, 276, 275, 274, 273, 271,
- 270, 269, 268, 267, 266, 265, 264, 263, 262, 261,
- 260, 259, 257, 256, 255, 254, 253, 252, 251, 250,
- 249, 247, 246, 245, 244, 243, 242, 241, 240, 238,
- 237, 236, 235, 234, 233, 232, 231, 230, 229, 228,
-
- 227, 226, 225, 224, 223, 222, 221, 220, 219, 217,
- 216, 215, 214, 213, 212, 211, 210, 208, 205, 203,
- 201, 199, 196, 195, 193, 190, 182, 181, 180, 178,
- 177, 175, 174, 173, 172, 171, 170, 166, 165, 163,
- 161, 160, 159, 158, 157, 155, 154, 153, 152, 151,
- 149, 148, 147, 146, 145, 144, 143, 142, 141, 139,
- 138, 136, 134, 133, 132, 131, 129, 128, 127, 125,
- 124, 123, 122, 121, 120, 116, 110, 107, 106, 104,
- 99, 98, 79, 74, 68, 60, 53, 50, 49, 47,
- 43, 41, 39, 38, 24, 14, 11, 1596, 1596, 1596,
-
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
- 1596
+ 114, 84, 84, 84, 84, 84, 103, 111, 296, 81,
+ 108, 119, 722, 103, 84, 113, 82, 85, 85, 85,
+ 85, 85, 89, 89, 89, 89, 89, 114, 119, 138,
+ 85, 90, 90, 90, 90, 90, 108, 84, 170, 119,
+ 126, 141, 170, 103, 141, 138, 170, 103, 141, 126,
+ 126, 103, 187, 85, 157, 163, 163, 163, 165, 103,
+ 168, 165, 165, 103, 177, 103, 103, 118, 118, 118,
+ 118, 118, 186, 250, 723, 187, 118, 118, 118, 118,
+
+ 118, 118, 157, 189, 157, 180, 185, 188, 260, 724,
+ 198, 177, 199, 190, 195, 168, 168, 168, 186, 118,
+ 118, 118, 118, 118, 118, 201, 168, 203, 168, 189,
+ 168, 168, 180, 168, 185, 188, 190, 195, 198, 199,
+ 205, 210, 274, 219, 260, 274, 250, 291, 201, 250,
+ 203, 219, 291, 298, 382, 307, 219, 219, 260, 313,
+ 301, 320, 310, 369, 210, 309, 309, 205, 208, 208,
+ 208, 208, 208, 369, 309, 332, 298, 208, 208, 208,
+ 208, 208, 208, 301, 307, 310, 553, 313, 339, 391,
+ 320, 352, 332, 391, 339, 395, 352, 423, 725, 395,
+
+ 208, 208, 208, 208, 208, 208, 318, 318, 318, 318,
+ 318, 409, 382, 553, 409, 318, 318, 318, 318, 318,
+ 318, 362, 362, 415, 435, 423, 362, 433, 415, 433,
+ 463, 726, 454, 727, 554, 463, 482, 666, 318, 318,
+ 318, 318, 318, 318, 352, 454, 482, 454, 555, 352,
+ 599, 599, 435, 555, 433, 667, 433, 434, 434, 434,
+ 434, 434, 554, 728, 451, 666, 434, 434, 434, 434,
+ 434, 434, 451, 650, 451, 451, 451, 673, 667, 675,
+ 675, 729, 675, 673, 650, 717, 730, 732, 717, 434,
+ 434, 434, 434, 434, 434, 733, 734, 735, 736, 737,
+
+ 738, 739, 740, 741, 742, 743, 744, 745, 746, 747,
+ 748, 749, 750, 751, 752, 753, 754, 755, 755, 756,
+ 757, 758, 753, 760, 761, 755, 762, 758, 763, 755,
+ 764, 765, 766, 767, 768, 769, 770, 771, 772, 774,
+ 775, 776, 777, 778, 779, 780, 781, 782, 784, 785,
+ 786, 787, 788, 789, 790, 791, 792, 793, 794, 795,
+ 796, 797, 798, 799, 800, 801, 802, 803, 775, 804,
+ 805, 806, 807, 809, 810, 811, 812, 813, 814, 815,
+ 816, 817, 818, 814, 819, 820, 821, 822, 825, 826,
+ 827, 828, 829, 830, 833, 834, 835, 836, 837, 838,
+
+ 839, 840, 841, 838, 842, 843, 844, 847, 848, 849,
+ 850, 851, 852, 853, 854, 855, 856, 857, 858, 859,
+ 860, 861, 862, 863, 864, 865, 866, 867, 868, 869,
+ 870, 871, 872, 874, 875, 876, 877, 878, 879, 880,
+ 881, 882, 883, 884, 886, 887, 888, 889, 890, 891,
+ 892, 893, 894, 895, 896, 897, 898, 899, 900, 901,
+ 902, 903, 904, 905, 906, 907, 908, 909, 887, 910,
+ 911, 886, 912, 913, 915, 916, 917, 918, 919, 920,
+ 921, 922, 923, 925, 926, 927, 928, 929, 931, 932,
+ 933, 934, 935, 936, 937, 938, 939, 940, 941, 942,
+
+ 943, 944, 945, 946, 947, 948, 949, 950, 951, 953,
+ 954, 955, 957, 958, 959, 960, 961, 962, 950, 963,
+ 964, 965, 966, 967, 968, 969, 970, 971, 972, 973,
+ 974, 976, 977, 978, 979, 980, 981, 982, 983, 984,
+ 985, 986, 987, 988, 928, 989, 990, 992, 991, 993,
+ 994, 995, 996, 997, 999, 1000, 1001, 1002, 1003, 1004,
+ 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1015,
+ 1016, 1017, 1018, 1019, 990, 991, 1020, 1021, 1022, 1023,
+ 1024, 1025, 1026, 1027, 1028, 1029, 1031, 1032, 1033, 1034,
+ 1035, 1031, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,
+
+ 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
+ 1054, 1055, 1056, 1058, 1059, 1060, 1061, 1062, 1063, 1064,
+ 1065, 1066, 1067, 1068, 1070, 1071, 1072, 1074, 1075, 1076,
+ 1077, 1032, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085,
+ 1086, 1087, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1097,
+ 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1106, 1107, 1108,
+ 1109, 1110, 1112, 1113, 1114, 1115, 1090, 1116, 1117, 1118,
+ 1119, 1120, 1091, 1121, 1122, 1123, 1124, 1125, 1126, 1129,
+ 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140,
+ 1141, 1143, 1144, 1145, 1146, 1148, 1149, 1150, 1151, 1152,
+
+ 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164,
+ 1165, 1166, 1167, 1168, 1169, 1170, 1172, 1173, 1174, 1177,
+ 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1188,
+ 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1197, 1198, 1199,
+ 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
+ 1211, 1212, 1213, 1214, 1215, 1185, 1216, 1217, 1218, 1219,
+ 1220, 1221, 1164, 1222, 1223, 1224, 1225, 1226, 1227, 1228,
+ 1229, 1230, 1231, 1233, 1236, 1226, 1191, 1237, 1238, 1239,
+ 1240, 1241, 1242, 1243, 1244, 1246, 1247, 1248, 1249, 1250,
+ 1251, 1252, 1254, 1255, 1257, 1260, 1262, 1264, 1265, 1266,
+
+ 1267, 1268, 1270, 1271, 1266, 1272, 1274, 1275, 1276, 1277,
+ 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287,
+ 1288, 1290, 1291, 1292, 1268, 1293, 1294, 1295, 1296, 1297,
+ 1298, 1299, 1300, 1303, 1305, 1306, 1307, 1308, 1309, 1310,
+ 1311, 1312, 1314, 1315, 1316, 1317, 1318, 1319, 1321, 1322,
+ 1324, 1325, 1326, 1327, 1329, 1330, 1331, 1332, 1333, 1334,
+ 1335, 1337, 1339, 1341, 1343, 1344, 1345, 1346, 1347, 1348,
+ 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358,
+ 1359, 1360, 1361, 1362, 1363, 1353, 1364, 1365, 1366, 1367,
+ 1341, 1368, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375,
+
+ 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385,
+ 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1394, 1395, 1396,
+ 1398, 1399, 1400, 1403, 1401, 1406, 1407, 1408, 1411, 1412,
+ 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1422, 1423, 1424,
+ 1425, 1426, 1427, 1428, 1429, 1431, 1432, 1434, 1436, 1437,
+ 1438, 1369, 1401, 1440, 1441, 1442, 1443, 1445, 1446, 1447,
+ 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457,
+ 1458, 1460, 1461, 1462, 1463, 1464, 1466, 1467, 1468, 1469,
+ 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1480,
+ 1481, 1482, 1484, 1486, 1487, 1488, 1489, 1490, 1491, 1492,
+
+ 1493, 1494, 1495, 1496, 1497, 1498, 1500, 1501, 1503, 1506,
+ 1509, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519,
+ 1521, 1522, 1524, 1525, 1526, 1527, 1528, 1529, 1531, 1532,
+ 1533, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1544,
+ 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1554, 1555,
+ 1556, 1557, 1558, 1559, 1560, 1563, 1564, 1565, 1566, 1567,
+ 1568, 1569, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578,
+ 1579, 1580, 1581, 1582, 1583, 1584, 1586, 1587, 1588, 1589,
+ 1590, 1592, 1596, 1598, 1599, 1600, 1601, 1603, 1605, 1606,
+ 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1615, 1616, 1618,
+
+ 1619, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630,
+ 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1641,
+ 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651,
+ 1652, 1653, 1655, 1656, 1658, 1659, 1660, 1661, 1662, 1663,
+ 1665, 1667, 1668, 1670, 1671, 1672, 1673, 1674, 1675, 1678,
+ 1681, 1682, 1683, 1684, 1685, 1687, 1688, 1690, 1691, 1692,
+ 1694, 1695, 1696, 1698, 1699, 1702, 1702, 1702, 1702, 1702,
+ 1703, 1703, 1703, 1703, 1703, 1704, 1710, 1704, 1704, 1704,
+ 1705, 1711, 1705, 1712, 1705, 1706, 1706, 1706, 1706, 1706,
+ 1707, 1707, 1707, 1707, 1707, 1708, 1713, 1708, 1708, 1708,
+
+ 1709, 1709, 1709, 714, 713, 712, 711, 710, 709, 708,
+ 707, 706, 705, 704, 703, 702, 701, 699, 698, 697,
+ 696, 695, 694, 693, 692, 691, 690, 689, 688, 687,
+ 686, 685, 684, 683, 682, 681, 680, 679, 678, 677,
+ 676, 674, 672, 671, 670, 669, 668, 665, 664, 663,
+ 661, 660, 658, 657, 656, 655, 654, 653, 652, 651,
+ 648, 647, 646, 645, 644, 643, 642, 641, 640, 639,
+ 638, 637, 636, 634, 633, 632, 631, 630, 629, 628,
+ 627, 625, 624, 623, 622, 621, 619, 618, 617, 616,
+ 615, 614, 613, 611, 610, 609, 608, 607, 606, 605,
+
+ 604, 603, 602, 601, 600, 598, 597, 596, 595, 594,
+ 593, 592, 591, 590, 589, 588, 587, 585, 584, 583,
+ 582, 581, 580, 579, 578, 577, 576, 575, 574, 573,
+ 572, 571, 570, 569, 568, 567, 566, 565, 564, 563,
+ 562, 561, 560, 559, 558, 557, 551, 549, 546, 545,
+ 544, 543, 541, 540, 539, 537, 536, 533, 532, 531,
+ 530, 529, 528, 527, 526, 525, 524, 523, 522, 521,
+ 520, 519, 518, 517, 516, 515, 514, 513, 512, 511,
+ 510, 509, 508, 507, 506, 504, 502, 501, 500, 499,
+ 498, 497, 496, 495, 494, 493, 492, 491, 490, 488,
+
+ 487, 486, 485, 484, 483, 481, 480, 479, 478, 477,
+ 476, 475, 474, 473, 472, 471, 470, 469, 467, 466,
+ 465, 464, 462, 461, 460, 459, 458, 456, 455, 453,
+ 452, 449, 448, 447, 446, 445, 444, 443, 441, 440,
+ 439, 438, 437, 436, 431, 430, 428, 427, 426, 425,
+ 424, 422, 421, 419, 416, 414, 413, 411, 410, 408,
+ 407, 406, 405, 404, 403, 402, 401, 400, 399, 398,
+ 397, 396, 394, 393, 392, 390, 389, 388, 387, 385,
+ 384, 383, 381, 380, 379, 378, 377, 376, 375, 374,
+ 373, 372, 370, 368, 367, 366, 365, 364, 363, 361,
+
+ 360, 359, 358, 357, 356, 355, 354, 353, 351, 350,
+ 349, 348, 347, 346, 345, 344, 343, 342, 341, 340,
+ 338, 337, 336, 335, 334, 331, 330, 329, 328, 327,
+ 326, 325, 324, 323, 322, 321, 317, 315, 312, 311,
+ 308, 304, 297, 295, 294, 293, 292, 290, 289, 288,
+ 287, 286, 285, 284, 282, 281, 280, 279, 278, 277,
+ 276, 275, 273, 272, 271, 270, 269, 268, 267, 266,
+ 265, 264, 263, 262, 261, 259, 258, 257, 256, 255,
+ 254, 253, 252, 251, 249, 248, 247, 246, 245, 244,
+ 243, 242, 240, 239, 238, 237, 236, 235, 234, 233,
+
+ 232, 231, 230, 229, 228, 227, 226, 225, 224, 223,
+ 222, 221, 220, 218, 217, 216, 215, 214, 213, 212,
+ 211, 209, 206, 204, 202, 200, 197, 196, 194, 191,
+ 183, 182, 181, 179, 178, 176, 175, 174, 173, 172,
+ 171, 167, 166, 164, 162, 161, 160, 159, 158, 156,
+ 155, 154, 153, 152, 150, 149, 148, 147, 146, 145,
+ 144, 143, 142, 140, 139, 137, 135, 134, 133, 132,
+ 130, 129, 128, 127, 125, 124, 123, 122, 121, 120,
+ 116, 110, 107, 106, 104, 99, 98, 79, 74, 68,
+ 60, 53, 50, 49, 47, 43, 41, 39, 38, 24,
+
+ 14, 11, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701
} ;
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[185] =
+static const flex_int16_t yy_rule_linenum[191] =
{ 0,
147, 149, 151, 156, 157, 162, 163, 164, 176, 179,
184, 191, 200, 209, 218, 227, 236, 245, 255, 264,
363, 375, 384, 393, 402, 411, 422, 433, 444, 455,
465, 475, 486, 497, 508, 519, 530, 541, 552, 563,
574, 585, 594, 605, 616, 627, 638, 649, 658, 667,
- 677, 686, 696, 710, 726, 735, 744, 753, 762, 783,
- 804, 813, 823, 832, 843, 852, 861, 870, 879, 888,
- 898, 907, 918, 929, 941, 950, 960, 969, 978, 987,
- 996, 1005, 1014, 1023, 1032, 1042, 1053, 1065, 1074, 1083,
-
- 1093, 1103, 1113, 1123, 1133, 1143, 1152, 1162, 1171, 1180,
- 1189, 1198, 1208, 1218, 1227, 1237, 1246, 1255, 1264, 1273,
- 1282, 1291, 1300, 1309, 1318, 1327, 1336, 1345, 1354, 1363,
- 1372, 1381, 1390, 1399, 1408, 1417, 1426, 1435, 1444, 1453,
- 1462, 1471, 1480, 1489, 1499, 1509, 1519, 1529, 1539, 1549,
- 1559, 1569, 1579, 1589, 1599, 1608, 1617, 1626, 1635, 1644,
- 1653, 1662, 1673, 1684, 1697, 1710, 1725, 1824, 1829, 1834,
- 1839, 1840, 1841, 1842, 1843, 1844, 1846, 1864, 1877, 1882,
- 1886, 1888, 1890, 1892
+ 678, 689, 700, 711, 722, 733, 743, 752, 762, 776,
+ 792, 801, 810, 819, 828, 849, 870, 879, 889, 898,
+ 909, 918, 927, 936, 945, 954, 964, 973, 984, 995,
+ 1007, 1016, 1026, 1035, 1044, 1053, 1062, 1071, 1080, 1089,
+
+ 1098, 1108, 1119, 1131, 1140, 1149, 1159, 1169, 1179, 1189,
+ 1199, 1209, 1218, 1228, 1237, 1246, 1255, 1264, 1274, 1284,
+ 1293, 1303, 1312, 1321, 1330, 1339, 1348, 1357, 1366, 1375,
+ 1384, 1393, 1402, 1411, 1420, 1429, 1438, 1447, 1456, 1465,
+ 1474, 1483, 1492, 1501, 1510, 1519, 1528, 1537, 1546, 1555,
+ 1567, 1579, 1589, 1599, 1609, 1619, 1629, 1639, 1649, 1659,
+ 1669, 1678, 1687, 1696, 1705, 1714, 1723, 1732, 1743, 1754,
+ 1767, 1780, 1795, 1894, 1899, 1904, 1909, 1910, 1911, 1912,
+ 1913, 1914, 1916, 1934, 1947, 1952, 1956, 1958, 1960, 1962
} ;
/* The intent behind this definition is that it'll catch
/* To avoid the call to exit... oops! */
#define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
-#line 1833 "dhcp4_lexer.cc"
+#line 1892 "dhcp4_lexer.cc"
/* noyywrap disables automatic rewinding for the next file to parse. Since we
always parse only a single string, there's no need to do any wraps. And
using yywrap requires linking with -lfl, which provides the default yywrap
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 1859 "dhcp4_lexer.cc"
-#line 1860 "dhcp4_lexer.cc"
+#line 1918 "dhcp4_lexer.cc"
+#line 1919 "dhcp4_lexer.cc"
#define INITIAL 0
#define COMMENT 1
}
-#line 2190 "dhcp4_lexer.cc"
+#line 2249 "dhcp4_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 >= 1597 )
+ if ( yy_current_state >= 1702 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 1596 );
+ while ( yy_current_state != 1701 );
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 < 185 )
+ else if ( yy_act < 191 )
fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
(long)yy_rule_linenum[yy_act], yytext );
- else if ( yy_act == 185 )
+ else if ( yy_act == 191 )
fprintf( stderr, "--accepting default rule (\"%s\")\n",
yytext );
- else if ( yy_act == 186 )
+ else if ( yy_act == 192 )
fprintf( stderr, "--(end of buffer or a NUL)\n" );
else
fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
case 60:
YY_RULE_SETUP
#line 667 "dhcp4_lexer.ll"
+{
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser4Context::DHCP4:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
+ return isc::dhcp::Dhcp4Parser::make_DDNS_SEND_UPDATES(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp4Parser::make_STRING("ddns-send-updates", driver.loc_);
+ }
+}
+ YY_BREAK
+case 61:
+YY_RULE_SETUP
+#line 678 "dhcp4_lexer.ll"
+{
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser4Context::DHCP4:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
+ return isc::dhcp::Dhcp4Parser::make_DDNS_OVERRIDE_NO_UPDATE(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-no-update", driver.loc_);
+ }
+}
+ YY_BREAK
+case 62:
+YY_RULE_SETUP
+#line 689 "dhcp4_lexer.ll"
+{
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser4Context::DHCP4:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
+ return isc::dhcp::Dhcp4Parser::make_DDNS_OVERRIDE_CLIENT_UPDATE(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-client-update", driver.loc_);
+ }
+}
+ YY_BREAK
+case 63:
+YY_RULE_SETUP
+#line 700 "dhcp4_lexer.ll"
+{
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser4Context::DHCP4:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
+ return isc::dhcp::Dhcp4Parser::make_DDNS_REPLACE_CLIENT_NAME(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp4Parser::make_STRING("ddns-replace-client-name", driver.loc_);
+ }
+}
+ YY_BREAK
+case 64:
+YY_RULE_SETUP
+#line 711 "dhcp4_lexer.ll"
+{
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser4Context::DHCP4:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
+ return isc::dhcp::Dhcp4Parser::make_DDNS_GENERATED_PREFIX(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp4Parser::make_STRING("ddns-generated-prefix", driver.loc_);
+ }
+}
+ YY_BREAK
+case 65:
+YY_RULE_SETUP
+#line 722 "dhcp4_lexer.ll"
+{
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser4Context::DHCP4:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
+ return isc::dhcp::Dhcp4Parser::make_DDNS_QUALIFYING_SUFFIX(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp4Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
+ }
+}
+ YY_BREAK
+case 66:
+YY_RULE_SETUP
+#line 733 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 61:
+case 67:
YY_RULE_SETUP
-#line 677 "dhcp4_lexer.ll"
+#line 743 "dhcp4_lexer.ll"
{
switch (driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 62:
+case 68:
YY_RULE_SETUP
-#line 686 "dhcp4_lexer.ll"
+#line 752 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 63:
+case 69:
YY_RULE_SETUP
-#line 696 "dhcp4_lexer.ll"
+#line 762 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 64:
+case 70:
YY_RULE_SETUP
-#line 710 "dhcp4_lexer.ll"
+#line 776 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::LEASE_DATABASE:
}
}
YY_BREAK
-case 65:
+case 71:
YY_RULE_SETUP
-#line 726 "dhcp4_lexer.ll"
+#line 792 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OPTION_DATA:
}
}
YY_BREAK
-case 66:
+case 72:
YY_RULE_SETUP
-#line 735 "dhcp4_lexer.ll"
+#line 801 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OPTION_DATA:
}
}
YY_BREAK
-case 67:
+case 73:
YY_RULE_SETUP
-#line 744 "dhcp4_lexer.ll"
+#line 810 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
}
}
YY_BREAK
-case 68:
+case 74:
YY_RULE_SETUP
-#line 753 "dhcp4_lexer.ll"
+#line 819 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::POOLS:
}
}
YY_BREAK
-case 69:
+case 75:
YY_RULE_SETUP
-#line 762 "dhcp4_lexer.ll"
+#line 828 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 70:
+case 76:
YY_RULE_SETUP
-#line 783 "dhcp4_lexer.ll"
+#line 849 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 71:
+case 77:
YY_RULE_SETUP
-#line 804 "dhcp4_lexer.ll"
+#line 870 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
}
}
YY_BREAK
-case 72:
+case 78:
YY_RULE_SETUP
-#line 813 "dhcp4_lexer.ll"
+#line 879 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
}
}
YY_BREAK
-case 73:
+case 79:
YY_RULE_SETUP
-#line 823 "dhcp4_lexer.ll"
+#line 889 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
}
}
YY_BREAK
-case 74:
+case 80:
YY_RULE_SETUP
-#line 832 "dhcp4_lexer.ll"
+#line 898 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 75:
+case 81:
YY_RULE_SETUP
-#line 843 "dhcp4_lexer.ll"
+#line 909 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::RESERVATION_MODE:
}
}
YY_BREAK
-case 76:
+case 82:
YY_RULE_SETUP
-#line 852 "dhcp4_lexer.ll"
+#line 918 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::RESERVATION_MODE:
}
}
YY_BREAK
-case 77:
+case 83:
YY_RULE_SETUP
-#line 861 "dhcp4_lexer.ll"
+#line 927 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::RESERVATION_MODE:
}
}
YY_BREAK
-case 78:
+case 84:
YY_RULE_SETUP
-#line 870 "dhcp4_lexer.ll"
+#line 936 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::RESERVATION_MODE:
}
}
YY_BREAK
-case 79:
+case 85:
YY_RULE_SETUP
-#line 879 "dhcp4_lexer.ll"
+#line 945 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::RESERVATION_MODE:
}
}
YY_BREAK
-case 80:
+case 86:
YY_RULE_SETUP
-#line 888 "dhcp4_lexer.ll"
+#line 954 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OPTION_DEF:
}
}
YY_BREAK
-case 81:
+case 87:
YY_RULE_SETUP
-#line 898 "dhcp4_lexer.ll"
+#line 964 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 82:
+case 88:
YY_RULE_SETUP
-#line 907 "dhcp4_lexer.ll"
+#line 973 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 83:
+case 89:
YY_RULE_SETUP
-#line 918 "dhcp4_lexer.ll"
+#line 984 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 84:
+case 90:
YY_RULE_SETUP
-#line 929 "dhcp4_lexer.ll"
+#line 995 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 85:
+case 91:
YY_RULE_SETUP
-#line 941 "dhcp4_lexer.ll"
+#line 1007 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONFIG:
}
}
YY_BREAK
-case 86:
+case 92:
YY_RULE_SETUP
-#line 950 "dhcp4_lexer.ll"
+#line 1016 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 87:
+case 93:
YY_RULE_SETUP
-#line 960 "dhcp4_lexer.ll"
+#line 1026 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::LOGGERS:
}
}
YY_BREAK
-case 88:
+case 94:
YY_RULE_SETUP
-#line 969 "dhcp4_lexer.ll"
+#line 1035 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 89:
+case 95:
YY_RULE_SETUP
-#line 978 "dhcp4_lexer.ll"
+#line 1044 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::LOGGERS:
}
}
YY_BREAK
-case 90:
+case 96:
YY_RULE_SETUP
-#line 987 "dhcp4_lexer.ll"
+#line 1053 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 91:
+case 97:
YY_RULE_SETUP
-#line 996 "dhcp4_lexer.ll"
+#line 1062 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 92:
+case 98:
YY_RULE_SETUP
-#line 1005 "dhcp4_lexer.ll"
+#line 1071 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 93:
+case 99:
YY_RULE_SETUP
-#line 1014 "dhcp4_lexer.ll"
+#line 1080 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
}
}
YY_BREAK
-case 94:
+case 100:
YY_RULE_SETUP
-#line 1023 "dhcp4_lexer.ll"
+#line 1089 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::LOGGERS:
}
}
YY_BREAK
-case 95:
+case 101:
YY_RULE_SETUP
-#line 1032 "dhcp4_lexer.ll"
+#line 1098 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 96:
+case 102:
YY_RULE_SETUP
-#line 1042 "dhcp4_lexer.ll"
+#line 1108 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
}
}
YY_BREAK
-case 97:
+case 103:
YY_RULE_SETUP
-#line 1053 "dhcp4_lexer.ll"
+#line 1119 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
}
}
YY_BREAK
-case 98:
+case 104:
YY_RULE_SETUP
-#line 1065 "dhcp4_lexer.ll"
+#line 1131 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CLIENT_CLASSES:
}
}
YY_BREAK
-case 99:
+case 105:
YY_RULE_SETUP
-#line 1074 "dhcp4_lexer.ll"
+#line 1140 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CLIENT_CLASSES:
}
}
YY_BREAK
-case 100:
+case 106:
YY_RULE_SETUP
-#line 1083 "dhcp4_lexer.ll"
+#line 1149 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 101:
+case 107:
YY_RULE_SETUP
-#line 1093 "dhcp4_lexer.ll"
+#line 1159 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
}
}
YY_BREAK
-case 102:
+case 108:
YY_RULE_SETUP
-#line 1103 "dhcp4_lexer.ll"
+#line 1169 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
}
}
YY_BREAK
-case 103:
+case 109:
YY_RULE_SETUP
-#line 1113 "dhcp4_lexer.ll"
+#line 1179 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
}
}
YY_BREAK
-case 104:
+case 110:
YY_RULE_SETUP
-#line 1123 "dhcp4_lexer.ll"
+#line 1189 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
}
}
YY_BREAK
-case 105:
+case 111:
YY_RULE_SETUP
-#line 1133 "dhcp4_lexer.ll"
+#line 1199 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
}
}
YY_BREAK
-case 106:
+case 112:
YY_RULE_SETUP
-#line 1143 "dhcp4_lexer.ll"
+#line 1209 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::RESERVATIONS:
}
}
YY_BREAK
-case 107:
+case 113:
YY_RULE_SETUP
-#line 1152 "dhcp4_lexer.ll"
+#line 1218 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OPTION_DEF:
}
}
YY_BREAK
-case 108:
+case 114:
YY_RULE_SETUP
-#line 1162 "dhcp4_lexer.ll"
+#line 1228 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OPTION_DATA:
}
}
YY_BREAK
-case 109:
+case 115:
YY_RULE_SETUP
-#line 1171 "dhcp4_lexer.ll"
+#line 1237 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OPTION_DEF:
}
}
YY_BREAK
-case 110:
+case 116:
YY_RULE_SETUP
-#line 1180 "dhcp4_lexer.ll"
+#line 1246 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OPTION_DEF:
}
}
YY_BREAK
-case 111:
+case 117:
YY_RULE_SETUP
-#line 1189 "dhcp4_lexer.ll"
+#line 1255 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OPTION_DEF:
}
}
YY_BREAK
-case 112:
+case 118:
YY_RULE_SETUP
-#line 1198 "dhcp4_lexer.ll"
+#line 1264 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
}
}
YY_BREAK
-case 113:
+case 119:
YY_RULE_SETUP
-#line 1208 "dhcp4_lexer.ll"
+#line 1274 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::RELAY:
}
}
YY_BREAK
-case 114:
+case 120:
YY_RULE_SETUP
-#line 1218 "dhcp4_lexer.ll"
+#line 1284 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::RELAY:
}
}
YY_BREAK
-case 115:
+case 121:
YY_RULE_SETUP
-#line 1227 "dhcp4_lexer.ll"
+#line 1293 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 116:
+case 122:
YY_RULE_SETUP
-#line 1237 "dhcp4_lexer.ll"
+#line 1303 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
}
}
YY_BREAK
-case 117:
+case 123:
YY_RULE_SETUP
-#line 1246 "dhcp4_lexer.ll"
+#line 1312 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
}
}
YY_BREAK
-case 118:
+case 124:
YY_RULE_SETUP
-#line 1255 "dhcp4_lexer.ll"
+#line 1321 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 119:
+case 125:
YY_RULE_SETUP
-#line 1264 "dhcp4_lexer.ll"
+#line 1330 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
}
}
YY_BREAK
-case 120:
+case 126:
YY_RULE_SETUP
-#line 1273 "dhcp4_lexer.ll"
+#line 1339 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
}
}
YY_BREAK
-case 121:
+case 127:
YY_RULE_SETUP
-#line 1282 "dhcp4_lexer.ll"
+#line 1348 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
}
}
YY_BREAK
-case 122:
+case 128:
YY_RULE_SETUP
-#line 1291 "dhcp4_lexer.ll"
+#line 1357 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
}
}
YY_BREAK
-case 123:
+case 129:
YY_RULE_SETUP
-#line 1300 "dhcp4_lexer.ll"
+#line 1366 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
}
}
YY_BREAK
-case 124:
+case 130:
YY_RULE_SETUP
-#line 1309 "dhcp4_lexer.ll"
+#line 1375 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
}
}
YY_BREAK
-case 125:
+case 131:
YY_RULE_SETUP
-#line 1318 "dhcp4_lexer.ll"
+#line 1384 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 126:
+case 132:
YY_RULE_SETUP
-#line 1327 "dhcp4_lexer.ll"
+#line 1393 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 127:
+case 133:
YY_RULE_SETUP
-#line 1336 "dhcp4_lexer.ll"
+#line 1402 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONTROL_SOCKET:
}
}
YY_BREAK
-case 128:
+case 134:
YY_RULE_SETUP
-#line 1345 "dhcp4_lexer.ll"
+#line 1411 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONTROL_SOCKET:
}
}
YY_BREAK
-case 129:
+case 135:
YY_RULE_SETUP
-#line 1354 "dhcp4_lexer.ll"
+#line 1420 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 130:
+case 136:
YY_RULE_SETUP
-#line 1363 "dhcp4_lexer.ll"
+#line 1429 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 131:
+case 137:
YY_RULE_SETUP
-#line 1372 "dhcp4_lexer.ll"
+#line 1438 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
}
}
YY_BREAK
-case 132:
+case 138:
YY_RULE_SETUP
-#line 1381 "dhcp4_lexer.ll"
+#line 1447 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
}
}
YY_BREAK
-case 133:
+case 139:
YY_RULE_SETUP
-#line 1390 "dhcp4_lexer.ll"
+#line 1456 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
}
}
YY_BREAK
-case 134:
+case 140:
YY_RULE_SETUP
-#line 1399 "dhcp4_lexer.ll"
+#line 1465 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
}
}
YY_BREAK
-case 135:
+case 141:
YY_RULE_SETUP
-#line 1408 "dhcp4_lexer.ll"
+#line 1474 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
}
}
YY_BREAK
-case 136:
+case 142:
YY_RULE_SETUP
-#line 1417 "dhcp4_lexer.ll"
+#line 1483 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
}
}
YY_BREAK
-case 137:
+case 143:
YY_RULE_SETUP
-#line 1426 "dhcp4_lexer.ll"
+#line 1492 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
}
}
YY_BREAK
-case 138:
+case 144:
YY_RULE_SETUP
-#line 1435 "dhcp4_lexer.ll"
+#line 1501 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
}
}
YY_BREAK
-case 139:
+case 145:
YY_RULE_SETUP
-#line 1444 "dhcp4_lexer.ll"
+#line 1510 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
}
}
YY_BREAK
-case 140:
+case 146:
YY_RULE_SETUP
-#line 1453 "dhcp4_lexer.ll"
+#line 1519 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
}
}
YY_BREAK
-case 141:
+case 147:
YY_RULE_SETUP
-#line 1462 "dhcp4_lexer.ll"
+#line 1528 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
}
}
YY_BREAK
-case 142:
+case 148:
YY_RULE_SETUP
-#line 1471 "dhcp4_lexer.ll"
+#line 1537 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
}
}
YY_BREAK
-case 143:
+case 149:
YY_RULE_SETUP
-#line 1480 "dhcp4_lexer.ll"
+#line 1546 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
}
}
YY_BREAK
-case 144:
+case 150:
YY_RULE_SETUP
-#line 1489 "dhcp4_lexer.ll"
+#line 1555 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
case isc::dhcp::Parser4Context::DHCP_DDNS:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
return isc::dhcp::Dhcp4Parser::make_HOSTNAME_CHAR_SET(driver.loc_);
default:
return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-set", driver.loc_);
}
}
YY_BREAK
-case 145:
+case 151:
YY_RULE_SETUP
-#line 1499 "dhcp4_lexer.ll"
+#line 1567 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
case isc::dhcp::Parser4Context::DHCP_DDNS:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
return isc::dhcp::Dhcp4Parser::make_HOSTNAME_CHAR_REPLACEMENT(driver.loc_);
default:
return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-replacement", driver.loc_);
}
}
YY_BREAK
-case 146:
+case 152:
YY_RULE_SETUP
-#line 1509 "dhcp4_lexer.ll"
+#line 1579 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
}
YY_BREAK
-case 147:
+case 153:
YY_RULE_SETUP
-#line 1519 "dhcp4_lexer.ll"
+#line 1589 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
}
YY_BREAK
-case 148:
+case 154:
YY_RULE_SETUP
-#line 1529 "dhcp4_lexer.ll"
+#line 1599 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
}
YY_BREAK
-case 149:
+case 155:
YY_RULE_SETUP
-#line 1539 "dhcp4_lexer.ll"
+#line 1609 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
}
YY_BREAK
-case 150:
+case 156:
YY_RULE_SETUP
-#line 1549 "dhcp4_lexer.ll"
+#line 1619 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
}
YY_BREAK
-case 151:
+case 157:
YY_RULE_SETUP
-#line 1559 "dhcp4_lexer.ll"
+#line 1629 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
}
YY_BREAK
-case 152:
+case 158:
YY_RULE_SETUP
-#line 1569 "dhcp4_lexer.ll"
+#line 1639 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
}
YY_BREAK
-case 153:
+case 159:
YY_RULE_SETUP
-#line 1579 "dhcp4_lexer.ll"
+#line 1649 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
}
YY_BREAK
-case 154:
+case 160:
YY_RULE_SETUP
-#line 1589 "dhcp4_lexer.ll"
+#line 1659 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
}
YY_BREAK
-case 155:
+case 161:
YY_RULE_SETUP
-#line 1599 "dhcp4_lexer.ll"
+#line 1669 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONFIG:
}
}
YY_BREAK
-case 156:
+case 162:
YY_RULE_SETUP
-#line 1608 "dhcp4_lexer.ll"
+#line 1678 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONFIG:
}
}
YY_BREAK
-case 157:
+case 163:
YY_RULE_SETUP
-#line 1617 "dhcp4_lexer.ll"
+#line 1687 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONFIG:
}
}
YY_BREAK
-case 158:
+case 164:
YY_RULE_SETUP
-#line 1626 "dhcp4_lexer.ll"
+#line 1696 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
}
}
YY_BREAK
-case 159:
+case 165:
YY_RULE_SETUP
-#line 1635 "dhcp4_lexer.ll"
+#line 1705 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
}
}
YY_BREAK
-case 160:
+case 166:
YY_RULE_SETUP
-#line 1644 "dhcp4_lexer.ll"
+#line 1714 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
}
}
YY_BREAK
-case 161:
+case 167:
YY_RULE_SETUP
-#line 1653 "dhcp4_lexer.ll"
+#line 1723 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 162:
+case 168:
YY_RULE_SETUP
-#line 1662 "dhcp4_lexer.ll"
+#line 1732 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 163:
+case 169:
YY_RULE_SETUP
-#line 1673 "dhcp4_lexer.ll"
+#line 1743 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 164:
+case 170:
YY_RULE_SETUP
-#line 1684 "dhcp4_lexer.ll"
+#line 1754 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 165:
+case 171:
YY_RULE_SETUP
-#line 1697 "dhcp4_lexer.ll"
+#line 1767 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 166:
+case 172:
YY_RULE_SETUP
-#line 1710 "dhcp4_lexer.ll"
+#line 1780 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
}
}
YY_BREAK
-case 167:
+case 173:
YY_RULE_SETUP
-#line 1725 "dhcp4_lexer.ll"
+#line 1795 "dhcp4_lexer.ll"
{
/* A string has been matched. It contains the actual string and single quotes.
We need to get those quotes out of the way and just use its content, e.g.
return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_);
}
YY_BREAK
-case 168:
-/* rule 168 can match eol */
+case 174:
+/* rule 174 can match eol */
YY_RULE_SETUP
-#line 1824 "dhcp4_lexer.ll"
+#line 1894 "dhcp4_lexer.ll"
{
/* Bad string with a forbidden control character inside */
driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
}
YY_BREAK
-case 169:
-/* rule 169 can match eol */
+case 175:
+/* rule 175 can match eol */
YY_RULE_SETUP
-#line 1829 "dhcp4_lexer.ll"
+#line 1899 "dhcp4_lexer.ll"
{
/* Bad string with a bad escape inside */
driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
}
YY_BREAK
-case 170:
+case 176:
YY_RULE_SETUP
-#line 1834 "dhcp4_lexer.ll"
+#line 1904 "dhcp4_lexer.ll"
{
/* Bad string with an open escape at the end */
driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
}
YY_BREAK
-case 171:
+case 177:
YY_RULE_SETUP
-#line 1839 "dhcp4_lexer.ll"
+#line 1909 "dhcp4_lexer.ll"
{ return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
YY_BREAK
-case 172:
+case 178:
YY_RULE_SETUP
-#line 1840 "dhcp4_lexer.ll"
+#line 1910 "dhcp4_lexer.ll"
{ return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
YY_BREAK
-case 173:
+case 179:
YY_RULE_SETUP
-#line 1841 "dhcp4_lexer.ll"
+#line 1911 "dhcp4_lexer.ll"
{ return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
YY_BREAK
-case 174:
+case 180:
YY_RULE_SETUP
-#line 1842 "dhcp4_lexer.ll"
+#line 1912 "dhcp4_lexer.ll"
{ return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
YY_BREAK
-case 175:
+case 181:
YY_RULE_SETUP
-#line 1843 "dhcp4_lexer.ll"
+#line 1913 "dhcp4_lexer.ll"
{ return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
YY_BREAK
-case 176:
+case 182:
YY_RULE_SETUP
-#line 1844 "dhcp4_lexer.ll"
+#line 1914 "dhcp4_lexer.ll"
{ return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
YY_BREAK
-case 177:
+case 183:
YY_RULE_SETUP
-#line 1846 "dhcp4_lexer.ll"
+#line 1916 "dhcp4_lexer.ll"
{
/* An integer was found. */
std::string tmp(yytext);
return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_);
}
YY_BREAK
-case 178:
+case 184:
YY_RULE_SETUP
-#line 1864 "dhcp4_lexer.ll"
+#line 1934 "dhcp4_lexer.ll"
{
/* A floating point was found. */
std::string tmp(yytext);
return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_);
}
YY_BREAK
-case 179:
+case 185:
YY_RULE_SETUP
-#line 1877 "dhcp4_lexer.ll"
+#line 1947 "dhcp4_lexer.ll"
{
string tmp(yytext);
return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
}
YY_BREAK
-case 180:
+case 186:
YY_RULE_SETUP
-#line 1882 "dhcp4_lexer.ll"
+#line 1952 "dhcp4_lexer.ll"
{
return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
}
YY_BREAK
-case 181:
+case 187:
YY_RULE_SETUP
-#line 1886 "dhcp4_lexer.ll"
+#line 1956 "dhcp4_lexer.ll"
driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
YY_BREAK
-case 182:
+case 188:
YY_RULE_SETUP
-#line 1888 "dhcp4_lexer.ll"
+#line 1958 "dhcp4_lexer.ll"
driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
YY_BREAK
-case 183:
+case 189:
YY_RULE_SETUP
-#line 1890 "dhcp4_lexer.ll"
+#line 1960 "dhcp4_lexer.ll"
driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
YY_BREAK
-case 184:
+case 190:
YY_RULE_SETUP
-#line 1892 "dhcp4_lexer.ll"
+#line 1962 "dhcp4_lexer.ll"
driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 1894 "dhcp4_lexer.ll"
+#line 1964 "dhcp4_lexer.ll"
{
if (driver.states_.empty()) {
return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
BEGIN(DIR_EXIT);
}
YY_BREAK
-case 185:
+case 191:
YY_RULE_SETUP
-#line 1917 "dhcp4_lexer.ll"
+#line 1987 "dhcp4_lexer.ll"
ECHO;
YY_BREAK
-#line 4609 "dhcp4_lexer.cc"
+#line 4756 "dhcp4_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 >= 1597 )
+ if ( yy_current_state >= 1702 )
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 >= 1597 )
+ if ( yy_current_state >= 1702 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 1596);
+ yy_is_jam = (yy_current_state == 1701);
return yy_is_jam ? 0 : yy_current_state;
}
/* %ok-for-header */
-#line 1917 "dhcp4_lexer.ll"
+#line 1987 "dhcp4_lexer.ll"
using namespace isc::dhcp;
}
}
+\"ddns-send-updates\" {
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser4Context::DHCP4:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
+ return isc::dhcp::Dhcp4Parser::make_DDNS_SEND_UPDATES(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp4Parser::make_STRING("ddns-send-updates", driver.loc_);
+ }
+}
+
+\"ddns-override-no-update\" {
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser4Context::DHCP4:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
+ return isc::dhcp::Dhcp4Parser::make_DDNS_OVERRIDE_NO_UPDATE(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-no-update", driver.loc_);
+ }
+}
+
+\"ddns-override-client-update\" {
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser4Context::DHCP4:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
+ return isc::dhcp::Dhcp4Parser::make_DDNS_OVERRIDE_CLIENT_UPDATE(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-client-update", driver.loc_);
+ }
+}
+
+\"ddns-replace-client-name\" {
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser4Context::DHCP4:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
+ return isc::dhcp::Dhcp4Parser::make_DDNS_REPLACE_CLIENT_NAME(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp4Parser::make_STRING("ddns-replace-client-name", driver.loc_);
+ }
+}
+
+\"ddns-generated-prefix\" {
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser4Context::DHCP4:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
+ return isc::dhcp::Dhcp4Parser::make_DDNS_GENERATED_PREFIX(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp4Parser::make_STRING("ddns-generated-prefix", driver.loc_);
+ }
+}
+
+\"ddns-qualifying-suffix\" {
+ switch(driver.ctx_) {
+ case isc::dhcp::Parser4Context::DHCP4:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
+ return isc::dhcp::Dhcp4Parser::make_DDNS_QUALIFYING_SUFFIX(driver.loc_);
+ default:
+ return isc::dhcp::Dhcp4Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
+ }
+}
+
\"subnet4\" {
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
case isc::dhcp::Parser4Context::DHCP_DDNS:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
return isc::dhcp::Dhcp4Parser::make_HOSTNAME_CHAR_SET(driver.loc_);
default:
return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-set", driver.loc_);
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
case isc::dhcp::Parser4Context::DHCP_DDNS:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
return isc::dhcp::Dhcp4Parser::make_HOSTNAME_CHAR_REPLACEMENT(driver.loc_);
default:
return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-replacement", driver.loc_);
-// A Bison parser, made by GNU Bison 3.4.1.
+// A Bison parser, made by GNU Bison 3.2.1.
// Skeleton implementation for Bison LALR(1) parsers in C++
-// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc.
+// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// Unqualified %code blocks.
-#line 34 "dhcp4_parser.yy"
+#line 34 "dhcp4_parser.yy" // lalr1.cc:438
#include <dhcp4/parser_context.h>
-#line 51 "dhcp4_parser.cc"
+#line 51 "dhcp4_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 "dhcp4_parser.yy"
+#line 14 "dhcp4_parser.yy" // lalr1.cc:513
namespace isc { namespace dhcp {
-#line 146 "dhcp4_parser.cc"
-
+#line 146 "dhcp4_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;
Dhcp4Parser::~Dhcp4Parser ()
{}
- Dhcp4Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW
- {}
/*---------------.
| Symbol types. |
// by_state.
- Dhcp4Parser::by_state::by_state () YY_NOEXCEPT
+ Dhcp4Parser::by_state::by_state ()
: state (empty_state)
{}
- Dhcp4Parser::by_state::by_state (const by_state& that) YY_NOEXCEPT
- : state (that.state)
+ Dhcp4Parser::by_state::by_state (const by_state& other)
+ : state (other.state)
{}
void
- Dhcp4Parser::by_state::clear () YY_NOEXCEPT
+ Dhcp4Parser::by_state::clear ()
{
state = empty_state;
}
that.clear ();
}
- Dhcp4Parser::by_state::by_state (state_type s) YY_NOEXCEPT
+ Dhcp4Parser::by_state::by_state (state_type s)
: state (s)
{}
Dhcp4Parser::symbol_number_type
- Dhcp4Parser::by_state::type_get () const YY_NOEXCEPT
+ Dhcp4Parser::by_state::type_get () const
{
if (state == empty_state)
return empty_symbol;
{
switch (that.type_get ())
{
- case 195: // value
- case 199: // map_value
- case 245: // socket_type
- case 248: // outbound_interface_value
- case 270: // db_type
- case 357: // hr_mode
- case 506: // ncr_protocol_value
- case 513: // replace_client_name_value
+ case 201: // value
+ case 205: // map_value
+ case 246: // ddns_replace_client_name_value
+ case 265: // socket_type
+ case 268: // outbound_interface_value
+ case 290: // db_type
+ case 377: // hr_mode
+ case 524: // ncr_protocol_value
value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value));
break;
- case 178: // "boolean"
+ case 184: // "boolean"
value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value));
break;
- case 177: // "floating point"
+ case 183: // "floating point"
value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value));
break;
- case 176: // "integer"
+ case 182: // "integer"
value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value));
break;
- case 175: // "constant string"
+ case 181: // "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 195: // value
- case 199: // map_value
- case 245: // socket_type
- case 248: // outbound_interface_value
- case 270: // db_type
- case 357: // hr_mode
- case 506: // ncr_protocol_value
- case 513: // replace_client_name_value
+ case 201: // value
+ case 205: // map_value
+ case 246: // ddns_replace_client_name_value
+ case 265: // socket_type
+ case 268: // outbound_interface_value
+ case 290: // db_type
+ case 377: // hr_mode
+ case 524: // ncr_protocol_value
value.move< ElementPtr > (YY_MOVE (that.value));
break;
- case 178: // "boolean"
+ case 184: // "boolean"
value.move< bool > (YY_MOVE (that.value));
break;
- case 177: // "floating point"
+ case 183: // "floating point"
value.move< double > (YY_MOVE (that.value));
break;
- case 176: // "integer"
+ case 182: // "integer"
value.move< int64_t > (YY_MOVE (that.value));
break;
- case 175: // "constant string"
+ case 181: // "constant string"
value.move< std::string > (YY_MOVE (that.value));
break;
that.type = empty_symbol;
}
-#if YY_CPLUSPLUS < 201103L
+#if !defined __cplusplus || __cplusplus < 201103L
Dhcp4Parser::stack_symbol_type&
Dhcp4Parser::stack_symbol_type::operator= (stack_symbol_type& that)
{
state = that.state;
switch (that.type_get ())
{
- case 195: // value
- case 199: // map_value
- case 245: // socket_type
- case 248: // outbound_interface_value
- case 270: // db_type
- case 357: // hr_mode
- case 506: // ncr_protocol_value
- case 513: // replace_client_name_value
+ case 201: // value
+ case 205: // map_value
+ case 246: // ddns_replace_client_name_value
+ case 265: // socket_type
+ case 268: // outbound_interface_value
+ case 290: // db_type
+ case 377: // hr_mode
+ case 524: // ncr_protocol_value
value.move< ElementPtr > (that.value);
break;
- case 178: // "boolean"
+ case 184: // "boolean"
value.move< bool > (that.value);
break;
- case 177: // "floating point"
+ case 183: // "floating point"
value.move< double > (that.value);
break;
- case 176: // "integer"
+ case 182: // "integer"
value.move< int64_t > (that.value);
break;
- case 175: // "constant string"
+ case 181: // "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 175: // "constant string"
-#line 257 "dhcp4_parser.yy"
- { yyoutput << yysym.value.template as < std::string > (); }
-#line 408 "dhcp4_parser.cc"
+ case 181: // "constant string"
+
+#line 263 "dhcp4_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< std::string > (); }
+#line 401 "dhcp4_parser.cc" // lalr1.cc:672
break;
- case 176: // "integer"
-#line 257 "dhcp4_parser.yy"
- { yyoutput << yysym.value.template as < int64_t > (); }
-#line 414 "dhcp4_parser.cc"
+ case 182: // "integer"
+
+#line 263 "dhcp4_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< int64_t > (); }
+#line 408 "dhcp4_parser.cc" // lalr1.cc:672
break;
- case 177: // "floating point"
-#line 257 "dhcp4_parser.yy"
- { yyoutput << yysym.value.template as < double > (); }
-#line 420 "dhcp4_parser.cc"
+ case 183: // "floating point"
+
+#line 263 "dhcp4_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< double > (); }
+#line 415 "dhcp4_parser.cc" // lalr1.cc:672
break;
- case 178: // "boolean"
-#line 257 "dhcp4_parser.yy"
- { yyoutput << yysym.value.template as < bool > (); }
-#line 426 "dhcp4_parser.cc"
+ case 184: // "boolean"
+
+#line 263 "dhcp4_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< bool > (); }
+#line 422 "dhcp4_parser.cc" // lalr1.cc:672
break;
- case 195: // value
-#line 257 "dhcp4_parser.yy"
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 432 "dhcp4_parser.cc"
+ case 201: // value
+
+#line 263 "dhcp4_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 429 "dhcp4_parser.cc" // lalr1.cc:672
break;
- case 199: // map_value
-#line 257 "dhcp4_parser.yy"
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 438 "dhcp4_parser.cc"
+ case 205: // map_value
+
+#line 263 "dhcp4_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 436 "dhcp4_parser.cc" // lalr1.cc:672
break;
- case 245: // socket_type
-#line 257 "dhcp4_parser.yy"
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 444 "dhcp4_parser.cc"
+ case 246: // ddns_replace_client_name_value
+
+#line 263 "dhcp4_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 443 "dhcp4_parser.cc" // lalr1.cc:672
break;
- case 248: // outbound_interface_value
-#line 257 "dhcp4_parser.yy"
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 450 "dhcp4_parser.cc"
+ case 265: // socket_type
+
+#line 263 "dhcp4_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 450 "dhcp4_parser.cc" // lalr1.cc:672
break;
- case 270: // db_type
-#line 257 "dhcp4_parser.yy"
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 456 "dhcp4_parser.cc"
+ case 268: // outbound_interface_value
+
+#line 263 "dhcp4_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 457 "dhcp4_parser.cc" // lalr1.cc:672
break;
- case 357: // hr_mode
-#line 257 "dhcp4_parser.yy"
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 462 "dhcp4_parser.cc"
+ case 290: // db_type
+
+#line 263 "dhcp4_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 464 "dhcp4_parser.cc" // lalr1.cc:672
break;
- case 506: // ncr_protocol_value
-#line 257 "dhcp4_parser.yy"
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 468 "dhcp4_parser.cc"
+ case 377: // hr_mode
+
+#line 263 "dhcp4_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 471 "dhcp4_parser.cc" // lalr1.cc:672
break;
- case 513: // replace_client_name_value
-#line 257 "dhcp4_parser.yy"
- { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 474 "dhcp4_parser.cc"
+ case 524: // ncr_protocol_value
+
+#line 263 "dhcp4_parser.yy" // lalr1.cc:672
+ { yyoutput << yysym.value.template as< ElementPtr > (); }
+#line 478 "dhcp4_parser.cc" // lalr1.cc:672
break;
+
default:
break;
}
void
Dhcp4Parser::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 195: // value
- case 199: // map_value
- case 245: // socket_type
- case 248: // outbound_interface_value
- case 270: // db_type
- case 357: // hr_mode
- case 506: // ncr_protocol_value
- case 513: // replace_client_name_value
+ case 201: // value
+ case 205: // map_value
+ case 246: // ddns_replace_client_name_value
+ case 265: // socket_type
+ case 268: // outbound_interface_value
+ case 290: // db_type
+ case 377: // hr_mode
+ case 524: // ncr_protocol_value
yylhs.value.emplace< ElementPtr > ();
break;
- case 178: // "boolean"
+ case 184: // "boolean"
yylhs.value.emplace< bool > ();
break;
- case 177: // "floating point"
+ case 183: // "floating point"
yylhs.value.emplace< double > ();
break;
- case 176: // "integer"
+ case 182: // "integer"
yylhs.value.emplace< int64_t > ();
break;
- case 175: // "constant string"
+ case 181: // "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 266 "dhcp4_parser.yy"
+#line 272 "dhcp4_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.NO_KEYWORD; }
-#line 741 "dhcp4_parser.cc"
+#line 738 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 4:
-#line 267 "dhcp4_parser.yy"
+#line 273 "dhcp4_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.CONFIG; }
-#line 747 "dhcp4_parser.cc"
+#line 744 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 6:
-#line 268 "dhcp4_parser.yy"
+#line 274 "dhcp4_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.DHCP4; }
-#line 753 "dhcp4_parser.cc"
+#line 750 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 8:
-#line 269 "dhcp4_parser.yy"
+#line 275 "dhcp4_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.INTERFACES_CONFIG; }
-#line 759 "dhcp4_parser.cc"
+#line 756 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 10:
-#line 270 "dhcp4_parser.yy"
+#line 276 "dhcp4_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.SUBNET4; }
-#line 765 "dhcp4_parser.cc"
+#line 762 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 12:
-#line 271 "dhcp4_parser.yy"
+#line 277 "dhcp4_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.POOLS; }
-#line 771 "dhcp4_parser.cc"
+#line 768 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 14:
-#line 272 "dhcp4_parser.yy"
+#line 278 "dhcp4_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.RESERVATIONS; }
-#line 777 "dhcp4_parser.cc"
+#line 774 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 16:
-#line 273 "dhcp4_parser.yy"
+#line 279 "dhcp4_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.DHCP4; }
-#line 783 "dhcp4_parser.cc"
+#line 780 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 18:
-#line 274 "dhcp4_parser.yy"
+#line 280 "dhcp4_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.OPTION_DEF; }
-#line 789 "dhcp4_parser.cc"
+#line 786 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 20:
-#line 275 "dhcp4_parser.yy"
+#line 281 "dhcp4_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.OPTION_DATA; }
-#line 795 "dhcp4_parser.cc"
+#line 792 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 22:
-#line 276 "dhcp4_parser.yy"
+#line 282 "dhcp4_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
-#line 801 "dhcp4_parser.cc"
+#line 798 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 24:
-#line 277 "dhcp4_parser.yy"
+#line 283 "dhcp4_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.DHCP_DDNS; }
-#line 807 "dhcp4_parser.cc"
+#line 804 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 26:
-#line 278 "dhcp4_parser.yy"
+#line 284 "dhcp4_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.LOGGING; }
-#line 813 "dhcp4_parser.cc"
+#line 810 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 28:
-#line 279 "dhcp4_parser.yy"
+#line 285 "dhcp4_parser.yy" // lalr1.cc:907
{ ctx.ctx_ = ctx.CONFIG_CONTROL; }
-#line 819 "dhcp4_parser.cc"
+#line 816 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 30:
-#line 287 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); }
-#line 825 "dhcp4_parser.cc"
+#line 293 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); }
+#line 822 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 31:
-#line 288 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); }
-#line 831 "dhcp4_parser.cc"
+#line 294 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); }
+#line 828 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 32:
-#line 289 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); }
-#line 837 "dhcp4_parser.cc"
+#line 295 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); }
+#line 834 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 33:
-#line 290 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); }
-#line 843 "dhcp4_parser.cc"
+#line 296 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); }
+#line 840 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 34:
-#line 291 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
-#line 849 "dhcp4_parser.cc"
+#line 297 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
+#line 846 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 35:
-#line 292 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 855 "dhcp4_parser.cc"
+#line 298 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
+#line 852 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 36:
-#line 293 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 861 "dhcp4_parser.cc"
+#line 299 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
+#line 858 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 37:
-#line 296 "dhcp4_parser.yy"
+#line 302 "dhcp4_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 870 "dhcp4_parser.cc"
+#line 867 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 38:
-#line 301 "dhcp4_parser.yy"
+#line 307 "dhcp4_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 881 "dhcp4_parser.cc"
+#line 878 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 39:
-#line 306 "dhcp4_parser.yy"
+#line 312 "dhcp4_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 891 "dhcp4_parser.cc"
+#line 888 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 40:
-#line 312 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 897 "dhcp4_parser.cc"
+#line 318 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
+#line 894 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 43:
-#line 319 "dhcp4_parser.yy"
+#line 325 "dhcp4_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 906 "dhcp4_parser.cc"
+#line 903 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 44:
-#line 323 "dhcp4_parser.yy"
+#line 329 "dhcp4_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 916 "dhcp4_parser.cc"
+#line 913 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 45:
-#line 330 "dhcp4_parser.yy"
+#line 336 "dhcp4_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
}
-#line 925 "dhcp4_parser.cc"
+#line 922 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 46:
-#line 333 "dhcp4_parser.yy"
+#line 339 "dhcp4_parser.yy" // lalr1.cc:907
{
// list parsing complete. Put any sanity checking here
}
-#line 933 "dhcp4_parser.cc"
+#line 930 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 49:
-#line 341 "dhcp4_parser.yy"
+#line 347 "dhcp4_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 942 "dhcp4_parser.cc"
+#line 939 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 50:
-#line 345 "dhcp4_parser.yy"
+#line 351 "dhcp4_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 951 "dhcp4_parser.cc"
+#line 948 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 51:
-#line 352 "dhcp4_parser.yy"
+#line 358 "dhcp4_parser.yy" // lalr1.cc:907
{
// List parsing about to start
}
-#line 959 "dhcp4_parser.cc"
+#line 956 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 52:
-#line 354 "dhcp4_parser.yy"
+#line 360 "dhcp4_parser.yy" // lalr1.cc:907
{
// list parsing complete. Put any sanity checking here
//ctx.stack_.pop_back();
}
-#line 968 "dhcp4_parser.cc"
+#line 965 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 55:
-#line 363 "dhcp4_parser.yy"
+#line 369 "dhcp4_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 977 "dhcp4_parser.cc"
+#line 974 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 56:
-#line 367 "dhcp4_parser.yy"
+#line 373 "dhcp4_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 986 "dhcp4_parser.cc"
+#line 983 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 57:
-#line 378 "dhcp4_parser.yy"
+#line 384 "dhcp4_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 997 "dhcp4_parser.cc"
+#line 994 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 58:
-#line 388 "dhcp4_parser.yy"
+#line 394 "dhcp4_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 1008 "dhcp4_parser.cc"
+#line 1005 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 59:
-#line 393 "dhcp4_parser.yy"
+#line 399 "dhcp4_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
// Dhcp4 is required
ctx.require("Dhcp4", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
}
-#line 1021 "dhcp4_parser.cc"
+#line 1018 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 68:
-#line 417 "dhcp4_parser.yy"
+#line 423 "dhcp4_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.DHCP4);
}
-#line 1034 "dhcp4_parser.cc"
+#line 1031 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 69:
-#line 424 "dhcp4_parser.yy"
+#line 430 "dhcp4_parser.yy" // lalr1.cc:907
{
// No global parameter is required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1044 "dhcp4_parser.cc"
+#line 1041 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 70:
-#line 432 "dhcp4_parser.yy"
+#line 438 "dhcp4_parser.yy" // lalr1.cc:907
{
// Parse the Dhcp4 map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1054 "dhcp4_parser.cc"
+#line 1051 "dhcp4_parser.cc" // lalr1.cc:907
break;
case 71:
-#line 436 "dhcp4_parser.yy"
+#line 442 "dhcp4_parser.yy" // lalr1.cc:907
{
// No global parameter is required
// parsing completed
}
-#line 1063 "dhcp4_parser.cc"
+#line 1060 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 116:
-#line 491 "dhcp4_parser.yy"
+ case 122:
+#line 503 "dhcp4_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 1072 "dhcp4_parser.cc"
+#line 1069 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 117:
-#line 496 "dhcp4_parser.yy"
+ case 123:
+#line 508 "dhcp4_parser.yy" // lalr1.cc:907
{
- ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("min-valid-lifetime", prf);
}
-#line 1081 "dhcp4_parser.cc"
+#line 1078 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 118:
-#line 501 "dhcp4_parser.yy"
+ case 124:
+#line 513 "dhcp4_parser.yy" // lalr1.cc:907
{
- ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("max-valid-lifetime", prf);
}
-#line 1090 "dhcp4_parser.cc"
+#line 1087 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 119:
-#line 506 "dhcp4_parser.yy"
+ case 125:
+#line 518 "dhcp4_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 1099 "dhcp4_parser.cc"
+#line 1096 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 120:
-#line 511 "dhcp4_parser.yy"
+ case 126:
+#line 523 "dhcp4_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 1108 "dhcp4_parser.cc"
+#line 1105 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 121:
-#line 516 "dhcp4_parser.yy"
+ case 127:
+#line 528 "dhcp4_parser.yy" // lalr1.cc:907
{
- ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr ctt(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("calculate-tee-times", ctt);
}
-#line 1117 "dhcp4_parser.cc"
+#line 1114 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 122:
-#line 521 "dhcp4_parser.yy"
+ case 128:
+#line 533 "dhcp4_parser.yy" // lalr1.cc:907
{
- ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr t1(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("t1-percent", t1);
}
-#line 1126 "dhcp4_parser.cc"
+#line 1123 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 123:
-#line 526 "dhcp4_parser.yy"
+ case 129:
+#line 538 "dhcp4_parser.yy" // lalr1.cc:907
{
- ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr t2(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("t2-percent", t2);
}
-#line 1135 "dhcp4_parser.cc"
+#line 1132 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 124:
-#line 531 "dhcp4_parser.yy"
+ case 130:
+#line 543 "dhcp4_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 1144 "dhcp4_parser.cc"
+#line 1141 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 125:
-#line 536 "dhcp4_parser.yy"
+ case 131:
+#line 548 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1152 "dhcp4_parser.cc"
+#line 1149 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 126:
-#line 538 "dhcp4_parser.yy"
+ case 132:
+#line 550 "dhcp4_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 1162 "dhcp4_parser.cc"
+#line 1159 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 127:
-#line 544 "dhcp4_parser.yy"
+ case 133:
+#line 556 "dhcp4_parser.yy" // lalr1.cc:907
{
- ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr echo(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("echo-client-id", echo);
}
-#line 1171 "dhcp4_parser.cc"
+#line 1168 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 128:
-#line 549 "dhcp4_parser.yy"
+ case 134:
+#line 561 "dhcp4_parser.yy" // lalr1.cc:907
{
- ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr match(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("match-client-id", match);
}
-#line 1180 "dhcp4_parser.cc"
+#line 1177 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 129:
-#line 554 "dhcp4_parser.yy"
+ case 135:
+#line 566 "dhcp4_parser.yy" // lalr1.cc:907
{
- ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr prf(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("authoritative", prf);
}
-#line 1189 "dhcp4_parser.cc"
+#line 1186 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 130:
-#line 560 "dhcp4_parser.yy"
+ case 136:
+#line 571 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
+ ctx.stack_.back()->set("ddns-send-updates", b);
+}
+#line 1195 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 137:
+#line 576 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
+ ctx.stack_.back()->set("ddns-override-no-update", b);
+}
+#line 1204 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 138:
+#line 581 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
+ ctx.stack_.back()->set("ddns-override-client-update", b);
+}
+#line 1213 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 139:
+#line 586 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ ctx.enter(ctx.REPLACE_CLIENT_NAME);
+}
+#line 1221 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 140:
+#line 588 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as< ElementPtr > ());
+ ctx.leave();
+}
+#line 1230 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 141:
+#line 594 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
+ }
+#line 1238 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 142:
+#line 597 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
+ }
+#line 1246 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 143:
+#line 600 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
+ }
+#line 1254 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 144:
+#line 603 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
+ }
+#line 1262 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 145:
+#line 606 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ error(yystack_[0].location, "boolean values for the replace-client-name are "
+ "no longer supported");
+ }
+#line 1271 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 146:
+#line 612 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ ctx.enter(ctx.NO_KEYWORD);
+}
+#line 1279 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 147:
+#line 614 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ctx.stack_.back()->set("ddns-generated-prefix", s);
+ ctx.leave();
+}
+#line 1289 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 148:
+#line 620 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ ctx.enter(ctx.NO_KEYWORD);
+}
+#line 1297 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 149:
+#line 622 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ctx.stack_.back()->set("ddns-qualifying-suffix", s);
+ ctx.leave();
+}
+#line 1307 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 150:
+#line 628 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ ctx.enter(ctx.NO_KEYWORD);
+}
+#line 1315 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 151:
+#line 630 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ 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 1325 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 152:
+#line 636 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ ctx.enter(ctx.NO_KEYWORD);
+}
+#line 1333 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 153:
+#line 638 "dhcp4_parser.yy" // lalr1.cc:907
+ {
+ 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 1343 "dhcp4_parser.cc" // lalr1.cc:907
+ break;
+
+ case 154:
+#line 644 "dhcp4_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 1200 "dhcp4_parser.cc"
+#line 1354 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 131:
-#line 565 "dhcp4_parser.yy"
+ case 155:
+#line 649 "dhcp4_parser.yy" // lalr1.cc:907
{
// No interfaces config param is required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1210 "dhcp4_parser.cc"
+#line 1364 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 141:
-#line 584 "dhcp4_parser.yy"
+ case 165:
+#line 668 "dhcp4_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 1220 "dhcp4_parser.cc"
+#line 1374 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 142:
-#line 588 "dhcp4_parser.yy"
+ case 166:
+#line 672 "dhcp4_parser.yy" // lalr1.cc:907
{
// No interfaces config param is required
// parsing completed
}
-#line 1229 "dhcp4_parser.cc"
+#line 1383 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 143:
-#line 593 "dhcp4_parser.yy"
+ case 167:
+#line 677 "dhcp4_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 1240 "dhcp4_parser.cc"
+#line 1394 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 144:
-#line 598 "dhcp4_parser.yy"
+ case 168:
+#line 682 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1249 "dhcp4_parser.cc"
+#line 1403 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 145:
-#line 603 "dhcp4_parser.yy"
+ case 169:
+#line 687 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.DHCP_SOCKET_TYPE);
}
-#line 1257 "dhcp4_parser.cc"
+#line 1411 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 146:
-#line 605 "dhcp4_parser.yy"
+ case 170:
+#line 689 "dhcp4_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1266 "dhcp4_parser.cc"
+#line 1420 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 147:
-#line 610 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); }
-#line 1272 "dhcp4_parser.cc"
+ case 171:
+#line 694 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); }
+#line 1426 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 148:
-#line 611 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); }
-#line 1278 "dhcp4_parser.cc"
+ case 172:
+#line 695 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); }
+#line 1432 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 149:
-#line 614 "dhcp4_parser.yy"
+ case 173:
+#line 698 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.OUTBOUND_INTERFACE);
}
-#line 1286 "dhcp4_parser.cc"
+#line 1440 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 150:
-#line 616 "dhcp4_parser.yy"
+ case 174:
+#line 700 "dhcp4_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1295 "dhcp4_parser.cc"
+#line 1449 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 151:
-#line 621 "dhcp4_parser.yy"
+ case 175:
+#line 705 "dhcp4_parser.yy" // lalr1.cc:907
{
- yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location)));
+ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location)));
}
-#line 1303 "dhcp4_parser.cc"
+#line 1457 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 152:
-#line 623 "dhcp4_parser.yy"
+ case 176:
+#line 707 "dhcp4_parser.yy" // lalr1.cc:907
{
- yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location)));
+ yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location)));
}
-#line 1311 "dhcp4_parser.cc"
+#line 1465 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 153:
-#line 627 "dhcp4_parser.yy"
+ case 177:
+#line 711 "dhcp4_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 1320 "dhcp4_parser.cc"
+#line 1474 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 154:
-#line 633 "dhcp4_parser.yy"
+ case 178:
+#line 717 "dhcp4_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 1331 "dhcp4_parser.cc"
+#line 1485 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 155:
-#line 638 "dhcp4_parser.yy"
+ case 179:
+#line 722 "dhcp4_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 1342 "dhcp4_parser.cc"
+#line 1496 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 156:
-#line 645 "dhcp4_parser.yy"
+ case 180:
+#line 729 "dhcp4_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 1353 "dhcp4_parser.cc"
+#line 1507 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 157:
-#line 650 "dhcp4_parser.yy"
+ case 181:
+#line 734 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1362 "dhcp4_parser.cc"
+#line 1516 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 161:
-#line 660 "dhcp4_parser.yy"
+ case 185:
+#line 744 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1370 "dhcp4_parser.cc"
+#line 1524 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 162:
-#line 662 "dhcp4_parser.yy"
+ case 186:
+#line 746 "dhcp4_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 1390 "dhcp4_parser.cc"
+#line 1544 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 163:
-#line 678 "dhcp4_parser.yy"
+ case 187:
+#line 762 "dhcp4_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 1401 "dhcp4_parser.cc"
+#line 1555 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 164:
-#line 683 "dhcp4_parser.yy"
+ case 188:
+#line 767 "dhcp4_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 1412 "dhcp4_parser.cc"
+#line 1566 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 165:
-#line 690 "dhcp4_parser.yy"
+ case 189:
+#line 774 "dhcp4_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 1423 "dhcp4_parser.cc"
+#line 1577 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 166:
-#line 695 "dhcp4_parser.yy"
+ case 190:
+#line 779 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1432 "dhcp4_parser.cc"
+#line 1586 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 171:
-#line 708 "dhcp4_parser.yy"
+ case 195:
+#line 792 "dhcp4_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 1442 "dhcp4_parser.cc"
+#line 1596 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 172:
-#line 712 "dhcp4_parser.yy"
+ case 196:
+#line 796 "dhcp4_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 1452 "dhcp4_parser.cc"
+#line 1606 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 196:
-#line 745 "dhcp4_parser.yy"
+ case 220:
+#line 829 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.DATABASE_TYPE);
}
-#line 1460 "dhcp4_parser.cc"
+#line 1614 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 197:
-#line 747 "dhcp4_parser.yy"
+ case 221:
+#line 831 "dhcp4_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 1469 "dhcp4_parser.cc"
+#line 1623 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 198:
-#line 752 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
-#line 1475 "dhcp4_parser.cc"
+ case 222:
+#line 836 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
+#line 1629 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 199:
-#line 753 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
-#line 1481 "dhcp4_parser.cc"
+ case 223:
+#line 837 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
+#line 1635 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 200:
-#line 754 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
-#line 1487 "dhcp4_parser.cc"
+ case 224:
+#line 838 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
+#line 1641 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 201:
-#line 755 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
-#line 1493 "dhcp4_parser.cc"
+ case 225:
+#line 839 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
+#line 1647 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 202:
-#line 758 "dhcp4_parser.yy"
+ case 226:
+#line 842 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1501 "dhcp4_parser.cc"
+#line 1655 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 203:
-#line 760 "dhcp4_parser.yy"
+ case 227:
+#line 844 "dhcp4_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 1511 "dhcp4_parser.cc"
+#line 1665 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 204:
-#line 766 "dhcp4_parser.yy"
+ case 228:
+#line 850 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1519 "dhcp4_parser.cc"
+#line 1673 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 205:
-#line 768 "dhcp4_parser.yy"
+ case 229:
+#line 852 "dhcp4_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 1529 "dhcp4_parser.cc"
+#line 1683 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 206:
-#line 774 "dhcp4_parser.yy"
+ case 230:
+#line 858 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1537 "dhcp4_parser.cc"
+#line 1691 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 207:
-#line 776 "dhcp4_parser.yy"
+ case 231:
+#line 860 "dhcp4_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 1547 "dhcp4_parser.cc"
+#line 1701 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 208:
-#line 782 "dhcp4_parser.yy"
+ case 232:
+#line 866 "dhcp4_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 1556 "dhcp4_parser.cc"
+#line 1710 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 209:
-#line 787 "dhcp4_parser.yy"
+ case 233:
+#line 871 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1564 "dhcp4_parser.cc"
+#line 1718 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 210:
-#line 789 "dhcp4_parser.yy"
+ case 234:
+#line 873 "dhcp4_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 1574 "dhcp4_parser.cc"
+#line 1728 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 211:
-#line 795 "dhcp4_parser.yy"
+ case 235:
+#line 879 "dhcp4_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 1583 "dhcp4_parser.cc"
+#line 1737 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 212:
-#line 800 "dhcp4_parser.yy"
+ case 236:
+#line 884 "dhcp4_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 1592 "dhcp4_parser.cc"
+#line 1746 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 213:
-#line 805 "dhcp4_parser.yy"
+ case 237:
+#line 889 "dhcp4_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 1601 "dhcp4_parser.cc"
+#line 1755 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 214:
-#line 810 "dhcp4_parser.yy"
+ case 238:
+#line 894 "dhcp4_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 1610 "dhcp4_parser.cc"
+#line 1764 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 215:
-#line 815 "dhcp4_parser.yy"
+ case 239:
+#line 899 "dhcp4_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 1619 "dhcp4_parser.cc"
+#line 1773 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 216:
-#line 820 "dhcp4_parser.yy"
+ case 240:
+#line 904 "dhcp4_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 1628 "dhcp4_parser.cc"
+#line 1782 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 217:
-#line 825 "dhcp4_parser.yy"
+ case 241:
+#line 909 "dhcp4_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 1637 "dhcp4_parser.cc"
+#line 1791 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 218:
-#line 830 "dhcp4_parser.yy"
+ case 242:
+#line 914 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1645 "dhcp4_parser.cc"
+#line 1799 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 219:
-#line 832 "dhcp4_parser.yy"
+ case 243:
+#line 916 "dhcp4_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 1655 "dhcp4_parser.cc"
+#line 1809 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 220:
-#line 838 "dhcp4_parser.yy"
+ case 244:
+#line 922 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1663 "dhcp4_parser.cc"
+#line 1817 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 221:
-#line 840 "dhcp4_parser.yy"
+ case 245:
+#line 924 "dhcp4_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 1673 "dhcp4_parser.cc"
+#line 1827 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 222:
-#line 846 "dhcp4_parser.yy"
+ case 246:
+#line 930 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1681 "dhcp4_parser.cc"
+#line 1835 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 223:
-#line 848 "dhcp4_parser.yy"
+ case 247:
+#line 932 "dhcp4_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 1691 "dhcp4_parser.cc"
+#line 1845 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 224:
-#line 854 "dhcp4_parser.yy"
+ case 248:
+#line 938 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1699 "dhcp4_parser.cc"
+#line 1853 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 225:
-#line 856 "dhcp4_parser.yy"
+ case 249:
+#line 940 "dhcp4_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 1709 "dhcp4_parser.cc"
+#line 1863 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 226:
-#line 862 "dhcp4_parser.yy"
+ case 250:
+#line 946 "dhcp4_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 1718 "dhcp4_parser.cc"
+#line 1872 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 227:
-#line 867 "dhcp4_parser.yy"
+ case 251:
+#line 951 "dhcp4_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 1727 "dhcp4_parser.cc"
+#line 1881 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 228:
-#line 872 "dhcp4_parser.yy"
+ case 252:
+#line 956 "dhcp4_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-row-errors", n);
}
-#line 1736 "dhcp4_parser.cc"
+#line 1890 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 229:
-#line 878 "dhcp4_parser.yy"
+ case 253:
+#line 962 "dhcp4_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 1747 "dhcp4_parser.cc"
+#line 1901 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 230:
-#line 883 "dhcp4_parser.yy"
+ case 254:
+#line 967 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1756 "dhcp4_parser.cc"
+#line 1910 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 238:
-#line 899 "dhcp4_parser.yy"
+ case 262:
+#line 983 "dhcp4_parser.yy" // lalr1.cc:907
{
ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(duid);
}
-#line 1765 "dhcp4_parser.cc"
+#line 1919 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 239:
-#line 904 "dhcp4_parser.yy"
+ case 263:
+#line 988 "dhcp4_parser.yy" // lalr1.cc:907
{
ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(hwaddr);
}
-#line 1774 "dhcp4_parser.cc"
+#line 1928 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 240:
-#line 909 "dhcp4_parser.yy"
+ case 264:
+#line 993 "dhcp4_parser.yy" // lalr1.cc:907
{
ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(circuit);
}
-#line 1783 "dhcp4_parser.cc"
+#line 1937 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 241:
-#line 914 "dhcp4_parser.yy"
+ case 265:
+#line 998 "dhcp4_parser.yy" // lalr1.cc:907
{
ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(client);
}
-#line 1792 "dhcp4_parser.cc"
+#line 1946 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 242:
-#line 919 "dhcp4_parser.yy"
+ case 266:
+#line 1003 "dhcp4_parser.yy" // lalr1.cc:907
{
ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(flex_id);
}
-#line 1801 "dhcp4_parser.cc"
+#line 1955 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 243:
-#line 924 "dhcp4_parser.yy"
+ case 267:
+#line 1008 "dhcp4_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 1812 "dhcp4_parser.cc"
+#line 1966 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 244:
-#line 929 "dhcp4_parser.yy"
+ case 268:
+#line 1013 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1821 "dhcp4_parser.cc"
+#line 1975 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 249:
-#line 942 "dhcp4_parser.yy"
+ case 273:
+#line 1026 "dhcp4_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 1831 "dhcp4_parser.cc"
+#line 1985 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 250:
-#line 946 "dhcp4_parser.yy"
+ case 274:
+#line 1030 "dhcp4_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 1841 "dhcp4_parser.cc"
+#line 1995 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 251:
-#line 952 "dhcp4_parser.yy"
+ case 275:
+#line 1036 "dhcp4_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 1851 "dhcp4_parser.cc"
+#line 2005 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 252:
-#line 956 "dhcp4_parser.yy"
+ case 276:
+#line 1040 "dhcp4_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 1861 "dhcp4_parser.cc"
+#line 2015 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 258:
-#line 971 "dhcp4_parser.yy"
+ case 282:
+#line 1055 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1869 "dhcp4_parser.cc"
+#line 2023 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 259:
-#line 973 "dhcp4_parser.yy"
+ case 283:
+#line 1057 "dhcp4_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 1879 "dhcp4_parser.cc"
+#line 2033 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 260:
-#line 979 "dhcp4_parser.yy"
+ case 284:
+#line 1063 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1887 "dhcp4_parser.cc"
+#line 2041 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 261:
-#line 981 "dhcp4_parser.yy"
+ case 285:
+#line 1065 "dhcp4_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 1896 "dhcp4_parser.cc"
+#line 2050 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 262:
-#line 987 "dhcp4_parser.yy"
+ case 286:
+#line 1071 "dhcp4_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 1907 "dhcp4_parser.cc"
+#line 2061 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 263:
-#line 992 "dhcp4_parser.yy"
+ case 287:
+#line 1076 "dhcp4_parser.yy" // lalr1.cc:907
{
// No expired lease parameter is required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1917 "dhcp4_parser.cc"
+#line 2071 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 272:
-#line 1010 "dhcp4_parser.yy"
+ case 296:
+#line 1094 "dhcp4_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 1926 "dhcp4_parser.cc"
+#line 2080 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 273:
-#line 1015 "dhcp4_parser.yy"
+ case 297:
+#line 1099 "dhcp4_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 1935 "dhcp4_parser.cc"
+#line 2089 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 274:
-#line 1020 "dhcp4_parser.yy"
+ case 298:
+#line 1104 "dhcp4_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 1944 "dhcp4_parser.cc"
+#line 2098 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 275:
-#line 1025 "dhcp4_parser.yy"
+ case 299:
+#line 1109 "dhcp4_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 1953 "dhcp4_parser.cc"
+#line 2107 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 276:
-#line 1030 "dhcp4_parser.yy"
+ case 300:
+#line 1114 "dhcp4_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 1962 "dhcp4_parser.cc"
+#line 2116 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 277:
-#line 1035 "dhcp4_parser.yy"
+ case 301:
+#line 1119 "dhcp4_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 1971 "dhcp4_parser.cc"
+#line 2125 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 278:
-#line 1043 "dhcp4_parser.yy"
+ case 302:
+#line 1127 "dhcp4_parser.yy" // lalr1.cc:907
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("subnet4", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.SUBNET4);
}
-#line 1982 "dhcp4_parser.cc"
+#line 2136 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 279:
-#line 1048 "dhcp4_parser.yy"
+ case 303:
+#line 1132 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1991 "dhcp4_parser.cc"
+#line 2145 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 284:
-#line 1068 "dhcp4_parser.yy"
+ case 308:
+#line 1152 "dhcp4_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 2001 "dhcp4_parser.cc"
+#line 2155 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 285:
-#line 1072 "dhcp4_parser.yy"
+ case 309:
+#line 1156 "dhcp4_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 2027 "dhcp4_parser.cc"
+#line 2181 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 286:
-#line 1094 "dhcp4_parser.yy"
+ case 310:
+#line 1178 "dhcp4_parser.yy" // lalr1.cc:907
{
// Parse the subnet4 list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 2037 "dhcp4_parser.cc"
+#line 2191 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 287:
-#line 1098 "dhcp4_parser.yy"
+ case 311:
+#line 1182 "dhcp4_parser.yy" // lalr1.cc:907
{
// The subnet subnet4 parameter is required
ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 2047 "dhcp4_parser.cc"
+#line 2201 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 319:
-#line 1141 "dhcp4_parser.yy"
+ case 351:
+#line 1233 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2055 "dhcp4_parser.cc"
+#line 2209 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 320:
-#line 1143 "dhcp4_parser.yy"
+ case 352:
+#line 1235 "dhcp4_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 2065 "dhcp4_parser.cc"
+#line 2219 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 321:
-#line 1149 "dhcp4_parser.yy"
+ case 353:
+#line 1241 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2073 "dhcp4_parser.cc"
+#line 2227 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 322:
-#line 1151 "dhcp4_parser.yy"
+ case 354:
+#line 1243 "dhcp4_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("4o6-interface", iface);
ctx.leave();
}
-#line 2083 "dhcp4_parser.cc"
+#line 2237 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 323:
-#line 1157 "dhcp4_parser.yy"
+ case 355:
+#line 1249 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2091 "dhcp4_parser.cc"
+#line 2245 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 324:
-#line 1159 "dhcp4_parser.yy"
+ case 356:
+#line 1251 "dhcp4_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("4o6-interface-id", iface);
ctx.leave();
}
-#line 2101 "dhcp4_parser.cc"
+#line 2255 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 325:
-#line 1165 "dhcp4_parser.yy"
+ case 357:
+#line 1257 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2109 "dhcp4_parser.cc"
+#line 2263 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 326:
-#line 1167 "dhcp4_parser.yy"
+ case 358:
+#line 1259 "dhcp4_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("4o6-subnet", iface);
ctx.leave();
}
-#line 2119 "dhcp4_parser.cc"
+#line 2273 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 327:
-#line 1173 "dhcp4_parser.yy"
+ case 359:
+#line 1265 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2127 "dhcp4_parser.cc"
+#line 2281 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 328:
-#line 1175 "dhcp4_parser.yy"
+ case 360:
+#line 1267 "dhcp4_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 2137 "dhcp4_parser.cc"
+#line 2291 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 329:
-#line 1181 "dhcp4_parser.yy"
+ case 361:
+#line 1273 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2145 "dhcp4_parser.cc"
+#line 2299 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 330:
-#line 1183 "dhcp4_parser.yy"
+ case 362:
+#line 1275 "dhcp4_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 2155 "dhcp4_parser.cc"
+#line 2309 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 331:
-#line 1189 "dhcp4_parser.yy"
+ case 363:
+#line 1281 "dhcp4_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 2166 "dhcp4_parser.cc"
+#line 2320 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 332:
-#line 1194 "dhcp4_parser.yy"
+ case 364:
+#line 1286 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2175 "dhcp4_parser.cc"
+#line 2329 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 333:
-#line 1199 "dhcp4_parser.yy"
+ case 365:
+#line 1291 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.RESERVATION_MODE);
}
-#line 2183 "dhcp4_parser.cc"
+#line 2337 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 334:
-#line 1201 "dhcp4_parser.yy"
+ case 366:
+#line 1293 "dhcp4_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 2192 "dhcp4_parser.cc"
+#line 2346 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 335:
-#line 1206 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
-#line 2198 "dhcp4_parser.cc"
+ case 367:
+#line 1298 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
+#line 2352 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 336:
-#line 1207 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
-#line 2204 "dhcp4_parser.cc"
+ case 368:
+#line 1299 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
+#line 2358 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 337:
-#line 1208 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
-#line 2210 "dhcp4_parser.cc"
+ case 369:
+#line 1300 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
+#line 2364 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 338:
-#line 1209 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
-#line 2216 "dhcp4_parser.cc"
+ case 370:
+#line 1301 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
+#line 2370 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 339:
-#line 1212 "dhcp4_parser.yy"
+ case 371:
+#line 1304 "dhcp4_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 2225 "dhcp4_parser.cc"
+#line 2379 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 340:
-#line 1219 "dhcp4_parser.yy"
+ case 372:
+#line 1311 "dhcp4_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 2236 "dhcp4_parser.cc"
+#line 2390 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 341:
-#line 1224 "dhcp4_parser.yy"
+ case 373:
+#line 1316 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2245 "dhcp4_parser.cc"
+#line 2399 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 346:
-#line 1239 "dhcp4_parser.yy"
+ case 378:
+#line 1331 "dhcp4_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 2255 "dhcp4_parser.cc"
+#line 2409 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 347:
-#line 1243 "dhcp4_parser.yy"
+ case 379:
+#line 1335 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
}
-#line 2263 "dhcp4_parser.cc"
+#line 2417 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 374:
-#line 1281 "dhcp4_parser.yy"
+ case 414:
+#line 1381 "dhcp4_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 2274 "dhcp4_parser.cc"
+#line 2428 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 375:
-#line 1286 "dhcp4_parser.yy"
+ case 415:
+#line 1386 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2283 "dhcp4_parser.cc"
+#line 2437 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 376:
-#line 1294 "dhcp4_parser.yy"
+ case 416:
+#line 1394 "dhcp4_parser.yy" // lalr1.cc:907
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 2292 "dhcp4_parser.cc"
+#line 2446 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 377:
-#line 1297 "dhcp4_parser.yy"
+ case 417:
+#line 1397 "dhcp4_parser.yy" // lalr1.cc:907
{
// parsing completed
}
-#line 2300 "dhcp4_parser.cc"
+#line 2454 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 382:
-#line 1313 "dhcp4_parser.yy"
+ case 422:
+#line 1413 "dhcp4_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 2310 "dhcp4_parser.cc"
+#line 2464 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 383:
-#line 1317 "dhcp4_parser.yy"
+ case 423:
+#line 1417 "dhcp4_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 2322 "dhcp4_parser.cc"
+#line 2476 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 384:
-#line 1328 "dhcp4_parser.yy"
+ case 424:
+#line 1428 "dhcp4_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 2332 "dhcp4_parser.cc"
+#line 2486 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 385:
-#line 1332 "dhcp4_parser.yy"
+ case 425:
+#line 1432 "dhcp4_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 2344 "dhcp4_parser.cc"
+#line 2498 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 401:
-#line 1364 "dhcp4_parser.yy"
+ case 441:
+#line 1464 "dhcp4_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 2353 "dhcp4_parser.cc"
+#line 2507 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 403:
-#line 1371 "dhcp4_parser.yy"
+ case 443:
+#line 1471 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2361 "dhcp4_parser.cc"
+#line 2515 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 404:
-#line 1373 "dhcp4_parser.yy"
+ case 444:
+#line 1473 "dhcp4_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 2371 "dhcp4_parser.cc"
+#line 2525 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 405:
-#line 1379 "dhcp4_parser.yy"
+ case 445:
+#line 1479 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2379 "dhcp4_parser.cc"
+#line 2533 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 406:
-#line 1381 "dhcp4_parser.yy"
+ case 446:
+#line 1481 "dhcp4_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 2389 "dhcp4_parser.cc"
+#line 2543 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 407:
-#line 1387 "dhcp4_parser.yy"
+ case 447:
+#line 1487 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2397 "dhcp4_parser.cc"
+#line 2551 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 408:
-#line 1389 "dhcp4_parser.yy"
+ case 448:
+#line 1489 "dhcp4_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 2407 "dhcp4_parser.cc"
+#line 2561 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 410:
-#line 1397 "dhcp4_parser.yy"
+ case 450:
+#line 1497 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2415 "dhcp4_parser.cc"
+#line 2569 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 411:
-#line 1399 "dhcp4_parser.yy"
+ case 451:
+#line 1499 "dhcp4_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 2425 "dhcp4_parser.cc"
+#line 2579 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 412:
-#line 1405 "dhcp4_parser.yy"
+ case 452:
+#line 1505 "dhcp4_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 2434 "dhcp4_parser.cc"
+#line 2588 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 413:
-#line 1414 "dhcp4_parser.yy"
+ case 453:
+#line 1514 "dhcp4_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 2445 "dhcp4_parser.cc"
+#line 2599 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 414:
-#line 1419 "dhcp4_parser.yy"
+ case 454:
+#line 1519 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2454 "dhcp4_parser.cc"
+#line 2608 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 419:
-#line 1438 "dhcp4_parser.yy"
+ case 459:
+#line 1538 "dhcp4_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 2464 "dhcp4_parser.cc"
+#line 2618 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 420:
-#line 1442 "dhcp4_parser.yy"
+ case 460:
+#line 1542 "dhcp4_parser.yy" // lalr1.cc:907
{
/// @todo: the code or name parameters are required.
ctx.stack_.pop_back();
}
-#line 2473 "dhcp4_parser.cc"
+#line 2627 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 421:
-#line 1450 "dhcp4_parser.yy"
+ case 461:
+#line 1550 "dhcp4_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 2483 "dhcp4_parser.cc"
+#line 2637 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 422:
-#line 1454 "dhcp4_parser.yy"
+ case 462:
+#line 1554 "dhcp4_parser.yy" // lalr1.cc:907
{
/// @todo: the code or name parameters are required.
// parsing completed
}
-#line 2492 "dhcp4_parser.cc"
+#line 2646 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 437:
-#line 1487 "dhcp4_parser.yy"
+ case 477:
+#line 1587 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2500 "dhcp4_parser.cc"
+#line 2654 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 438:
-#line 1489 "dhcp4_parser.yy"
+ case 478:
+#line 1589 "dhcp4_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 2510 "dhcp4_parser.cc"
+#line 2664 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 441:
-#line 1499 "dhcp4_parser.yy"
+ case 481:
+#line 1599 "dhcp4_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 2519 "dhcp4_parser.cc"
+#line 2673 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 442:
-#line 1504 "dhcp4_parser.yy"
+ case 482:
+#line 1604 "dhcp4_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 2528 "dhcp4_parser.cc"
+#line 2682 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 443:
-#line 1512 "dhcp4_parser.yy"
+ case 483:
+#line 1612 "dhcp4_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 2539 "dhcp4_parser.cc"
+#line 2693 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 444:
-#line 1517 "dhcp4_parser.yy"
+ case 484:
+#line 1617 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2548 "dhcp4_parser.cc"
+#line 2702 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 449:
-#line 1532 "dhcp4_parser.yy"
+ case 489:
+#line 1632 "dhcp4_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 2558 "dhcp4_parser.cc"
+#line 2712 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 450:
-#line 1536 "dhcp4_parser.yy"
+ case 490:
+#line 1636 "dhcp4_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 2568 "dhcp4_parser.cc"
+#line 2722 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 451:
-#line 1542 "dhcp4_parser.yy"
+ case 491:
+#line 1642 "dhcp4_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 2578 "dhcp4_parser.cc"
+#line 2732 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 452:
-#line 1546 "dhcp4_parser.yy"
+ case 492:
+#line 1646 "dhcp4_parser.yy" // lalr1.cc:907
{
// The pool parameter is required.
ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 2588 "dhcp4_parser.cc"
+#line 2742 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 462:
-#line 1565 "dhcp4_parser.yy"
+ case 502:
+#line 1665 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2596 "dhcp4_parser.cc"
+#line 2750 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 463:
-#line 1567 "dhcp4_parser.yy"
+ case 503:
+#line 1667 "dhcp4_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 2606 "dhcp4_parser.cc"
+#line 2760 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 464:
-#line 1573 "dhcp4_parser.yy"
+ case 504:
+#line 1673 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2614 "dhcp4_parser.cc"
+#line 2768 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 465:
-#line 1575 "dhcp4_parser.yy"
+ case 505:
+#line 1675 "dhcp4_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 2641 "dhcp4_parser.cc"
+#line 2795 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 466:
-#line 1598 "dhcp4_parser.yy"
+ case 506:
+#line 1698 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2649 "dhcp4_parser.cc"
+#line 2803 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 467:
-#line 1600 "dhcp4_parser.yy"
+ case 507:
+#line 1700 "dhcp4_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 2678 "dhcp4_parser.cc"
+#line 2832 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 468:
-#line 1628 "dhcp4_parser.yy"
+ case 508:
+#line 1728 "dhcp4_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 2689 "dhcp4_parser.cc"
+#line 2843 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 469:
-#line 1633 "dhcp4_parser.yy"
+ case 509:
+#line 1733 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2698 "dhcp4_parser.cc"
+#line 2852 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 474:
-#line 1646 "dhcp4_parser.yy"
+ case 514:
+#line 1746 "dhcp4_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 2708 "dhcp4_parser.cc"
+#line 2862 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 475:
-#line 1650 "dhcp4_parser.yy"
+ case 515:
+#line 1750 "dhcp4_parser.yy" // lalr1.cc:907
{
/// @todo: an identifier parameter is required.
ctx.stack_.pop_back();
}
-#line 2717 "dhcp4_parser.cc"
+#line 2871 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 476:
-#line 1655 "dhcp4_parser.yy"
+ case 516:
+#line 1755 "dhcp4_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 2727 "dhcp4_parser.cc"
+#line 2881 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 477:
-#line 1659 "dhcp4_parser.yy"
+ case 517:
+#line 1759 "dhcp4_parser.yy" // lalr1.cc:907
{
/// @todo: an identifier parameter is required.
// parsing completed
}
-#line 2736 "dhcp4_parser.cc"
+#line 2890 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 497:
-#line 1690 "dhcp4_parser.yy"
+ case 537:
+#line 1790 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2744 "dhcp4_parser.cc"
+#line 2898 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 498:
-#line 1692 "dhcp4_parser.yy"
+ case 538:
+#line 1792 "dhcp4_parser.yy" // lalr1.cc:907
{
- ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr next_server(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("next-server", next_server);
ctx.leave();
}
-#line 2754 "dhcp4_parser.cc"
+#line 2908 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 499:
-#line 1698 "dhcp4_parser.yy"
+ case 539:
+#line 1798 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2762 "dhcp4_parser.cc"
+#line 2916 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 500:
-#line 1700 "dhcp4_parser.yy"
+ case 540:
+#line 1800 "dhcp4_parser.yy" // lalr1.cc:907
{
- ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr srv(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-hostname", srv);
ctx.leave();
}
-#line 2772 "dhcp4_parser.cc"
+#line 2926 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 501:
-#line 1706 "dhcp4_parser.yy"
+ case 541:
+#line 1806 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2780 "dhcp4_parser.cc"
+#line 2934 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 502:
-#line 1708 "dhcp4_parser.yy"
+ case 542:
+#line 1808 "dhcp4_parser.yy" // lalr1.cc:907
{
- ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr bootfile(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("boot-file-name", bootfile);
ctx.leave();
}
-#line 2790 "dhcp4_parser.cc"
+#line 2944 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 503:
-#line 1714 "dhcp4_parser.yy"
+ case 543:
+#line 1814 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2798 "dhcp4_parser.cc"
+#line 2952 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 504:
-#line 1716 "dhcp4_parser.yy"
+ case 544:
+#line 1816 "dhcp4_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 2808 "dhcp4_parser.cc"
+#line 2962 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 505:
-#line 1722 "dhcp4_parser.yy"
+ case 545:
+#line 1822 "dhcp4_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 2819 "dhcp4_parser.cc"
+#line 2973 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 506:
-#line 1727 "dhcp4_parser.yy"
+ case 546:
+#line 1827 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2828 "dhcp4_parser.cc"
+#line 2982 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 507:
-#line 1732 "dhcp4_parser.yy"
+ case 547:
+#line 1832 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2836 "dhcp4_parser.cc"
+#line 2990 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 508:
-#line 1734 "dhcp4_parser.yy"
+ case 548:
+#line 1834 "dhcp4_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 2846 "dhcp4_parser.cc"
+#line 3000 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 509:
-#line 1740 "dhcp4_parser.yy"
+ case 549:
+#line 1840 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2854 "dhcp4_parser.cc"
+#line 3008 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 510:
-#line 1742 "dhcp4_parser.yy"
+ case 550:
+#line 1842 "dhcp4_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 2864 "dhcp4_parser.cc"
+#line 3018 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 511:
-#line 1748 "dhcp4_parser.yy"
+ case 551:
+#line 1848 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2872 "dhcp4_parser.cc"
+#line 3026 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 512:
-#line 1750 "dhcp4_parser.yy"
+ case 552:
+#line 1850 "dhcp4_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("client-id", hw);
ctx.leave();
}
-#line 2882 "dhcp4_parser.cc"
+#line 3036 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 513:
-#line 1756 "dhcp4_parser.yy"
+ case 553:
+#line 1856 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2890 "dhcp4_parser.cc"
+#line 3044 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 514:
-#line 1758 "dhcp4_parser.yy"
+ case 554:
+#line 1858 "dhcp4_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("circuit-id", hw);
ctx.leave();
}
-#line 2900 "dhcp4_parser.cc"
+#line 3054 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 515:
-#line 1764 "dhcp4_parser.yy"
+ case 555:
+#line 1864 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2908 "dhcp4_parser.cc"
+#line 3062 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 516:
-#line 1766 "dhcp4_parser.yy"
+ case 556:
+#line 1866 "dhcp4_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 2918 "dhcp4_parser.cc"
+#line 3072 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 517:
-#line 1772 "dhcp4_parser.yy"
+ case 557:
+#line 1872 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2926 "dhcp4_parser.cc"
+#line 3080 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 518:
-#line 1774 "dhcp4_parser.yy"
+ case 558:
+#line 1874 "dhcp4_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 2936 "dhcp4_parser.cc"
+#line 3090 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 519:
-#line 1780 "dhcp4_parser.yy"
+ case 559:
+#line 1880 "dhcp4_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 2947 "dhcp4_parser.cc"
+#line 3101 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 520:
-#line 1785 "dhcp4_parser.yy"
+ case 560:
+#line 1885 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2956 "dhcp4_parser.cc"
+#line 3110 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 521:
-#line 1793 "dhcp4_parser.yy"
+ case 561:
+#line 1893 "dhcp4_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 2967 "dhcp4_parser.cc"
+#line 3121 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 522:
-#line 1798 "dhcp4_parser.yy"
+ case 562:
+#line 1898 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2976 "dhcp4_parser.cc"
+#line 3130 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 525:
-#line 1810 "dhcp4_parser.yy"
+ case 565:
+#line 1910 "dhcp4_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 2987 "dhcp4_parser.cc"
+#line 3141 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 526:
-#line 1815 "dhcp4_parser.yy"
+ case 566:
+#line 1915 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2996 "dhcp4_parser.cc"
+#line 3150 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 529:
-#line 1824 "dhcp4_parser.yy"
+ case 569:
+#line 1924 "dhcp4_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 3006 "dhcp4_parser.cc"
+#line 3160 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 530:
-#line 1828 "dhcp4_parser.yy"
+ case 570:
+#line 1928 "dhcp4_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 3016 "dhcp4_parser.cc"
+#line 3170 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 547:
-#line 1857 "dhcp4_parser.yy"
+ case 587:
+#line 1957 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3024 "dhcp4_parser.cc"
+#line 3178 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 548:
-#line 1859 "dhcp4_parser.yy"
+ case 588:
+#line 1959 "dhcp4_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 3034 "dhcp4_parser.cc"
+#line 3188 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 549:
-#line 1865 "dhcp4_parser.yy"
+ case 589:
+#line 1965 "dhcp4_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 3043 "dhcp4_parser.cc"
+#line 3197 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 550:
-#line 1874 "dhcp4_parser.yy"
+ case 590:
+#line 1974 "dhcp4_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 3052 "dhcp4_parser.cc"
+#line 3206 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 551:
-#line 1881 "dhcp4_parser.yy"
+ case 591:
+#line 1981 "dhcp4_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 3063 "dhcp4_parser.cc"
+#line 3217 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 552:
-#line 1886 "dhcp4_parser.yy"
+ case 592:
+#line 1986 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3072 "dhcp4_parser.cc"
+#line 3226 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 560:
-#line 1902 "dhcp4_parser.yy"
+ case 600:
+#line 2002 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3080 "dhcp4_parser.cc"
+#line 3234 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 561:
-#line 1904 "dhcp4_parser.yy"
+ case 601:
+#line 2004 "dhcp4_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 3090 "dhcp4_parser.cc"
+#line 3244 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 562:
-#line 1910 "dhcp4_parser.yy"
+ case 602:
+#line 2010 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3098 "dhcp4_parser.cc"
+#line 3252 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 563:
-#line 1912 "dhcp4_parser.yy"
+ case 603:
+#line 2012 "dhcp4_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 3108 "dhcp4_parser.cc"
+#line 3262 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 564:
-#line 1921 "dhcp4_parser.yy"
+ case 604:
+#line 2021 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3116 "dhcp4_parser.cc"
+#line 3270 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 565:
-#line 1923 "dhcp4_parser.yy"
+ case 605:
+#line 2023 "dhcp4_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 3154 "dhcp4_parser.cc"
+#line 3308 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 566:
-#line 1959 "dhcp4_parser.yy"
+ case 606:
+#line 2059 "dhcp4_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 3165 "dhcp4_parser.cc"
+#line 3319 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 567:
-#line 1964 "dhcp4_parser.yy"
+ case 607:
+#line 2064 "dhcp4_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 3176 "dhcp4_parser.cc"
+#line 3330 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 568:
-#line 1971 "dhcp4_parser.yy"
+ case 608:
+#line 2071 "dhcp4_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 3186 "dhcp4_parser.cc"
+#line 3340 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 569:
-#line 1975 "dhcp4_parser.yy"
+ case 609:
+#line 2075 "dhcp4_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 3196 "dhcp4_parser.cc"
+#line 3350 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 590:
-#line 2005 "dhcp4_parser.yy"
+ case 630:
+#line 2105 "dhcp4_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 3205 "dhcp4_parser.cc"
+#line 3359 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 591:
-#line 2010 "dhcp4_parser.yy"
+ case 631:
+#line 2110 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3213 "dhcp4_parser.cc"
+#line 3367 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 592:
-#line 2012 "dhcp4_parser.yy"
+ case 632:
+#line 2112 "dhcp4_parser.yy" // lalr1.cc:907
{
- 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 3223 "dhcp4_parser.cc"
- break;
-
- case 593:
-#line 2018 "dhcp4_parser.yy"
- {
- ctx.enter(ctx.NO_KEYWORD);
-}
-#line 3231 "dhcp4_parser.cc"
- break;
-
- case 594:
-#line 2020 "dhcp4_parser.yy"
- {
- 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 3241 "dhcp4_parser.cc"
+#line 3377 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 595:
-#line 2026 "dhcp4_parser.yy"
+ case 633:
+#line 2118 "dhcp4_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 3250 "dhcp4_parser.cc"
+#line 3386 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 596:
-#line 2031 "dhcp4_parser.yy"
+ case 634:
+#line 2123 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3258 "dhcp4_parser.cc"
+#line 3394 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 597:
-#line 2033 "dhcp4_parser.yy"
+ case 635:
+#line 2125 "dhcp4_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 3268 "dhcp4_parser.cc"
+#line 3404 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 598:
-#line 2039 "dhcp4_parser.yy"
+ case 636:
+#line 2131 "dhcp4_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 3277 "dhcp4_parser.cc"
+#line 3413 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 599:
-#line 2044 "dhcp4_parser.yy"
+ case 637:
+#line 2136 "dhcp4_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 3286 "dhcp4_parser.cc"
+#line 3422 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 600:
-#line 2049 "dhcp4_parser.yy"
+ case 638:
+#line 2141 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NCR_PROTOCOL);
}
-#line 3294 "dhcp4_parser.cc"
+#line 3430 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 601:
-#line 2051 "dhcp4_parser.yy"
+ case 639:
+#line 2143 "dhcp4_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 3303 "dhcp4_parser.cc"
+#line 3439 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 602:
-#line 2057 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 3309 "dhcp4_parser.cc"
+ case 640:
+#line 2149 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
+#line 3445 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 603:
-#line 2058 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 3315 "dhcp4_parser.cc"
+ case 641:
+#line 2150 "dhcp4_parser.yy" // lalr1.cc:907
+ { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
+#line 3451 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 604:
-#line 2061 "dhcp4_parser.yy"
+ case 642:
+#line 2153 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NCR_FORMAT);
}
-#line 3323 "dhcp4_parser.cc"
+#line 3459 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 605:
-#line 2063 "dhcp4_parser.yy"
+ case 643:
+#line 2155 "dhcp4_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 3333 "dhcp4_parser.cc"
+#line 3469 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 606:
-#line 2069 "dhcp4_parser.yy"
+ case 644:
+#line 2162 "dhcp4_parser.yy" // lalr1.cc:907
{
- ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
- ctx.stack_.back()->set("override-no-update", b);
+ ctx.enter(ctx.NO_KEYWORD);
}
-#line 3342 "dhcp4_parser.cc"
+#line 3477 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 607:
-#line 2074 "dhcp4_parser.yy"
+ case 645:
+#line 2164 "dhcp4_parser.yy" // lalr1.cc:907
{
- ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
- ctx.stack_.back()->set("override-client-update", b);
+ 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 3351 "dhcp4_parser.cc"
+#line 3487 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 608:
-#line 2079 "dhcp4_parser.yy"
+ case 646:
+#line 2171 "dhcp4_parser.yy" // lalr1.cc:907
{
- ctx.enter(ctx.REPLACE_CLIENT_NAME);
+ ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
+ ctx.stack_.back()->set("override-no-update", b);
}
-#line 3359 "dhcp4_parser.cc"
+#line 3496 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 609:
-#line 2081 "dhcp4_parser.yy"
+ case 647:
+#line 2177 "dhcp4_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
- ctx.leave();
+ ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
+ ctx.stack_.back()->set("override-client-update", b);
}
-#line 3368 "dhcp4_parser.cc"
- break;
-
- case 610:
-#line 2087 "dhcp4_parser.yy"
- {
- yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
- }
-#line 3376 "dhcp4_parser.cc"
- break;
-
- case 611:
-#line 2090 "dhcp4_parser.yy"
- {
- yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
- }
-#line 3384 "dhcp4_parser.cc"
+#line 3505 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 612:
-#line 2093 "dhcp4_parser.yy"
+ case 648:
+#line 2183 "dhcp4_parser.yy" // lalr1.cc:907
{
- yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
- }
-#line 3392 "dhcp4_parser.cc"
- break;
-
- case 613:
-#line 2096 "dhcp4_parser.yy"
- {
- yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
- }
-#line 3400 "dhcp4_parser.cc"
+ ctx.enter(ctx.REPLACE_CLIENT_NAME);
+}
+#line 3513 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 614:
-#line 2099 "dhcp4_parser.yy"
+ case 649:
+#line 2185 "dhcp4_parser.yy" // lalr1.cc:907
{
- error(yystack_[0].location, "boolean values for the replace-client-name are "
- "no longer supported");
- }
-#line 3409 "dhcp4_parser.cc"
+ ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ());
+ ctx.leave();
+}
+#line 3522 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 615:
-#line 2105 "dhcp4_parser.yy"
+ case 650:
+#line 2191 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3417 "dhcp4_parser.cc"
+#line 3530 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 616:
-#line 2107 "dhcp4_parser.yy"
+ case 651:
+#line 2193 "dhcp4_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 3427 "dhcp4_parser.cc"
+#line 3540 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 617:
-#line 2113 "dhcp4_parser.yy"
+ case 652:
+#line 2200 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3435 "dhcp4_parser.cc"
+#line 3548 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 618:
-#line 2115 "dhcp4_parser.yy"
+ case 653:
+#line 2202 "dhcp4_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 3445 "dhcp4_parser.cc"
+#line 3558 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 619:
-#line 2121 "dhcp4_parser.yy"
+ case 654:
+#line 2209 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3453 "dhcp4_parser.cc"
+#line 3566 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 620:
-#line 2123 "dhcp4_parser.yy"
+ case 655:
+#line 2211 "dhcp4_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 3463 "dhcp4_parser.cc"
+#line 3576 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 621:
-#line 2132 "dhcp4_parser.yy"
+ case 656:
+#line 2220 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3471 "dhcp4_parser.cc"
+#line 3584 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 622:
-#line 2134 "dhcp4_parser.yy"
+ case 657:
+#line 2222 "dhcp4_parser.yy" // lalr1.cc:907
{
- ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as < ElementPtr > ());
+ ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 3480 "dhcp4_parser.cc"
+#line 3593 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 623:
-#line 2139 "dhcp4_parser.yy"
+ case 658:
+#line 2227 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3488 "dhcp4_parser.cc"
+#line 3601 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 624:
-#line 2141 "dhcp4_parser.yy"
+ case 659:
+#line 2229 "dhcp4_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 3497 "dhcp4_parser.cc"
+#line 3610 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 625:
-#line 2146 "dhcp4_parser.yy"
+ case 660:
+#line 2234 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3505 "dhcp4_parser.cc"
+#line 3618 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 626:
-#line 2148 "dhcp4_parser.yy"
+ case 661:
+#line 2236 "dhcp4_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 3514 "dhcp4_parser.cc"
+#line 3627 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 627:
-#line 2153 "dhcp4_parser.yy"
+ case 662:
+#line 2241 "dhcp4_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 3525 "dhcp4_parser.cc"
+#line 3638 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 628:
-#line 2158 "dhcp4_parser.yy"
+ case 663:
+#line 2246 "dhcp4_parser.yy" // lalr1.cc:907
{
// No config control params are required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3535 "dhcp4_parser.cc"
+#line 3648 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 629:
-#line 2164 "dhcp4_parser.yy"
+ case 664:
+#line 2252 "dhcp4_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 3545 "dhcp4_parser.cc"
+#line 3658 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 630:
-#line 2168 "dhcp4_parser.yy"
+ case 665:
+#line 2256 "dhcp4_parser.yy" // lalr1.cc:907
{
// No config_control params are required
// parsing completed
}
-#line 3554 "dhcp4_parser.cc"
+#line 3667 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 635:
-#line 2183 "dhcp4_parser.yy"
+ case 670:
+#line 2271 "dhcp4_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 3565 "dhcp4_parser.cc"
+#line 3678 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 636:
-#line 2188 "dhcp4_parser.yy"
+ case 671:
+#line 2276 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3574 "dhcp4_parser.cc"
+#line 3687 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 637:
-#line 2193 "dhcp4_parser.yy"
+ case 672:
+#line 2281 "dhcp4_parser.yy" // lalr1.cc:907
{
- ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
+ ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("config-fetch-wait-time", value);
}
-#line 3583 "dhcp4_parser.cc"
+#line 3696 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 638:
-#line 2203 "dhcp4_parser.yy"
+ case 673:
+#line 2291 "dhcp4_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 3594 "dhcp4_parser.cc"
+#line 3707 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 639:
-#line 2208 "dhcp4_parser.yy"
+ case 674:
+#line 2296 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3603 "dhcp4_parser.cc"
+#line 3716 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 640:
-#line 2213 "dhcp4_parser.yy"
+ case 675:
+#line 2301 "dhcp4_parser.yy" // lalr1.cc:907
{
// Parse the Logging map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3613 "dhcp4_parser.cc"
+#line 3726 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 641:
-#line 2217 "dhcp4_parser.yy"
+ case 676:
+#line 2305 "dhcp4_parser.yy" // lalr1.cc:907
{
// parsing completed
}
-#line 3621 "dhcp4_parser.cc"
+#line 3734 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 645:
-#line 2233 "dhcp4_parser.yy"
+ case 680:
+#line 2321 "dhcp4_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 3632 "dhcp4_parser.cc"
+#line 3745 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 646:
-#line 2238 "dhcp4_parser.yy"
+ case 681:
+#line 2326 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3641 "dhcp4_parser.cc"
+#line 3754 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 649:
-#line 2250 "dhcp4_parser.yy"
+ case 684:
+#line 2338 "dhcp4_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 3651 "dhcp4_parser.cc"
+#line 3764 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 650:
-#line 2254 "dhcp4_parser.yy"
+ case 685:
+#line 2342 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
}
-#line 3659 "dhcp4_parser.cc"
+#line 3772 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 660:
-#line 2271 "dhcp4_parser.yy"
+ case 695:
+#line 2359 "dhcp4_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 3668 "dhcp4_parser.cc"
+#line 3781 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 661:
-#line 2276 "dhcp4_parser.yy"
+ case 696:
+#line 2364 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3676 "dhcp4_parser.cc"
+#line 3789 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 662:
-#line 2278 "dhcp4_parser.yy"
+ case 697:
+#line 2366 "dhcp4_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 3686 "dhcp4_parser.cc"
+#line 3799 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 663:
-#line 2284 "dhcp4_parser.yy"
+ case 698:
+#line 2372 "dhcp4_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 3697 "dhcp4_parser.cc"
+#line 3810 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 664:
-#line 2289 "dhcp4_parser.yy"
+ case 699:
+#line 2377 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3706 "dhcp4_parser.cc"
+#line 3819 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 667:
-#line 2298 "dhcp4_parser.yy"
+ case 702:
+#line 2386 "dhcp4_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 3716 "dhcp4_parser.cc"
+#line 3829 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 668:
-#line 2302 "dhcp4_parser.yy"
+ case 703:
+#line 2390 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.stack_.pop_back();
}
-#line 3724 "dhcp4_parser.cc"
+#line 3837 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 676:
-#line 2317 "dhcp4_parser.yy"
+ case 711:
+#line 2405 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3732 "dhcp4_parser.cc"
+#line 3845 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 677:
-#line 2319 "dhcp4_parser.yy"
+ case 712:
+#line 2407 "dhcp4_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 3742 "dhcp4_parser.cc"
+#line 3855 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 678:
-#line 2325 "dhcp4_parser.yy"
+ case 713:
+#line 2413 "dhcp4_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 3751 "dhcp4_parser.cc"
+#line 3864 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 679:
-#line 2330 "dhcp4_parser.yy"
+ case 714:
+#line 2418 "dhcp4_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 3760 "dhcp4_parser.cc"
+#line 3873 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 680:
-#line 2335 "dhcp4_parser.yy"
+ case 715:
+#line 2423 "dhcp4_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 3769 "dhcp4_parser.cc"
+#line 3882 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 681:
-#line 2340 "dhcp4_parser.yy"
+ case 716:
+#line 2428 "dhcp4_parser.yy" // lalr1.cc:907
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3777 "dhcp4_parser.cc"
+#line 3890 "dhcp4_parser.cc" // lalr1.cc:907
break;
- case 682:
-#line 2342 "dhcp4_parser.yy"
+ case 717:
+#line 2430 "dhcp4_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("pattern", sev);
ctx.leave();
}
-#line 3787 "dhcp4_parser.cc"
+#line 3900 "dhcp4_parser.cc" // lalr1.cc:907
break;
-#line 3791 "dhcp4_parser.cc"
-
+#line 3904 "dhcp4_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 Dhcp4Parser::yypact_ninf_ = -832;
+ const short Dhcp4Parser::yypact_ninf_ = -896;
const signed char Dhcp4Parser::yytable_ninf_ = -1;
const short
Dhcp4Parser::yypact_[] =
{
- 363, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, 29, 21, 25, 53, 108,
- 128, 135, 137, 160, 162, 171, 184, 199, 203, 228,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, 21, -123,
- 17, 122, 71, 226, 173, 233, 10, 41, 287, -50,
- 478, 89, 147, -832, 254, 275, 225, 285, 296, -832,
- -832, -832, -832, -832, 304, -832, 62, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, 316, 317, 318, -832,
- -832, -832, -832, -832, -832, 326, 327, 328, 352, 353,
- 354, 377, 380, 384, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, 392, -832, -832,
- -832, -832, -832, -832, -832, 68, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, 395, -832, 70, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, 402, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, 80, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, 86, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, 292, 404, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, 401, -832,
- -832, 407, -832, -832, -832, 408, -832, -832, 405, 412,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, 416, 417, -832, -832, -832, -832, 411,
- 420, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, 115, -832, -832, -832, 425, -832, -832,
- 434, -832, 454, 455, -832, -832, 457, 460, -832, -832,
- -832, -832, -832, 116, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- 126, -832, -832, -832, 461, 129, -832, -832, -832, -832,
- 21, 21, -832, 291, 463, 464, 466, 467, 477, -832,
- 17, -832, 479, 480, 481, 308, 311, 312, 487, 488,
- 489, 490, 491, 492, 321, 322, 323, 330, 331, 324,
- 332, 333, 335, 500, 504, 509, 510, 512, 513, 514,
- 515, 516, 517, 518, 535, 536, 366, 539, 541, 542,
- 543, 544, 545, 122, -832, 546, 547, 549, 376, 71,
- -832, 551, 552, 553, 554, 555, 556, 386, 561, 562,
- 563, 226, -832, 564, 173, -832, 565, 567, 569, 570,
- 572, 573, 575, 576, -832, 233, -832, 577, 579, 409,
- 580, 582, 583, 410, -832, 41, 585, 413, 414, -832,
- 287, 589, 590, 90, -832, 418, 593, 594, 423, 596,
- 426, 428, 614, 615, 442, 444, 622, 623, 478, -832,
- 89, -832, 624, 453, 147, -832, -832, -832, 626, 625,
- 627, 21, 21, 21, -832, 628, 629, 630, -832, -832,
- -832, 456, 458, 465, 631, 632, 636, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, 468, 637, 639, 640,
- 641, 642, 472, 276, 643, 645, 646, 647, 648, -832,
- 649, 642, 650, 483, 484, 655, -832, 656, 274, 230,
- -832, -832, 493, 494, 495, 657, 496, 497, -832, 656,
- 498, 658, -832, 499, -832, 656, 501, 502, 503, 505,
- 506, 507, 508, -832, 511, 519, -832, 520, 521, 522,
- -832, -832, 523, -832, -832, -832, 524, 21, -832, -832,
- 525, 526, -832, 527, -832, -832, 26, 534, -832, -832,
- -4, 528, -832, -832, 659, -832, -832, 21, 122, 89,
- -832, -832, -832, 147, 71, 660, -832, -832, -832, 57,
- 57, 672, -832, 678, 680, 681, 682, -832, -832, -832,
- -832, -832, -832, -832, -832, 117, 683, 684, 685, 260,
- 180, -832, 478, -832, -832, 686, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, 697, -832, -832,
- -832, -832, 172, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, 672, -832, 165, 187, 197, 222,
- -832, 223, -832, -832, -832, -832, -832, -832, 662, 663,
- 701, 702, 703, -832, -832, -832, -832, 704, 705, 706,
- 707, 708, 709, -832, 231, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, 234, -832, 710, 651,
- -832, -832, 711, 712, -832, -832, 713, 715, -832, -832,
- 714, 718, -832, -832, 716, 720, -832, -832, -832, -832,
- -832, -832, 45, -832, -832, -832, -832, -832, -832, -832,
- 74, -832, -832, 719, 721, -832, -832, 722, 723, -832,
- 725, 726, 727, 728, 729, 730, 264, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, 271,
- -832, -832, -832, 272, -832, 125, -832, 560, -832, 731,
- 724, -832, -832, -832, -832, 732, 733, -832, -832, -832,
- -832, 734, 660, -832, 737, 738, 739, 740, 538, 485,
- 571, 558, 574, 741, 742, 744, 745, 578, 581, 584,
- 586, 587, 588, 57, -832, -832, 57, -832, 672, 226,
- -832, 678, 41, -832, 680, 287, -832, 681, 415, -832,
- 682, 117, -832, 142, 683, -832, 233, -832, 684, -50,
- -832, 685, 591, 592, 595, 597, 598, 599, 260, -832,
- 747, 748, 180, -832, -832, 191, 686, -832, -832, 749,
- 750, 173, -832, 697, 752, -832, -832, 601, -832, 356,
- 602, 603, 604, -832, -832, -832, -832, -832, 605, 606,
- 607, 608, -832, -832, -832, -832, -832, -832, -832, 298,
- -832, 299, -832, 751, -832, 753, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, 325, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, 754, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, 755, 763, -832, -832,
- -832, -832, -832, 761, -832, 342, -832, -832, -832, -832,
- -832, -832, -832, -832, 609, 610, -832, -832, 766, -832,
- -832, -832, -832, -832, 343, -832, -832, -832, -832, -832,
- -832, 611, 344, -832, 656, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, 415, -832, 768, 612, -832, 142, -832, -832,
- -832, -832, 783, 618, 784, 191, -832, -832, -832, -832,
- -832, 616, -832, -832, 791, -832, 644, -832, -832, 790,
- -832, -832, 140, -832, 7, 790, -832, -832, 798, 807,
- 808, -832, 346, -832, -832, -832, -832, -832, -832, -832,
- 813, 661, 652, 666, 832, 7, -832, 670, -832, -832,
- -832, 673, -832, -832, -832
+ 479, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, 50, 22, 52, 70, 75,
+ 81, 96, 106, 110, 132, 138, 153, 219, 226, 255,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, 22, -149,
+ 20, 150, 59, 266, 66, 207, -39, 448, 528, -71,
+ 546, -111, 125, -896, 60, 67, 76, 162, 188, -896,
+ -896, -896, -896, -896, 198, -896, 48, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, 265, 293, 296, -896,
+ -896, -896, -896, -896, -896, 300, 310, 317, 335, 339,
+ 352, 385, 386, 387, -896, 388, 389, 390, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, 391, -896, -896, -896, -896, -896, -896,
+ -896, 92, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, 392, -896, 99, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, 393,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, 163, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, 184, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, 251, 343, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, 356, -896,
+ -896, 394, -896, -896, -896, 396, -896, -896, 359, 372,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, 397, 399, -896, -896, -896, -896, 370,
+ 401, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, 221, -896, -896, -896, 402, -896, -896,
+ 403, -896, 404, 406, -896, -896, 407, 408, -896, -896,
+ -896, -896, -896, -896, -896, 222, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, 231, -896, -896, -896, 410, 240, -896, -896,
+ -896, -896, 22, 22, -896, 235, 417, 418, 420, 421,
+ 423, -896, 20, -896, 426, 429, 431, 254, 256, 258,
+ 432, 435, 440, 446, 449, 450, 273, 274, 277, 278,
+ 287, 286, 275, 288, 292, 468, 301, 307, 308, 472,
+ 473, 480, 491, 495, 499, 502, 506, 507, 510, 511,
+ 513, 519, 520, 521, 314, 522, 524, 527, 532, 533,
+ 534, 150, -896, 537, 538, 539, 361, 59, -896, 540,
+ 542, 543, 544, 553, 554, 350, 562, 563, 564, 266,
+ -896, 565, 66, -896, 568, 569, 570, 571, 573, 576,
+ 577, 581, -896, 207, -896, 583, 585, 409, 586, 588,
+ 589, 412, -896, 448, 590, 413, 415, -896, 528, 598,
+ 599, 34, -896, 430, 600, 601, 433, 609, 439, 441,
+ 613, 618, 442, 443, 620, 621, 624, 626, 546, -896,
+ -111, -896, 627, 451, 125, -896, -896, -896, 631, 632,
+ 633, 22, 22, 22, -896, 634, 635, 636, -896, -896,
+ -896, 481, 482, 483, 653, 654, 660, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, 486, -896, -896, -896,
+ -87, 488, 489, 666, 667, 669, 670, 671, 496, 191,
+ 687, 688, 689, 690, 693, -896, 694, 671, 695, 515,
+ 516, 698, -896, 699, 145, 290, -896, -896, 525, 526,
+ 529, 700, 530, 531, -896, 699, 535, 701, -896, 536,
+ -896, 699, 541, 545, 547, 548, 549, 550, 551, -896,
+ 552, 555, -896, 556, 557, 558, -896, -896, 559, -896,
+ -896, -896, 560, 22, -896, -896, 561, 566, -896, 567,
+ -896, -896, 19, 572, -896, -896, -87, 574, 575, 578,
+ -896, -896, 708, -896, -896, 22, 150, -111, -896, -896,
+ -896, 125, 59, 652, -896, -896, -896, 80, 80, 707,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, 711,
+ 713, 714, 716, -896, -896, -896, -896, -896, -896, -896,
+ -896, 155, 717, 718, 727, 74, 102, -896, 546, -896,
+ -896, 728, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, 736, -896, -896, -896, -896, 157, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, 707, -896, 242,
+ 246, 250, 252, -896, 268, -896, -896, -896, -896, -896,
+ -896, 740, 741, 742, 745, 746, -896, -896, -896, -896,
+ 747, 748, 749, 750, 753, 754, -896, 272, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, 276,
+ -896, 709, 757, -896, -896, 755, 759, -896, -896, 758,
+ 760, -896, -896, 761, 762, -896, -896, 763, 765, -896,
+ -896, -896, -896, -896, -896, 37, -896, -896, -896, -896,
+ -896, -896, -896, 73, -896, -896, 764, 768, -896, -896,
+ 766, 770, -896, 771, 772, 773, 774, 775, 776, 298,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, 304, -896, -896, -896, 305, -896, 83, -896,
+ 593, -896, 777, 778, -896, -896, -896, -896, 779, 780,
+ -896, -896, -896, -896, 781, 652, -896, 784, 785, 786,
+ 787, 584, 608, 602, 610, 611, 791, 792, 793, 794,
+ 617, 619, 622, 623, 616, 625, 80, -896, -896, 80,
+ -896, 707, 266, -896, 711, 448, -896, 713, 528, -896,
+ 714, 492, -896, 716, 155, -896, 63, 717, -896, 207,
+ -896, 718, -71, -896, 727, 628, 629, 630, 637, 638,
+ 639, 74, -896, 798, 799, 102, -896, -896, 195, 728,
+ -896, -896, 800, 805, 66, -896, 736, 809, -896, -896,
+ 641, -896, 348, 642, 643, 644, -896, -896, -896, -896,
+ -896, 645, 646, 647, 648, -896, -896, -896, -896, -896,
+ -896, -896, 342, -896, 344, -896, 801, -896, 806, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, 360, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, 811, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, 808, 814, -896,
+ -896, -896, -896, -896, 810, -896, 362, -896, -896, -896,
+ -896, -896, -896, -896, -896, 649, 650, -896, -896, 829,
+ -896, -896, -896, -896, -896, 363, -896, -896, -896, -896,
+ -896, -896, 656, 371, -896, 699, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, 492, -896, 830, 655, -896, 63, -896,
+ -896, -896, -896, 836, 661, 841, 195, -896, -896, -896,
+ -896, -896, 673, -896, -896, 842, -896, 674, -896, -896,
+ 851, -896, -896, 93, -896, -14, 851, -896, -896, 856,
+ 857, 859, -896, 374, -896, -896, -896, -896, -896, -896,
+ -896, 862, 686, 691, 702, 873, -14, -896, 712, -896,
+ -896, -896, 724, -896, -896, -896
};
const unsigned short
20, 22, 24, 26, 28, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 45, 38, 34, 33, 30, 31, 32, 37, 3,
- 35, 36, 58, 5, 70, 7, 141, 9, 286, 11,
- 451, 13, 476, 15, 376, 17, 384, 19, 421, 21,
- 251, 23, 568, 25, 640, 27, 629, 29, 47, 41,
- 0, 0, 0, 0, 0, 478, 0, 386, 423, 0,
+ 35, 36, 58, 5, 70, 7, 165, 9, 310, 11,
+ 491, 13, 516, 15, 416, 17, 424, 19, 461, 21,
+ 275, 23, 608, 25, 675, 27, 664, 29, 47, 41,
+ 0, 0, 0, 0, 0, 518, 0, 426, 463, 0,
0, 0, 0, 49, 0, 48, 0, 0, 42, 68,
- 638, 621, 623, 625, 0, 67, 0, 60, 62, 64,
- 65, 66, 63, 627, 130, 156, 0, 0, 0, 497,
- 499, 501, 154, 163, 165, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 125, 278, 374, 413, 340, 464,
- 466, 333, 229, 525, 468, 243, 262, 0, 551, 564,
- 566, 617, 619, 645, 115, 0, 72, 74, 75, 76,
- 77, 78, 109, 110, 111, 79, 107, 96, 97, 98,
- 82, 83, 104, 84, 85, 86, 90, 91, 80, 108,
- 81, 88, 89, 102, 103, 105, 99, 100, 101, 87,
- 92, 93, 94, 95, 113, 114, 106, 112, 143, 145,
- 149, 0, 140, 0, 132, 134, 135, 136, 137, 138,
- 139, 321, 323, 325, 443, 319, 327, 0, 331, 329,
- 521, 318, 290, 291, 292, 293, 294, 315, 316, 317,
- 305, 306, 0, 288, 297, 310, 311, 312, 298, 300,
- 301, 303, 299, 295, 296, 313, 314, 302, 307, 308,
- 309, 304, 462, 461, 457, 458, 456, 0, 453, 455,
- 459, 460, 519, 507, 509, 513, 511, 517, 515, 503,
- 496, 490, 494, 495, 0, 479, 480, 491, 492, 493,
- 487, 482, 488, 484, 485, 486, 489, 483, 0, 403,
- 209, 0, 407, 405, 410, 0, 399, 400, 0, 387,
- 388, 390, 402, 391, 392, 393, 409, 394, 395, 396,
- 397, 398, 437, 0, 0, 435, 436, 439, 440, 0,
- 424, 425, 427, 428, 429, 430, 431, 432, 433, 434,
- 258, 260, 255, 0, 253, 256, 257, 0, 591, 593,
- 0, 596, 0, 0, 600, 604, 0, 0, 608, 615,
- 589, 587, 588, 0, 570, 572, 573, 574, 575, 576,
- 577, 578, 579, 580, 581, 582, 583, 584, 585, 586,
- 0, 642, 644, 635, 0, 0, 631, 633, 634, 46,
- 0, 0, 39, 0, 0, 0, 0, 0, 0, 57,
- 0, 59, 0, 0, 0, 0, 0, 0, 0, 0,
+ 673, 656, 658, 660, 0, 67, 0, 60, 62, 64,
+ 65, 66, 63, 662, 154, 180, 0, 0, 0, 537,
+ 539, 541, 178, 187, 189, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 131, 0, 0, 0, 139, 146,
+ 148, 302, 414, 453, 372, 504, 506, 365, 253, 565,
+ 508, 267, 286, 0, 591, 604, 606, 150, 152, 680,
+ 121, 0, 72, 74, 75, 76, 77, 78, 109, 110,
+ 111, 79, 107, 96, 97, 98, 115, 116, 117, 118,
+ 119, 120, 113, 114, 82, 83, 104, 84, 85, 86,
+ 90, 91, 80, 108, 81, 88, 89, 102, 103, 105,
+ 99, 100, 101, 87, 92, 93, 94, 95, 106, 112,
+ 167, 169, 173, 0, 164, 0, 156, 158, 159, 160,
+ 161, 162, 163, 353, 355, 357, 483, 351, 359, 0,
+ 363, 361, 561, 350, 314, 315, 316, 317, 318, 339,
+ 340, 341, 329, 330, 342, 343, 344, 345, 346, 347,
+ 348, 349, 0, 312, 321, 334, 335, 336, 322, 324,
+ 325, 327, 323, 319, 320, 337, 338, 326, 331, 332,
+ 333, 328, 502, 501, 497, 498, 496, 0, 493, 495,
+ 499, 500, 559, 547, 549, 553, 551, 557, 555, 543,
+ 536, 530, 534, 535, 0, 519, 520, 531, 532, 533,
+ 527, 522, 528, 524, 525, 526, 529, 523, 0, 443,
+ 233, 0, 447, 445, 450, 0, 439, 440, 0, 427,
+ 428, 430, 442, 431, 432, 433, 449, 434, 435, 436,
+ 437, 438, 477, 0, 0, 475, 476, 479, 480, 0,
+ 464, 465, 467, 468, 469, 470, 471, 472, 473, 474,
+ 282, 284, 279, 0, 277, 280, 281, 0, 644, 631,
+ 0, 634, 0, 0, 638, 642, 0, 0, 648, 650,
+ 652, 654, 629, 627, 628, 0, 610, 612, 613, 614,
+ 615, 616, 617, 618, 619, 624, 620, 621, 622, 623,
+ 625, 626, 0, 677, 679, 670, 0, 0, 666, 668,
+ 669, 46, 0, 0, 39, 0, 0, 0, 0, 0,
+ 0, 57, 0, 59, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 71, 0, 0, 0, 0, 0,
- 142, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 287, 0, 0, 452, 0, 0, 0, 0,
- 0, 0, 0, 0, 477, 0, 377, 0, 0, 0,
- 0, 0, 0, 0, 385, 0, 0, 0, 0, 422,
- 0, 0, 0, 0, 252, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 569,
- 0, 641, 0, 0, 0, 630, 50, 43, 0, 0,
- 0, 0, 0, 0, 61, 0, 0, 0, 127, 128,
- 129, 0, 0, 0, 0, 0, 0, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 550,
- 0, 0, 0, 0, 0, 0, 73, 0, 0, 0,
- 153, 133, 0, 0, 0, 0, 0, 0, 339, 0,
- 0, 0, 289, 0, 454, 0, 0, 0, 0, 0,
- 0, 0, 0, 481, 0, 0, 401, 0, 0, 0,
- 412, 389, 0, 441, 442, 426, 0, 0, 254, 590,
- 0, 0, 595, 0, 598, 599, 0, 0, 606, 607,
- 0, 0, 571, 643, 0, 637, 632, 0, 0, 0,
- 622, 624, 626, 0, 0, 0, 498, 500, 502, 0,
- 0, 167, 126, 280, 378, 415, 342, 40, 465, 467,
- 335, 336, 337, 338, 334, 0, 0, 470, 245, 0,
- 0, 565, 0, 618, 620, 0, 51, 144, 147, 148,
- 146, 151, 152, 150, 322, 324, 326, 445, 320, 328,
- 332, 330, 0, 463, 520, 508, 510, 514, 512, 518,
- 516, 504, 404, 210, 408, 406, 411, 438, 259, 261,
- 592, 594, 597, 602, 603, 601, 605, 610, 611, 612,
- 613, 614, 609, 616, 167, 44, 0, 0, 0, 0,
- 161, 0, 158, 160, 196, 202, 204, 206, 0, 0,
- 0, 0, 0, 218, 220, 222, 224, 0, 0, 0,
- 0, 0, 0, 195, 0, 173, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 188, 189, 190, 185,
- 191, 192, 193, 186, 187, 194, 0, 171, 0, 168,
- 169, 284, 0, 281, 282, 382, 0, 379, 380, 419,
- 0, 416, 417, 346, 0, 343, 344, 238, 239, 240,
- 241, 242, 0, 231, 233, 234, 235, 236, 237, 529,
- 0, 527, 474, 0, 471, 472, 249, 0, 246, 247,
- 0, 0, 0, 0, 0, 0, 0, 264, 266, 267,
- 268, 269, 270, 271, 560, 562, 559, 557, 558, 0,
- 553, 555, 556, 0, 649, 0, 647, 53, 449, 0,
- 446, 447, 505, 523, 524, 0, 0, 69, 639, 628,
- 131, 0, 0, 157, 0, 0, 0, 0, 0, 0,
+ 0, 0, 71, 0, 0, 0, 0, 0, 166, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 155, 164, 0, 166, 0, 0,
- 279, 0, 386, 375, 0, 423, 414, 0, 0, 341,
- 0, 0, 230, 531, 0, 526, 478, 469, 0, 0,
- 244, 0, 0, 0, 0, 0, 0, 0, 0, 263,
- 0, 0, 0, 552, 567, 0, 0, 646, 55, 0,
- 54, 0, 444, 0, 0, 522, 636, 0, 159, 0,
- 0, 0, 0, 208, 211, 212, 213, 214, 0, 0,
- 0, 0, 226, 227, 215, 216, 217, 228, 174, 0,
- 170, 0, 283, 0, 381, 0, 418, 373, 365, 366,
- 367, 353, 354, 370, 371, 372, 356, 357, 350, 351,
- 352, 363, 364, 362, 0, 348, 355, 368, 369, 358,
- 359, 360, 361, 345, 232, 547, 0, 545, 546, 538,
- 539, 543, 544, 540, 541, 542, 0, 532, 533, 535,
- 536, 537, 528, 0, 473, 0, 248, 272, 273, 274,
- 275, 276, 277, 265, 0, 0, 554, 663, 0, 661,
- 659, 653, 657, 658, 0, 651, 655, 656, 654, 648,
- 52, 0, 0, 448, 0, 162, 198, 199, 200, 201,
- 197, 203, 205, 207, 219, 221, 223, 225, 172, 285,
- 383, 420, 0, 347, 0, 0, 530, 0, 475, 250,
- 561, 563, 0, 0, 0, 0, 650, 56, 450, 506,
- 349, 0, 549, 534, 0, 660, 0, 652, 548, 0,
- 662, 667, 0, 665, 0, 0, 664, 676, 0, 0,
- 0, 681, 0, 669, 671, 672, 673, 674, 675, 666,
- 0, 0, 0, 0, 0, 0, 668, 0, 678, 679,
- 680, 0, 670, 677, 682
+ 311, 0, 0, 492, 0, 0, 0, 0, 0, 0,
+ 0, 0, 517, 0, 417, 0, 0, 0, 0, 0,
+ 0, 0, 425, 0, 0, 0, 0, 462, 0, 0,
+ 0, 0, 276, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 609,
+ 0, 676, 0, 0, 0, 665, 50, 43, 0, 0,
+ 0, 0, 0, 0, 61, 0, 0, 0, 133, 134,
+ 135, 0, 0, 0, 0, 0, 0, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 0, 136, 137, 138,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 590, 0, 0, 0, 0,
+ 0, 0, 73, 0, 0, 0, 177, 157, 0, 0,
+ 0, 0, 0, 0, 371, 0, 0, 0, 313, 0,
+ 494, 0, 0, 0, 0, 0, 0, 0, 0, 521,
+ 0, 0, 441, 0, 0, 0, 452, 429, 0, 481,
+ 482, 466, 0, 0, 278, 630, 0, 0, 633, 0,
+ 636, 637, 0, 0, 646, 647, 0, 0, 0, 0,
+ 611, 678, 0, 672, 667, 0, 0, 0, 657, 659,
+ 661, 0, 0, 0, 538, 540, 542, 0, 0, 191,
+ 132, 141, 142, 143, 144, 145, 140, 147, 149, 304,
+ 418, 455, 374, 40, 505, 507, 367, 368, 369, 370,
+ 366, 0, 0, 510, 269, 0, 0, 605, 0, 151,
+ 153, 0, 51, 168, 171, 172, 170, 175, 176, 174,
+ 354, 356, 358, 485, 352, 360, 364, 362, 0, 503,
+ 560, 548, 550, 554, 552, 558, 556, 544, 444, 234,
+ 448, 446, 451, 478, 283, 285, 645, 632, 635, 640,
+ 641, 639, 643, 649, 651, 653, 655, 191, 44, 0,
+ 0, 0, 0, 185, 0, 182, 184, 220, 226, 228,
+ 230, 0, 0, 0, 0, 0, 242, 244, 246, 248,
+ 0, 0, 0, 0, 0, 0, 219, 0, 197, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 212,
+ 213, 214, 209, 215, 216, 217, 210, 211, 218, 0,
+ 195, 0, 192, 193, 308, 0, 305, 306, 422, 0,
+ 419, 420, 459, 0, 456, 457, 378, 0, 375, 376,
+ 262, 263, 264, 265, 266, 0, 255, 257, 258, 259,
+ 260, 261, 569, 0, 567, 514, 0, 511, 512, 273,
+ 0, 270, 271, 0, 0, 0, 0, 0, 0, 0,
+ 288, 290, 291, 292, 293, 294, 295, 600, 602, 599,
+ 597, 598, 0, 593, 595, 596, 0, 684, 0, 682,
+ 53, 489, 0, 486, 487, 545, 563, 564, 0, 0,
+ 69, 674, 663, 155, 0, 0, 181, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 179, 188, 0,
+ 190, 0, 0, 303, 0, 426, 415, 0, 463, 454,
+ 0, 0, 373, 0, 0, 254, 571, 0, 566, 518,
+ 509, 0, 0, 268, 0, 0, 0, 0, 0, 0,
+ 0, 0, 287, 0, 0, 0, 592, 607, 0, 0,
+ 681, 55, 0, 54, 0, 484, 0, 0, 562, 671,
+ 0, 183, 0, 0, 0, 0, 232, 235, 236, 237,
+ 238, 0, 0, 0, 0, 250, 251, 239, 240, 241,
+ 252, 198, 0, 194, 0, 307, 0, 421, 0, 458,
+ 413, 397, 398, 399, 385, 386, 402, 403, 404, 388,
+ 389, 405, 406, 407, 408, 409, 410, 411, 412, 382,
+ 383, 384, 395, 396, 394, 0, 380, 387, 400, 401,
+ 390, 391, 392, 393, 377, 256, 587, 0, 585, 586,
+ 578, 579, 583, 584, 580, 581, 582, 0, 572, 573,
+ 575, 576, 577, 568, 0, 513, 0, 272, 296, 297,
+ 298, 299, 300, 301, 289, 0, 0, 594, 698, 0,
+ 696, 694, 688, 692, 693, 0, 686, 690, 691, 689,
+ 683, 52, 0, 0, 488, 0, 186, 222, 223, 224,
+ 225, 221, 227, 229, 231, 243, 245, 247, 249, 196,
+ 309, 423, 460, 0, 379, 0, 0, 570, 0, 515,
+ 274, 601, 603, 0, 0, 0, 0, 685, 56, 490,
+ 546, 381, 0, 589, 574, 0, 695, 0, 687, 588,
+ 0, 697, 702, 0, 700, 0, 0, 699, 711, 0,
+ 0, 0, 716, 0, 704, 706, 707, 708, 709, 710,
+ 701, 0, 0, 0, 0, 0, 0, 703, 0, 713,
+ 714, 715, 0, 705, 712, 717
};
const short
Dhcp4Parser::yypgoto_[] =
{
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -46, -832, -491, -832,
- 306, -832, -832, -832, -832, -832, -832, -534, -832, -832,
- -832, -70, -832, -832, -832, 475, -832, -832, -832, -832,
- 256, 462, -55, -54, -27, -24, -9, 6, 9, 11,
- -832, -832, -832, -832, 12, 19, -832, -832, 269, 459,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, 54, -832, -832, -832,
- -832, -832, -832, 195, -832, 33, -832, -607, 39, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -35,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, 24, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, 16, -832, -832, -832, 14, 427, -832, -832,
- -832, -832, -832, -832, -832, 13, -832, -832, -832, -832,
- -832, -832, -831, -832, -832, -832, 37, -832, -832, -832,
- 40, 469, -832, -832, -832, -832, -832, -832, -832, -832,
- -823, -832, -17, -832, -5, -832, 22, -832, -832, -832,
- -832, -832, -832, -832, 32, -832, -832, -129, -65, -832,
- -832, -832, -832, -832, 42, -832, -832, -832, 43, -832,
- 439, -832, -72, -832, -832, -832, -832, -832, -66, -832,
- -832, -832, -832, -832, -7, -832, -832, -832, 44, -832,
- -832, -832, 47, -832, 437, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, 5, -832, -832, -832,
- 8, 470, -832, -832, -39, -832, -19, -832, -59, -832,
- -832, -832, 35, -832, -832, -832, 46, -832, 471, -58,
- -832, -52, -832, -1, -832, 253, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -821, -832, -832, -832, -832, -832, 49,
- -832, -832, -832, -121, -832, -832, -832, -832, -832, -832,
- -832, -832, 27, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, 278, 429, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, -832, -832, -832, -832, -832, -832, -64, -832, -60,
- -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
- -832, 305, 430, -832, -832, -832, -832, -832, -832, -832,
- 319, 431, -57, -832, -832, 31, -832, -832, -120, -832,
- -832, -832, -832, -832, -832, -136, -832, -832, -155, -832,
- -832, -832, -832, -832, -832, -832
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -44, -896, -531, -896,
+ 205, -896, -896, -896, -896, -896, -896, -556, -896, -896,
+ -896, -70, -896, -896, -896, 487, -896, -896, -896, -896,
+ 244, 444, -54, -24, -5, -4, -1, 11, 14, 17,
+ -896, -896, -896, -896, 21, 25, 28, 31, 32, 33,
+ -896, 245, 35, -896, 36, -896, 38, -896, 39, -896,
+ -896, -896, 279, 463, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ 78, -896, -896, -896, -896, -896, -896, 211, -896, 55,
+ -896, -643, 61, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -36, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, 45, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, 27, -896, -896, -896,
+ 40, 457, -896, -896, -896, -896, -896, -896, -896, 29,
+ -896, -896, -896, -896, -896, -896, -895, -896, -896, -896,
+ 57, -896, -896, -896, 62, 494, -896, -896, -896, -896,
+ -896, -896, -896, -896, -894, -896, 41, -896, 44, -896,
+ 43, -896, -896, -896, -896, -896, -896, -896, 53, -896,
+ -896, -118, -65, -896, -896, -896, -896, -896, 64, -896,
+ -896, -896, 65, -896, 474, -896, -72, -896, -896, -896,
+ -896, -896, -64, -896, -896, -896, -896, -896, -40, -896,
+ -896, -896, 58, -896, -896, -896, 68, -896, 471, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ 26, -896, -896, -896, 30, 501, -896, -896, -52, -896,
+ -20, -896, -60, -896, -896, -896, 54, -896, -896, -896,
+ 71, -896, 497, -8, -896, -2, -896, 10, -896, 269,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -893, -896, -896,
+ -896, -896, -896, 69, -896, -896, -896, -110, -896, -896,
+ -896, -896, -896, -896, -896, -896, 46, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, 291, 464, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+ -896, -896, -896, -896, 332, 460, -896, -896, -896, -896,
+ -896, -896, -896, 340, 469, -69, -896, -896, 56, -896,
+ -896, -105, -896, -896, -896, -896, -896, -896, -124, -896,
+ -896, -143, -896, -896, -896, -896, -896, -896, -896
};
const short
{
-1, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 38, 39, 40, 69,
- 628, 87, 88, 41, 68, 84, 85, 647, 817, 899,
- 900, 723, 43, 70, 96, 97, 98, 374, 45, 71,
- 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 403, 157, 158, 159, 160, 383, 193, 194,
- 47, 72, 195, 425, 196, 426, 650, 197, 427, 653,
- 198, 161, 391, 162, 384, 701, 702, 703, 831, 163,
- 392, 164, 393, 748, 749, 750, 856, 724, 725, 726,
- 834, 1020, 727, 835, 728, 836, 729, 837, 730, 731,
- 458, 732, 733, 734, 735, 736, 737, 738, 739, 843,
- 740, 844, 741, 845, 742, 846, 743, 744, 745, 165,
- 411, 772, 773, 774, 775, 776, 777, 778, 166, 414,
- 787, 788, 789, 879, 61, 79, 323, 324, 325, 471,
- 326, 472, 167, 415, 796, 797, 798, 799, 800, 801,
- 802, 803, 168, 404, 752, 753, 754, 859, 49, 73,
- 222, 223, 224, 435, 225, 431, 226, 432, 227, 433,
- 228, 436, 229, 439, 230, 438, 169, 410, 634, 232,
- 170, 407, 764, 765, 766, 868, 954, 955, 171, 405,
- 55, 76, 756, 757, 758, 862, 57, 77, 288, 289,
- 290, 291, 292, 293, 294, 457, 295, 461, 296, 460,
- 297, 298, 462, 299, 172, 406, 760, 761, 762, 865,
- 59, 78, 309, 310, 311, 312, 313, 466, 314, 315,
- 316, 317, 234, 434, 819, 820, 821, 901, 51, 74,
- 247, 248, 249, 443, 173, 408, 174, 409, 175, 413,
- 783, 784, 785, 876, 53, 75, 264, 265, 266, 176,
- 388, 177, 389, 178, 390, 270, 453, 824, 904, 271,
- 447, 272, 448, 273, 450, 274, 449, 275, 452, 276,
- 451, 277, 446, 241, 440, 825, 179, 412, 780, 781,
- 873, 976, 977, 978, 979, 980, 1034, 981, 180, 181,
- 417, 809, 810, 811, 890, 812, 891, 182, 418, 183,
- 419, 63, 80, 343, 344, 345, 346, 476, 347, 477,
- 348, 349, 479, 350, 351, 352, 482, 685, 353, 483,
- 354, 355, 356, 486, 692, 357, 487, 184, 420, 185,
- 421, 99, 376, 100, 377, 101, 378, 186, 382, 67,
- 82, 365, 366, 367, 492, 368, 102, 375, 65, 81,
- 360, 361, 187, 422, 815, 816, 895, 1004, 1005, 1006,
- 1007, 1044, 1008, 1042, 1062, 1063, 1064, 1072, 1073, 1074,
- 1080, 1075, 1076, 1077, 1078, 1084
+ 674, 87, 88, 41, 68, 84, 85, 693, 860, 942,
+ 943, 766, 43, 70, 96, 97, 98, 396, 45, 71,
+ 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
+ 161, 162, 425, 163, 164, 165, 166, 167, 168, 169,
+ 429, 666, 170, 430, 171, 431, 172, 448, 173, 449,
+ 174, 405, 205, 206, 47, 72, 207, 453, 208, 454,
+ 696, 209, 455, 699, 210, 175, 413, 176, 406, 744,
+ 745, 746, 874, 177, 414, 178, 415, 791, 792, 793,
+ 899, 767, 768, 769, 877, 1071, 770, 878, 771, 879,
+ 772, 880, 773, 774, 486, 775, 776, 777, 778, 779,
+ 780, 781, 782, 886, 783, 887, 784, 888, 785, 889,
+ 786, 787, 788, 179, 439, 815, 816, 817, 818, 819,
+ 820, 821, 180, 442, 830, 831, 832, 922, 61, 79,
+ 343, 344, 345, 499, 346, 500, 181, 443, 839, 840,
+ 841, 842, 843, 844, 845, 846, 182, 432, 795, 796,
+ 797, 902, 49, 73, 242, 243, 244, 463, 245, 459,
+ 246, 460, 247, 461, 248, 464, 249, 467, 250, 466,
+ 183, 438, 680, 252, 184, 435, 807, 808, 809, 911,
+ 1005, 1006, 185, 433, 55, 76, 799, 800, 801, 905,
+ 57, 77, 308, 309, 310, 311, 312, 313, 314, 485,
+ 315, 489, 316, 488, 317, 318, 490, 319, 186, 434,
+ 803, 804, 805, 908, 59, 78, 329, 330, 331, 332,
+ 333, 494, 334, 335, 336, 337, 254, 462, 862, 863,
+ 864, 944, 51, 74, 267, 268, 269, 471, 187, 436,
+ 188, 437, 189, 441, 826, 827, 828, 919, 53, 75,
+ 284, 285, 286, 190, 410, 191, 411, 192, 412, 290,
+ 481, 867, 947, 291, 475, 292, 476, 293, 478, 294,
+ 477, 295, 480, 296, 479, 297, 474, 261, 468, 868,
+ 193, 440, 823, 824, 916, 1027, 1028, 1029, 1030, 1031,
+ 1085, 1032, 194, 195, 445, 852, 853, 854, 933, 855,
+ 934, 196, 446, 197, 447, 63, 80, 365, 366, 367,
+ 368, 505, 369, 370, 507, 371, 372, 373, 510, 731,
+ 374, 511, 375, 504, 376, 377, 378, 514, 379, 515,
+ 380, 516, 381, 517, 99, 398, 100, 399, 101, 400,
+ 198, 404, 67, 82, 387, 388, 389, 522, 390, 102,
+ 397, 65, 81, 382, 383, 199, 450, 858, 859, 938,
+ 1055, 1056, 1057, 1058, 1095, 1059, 1093, 1113, 1114, 1115,
+ 1123, 1124, 1125, 1131, 1126, 1127, 1128, 1129, 1135
};
const unsigned short
Dhcp4Parser::yytable_[] =
{
- 95, 144, 192, 211, 243, 260, 307, 286, 305, 322,
- 340, 278, 308, 746, 237, 238, 358, 267, 212, 213,
- 359, 239, 83, 268, 362, 660, 31, 89, 32, 30,
- 33, 664, 42, 199, 235, 250, 262, 949, 300, 318,
- 627, 341, 287, 306, 683, 950, 214, 962, 871, 215,
- 627, 872, 86, 200, 236, 251, 263, 244, 301, 319,
- 44, 342, 320, 321, 216, 380, 233, 246, 261, 245,
- 381, 423, 240, 429, 269, 279, 424, 874, 430, 217,
- 875, 126, 218, 441, 219, 220, 188, 189, 442, 444,
- 190, 704, 221, 191, 445, 231, 705, 706, 707, 708,
- 709, 710, 711, 712, 713, 714, 715, 716, 717, 718,
- 719, 720, 721, 722, 280, 46, 281, 282, 473, 488,
- 283, 284, 285, 474, 489, 94, 129, 130, 896, 490,
- 280, 897, 494, 103, 491, 48, 104, 495, 687, 688,
- 689, 690, 50, 1065, 52, 105, 1066, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 129, 130, 1067, 363,
- 364, 1068, 1069, 1070, 1071, 90, 684, 54, 423, 56,
- 109, 110, 111, 827, 691, 91, 92, 93, 58, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
- 490, 60, 94, 126, 127, 828, 34, 35, 36, 37,
- 494, 949, 320, 321, 128, 829, 62, 129, 130, 950,
- 64, 962, 131, 126, 127, 280, 94, 132, 133, 767,
- 768, 769, 770, 134, 771, 429, 832, 129, 130, 371,
- 830, 833, 94, 135, 853, 66, 136, 853, 143, 854,
- 965, 966, 855, 137, 138, 127, 94, 139, 140, 929,
- 651, 652, 107, 108, 109, 110, 111, 242, 129, 130,
- 369, 109, 110, 111, 280, 129, 130, 888, 141, 142,
- 208, 143, 889, 209, 892, 488, 129, 130, 370, 893,
- 894, 259, 822, 115, 116, 117, 118, 119, 120, 121,
- 122, 648, 649, 372, 201, 202, 203, 94, 127, 373,
- 454, 853, 441, 804, 805, 127, 1028, 1029, 379, 204,
- 95, 129, 130, 205, 206, 207, 131, 94, 129, 130,
- 385, 386, 387, 208, 496, 497, 209, 134, 1032, 252,
- 394, 395, 396, 1033, 210, 253, 254, 255, 256, 257,
- 258, 997, 259, 998, 999, 473, 1045, 444, 94, 1085,
- 1039, 1046, 1048, 144, 1086, 94, 397, 398, 399, 192,
- 280, 302, 281, 282, 303, 304, 94, 630, 631, 632,
- 633, 211, 129, 130, 243, 790, 791, 792, 793, 794,
- 795, 400, 237, 238, 401, 260, 212, 213, 402, 239,
- 199, 1016, 1017, 1018, 1019, 286, 416, 267, 307, 428,
- 305, 94, 235, 268, 308, 250, 437, 455, 94, 456,
- 200, 459, 463, 464, 214, 465, 262, 215, 340, 469,
- 467, 468, 236, 470, 358, 251, 300, 244, 359, 475,
- 287, 318, 216, 362, 233, 306, 263, 246, 478, 245,
- 240, 107, 108, 109, 110, 111, 301, 217, 261, 341,
- 218, 319, 219, 220, 269, 610, 611, 612, 480, 481,
- 221, 484, 94, 231, 485, 493, 498, 499, 500, 342,
- 501, 502, 115, 116, 117, 118, 119, 120, 121, 122,
- 1049, 503, 125, 505, 506, 507, 508, 127, 280, 509,
- 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
- 129, 130, 522, 206, 526, 131, 520, 521, 527, 523,
- 524, 525, 208, 528, 529, 209, 530, 531, 532, 533,
- 534, 535, 536, 210, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 144, 537,
- 538, 679, 539, 540, 192, 541, 542, 543, 544, 545,
- 547, 548, 362, 549, 550, 552, 553, 554, 555, 556,
- 557, 695, 558, 129, 130, 559, 560, 561, 563, 565,
- 806, 566, 340, 567, 568, 199, 569, 570, 358, 571,
- 572, 574, 359, 575, 577, 576, 578, 579, 580, 582,
- 94, 583, 584, 586, 587, 200, 589, 590, 591, 592,
- 593, 807, 594, 341, 595, 327, 328, 329, 330, 331,
- 332, 333, 334, 335, 336, 337, 338, 339, 596, 597,
- 598, 808, 599, 342, 141, 142, 600, 601, 604, 605,
- 607, 616, 608, 617, 609, 613, 614, 615, 619, 620,
- 618, 621, 623, 622, 624, 625, 626, 629, 635, 32,
- 636, 637, 638, 94, 858, 639, 640, 642, 643, 644,
- 645, 646, 657, 914, 694, 662, 838, 839, 654, 655,
- 656, 658, 659, 661, 663, 686, 665, 666, 667, 747,
- 668, 669, 670, 671, 700, 751, 672, 755, 759, 763,
- 779, 782, 786, 814, 673, 674, 675, 676, 677, 678,
- 680, 681, 682, 693, 818, 840, 841, 842, 847, 848,
- 849, 850, 851, 852, 913, 861, 857, 860, 864, 863,
- 866, 867, 869, 870, 878, 877, 881, 903, 880, 882,
- 883, 884, 885, 886, 887, 898, 916, 902, 907, 906,
- 905, 909, 910, 911, 912, 918, 919, 915, 920, 921,
- 917, 994, 995, 1011, 922, 1010, 1014, 923, 1035, 1030,
- 924, 1031, 925, 1036, 927, 926, 1037, 987, 988, 1038,
- 1043, 989, 1051, 990, 991, 992, 1015, 1021, 1022, 1023,
- 1024, 1025, 1026, 1027, 1040, 1041, 1047, 1054, 1056, 211,
- 1052, 1058, 286, 307, 1055, 305, 1059, 1061, 937, 308,
- 237, 238, 1081, 967, 212, 213, 260, 239, 969, 322,
- 959, 1082, 1083, 938, 939, 973, 960, 1087, 267, 1060,
- 235, 974, 806, 300, 268, 1000, 318, 287, 1089, 957,
- 306, 243, 214, 948, 971, 215, 1091, 262, 968, 1088,
- 236, 940, 1090, 301, 941, 1093, 319, 641, 1094, 958,
- 216, 951, 233, 807, 972, 504, 1002, 263, 240, 942,
- 1001, 956, 250, 952, 696, 217, 970, 961, 218, 261,
- 219, 220, 975, 808, 943, 269, 1003, 944, 221, 945,
- 946, 231, 251, 699, 244, 546, 908, 947, 551, 826,
- 953, 930, 928, 985, 246, 964, 245, 986, 932, 931,
- 588, 993, 963, 1050, 581, 933, 934, 585, 1013, 1012,
- 562, 936, 935, 984, 564, 823, 1053, 602, 698, 996,
- 813, 603, 983, 982, 606, 1057, 573, 1009, 697, 1079,
- 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 95, 150, 204, 223, 263, 280, 327, 306, 325, 342,
+ 362, 298, 384, 257, 328, 789, 1000, 1001, 1013, 224,
+ 211, 255, 270, 282, 83, 320, 338, 31, 363, 32,
+ 89, 33, 86, 253, 266, 281, 673, 729, 132, 706,
+ 914, 307, 326, 915, 149, 710, 673, 340, 341, 225,
+ 30, 402, 212, 256, 271, 283, 403, 321, 339, 42,
+ 364, 661, 662, 663, 664, 258, 391, 287, 226, 227,
+ 392, 259, 228, 288, 200, 201, 917, 44, 202, 918,
+ 393, 203, 46, 260, 229, 289, 939, 230, 48, 940,
+ 231, 109, 110, 111, 232, 451, 1116, 665, 233, 1117,
+ 452, 234, 457, 50, 235, 236, 237, 458, 238, 239,
+ 94, 240, 241, 52, 747, 264, 251, 54, 265, 748,
+ 749, 750, 751, 752, 753, 754, 755, 756, 757, 758,
+ 759, 760, 761, 762, 763, 764, 765, 385, 386, 56,
+ 132, 133, 300, 1118, 133, 58, 1119, 1120, 1121, 1122,
+ 135, 136, 340, 341, 135, 136, 262, 135, 136, 300,
+ 60, 103, 694, 695, 104, 730, 469, 1016, 1017, 220,
+ 394, 470, 221, 105, 90, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 91, 92, 93, 472, 1000, 1001,
+ 1013, 395, 473, 135, 136, 833, 834, 835, 836, 837,
+ 838, 94, 401, 34, 35, 36, 37, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 501, 518, 62, 132, 133, 502,
+ 519, 847, 848, 64, 520, 109, 110, 111, 134, 521,
+ 94, 135, 136, 524, 94, 451, 137, 94, 525, 520,
+ 870, 138, 139, 524, 871, 457, 972, 140, 872, 482,
+ 873, 94, 66, 810, 811, 812, 813, 141, 814, 407,
+ 142, 875, 279, 865, 300, 896, 876, 143, 144, 896,
+ 897, 145, 146, 94, 898, 133, 135, 136, 676, 677,
+ 678, 679, 107, 108, 109, 110, 111, 408, 135, 136,
+ 409, 931, 147, 148, 416, 149, 932, 935, 518, 272,
+ 697, 698, 936, 937, 417, 273, 274, 275, 276, 277,
+ 278, 418, 279, 115, 116, 117, 118, 119, 120, 121,
+ 122, 94, 95, 125, 126, 127, 128, 129, 130, 419,
+ 213, 214, 215, 420, 133, 896, 483, 469, 526, 527,
+ 1079, 1048, 1080, 1049, 1050, 216, 421, 135, 136, 217,
+ 218, 219, 137, 1083, 484, 501, 1096, 492, 1084, 220,
+ 1090, 1097, 221, 140, 472, 493, 94, 1136, 497, 1099,
+ 222, 150, 1137, 1067, 1068, 1069, 1070, 204, 94, 422,
+ 423, 424, 426, 427, 428, 444, 456, 465, 487, 223,
+ 491, 495, 263, 496, 498, 211, 503, 506, 508, 257,
+ 509, 512, 513, 280, 523, 224, 528, 255, 147, 148,
+ 270, 529, 530, 306, 531, 532, 327, 533, 325, 253,
+ 535, 282, 266, 536, 328, 537, 541, 212, 538, 542,
+ 539, 320, 540, 281, 543, 225, 338, 94, 362, 256,
+ 544, 384, 271, 545, 546, 547, 548, 307, 553, 549,
+ 550, 258, 326, 283, 226, 227, 363, 259, 228, 551,
+ 552, 554, 556, 321, 555, 287, 560, 561, 339, 260,
+ 229, 288, 299, 230, 562, 557, 231, 648, 649, 650,
+ 232, 558, 559, 289, 233, 563, 575, 234, 364, 564,
+ 235, 236, 237, 565, 238, 239, 566, 240, 241, 1100,
+ 567, 568, 251, 264, 569, 570, 265, 571, 107, 108,
+ 109, 110, 111, 572, 573, 574, 576, 300, 577, 301,
+ 302, 578, 594, 303, 304, 305, 579, 580, 581, 135,
+ 136, 583, 584, 585, 588, 586, 589, 590, 591, 115,
+ 116, 117, 118, 119, 120, 121, 122, 592, 593, 125,
+ 126, 127, 128, 129, 130, 131, 595, 596, 597, 599,
+ 133, 300, 601, 602, 603, 604, 150, 605, 384, 725,
+ 606, 607, 204, 135, 136, 608, 218, 610, 137, 611,
+ 613, 612, 614, 615, 618, 220, 616, 619, 221, 620,
+ 211, 738, 622, 623, 626, 627, 222, 300, 322, 301,
+ 302, 323, 324, 629, 625, 628, 849, 632, 362, 135,
+ 136, 630, 633, 631, 636, 637, 634, 635, 638, 94,
+ 639, 642, 212, 643, 850, 645, 363, 135, 136, 646,
+ 647, 651, 652, 653, 147, 148, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 657, 658, 654, 655, 656, 659, 851, 660, 364, 667,
+ 668, 669, 670, 94, 671, 672, 743, 675, 32, 347,
+ 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
+ 358, 359, 681, 682, 683, 684, 689, 690, 360, 361,
+ 685, 686, 688, 691, 692, 703, 700, 701, 708, 94,
+ 702, 704, 705, 737, 790, 900, 707, 709, 794, 732,
+ 798, 802, 711, 806, 822, 825, 712, 94, 713, 714,
+ 715, 716, 717, 718, 829, 857, 719, 720, 721, 722,
+ 723, 724, 726, 861, 881, 882, 883, 727, 728, 884,
+ 885, 890, 891, 892, 893, 734, 735, 894, 895, 736,
+ 901, 903, 904, 907, 906, 910, 956, 909, 913, 912,
+ 920, 921, 923, 924, 941, 925, 926, 927, 928, 929,
+ 930, 946, 687, 945, 958, 950, 949, 948, 952, 953,
+ 954, 955, 957, 960, 959, 961, 962, 963, 964, 965,
+ 969, 966, 1045, 1046, 967, 968, 1061, 970, 1062, 1081,
+ 1038, 1039, 1040, 1065, 1082, 1086, 1087, 1088, 1089, 1041,
+ 1042, 1043, 1066, 1072, 1073, 1074, 1075, 1076, 1077, 1078,
+ 1091, 1092, 223, 1094, 1102, 306, 327, 1098, 325, 1103,
+ 1105, 980, 257, 1106, 328, 1107, 1018, 1110, 224, 280,
+ 255, 1020, 342, 320, 1109, 1111, 338, 981, 1112, 1008,
+ 1132, 1133, 253, 1134, 1022, 849, 1138, 282, 1051, 307,
+ 1139, 1007, 326, 1140, 263, 999, 1021, 1142, 225, 281,
+ 1019, 733, 256, 850, 1141, 321, 1053, 982, 339, 534,
+ 739, 1009, 270, 1144, 258, 582, 1023, 226, 227, 283,
+ 259, 228, 1052, 1010, 266, 1145, 983, 984, 1024, 1011,
+ 985, 287, 260, 229, 1025, 851, 230, 288, 1054, 231,
+ 587, 1012, 986, 232, 271, 987, 1026, 233, 988, 289,
+ 234, 742, 989, 235, 236, 237, 990, 238, 239, 991,
+ 240, 241, 992, 993, 994, 251, 995, 996, 869, 997,
+ 998, 1037, 1002, 951, 1004, 1003, 973, 971, 624, 1015,
+ 1044, 975, 1036, 598, 974, 1101, 1014, 617, 979, 621,
+ 976, 977, 1064, 600, 1063, 1035, 978, 866, 1104, 856,
+ 609, 1047, 640, 741, 644, 264, 1033, 740, 265, 641,
+ 1034, 1108, 1130, 1143, 0, 1060, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 937, 0, 0, 0, 0, 967, 0, 0,
- 0, 0, 969, 0, 959, 1000, 0, 938, 939, 973,
- 960, 0, 0, 0, 0, 974, 0, 0, 0, 0,
- 0, 0, 0, 957, 0, 0, 0, 948, 971, 0,
- 0, 0, 968, 0, 0, 940, 1002, 0, 941, 0,
- 1001, 0, 0, 958, 0, 951, 0, 0, 972, 0,
- 0, 0, 0, 942, 0, 956, 1003, 952, 0, 0,
- 970, 961, 0, 0, 0, 0, 975, 0, 943, 0,
- 0, 944, 0, 945, 946, 0, 0, 0, 0, 0,
- 0, 947, 0, 0, 953
+ 0, 0, 0, 980, 0, 0, 0, 0, 1018, 0,
+ 0, 0, 0, 1020, 0, 0, 1051, 0, 0, 981,
+ 0, 1008, 0, 0, 0, 0, 1022, 0, 0, 0,
+ 0, 0, 0, 1007, 1053, 0, 0, 999, 1021, 0,
+ 0, 0, 1019, 0, 0, 0, 0, 0, 0, 982,
+ 1052, 0, 0, 1009, 0, 0, 0, 0, 1023, 0,
+ 0, 0, 0, 0, 0, 1010, 1054, 0, 983, 984,
+ 1024, 1011, 985, 0, 0, 0, 1025, 0, 0, 0,
+ 0, 0, 0, 1012, 986, 0, 0, 987, 1026, 0,
+ 988, 0, 0, 0, 989, 0, 0, 0, 990, 0,
+ 0, 991, 0, 0, 992, 993, 994, 0, 995, 996,
+ 0, 997, 998, 0, 1002, 0, 1004, 1003
};
const short
Dhcp4Parser::yycheck_[] =
{
70, 71, 72, 73, 74, 75, 78, 77, 78, 79,
- 80, 76, 78, 620, 73, 73, 80, 75, 73, 73,
- 80, 73, 68, 75, 81, 559, 5, 10, 7, 0,
- 9, 565, 7, 72, 73, 74, 75, 868, 77, 78,
- 531, 80, 77, 78, 18, 868, 73, 868, 3, 73,
- 541, 6, 175, 72, 73, 74, 75, 74, 77, 78,
- 7, 80, 112, 113, 73, 3, 73, 74, 75, 74,
- 8, 3, 73, 3, 75, 34, 8, 3, 8, 73,
- 6, 71, 73, 3, 73, 73, 15, 16, 8, 3,
- 19, 34, 73, 22, 8, 73, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, 73, 7, 75, 76, 3, 3,
- 79, 80, 81, 8, 8, 175, 85, 86, 3, 3,
- 73, 6, 3, 11, 8, 7, 14, 8, 142, 143,
- 144, 145, 7, 3, 7, 23, 6, 25, 26, 27,
- 28, 29, 30, 31, 32, 33, 85, 86, 151, 12,
- 13, 154, 155, 156, 157, 148, 140, 7, 3, 7,
- 28, 29, 30, 8, 178, 158, 159, 160, 7, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- 3, 7, 175, 71, 72, 8, 175, 176, 177, 178,
- 3, 1032, 112, 113, 82, 8, 7, 85, 86, 1032,
- 7, 1032, 90, 71, 72, 73, 175, 95, 96, 102,
- 103, 104, 105, 101, 107, 3, 3, 85, 86, 4,
- 8, 8, 175, 111, 3, 7, 114, 3, 149, 8,
- 98, 99, 8, 121, 122, 72, 175, 125, 126, 856,
- 20, 21, 26, 27, 28, 29, 30, 84, 85, 86,
- 6, 28, 29, 30, 73, 85, 86, 3, 146, 147,
- 97, 149, 8, 100, 3, 3, 85, 86, 3, 8,
- 8, 109, 110, 57, 58, 59, 60, 61, 62, 63,
- 64, 17, 18, 8, 68, 69, 70, 175, 72, 3,
- 8, 3, 3, 123, 124, 72, 8, 8, 4, 83,
- 380, 85, 86, 87, 88, 89, 90, 175, 85, 86,
- 4, 4, 4, 97, 370, 371, 100, 101, 3, 96,
- 4, 4, 4, 8, 108, 102, 103, 104, 105, 106,
- 107, 150, 109, 152, 153, 3, 3, 3, 175, 3,
- 8, 8, 8, 423, 8, 175, 4, 4, 4, 429,
- 73, 74, 75, 76, 77, 78, 175, 91, 92, 93,
- 94, 441, 85, 86, 444, 115, 116, 117, 118, 119,
- 120, 4, 441, 441, 4, 455, 441, 441, 4, 441,
- 429, 35, 36, 37, 38, 465, 4, 455, 470, 4,
- 470, 175, 441, 455, 470, 444, 4, 3, 175, 8,
- 429, 4, 4, 8, 441, 3, 455, 441, 488, 8,
- 4, 4, 441, 3, 488, 444, 465, 444, 488, 4,
- 465, 470, 441, 490, 441, 470, 455, 444, 4, 444,
- 441, 26, 27, 28, 29, 30, 465, 441, 455, 488,
- 441, 470, 441, 441, 455, 501, 502, 503, 4, 4,
- 441, 4, 175, 441, 4, 4, 175, 4, 4, 488,
- 4, 4, 57, 58, 59, 60, 61, 62, 63, 64,
- 1014, 4, 67, 4, 4, 4, 178, 72, 73, 178,
- 178, 4, 4, 4, 4, 4, 4, 176, 176, 176,
- 85, 86, 178, 88, 4, 90, 176, 176, 4, 177,
- 177, 176, 97, 4, 4, 100, 4, 4, 4, 4,
- 4, 4, 4, 108, 161, 162, 163, 164, 165, 166,
- 167, 168, 169, 170, 171, 172, 173, 174, 608, 4,
- 4, 587, 176, 4, 614, 4, 4, 4, 4, 4,
- 4, 4, 609, 4, 178, 4, 4, 4, 4, 4,
- 4, 607, 176, 85, 86, 4, 4, 4, 4, 4,
- 640, 4, 642, 4, 4, 614, 4, 4, 642, 4,
- 4, 4, 642, 4, 4, 176, 4, 4, 178, 4,
- 175, 178, 178, 4, 4, 614, 178, 4, 4, 176,
- 4, 640, 176, 642, 176, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 4, 4,
- 178, 640, 178, 642, 146, 147, 4, 4, 4, 176,
- 4, 175, 7, 175, 7, 7, 7, 7, 7, 7,
- 175, 5, 5, 175, 5, 5, 5, 175, 5, 7,
- 5, 5, 5, 175, 3, 7, 7, 7, 175, 175,
- 5, 5, 5, 178, 5, 7, 4, 4, 175, 175,
- 175, 175, 175, 175, 175, 141, 175, 175, 175, 7,
- 175, 175, 175, 175, 24, 7, 175, 7, 7, 7,
- 7, 7, 7, 7, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 7, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 176, 3, 6, 6, 3, 6,
- 6, 3, 6, 3, 3, 6, 3, 3, 6, 4,
- 4, 4, 4, 4, 4, 175, 178, 6, 4, 6,
- 8, 4, 4, 4, 4, 4, 4, 176, 4, 4,
- 176, 4, 4, 3, 176, 6, 4, 176, 4, 8,
- 176, 8, 176, 8, 176, 178, 3, 176, 176, 8,
- 4, 176, 4, 176, 176, 176, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 4, 4, 859,
- 178, 175, 862, 865, 176, 865, 5, 7, 868, 865,
- 859, 859, 4, 873, 859, 859, 876, 859, 873, 879,
- 868, 4, 4, 868, 868, 873, 868, 4, 876, 175,
- 859, 873, 892, 862, 876, 895, 865, 862, 176, 868,
- 865, 901, 859, 868, 873, 859, 4, 876, 873, 178,
- 859, 868, 176, 862, 868, 175, 865, 541, 175, 868,
- 859, 868, 859, 892, 873, 380, 895, 876, 859, 868,
- 895, 868, 901, 868, 608, 859, 873, 868, 859, 876,
- 859, 859, 873, 892, 868, 876, 895, 868, 859, 868,
- 868, 859, 901, 614, 901, 423, 832, 868, 429, 694,
- 868, 858, 853, 879, 901, 871, 901, 881, 861, 859,
- 473, 888, 870, 1032, 465, 862, 864, 470, 903, 901,
- 441, 867, 865, 878, 444, 662, 1037, 488, 613, 892,
- 642, 490, 876, 874, 494, 1045, 455, 896, 609, 1065,
- 1085, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 80, 76, 81, 73, 78, 658, 911, 911, 911, 73,
+ 72, 73, 74, 75, 68, 77, 78, 5, 80, 7,
+ 10, 9, 181, 73, 74, 75, 567, 18, 77, 595,
+ 3, 77, 78, 6, 155, 601, 577, 118, 119, 73,
+ 0, 3, 72, 73, 74, 75, 8, 77, 78, 7,
+ 80, 148, 149, 150, 151, 73, 6, 75, 73, 73,
+ 3, 73, 73, 75, 15, 16, 3, 7, 19, 6,
+ 4, 22, 7, 73, 73, 75, 3, 73, 7, 6,
+ 73, 28, 29, 30, 73, 3, 3, 184, 73, 6,
+ 8, 73, 3, 7, 73, 73, 73, 8, 73, 73,
+ 181, 73, 73, 7, 34, 74, 73, 7, 74, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, 56, 12, 13, 7,
+ 77, 78, 79, 157, 78, 7, 160, 161, 162, 163,
+ 91, 92, 118, 119, 91, 92, 90, 91, 92, 79,
+ 7, 11, 17, 18, 14, 146, 3, 104, 105, 103,
+ 8, 8, 106, 23, 154, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 164, 165, 166, 3, 1083, 1083,
+ 1083, 3, 8, 91, 92, 121, 122, 123, 124, 125,
+ 126, 181, 4, 181, 182, 183, 184, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 3, 3, 7, 77, 78, 8,
+ 8, 129, 130, 7, 3, 28, 29, 30, 88, 8,
+ 181, 91, 92, 3, 181, 3, 96, 181, 8, 3,
+ 8, 101, 102, 3, 8, 3, 899, 107, 8, 8,
+ 8, 181, 7, 108, 109, 110, 111, 117, 113, 4,
+ 120, 3, 115, 116, 79, 3, 8, 127, 128, 3,
+ 8, 131, 132, 181, 8, 78, 91, 92, 97, 98,
+ 99, 100, 26, 27, 28, 29, 30, 4, 91, 92,
+ 4, 3, 152, 153, 4, 155, 8, 3, 3, 102,
+ 20, 21, 8, 8, 4, 108, 109, 110, 111, 112,
+ 113, 4, 115, 57, 58, 59, 60, 61, 62, 63,
+ 64, 181, 402, 67, 68, 69, 70, 71, 72, 4,
+ 74, 75, 76, 4, 78, 3, 3, 3, 392, 393,
+ 8, 156, 8, 158, 159, 89, 4, 91, 92, 93,
+ 94, 95, 96, 3, 8, 3, 3, 8, 8, 103,
+ 8, 8, 106, 107, 3, 3, 181, 3, 8, 8,
+ 114, 451, 8, 35, 36, 37, 38, 457, 181, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 469,
+ 4, 4, 472, 4, 3, 457, 4, 4, 4, 469,
+ 4, 4, 4, 483, 4, 469, 181, 469, 152, 153,
+ 472, 4, 4, 493, 4, 4, 498, 4, 498, 469,
+ 4, 483, 472, 4, 498, 4, 4, 457, 184, 4,
+ 184, 493, 184, 483, 4, 469, 498, 181, 518, 469,
+ 4, 520, 472, 4, 4, 182, 182, 493, 183, 182,
+ 182, 469, 498, 483, 469, 469, 518, 469, 469, 182,
+ 184, 183, 4, 493, 182, 483, 4, 4, 498, 469,
+ 469, 483, 34, 469, 4, 184, 469, 531, 532, 533,
+ 469, 184, 184, 483, 469, 4, 182, 469, 518, 4,
+ 469, 469, 469, 4, 469, 469, 4, 469, 469, 1065,
+ 4, 4, 469, 472, 4, 4, 472, 4, 26, 27,
+ 28, 29, 30, 4, 4, 4, 4, 79, 4, 81,
+ 82, 4, 182, 85, 86, 87, 4, 4, 4, 91,
+ 92, 4, 4, 4, 4, 184, 4, 4, 4, 57,
+ 58, 59, 60, 61, 62, 63, 64, 4, 4, 67,
+ 68, 69, 70, 71, 72, 73, 4, 4, 4, 4,
+ 78, 79, 4, 4, 4, 4, 646, 4, 647, 623,
+ 4, 4, 652, 91, 92, 4, 94, 4, 96, 4,
+ 4, 182, 4, 4, 4, 103, 184, 184, 106, 184,
+ 652, 645, 4, 4, 4, 4, 114, 79, 80, 81,
+ 82, 83, 84, 4, 184, 182, 686, 4, 688, 91,
+ 92, 182, 4, 182, 4, 4, 184, 184, 4, 181,
+ 4, 4, 652, 182, 686, 4, 688, 91, 92, 7,
+ 7, 7, 7, 7, 152, 153, 167, 168, 169, 170,
+ 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 7, 7, 181, 181, 181, 5, 686, 181, 688, 181,
+ 181, 5, 5, 181, 5, 5, 24, 181, 7, 133,
+ 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 5, 5, 5, 5, 181, 181, 152, 153,
+ 7, 7, 7, 5, 5, 5, 181, 181, 7, 181,
+ 181, 181, 181, 5, 7, 6, 181, 181, 7, 147,
+ 7, 7, 181, 7, 7, 7, 181, 181, 181, 181,
+ 181, 181, 181, 181, 7, 7, 181, 181, 181, 181,
+ 181, 181, 181, 7, 4, 4, 4, 181, 181, 4,
+ 4, 4, 4, 4, 4, 181, 181, 4, 4, 181,
+ 3, 6, 3, 3, 6, 3, 182, 6, 3, 6,
+ 6, 3, 6, 3, 181, 4, 4, 4, 4, 4,
+ 4, 3, 577, 6, 182, 4, 6, 8, 4, 4,
+ 4, 4, 184, 182, 184, 4, 4, 4, 4, 182,
+ 184, 182, 4, 4, 182, 182, 6, 182, 3, 8,
+ 182, 182, 182, 4, 8, 4, 8, 3, 8, 182,
+ 182, 182, 181, 181, 181, 181, 181, 181, 181, 181,
+ 181, 181, 902, 4, 4, 905, 908, 181, 908, 184,
+ 4, 911, 902, 182, 908, 4, 916, 5, 902, 919,
+ 902, 916, 922, 905, 181, 181, 908, 911, 7, 911,
+ 4, 4, 902, 4, 916, 935, 4, 919, 938, 905,
+ 184, 911, 908, 182, 944, 911, 916, 4, 902, 919,
+ 916, 636, 902, 935, 182, 905, 938, 911, 908, 402,
+ 646, 911, 944, 181, 902, 451, 916, 902, 902, 919,
+ 902, 902, 938, 911, 944, 181, 911, 911, 916, 911,
+ 911, 919, 902, 902, 916, 935, 902, 919, 938, 902,
+ 457, 911, 911, 902, 944, 911, 916, 902, 911, 919,
+ 902, 652, 911, 902, 902, 902, 911, 902, 902, 911,
+ 902, 902, 911, 911, 911, 902, 911, 911, 737, 911,
+ 911, 924, 911, 875, 911, 911, 901, 896, 501, 914,
+ 931, 904, 922, 469, 902, 1083, 913, 493, 910, 498,
+ 905, 907, 946, 472, 944, 921, 908, 708, 1088, 688,
+ 483, 935, 518, 651, 524, 944, 917, 647, 944, 520,
+ 919, 1096, 1116, 1136, -1, 939, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 1032, -1, -1, -1, -1, 1037, -1, -1,
- -1, -1, 1037, -1, 1032, 1045, -1, 1032, 1032, 1037,
- 1032, -1, -1, -1, -1, 1037, -1, -1, -1, -1,
- -1, -1, -1, 1032, -1, -1, -1, 1032, 1037, -1,
- -1, -1, 1037, -1, -1, 1032, 1045, -1, 1032, -1,
- 1045, -1, -1, 1032, -1, 1032, -1, -1, 1037, -1,
- -1, -1, -1, 1032, -1, 1032, 1045, 1032, -1, -1,
- 1037, 1032, -1, -1, -1, -1, 1037, -1, 1032, -1,
- -1, 1032, -1, 1032, 1032, -1, -1, -1, -1, -1,
- -1, 1032, -1, -1, 1032
+ -1, -1, -1, 1083, -1, -1, -1, -1, 1088, -1,
+ -1, -1, -1, 1088, -1, -1, 1096, -1, -1, 1083,
+ -1, 1083, -1, -1, -1, -1, 1088, -1, -1, -1,
+ -1, -1, -1, 1083, 1096, -1, -1, 1083, 1088, -1,
+ -1, -1, 1088, -1, -1, -1, -1, -1, -1, 1083,
+ 1096, -1, -1, 1083, -1, -1, -1, -1, 1088, -1,
+ -1, -1, -1, -1, -1, 1083, 1096, -1, 1083, 1083,
+ 1088, 1083, 1083, -1, -1, -1, 1088, -1, -1, -1,
+ -1, -1, -1, 1083, 1083, -1, -1, 1083, 1088, -1,
+ 1083, -1, -1, -1, 1083, -1, -1, -1, 1083, -1,
+ -1, 1083, -1, -1, 1083, 1083, 1083, -1, 1083, 1083,
+ -1, 1083, 1083, -1, 1083, -1, 1083, 1083
};
const unsigned short
Dhcp4Parser::yystos_[] =
{
- 0, 161, 162, 163, 164, 165, 166, 167, 168, 169,
- 170, 171, 172, 173, 174, 180, 181, 182, 183, 184,
- 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
- 0, 5, 7, 9, 175, 176, 177, 178, 195, 196,
- 197, 202, 7, 211, 7, 217, 7, 239, 7, 337,
- 7, 417, 7, 433, 7, 369, 7, 375, 7, 399,
- 7, 313, 7, 490, 7, 537, 7, 528, 203, 198,
- 212, 218, 240, 338, 418, 434, 370, 376, 400, 314,
- 491, 538, 529, 195, 204, 205, 175, 200, 201, 10,
- 148, 158, 159, 160, 175, 210, 213, 214, 215, 520,
- 522, 524, 535, 11, 14, 23, 25, 26, 27, 28,
+ 0, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 186, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
+ 0, 5, 7, 9, 181, 182, 183, 184, 201, 202,
+ 203, 208, 7, 217, 7, 223, 7, 259, 7, 357,
+ 7, 437, 7, 453, 7, 389, 7, 395, 7, 419,
+ 7, 333, 7, 510, 7, 556, 7, 547, 209, 204,
+ 218, 224, 260, 358, 438, 454, 390, 396, 420, 334,
+ 511, 557, 548, 201, 210, 211, 181, 206, 207, 10,
+ 154, 164, 165, 166, 181, 216, 219, 220, 221, 539,
+ 541, 543, 554, 11, 14, 23, 25, 26, 27, 28,
29, 30, 31, 32, 33, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, 71, 72, 82, 85,
- 86, 90, 95, 96, 101, 111, 114, 121, 122, 125,
- 126, 146, 147, 149, 210, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 229, 230, 232, 233, 234,
- 235, 250, 252, 258, 260, 298, 307, 321, 331, 355,
- 359, 367, 393, 423, 425, 427, 438, 440, 442, 465,
- 477, 478, 486, 488, 516, 518, 526, 541, 15, 16,
- 19, 22, 210, 237, 238, 241, 243, 246, 249, 423,
- 425, 68, 69, 70, 83, 87, 88, 89, 97, 100,
- 108, 210, 221, 222, 223, 224, 225, 226, 227, 228,
- 233, 234, 339, 340, 341, 343, 345, 347, 349, 351,
- 353, 355, 358, 393, 411, 423, 425, 427, 438, 440,
- 442, 462, 84, 210, 351, 353, 393, 419, 420, 421,
- 423, 425, 96, 102, 103, 104, 105, 106, 107, 109,
- 210, 393, 423, 425, 435, 436, 437, 438, 440, 442,
- 444, 448, 450, 452, 454, 456, 458, 460, 367, 34,
- 73, 75, 76, 79, 80, 81, 210, 278, 377, 378,
- 379, 380, 381, 382, 383, 385, 387, 389, 390, 392,
- 423, 425, 74, 77, 78, 210, 278, 381, 387, 401,
- 402, 403, 404, 405, 407, 408, 409, 410, 423, 425,
- 112, 113, 210, 315, 316, 317, 319, 127, 128, 129,
- 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 210, 423, 425, 492, 493, 494, 495, 497, 499, 500,
- 502, 503, 504, 507, 509, 510, 511, 514, 516, 518,
- 539, 540, 541, 12, 13, 530, 531, 532, 534, 6,
- 3, 4, 8, 3, 216, 536, 521, 523, 525, 4,
- 3, 8, 527, 236, 253, 4, 4, 4, 439, 441,
- 443, 251, 259, 261, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 231, 332, 368, 394, 360, 424, 426,
- 356, 299, 466, 428, 308, 322, 4, 479, 487, 489,
- 517, 519, 542, 3, 8, 242, 244, 247, 4, 3,
- 8, 344, 346, 348, 412, 342, 350, 4, 354, 352,
- 463, 3, 8, 422, 3, 8, 461, 449, 451, 455,
- 453, 459, 457, 445, 8, 3, 8, 384, 279, 4,
- 388, 386, 391, 4, 8, 3, 406, 4, 4, 8,
- 3, 318, 320, 3, 8, 4, 496, 498, 4, 501,
- 4, 4, 505, 508, 4, 4, 512, 515, 3, 8,
- 3, 8, 533, 4, 3, 8, 195, 195, 175, 4,
- 4, 4, 4, 4, 214, 4, 4, 4, 178, 178,
- 178, 4, 4, 4, 4, 4, 4, 176, 176, 176,
- 176, 176, 178, 177, 177, 176, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 176,
- 4, 4, 4, 4, 4, 4, 220, 4, 4, 4,
- 178, 238, 4, 4, 4, 4, 4, 4, 176, 4,
- 4, 4, 340, 4, 420, 4, 4, 4, 4, 4,
- 4, 4, 4, 437, 4, 4, 176, 4, 4, 4,
- 178, 379, 4, 178, 178, 403, 4, 4, 316, 178,
- 4, 4, 176, 4, 176, 176, 4, 4, 178, 178,
- 4, 4, 493, 540, 4, 176, 531, 4, 7, 7,
- 195, 195, 195, 7, 7, 7, 175, 175, 175, 7,
- 7, 5, 175, 5, 5, 5, 5, 197, 199, 175,
- 91, 92, 93, 94, 357, 5, 5, 5, 5, 7,
- 7, 199, 7, 175, 175, 5, 5, 206, 17, 18,
- 245, 20, 21, 248, 175, 175, 175, 5, 175, 175,
- 206, 175, 7, 175, 206, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 195,
- 175, 175, 175, 18, 140, 506, 141, 142, 143, 144,
- 145, 178, 513, 175, 5, 195, 219, 539, 530, 237,
- 24, 254, 255, 256, 34, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, 210, 266, 267, 268, 271, 273, 275,
- 277, 278, 280, 281, 282, 283, 284, 285, 286, 287,
- 289, 291, 293, 295, 296, 297, 266, 7, 262, 263,
- 264, 7, 333, 334, 335, 7, 371, 372, 373, 7,
- 395, 396, 397, 7, 361, 362, 363, 102, 103, 104,
- 105, 107, 300, 301, 302, 303, 304, 305, 306, 7,
- 467, 468, 7, 429, 430, 431, 7, 309, 310, 311,
- 115, 116, 117, 118, 119, 120, 323, 324, 325, 326,
- 327, 328, 329, 330, 123, 124, 210, 423, 425, 480,
- 481, 482, 484, 492, 7, 543, 544, 207, 7, 413,
- 414, 415, 110, 444, 446, 464, 262, 8, 8, 8,
- 8, 257, 3, 8, 269, 272, 274, 276, 4, 4,
- 4, 4, 4, 288, 290, 292, 294, 4, 4, 4,
- 4, 4, 4, 3, 8, 8, 265, 6, 3, 336,
- 6, 3, 374, 6, 3, 398, 6, 3, 364, 6,
- 3, 3, 6, 469, 3, 6, 432, 6, 3, 312,
- 6, 3, 4, 4, 4, 4, 4, 4, 3, 8,
- 483, 485, 3, 8, 8, 545, 3, 6, 175, 208,
- 209, 416, 6, 3, 447, 8, 6, 4, 255, 4,
- 4, 4, 4, 176, 178, 176, 178, 176, 4, 4,
- 4, 4, 176, 176, 176, 176, 178, 176, 267, 266,
- 264, 339, 335, 377, 373, 401, 397, 210, 221, 222,
- 223, 224, 225, 226, 227, 228, 233, 234, 278, 331,
- 349, 351, 353, 355, 365, 366, 393, 423, 425, 438,
- 440, 442, 462, 363, 301, 98, 99, 210, 278, 367,
- 393, 423, 425, 438, 440, 442, 470, 471, 472, 473,
- 474, 476, 468, 435, 431, 315, 311, 176, 176, 176,
- 176, 176, 176, 324, 4, 4, 481, 150, 152, 153,
- 210, 278, 423, 425, 546, 547, 548, 549, 551, 544,
- 6, 3, 419, 415, 4, 175, 35, 36, 37, 38,
- 270, 175, 175, 175, 175, 175, 175, 175, 8, 8,
- 8, 8, 3, 8, 475, 4, 8, 3, 8, 8,
- 175, 175, 552, 4, 550, 3, 8, 175, 8, 206,
- 366, 4, 178, 472, 4, 176, 4, 547, 175, 5,
- 175, 7, 553, 554, 555, 3, 6, 151, 154, 155,
- 156, 157, 556, 557, 558, 560, 561, 562, 563, 554,
- 559, 4, 4, 4, 564, 3, 8, 4, 178, 176,
- 176, 4, 557, 175, 175
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 77, 78, 88, 91, 92, 96, 101, 102,
+ 107, 117, 120, 127, 128, 131, 132, 152, 153, 155,
+ 216, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 238, 239, 240, 241, 242, 243, 244,
+ 247, 249, 251, 253, 255, 270, 272, 278, 280, 318,
+ 327, 341, 351, 375, 379, 387, 413, 443, 445, 447,
+ 458, 460, 462, 485, 497, 498, 506, 508, 545, 560,
+ 15, 16, 19, 22, 216, 257, 258, 261, 263, 266,
+ 269, 443, 445, 74, 75, 76, 89, 93, 94, 95,
+ 103, 106, 114, 216, 227, 228, 229, 230, 231, 232,
+ 233, 234, 239, 240, 241, 242, 243, 244, 247, 249,
+ 251, 253, 359, 360, 361, 363, 365, 367, 369, 371,
+ 373, 375, 378, 413, 431, 443, 445, 447, 458, 460,
+ 462, 482, 90, 216, 371, 373, 413, 439, 440, 441,
+ 443, 445, 102, 108, 109, 110, 111, 112, 113, 115,
+ 216, 413, 443, 445, 455, 456, 457, 458, 460, 462,
+ 464, 468, 470, 472, 474, 476, 478, 480, 387, 34,
+ 79, 81, 82, 85, 86, 87, 216, 298, 397, 398,
+ 399, 400, 401, 402, 403, 405, 407, 409, 410, 412,
+ 443, 445, 80, 83, 84, 216, 298, 401, 407, 421,
+ 422, 423, 424, 425, 427, 428, 429, 430, 443, 445,
+ 118, 119, 216, 335, 336, 337, 339, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
+ 152, 153, 216, 443, 445, 512, 513, 514, 515, 517,
+ 518, 520, 521, 522, 525, 527, 529, 530, 531, 533,
+ 535, 537, 558, 559, 560, 12, 13, 549, 550, 551,
+ 553, 6, 3, 4, 8, 3, 222, 555, 540, 542,
+ 544, 4, 3, 8, 546, 256, 273, 4, 4, 4,
+ 459, 461, 463, 271, 279, 281, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 237, 4, 4, 4, 245,
+ 248, 250, 352, 388, 414, 380, 444, 446, 376, 319,
+ 486, 448, 328, 342, 4, 499, 507, 509, 252, 254,
+ 561, 3, 8, 262, 264, 267, 4, 3, 8, 364,
+ 366, 368, 432, 362, 370, 4, 374, 372, 483, 3,
+ 8, 442, 3, 8, 481, 469, 471, 475, 473, 479,
+ 477, 465, 8, 3, 8, 404, 299, 4, 408, 406,
+ 411, 4, 8, 3, 426, 4, 4, 8, 3, 338,
+ 340, 3, 8, 4, 528, 516, 4, 519, 4, 4,
+ 523, 526, 4, 4, 532, 534, 536, 538, 3, 8,
+ 3, 8, 552, 4, 3, 8, 201, 201, 181, 4,
+ 4, 4, 4, 4, 220, 4, 4, 4, 184, 184,
+ 184, 4, 4, 4, 4, 4, 4, 182, 182, 182,
+ 182, 182, 184, 183, 183, 182, 4, 184, 184, 184,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 182, 4, 4, 4, 4,
+ 4, 4, 226, 4, 4, 4, 184, 258, 4, 4,
+ 4, 4, 4, 4, 182, 4, 4, 4, 360, 4,
+ 440, 4, 4, 4, 4, 4, 4, 4, 4, 457,
+ 4, 4, 182, 4, 4, 4, 184, 399, 4, 184,
+ 184, 423, 4, 4, 336, 184, 4, 4, 182, 4,
+ 182, 182, 4, 4, 184, 184, 4, 4, 4, 4,
+ 513, 559, 4, 182, 550, 4, 7, 7, 201, 201,
+ 201, 7, 7, 7, 181, 181, 181, 7, 7, 5,
+ 181, 148, 149, 150, 151, 184, 246, 181, 181, 5,
+ 5, 5, 5, 203, 205, 181, 97, 98, 99, 100,
+ 377, 5, 5, 5, 5, 7, 7, 205, 7, 181,
+ 181, 5, 5, 212, 17, 18, 265, 20, 21, 268,
+ 181, 181, 181, 5, 181, 181, 212, 181, 7, 181,
+ 212, 181, 181, 181, 181, 181, 181, 181, 181, 181,
+ 181, 181, 181, 181, 181, 201, 181, 181, 181, 18,
+ 146, 524, 147, 246, 181, 181, 181, 5, 201, 225,
+ 558, 549, 257, 24, 274, 275, 276, 34, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, 216, 286, 287, 288,
+ 291, 293, 295, 297, 298, 300, 301, 302, 303, 304,
+ 305, 306, 307, 309, 311, 313, 315, 316, 317, 286,
+ 7, 282, 283, 284, 7, 353, 354, 355, 7, 391,
+ 392, 393, 7, 415, 416, 417, 7, 381, 382, 383,
+ 108, 109, 110, 111, 113, 320, 321, 322, 323, 324,
+ 325, 326, 7, 487, 488, 7, 449, 450, 451, 7,
+ 329, 330, 331, 121, 122, 123, 124, 125, 126, 343,
+ 344, 345, 346, 347, 348, 349, 350, 129, 130, 216,
+ 443, 445, 500, 501, 502, 504, 512, 7, 562, 563,
+ 213, 7, 433, 434, 435, 116, 464, 466, 484, 282,
+ 8, 8, 8, 8, 277, 3, 8, 289, 292, 294,
+ 296, 4, 4, 4, 4, 4, 308, 310, 312, 314,
+ 4, 4, 4, 4, 4, 4, 3, 8, 8, 285,
+ 6, 3, 356, 6, 3, 394, 6, 3, 418, 6,
+ 3, 384, 6, 3, 3, 6, 489, 3, 6, 452,
+ 6, 3, 332, 6, 3, 4, 4, 4, 4, 4,
+ 4, 3, 8, 503, 505, 3, 8, 8, 564, 3,
+ 6, 181, 214, 215, 436, 6, 3, 467, 8, 6,
+ 4, 275, 4, 4, 4, 4, 182, 184, 182, 184,
+ 182, 4, 4, 4, 4, 182, 182, 182, 182, 184,
+ 182, 287, 286, 284, 359, 355, 397, 393, 421, 417,
+ 216, 227, 228, 229, 230, 231, 232, 233, 234, 239,
+ 240, 241, 242, 243, 244, 247, 249, 251, 253, 298,
+ 351, 369, 371, 373, 375, 385, 386, 413, 443, 445,
+ 458, 460, 462, 482, 383, 321, 104, 105, 216, 298,
+ 387, 413, 443, 445, 458, 460, 462, 490, 491, 492,
+ 493, 494, 496, 488, 455, 451, 335, 331, 182, 182,
+ 182, 182, 182, 182, 344, 4, 4, 501, 156, 158,
+ 159, 216, 298, 443, 445, 565, 566, 567, 568, 570,
+ 563, 6, 3, 439, 435, 4, 181, 35, 36, 37,
+ 38, 290, 181, 181, 181, 181, 181, 181, 181, 8,
+ 8, 8, 8, 3, 8, 495, 4, 8, 3, 8,
+ 8, 181, 181, 571, 4, 569, 3, 8, 181, 8,
+ 212, 386, 4, 184, 492, 4, 182, 4, 566, 181,
+ 5, 181, 7, 572, 573, 574, 3, 6, 157, 160,
+ 161, 162, 163, 575, 576, 577, 579, 580, 581, 582,
+ 573, 578, 4, 4, 4, 583, 3, 8, 4, 184,
+ 182, 182, 4, 576, 181, 181
};
const unsigned short
Dhcp4Parser::yyr1_[] =
{
- 0, 179, 181, 180, 182, 180, 183, 180, 184, 180,
- 185, 180, 186, 180, 187, 180, 188, 180, 189, 180,
- 190, 180, 191, 180, 192, 180, 193, 180, 194, 180,
- 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, 220, 220, 220,
- 220, 220, 220, 220, 220, 220, 221, 222, 223, 224,
- 225, 226, 227, 228, 229, 231, 230, 232, 233, 234,
- 236, 235, 237, 237, 238, 238, 238, 238, 238, 238,
- 238, 240, 239, 242, 241, 244, 243, 245, 245, 247,
- 246, 248, 248, 249, 251, 250, 253, 252, 254, 254,
- 255, 257, 256, 259, 258, 261, 260, 262, 262, 263,
- 263, 265, 264, 266, 266, 267, 267, 267, 267, 267,
- 267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
- 267, 267, 267, 267, 267, 267, 269, 268, 270, 270,
- 270, 270, 272, 271, 274, 273, 276, 275, 277, 279,
- 278, 280, 281, 282, 283, 284, 285, 286, 288, 287,
- 290, 289, 292, 291, 294, 293, 295, 296, 297, 299,
- 298, 300, 300, 301, 301, 301, 301, 301, 302, 303,
- 304, 305, 306, 308, 307, 309, 309, 310, 310, 312,
- 311, 314, 313, 315, 315, 315, 316, 316, 318, 317,
- 320, 319, 322, 321, 323, 323, 324, 324, 324, 324,
- 324, 324, 325, 326, 327, 328, 329, 330, 332, 331,
- 333, 333, 334, 334, 336, 335, 338, 337, 339, 339,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 342,
- 341, 344, 343, 346, 345, 348, 347, 350, 349, 352,
- 351, 354, 353, 356, 355, 357, 357, 357, 357, 358,
- 360, 359, 361, 361, 362, 362, 364, 363, 365, 365,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 368, 367, 370, 369, 371, 371,
- 372, 372, 374, 373, 376, 375, 377, 377, 378, 378,
- 379, 379, 379, 379, 379, 379, 379, 379, 379, 379,
- 380, 381, 382, 384, 383, 386, 385, 388, 387, 389,
- 391, 390, 392, 394, 393, 395, 395, 396, 396, 398,
- 397, 400, 399, 401, 401, 402, 402, 403, 403, 403,
- 403, 403, 403, 403, 403, 403, 404, 406, 405, 407,
- 408, 409, 410, 412, 411, 413, 413, 414, 414, 416,
- 415, 418, 417, 419, 419, 420, 420, 420, 420, 420,
- 420, 420, 422, 421, 424, 423, 426, 425, 428, 427,
- 429, 429, 430, 430, 432, 431, 434, 433, 435, 435,
- 436, 436, 437, 437, 437, 437, 437, 437, 437, 437,
- 437, 437, 437, 437, 437, 437, 437, 439, 438, 441,
- 440, 443, 442, 445, 444, 447, 446, 449, 448, 451,
- 450, 453, 452, 455, 454, 457, 456, 459, 458, 461,
- 460, 463, 462, 464, 464, 466, 465, 467, 467, 469,
- 468, 470, 470, 471, 471, 472, 472, 472, 472, 472,
- 472, 472, 472, 472, 472, 472, 473, 475, 474, 476,
- 477, 479, 478, 480, 480, 481, 481, 481, 481, 481,
- 483, 482, 485, 484, 487, 486, 489, 488, 491, 490,
- 492, 492, 493, 493, 493, 493, 493, 493, 493, 493,
- 493, 493, 493, 493, 493, 493, 493, 493, 493, 493,
- 494, 496, 495, 498, 497, 499, 501, 500, 502, 503,
- 505, 504, 506, 506, 508, 507, 509, 510, 512, 511,
- 513, 513, 513, 513, 513, 515, 514, 517, 516, 519,
- 518, 521, 520, 523, 522, 525, 524, 527, 526, 529,
- 528, 530, 530, 531, 531, 533, 532, 534, 536, 535,
- 538, 537, 539, 539, 540, 542, 541, 543, 543, 545,
- 544, 546, 546, 547, 547, 547, 547, 547, 547, 547,
- 548, 550, 549, 552, 551, 553, 553, 555, 554, 556,
- 556, 557, 557, 557, 557, 557, 559, 558, 560, 561,
- 562, 564, 563
+ 0, 185, 187, 186, 188, 186, 189, 186, 190, 186,
+ 191, 186, 192, 186, 193, 186, 194, 186, 195, 186,
+ 196, 186, 197, 186, 198, 186, 199, 186, 200, 186,
+ 201, 201, 201, 201, 201, 201, 201, 202, 204, 203,
+ 205, 206, 206, 207, 207, 209, 208, 210, 210, 211,
+ 211, 213, 212, 214, 214, 215, 215, 216, 218, 217,
+ 219, 219, 220, 220, 220, 220, 220, 220, 222, 221,
+ 224, 223, 225, 225, 226, 226, 226, 226, 226, 226,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
+ 226, 226, 227, 228, 229, 230, 231, 232, 233, 234,
+ 235, 237, 236, 238, 239, 240, 241, 242, 243, 245,
+ 244, 246, 246, 246, 246, 246, 248, 247, 250, 249,
+ 252, 251, 254, 253, 256, 255, 257, 257, 258, 258,
+ 258, 258, 258, 258, 258, 260, 259, 262, 261, 264,
+ 263, 265, 265, 267, 266, 268, 268, 269, 271, 270,
+ 273, 272, 274, 274, 275, 277, 276, 279, 278, 281,
+ 280, 282, 282, 283, 283, 285, 284, 286, 286, 287,
+ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
+ 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
+ 289, 288, 290, 290, 290, 290, 292, 291, 294, 293,
+ 296, 295, 297, 299, 298, 300, 301, 302, 303, 304,
+ 305, 306, 308, 307, 310, 309, 312, 311, 314, 313,
+ 315, 316, 317, 319, 318, 320, 320, 321, 321, 321,
+ 321, 321, 322, 323, 324, 325, 326, 328, 327, 329,
+ 329, 330, 330, 332, 331, 334, 333, 335, 335, 335,
+ 336, 336, 338, 337, 340, 339, 342, 341, 343, 343,
+ 344, 344, 344, 344, 344, 344, 345, 346, 347, 348,
+ 349, 350, 352, 351, 353, 353, 354, 354, 356, 355,
+ 358, 357, 359, 359, 360, 360, 360, 360, 360, 360,
+ 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
+ 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
+ 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
+ 360, 362, 361, 364, 363, 366, 365, 368, 367, 370,
+ 369, 372, 371, 374, 373, 376, 375, 377, 377, 377,
+ 377, 378, 380, 379, 381, 381, 382, 382, 384, 383,
+ 385, 385, 386, 386, 386, 386, 386, 386, 386, 386,
+ 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
+ 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
+ 386, 386, 386, 386, 388, 387, 390, 389, 391, 391,
+ 392, 392, 394, 393, 396, 395, 397, 397, 398, 398,
+ 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
+ 400, 401, 402, 404, 403, 406, 405, 408, 407, 409,
+ 411, 410, 412, 414, 413, 415, 415, 416, 416, 418,
+ 417, 420, 419, 421, 421, 422, 422, 423, 423, 423,
+ 423, 423, 423, 423, 423, 423, 424, 426, 425, 427,
+ 428, 429, 430, 432, 431, 433, 433, 434, 434, 436,
+ 435, 438, 437, 439, 439, 440, 440, 440, 440, 440,
+ 440, 440, 442, 441, 444, 443, 446, 445, 448, 447,
+ 449, 449, 450, 450, 452, 451, 454, 453, 455, 455,
+ 456, 456, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 459, 458, 461,
+ 460, 463, 462, 465, 464, 467, 466, 469, 468, 471,
+ 470, 473, 472, 475, 474, 477, 476, 479, 478, 481,
+ 480, 483, 482, 484, 484, 486, 485, 487, 487, 489,
+ 488, 490, 490, 491, 491, 492, 492, 492, 492, 492,
+ 492, 492, 492, 492, 492, 492, 493, 495, 494, 496,
+ 497, 499, 498, 500, 500, 501, 501, 501, 501, 501,
+ 503, 502, 505, 504, 507, 506, 509, 508, 511, 510,
+ 512, 512, 513, 513, 513, 513, 513, 513, 513, 513,
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
+ 514, 516, 515, 517, 519, 518, 520, 521, 523, 522,
+ 524, 524, 526, 525, 528, 527, 529, 530, 532, 531,
+ 534, 533, 536, 535, 538, 537, 540, 539, 542, 541,
+ 544, 543, 546, 545, 548, 547, 549, 549, 550, 550,
+ 552, 551, 553, 555, 554, 557, 556, 558, 558, 559,
+ 561, 560, 562, 562, 564, 563, 565, 565, 566, 566,
+ 566, 566, 566, 566, 566, 567, 569, 568, 571, 570,
+ 572, 572, 574, 573, 575, 575, 576, 576, 576, 576,
+ 576, 578, 577, 579, 580, 581, 583, 582
};
const unsigned char
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, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 0, 4, 3, 3, 3, 3, 3, 3, 0,
+ 4, 1, 1, 1, 1, 1, 0, 4, 0, 4,
+ 0, 4, 0, 4, 0, 6, 1, 3, 1, 1,
+ 1, 1, 1, 1, 1, 0, 4, 0, 4, 0,
+ 4, 1, 1, 0, 4, 1, 1, 3, 0, 6,
+ 0, 6, 1, 3, 1, 0, 4, 0, 6, 0,
+ 6, 0, 1, 1, 3, 0, 4, 1, 3, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 4, 1, 1, 1, 1, 0, 4, 0, 4,
+ 0, 4, 3, 0, 4, 3, 3, 3, 3, 3,
+ 3, 3, 0, 4, 0, 4, 0, 4, 0, 4,
+ 3, 3, 3, 0, 6, 1, 3, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 0, 6, 0,
+ 1, 1, 3, 0, 4, 0, 4, 1, 3, 1,
+ 1, 1, 0, 4, 0, 4, 0, 6, 1, 3,
1, 1, 1, 1, 1, 1, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 0, 4, 3, 3, 3,
- 0, 6, 1, 3, 1, 1, 1, 1, 1, 1,
- 1, 0, 4, 0, 4, 0, 4, 1, 1, 0,
- 4, 1, 1, 3, 0, 6, 0, 6, 1, 3,
- 1, 0, 4, 0, 6, 0, 6, 0, 1, 1,
- 3, 0, 4, 1, 3, 1, 1, 1, 1, 1,
+ 3, 3, 0, 6, 0, 1, 1, 3, 0, 4,
+ 0, 4, 1, 3, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 0, 4, 1, 1,
- 1, 1, 0, 4, 0, 4, 0, 4, 3, 0,
- 4, 3, 3, 3, 3, 3, 3, 3, 0, 4,
- 0, 4, 0, 4, 0, 4, 3, 3, 3, 0,
- 6, 1, 3, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 0, 6, 0, 1, 1, 3, 0,
- 4, 0, 4, 1, 3, 1, 1, 1, 0, 4,
- 0, 4, 0, 6, 1, 3, 1, 1, 1, 1,
- 1, 1, 3, 3, 3, 3, 3, 3, 0, 6,
- 0, 1, 1, 3, 0, 4, 0, 4, 1, 3,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
- 4, 0, 4, 0, 4, 0, 4, 0, 4, 0,
- 4, 0, 4, 0, 4, 1, 1, 1, 1, 3,
- 0, 6, 0, 1, 1, 3, 0, 4, 1, 3,
+ 1, 0, 4, 0, 4, 0, 4, 0, 4, 0,
+ 4, 0, 4, 0, 4, 0, 4, 1, 1, 1,
+ 1, 3, 0, 6, 0, 1, 1, 3, 0, 4,
+ 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 0, 6, 0, 4, 0, 1,
0, 4, 0, 4, 0, 4, 0, 6, 0, 4,
1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 3, 0, 4, 0, 4, 3, 0, 4, 3, 3,
- 0, 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, 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, 1, 0, 4, 3, 3,
- 3, 0, 4
+ 3, 0, 4, 3, 0, 4, 3, 3, 0, 4,
+ 1, 1, 0, 4, 0, 4, 3, 3, 0, 4,
+ 0, 4, 0, 4, 0, 4, 0, 4, 0, 4,
+ 0, 4, 0, 6, 0, 4, 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,
+ 1, 0, 4, 3, 3, 3, 0, 4
};
"\"min-valid-lifetime\"", "\"max-valid-lifetime\"", "\"renew-timer\"",
"\"rebind-timer\"", "\"calculate-tee-times\"", "\"t1-percent\"",
"\"t2-percent\"", "\"decline-probation-period\"", "\"server-tag\"",
- "\"subnet4\"", "\"4o6-interface\"", "\"4o6-interface-id\"",
- "\"4o6-subnet\"", "\"option-def\"", "\"option-data\"", "\"name\"",
- "\"data\"", "\"code\"", "\"space\"", "\"csv-format\"", "\"always-send\"",
- "\"record-types\"", "\"encapsulate\"", "\"array\"",
- "\"shared-networks\"", "\"pools\"", "\"pool\"", "\"user-context\"",
- "\"comment\"", "\"subnet\"", "\"interface\"", "\"id\"",
- "\"reservation-mode\"", "\"disabled\"", "\"out-of-pool\"", "\"global\"",
- "\"all\"", "\"host-reservation-identifiers\"", "\"client-classes\"",
+ "\"ddns-send-updates\"", "\"ddns-override-no-update\"",
+ "\"ddns-override-client-update\"", "\"ddns-replace-client-name\"",
+ "\"ddns-generated-prefix\"", "\"ddns-qualifying-suffix\"", "\"subnet4\"",
+ "\"4o6-interface\"", "\"4o6-interface-id\"", "\"4o6-subnet\"",
+ "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"",
+ "\"space\"", "\"csv-format\"", "\"always-send\"", "\"record-types\"",
+ "\"encapsulate\"", "\"array\"", "\"shared-networks\"", "\"pools\"",
+ "\"pool\"", "\"user-context\"", "\"comment\"", "\"subnet\"",
+ "\"interface\"", "\"id\"", "\"reservation-mode\"", "\"disabled\"",
+ "\"out-of-pool\"", "\"global\"", "\"all\"",
+ "\"host-reservation-identifiers\"", "\"client-classes\"",
"\"require-client-classes\"", "\"test\"", "\"only-if-required\"",
"\"client-class\"", "\"reservations\"", "\"duid\"", "\"hw-address\"",
"\"circuit-id\"", "\"client-id\"", "\"hostname\"", "\"flex-id\"",
"min_valid_lifetime", "max_valid_lifetime", "renew_timer",
"rebind_timer", "calculate_tee_times", "t1_percent", "t2_percent",
"decline_probation_period", "server_tag", "$@21", "echo_client_id",
- "match_client_id", "authoritative", "interfaces_config", "$@22",
- "interfaces_config_params", "interfaces_config_param", "sub_interfaces4",
- "$@23", "interfaces_list", "$@24", "dhcp_socket_type", "$@25",
- "socket_type", "outbound_interface", "$@26", "outbound_interface_value",
- "re_detect", "lease_database", "$@27", "sanity_checks", "$@28",
- "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@29",
- "hosts_database", "$@30", "hosts_databases", "$@31", "database_list",
- "not_empty_database_list", "database", "$@32", "database_map_params",
- "database_map_param", "database_type", "$@33", "db_type", "user", "$@34",
- "password", "$@35", "host", "$@36", "port", "name", "$@37", "persist",
- "lfc_interval", "readonly", "connect_timeout", "request_timeout",
- "tcp_keepalive", "tcp_nodelay", "contact_points", "$@38", "keyspace",
- "$@39", "consistency", "$@40", "serial_consistency", "$@41",
+ "match_client_id", "authoritative", "ddns_send_updates",
+ "ddns_override_no_update", "ddns_override_client_update",
+ "ddns_replace_client_name", "$@22", "ddns_replace_client_name_value",
+ "ddns_generated_prefix", "$@23", "ddns_qualifying_suffix", "$@24",
+ "hostname_char_set", "$@25", "hostname_char_replacement", "$@26",
+ "interfaces_config", "$@27", "interfaces_config_params",
+ "interfaces_config_param", "sub_interfaces4", "$@28", "interfaces_list",
+ "$@29", "dhcp_socket_type", "$@30", "socket_type", "outbound_interface",
+ "$@31", "outbound_interface_value", "re_detect", "lease_database",
+ "$@32", "sanity_checks", "$@33", "sanity_checks_params",
+ "sanity_checks_param", "lease_checks", "$@34", "hosts_database", "$@35",
+ "hosts_databases", "$@36", "database_list", "not_empty_database_list",
+ "database", "$@37", "database_map_params", "database_map_param",
+ "database_type", "$@38", "db_type", "user", "$@39", "password", "$@40",
+ "host", "$@41", "port", "name", "$@42", "persist", "lfc_interval",
+ "readonly", "connect_timeout", "request_timeout", "tcp_keepalive",
+ "tcp_nodelay", "contact_points", "$@43", "keyspace", "$@44",
+ "consistency", "$@45", "serial_consistency", "$@46",
"max_reconnect_tries", "reconnect_wait_time", "max_row_errors",
- "host_reservation_identifiers", "$@42",
+ "host_reservation_identifiers", "$@47",
"host_reservation_identifiers_list", "host_reservation_identifier",
"duid_id", "hw_address_id", "circuit_id", "client_id", "flex_id",
- "hooks_libraries", "$@43", "hooks_libraries_list",
- "not_empty_hooks_libraries_list", "hooks_library", "$@44",
- "sub_hooks_library", "$@45", "hooks_params", "hooks_param", "library",
- "$@46", "parameters", "$@47", "expired_leases_processing", "$@48",
+ "hooks_libraries", "$@48", "hooks_libraries_list",
+ "not_empty_hooks_libraries_list", "hooks_library", "$@49",
+ "sub_hooks_library", "$@50", "hooks_params", "hooks_param", "library",
+ "$@51", "parameters", "$@52", "expired_leases_processing", "$@53",
"expired_leases_params", "expired_leases_param",
"reclaim_timer_wait_time", "flush_reclaimed_timer_wait_time",
"hold_reclaimed_time", "max_reclaim_leases", "max_reclaim_time",
- "unwarned_reclaim_cycles", "subnet4_list", "$@49",
- "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@50",
- "sub_subnet4", "$@51", "subnet4_params", "subnet4_param", "subnet",
- "$@52", "subnet_4o6_interface", "$@53", "subnet_4o6_interface_id",
- "$@54", "subnet_4o6_subnet", "$@55", "interface", "$@56", "client_class",
- "$@57", "require_client_classes", "$@58", "reservation_mode", "$@59",
- "hr_mode", "id", "shared_networks", "$@60", "shared_networks_content",
- "shared_networks_list", "shared_network", "$@61",
+ "unwarned_reclaim_cycles", "subnet4_list", "$@54",
+ "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@55",
+ "sub_subnet4", "$@56", "subnet4_params", "subnet4_param", "subnet",
+ "$@57", "subnet_4o6_interface", "$@58", "subnet_4o6_interface_id",
+ "$@59", "subnet_4o6_subnet", "$@60", "interface", "$@61", "client_class",
+ "$@62", "require_client_classes", "$@63", "reservation_mode", "$@64",
+ "hr_mode", "id", "shared_networks", "$@65", "shared_networks_content",
+ "shared_networks_list", "shared_network", "$@66",
"shared_network_params", "shared_network_param", "option_def_list",
- "$@62", "sub_option_def_list", "$@63", "option_def_list_content",
- "not_empty_option_def_list", "option_def_entry", "$@64",
- "sub_option_def", "$@65", "option_def_params",
+ "$@67", "sub_option_def_list", "$@68", "option_def_list_content",
+ "not_empty_option_def_list", "option_def_entry", "$@69",
+ "sub_option_def", "$@70", "option_def_params",
"not_empty_option_def_params", "option_def_param", "option_def_name",
- "code", "option_def_code", "option_def_type", "$@66",
- "option_def_record_types", "$@67", "space", "$@68", "option_def_space",
- "option_def_encapsulate", "$@69", "option_def_array", "option_data_list",
- "$@70", "option_data_list_content", "not_empty_option_data_list",
- "option_data_entry", "$@71", "sub_option_data", "$@72",
+ "code", "option_def_code", "option_def_type", "$@71",
+ "option_def_record_types", "$@72", "space", "$@73", "option_def_space",
+ "option_def_encapsulate", "$@74", "option_def_array", "option_data_list",
+ "$@75", "option_data_list_content", "not_empty_option_data_list",
+ "option_data_entry", "$@76", "sub_option_data", "$@77",
"option_data_params", "not_empty_option_data_params",
- "option_data_param", "option_data_name", "option_data_data", "$@73",
+ "option_data_param", "option_data_name", "option_data_data", "$@78",
"option_data_code", "option_data_space", "option_data_csv_format",
- "option_data_always_send", "pools_list", "$@74", "pools_list_content",
- "not_empty_pools_list", "pool_list_entry", "$@75", "sub_pool4", "$@76",
- "pool_params", "pool_param", "pool_entry", "$@77", "user_context",
- "$@78", "comment", "$@79", "reservations", "$@80", "reservations_list",
- "not_empty_reservations_list", "reservation", "$@81", "sub_reservation",
- "$@82", "reservation_params", "not_empty_reservation_params",
- "reservation_param", "next_server", "$@83", "server_hostname", "$@84",
- "boot_file_name", "$@85", "ip_address", "$@86", "ip_addresses", "$@87",
- "duid", "$@88", "hw_address", "$@89", "client_id_value", "$@90",
- "circuit_id_value", "$@91", "flex_id_value", "$@92", "hostname", "$@93",
- "reservation_client_classes", "$@94", "relay", "$@95", "relay_map",
- "client_classes", "$@96", "client_classes_list", "client_class_entry",
- "$@97", "client_class_params", "not_empty_client_class_params",
- "client_class_param", "client_class_name", "client_class_test", "$@98",
- "only_if_required", "dhcp4o6_port", "control_socket", "$@99",
+ "option_data_always_send", "pools_list", "$@79", "pools_list_content",
+ "not_empty_pools_list", "pool_list_entry", "$@80", "sub_pool4", "$@81",
+ "pool_params", "pool_param", "pool_entry", "$@82", "user_context",
+ "$@83", "comment", "$@84", "reservations", "$@85", "reservations_list",
+ "not_empty_reservations_list", "reservation", "$@86", "sub_reservation",
+ "$@87", "reservation_params", "not_empty_reservation_params",
+ "reservation_param", "next_server", "$@88", "server_hostname", "$@89",
+ "boot_file_name", "$@90", "ip_address", "$@91", "ip_addresses", "$@92",
+ "duid", "$@93", "hw_address", "$@94", "client_id_value", "$@95",
+ "circuit_id_value", "$@96", "flex_id_value", "$@97", "hostname", "$@98",
+ "reservation_client_classes", "$@99", "relay", "$@100", "relay_map",
+ "client_classes", "$@101", "client_classes_list", "client_class_entry",
+ "$@102", "client_class_params", "not_empty_client_class_params",
+ "client_class_param", "client_class_name", "client_class_test", "$@103",
+ "only_if_required", "dhcp4o6_port", "control_socket", "$@104",
"control_socket_params", "control_socket_param", "control_socket_type",
- "$@100", "control_socket_name", "$@101", "dhcp_queue_control", "$@102",
- "dhcp_ddns", "$@103", "sub_dhcp_ddns", "$@104", "dhcp_ddns_params",
- "dhcp_ddns_param", "enable_updates", "qualifying_suffix", "$@105",
- "server_ip", "$@106", "server_port", "sender_ip", "$@107", "sender_port",
- "max_queue_size", "ncr_protocol", "$@108", "ncr_protocol_value",
- "ncr_format", "$@109", "override_no_update", "override_client_update",
- "replace_client_name", "$@110", "replace_client_name_value",
- "generated_prefix", "$@111", "hostname_char_set", "$@112",
- "hostname_char_replacement", "$@113", "dhcp6_json_object", "$@114",
- "dhcpddns_json_object", "$@115", "control_agent_json_object", "$@116",
- "config_control", "$@117", "sub_config_control", "$@118",
+ "$@105", "control_socket_name", "$@106", "dhcp_queue_control", "$@107",
+ "dhcp_ddns", "$@108", "sub_dhcp_ddns", "$@109", "dhcp_ddns_params",
+ "dhcp_ddns_param", "enable_updates", "server_ip", "$@110", "server_port",
+ "sender_ip", "$@111", "sender_port", "max_queue_size", "ncr_protocol",
+ "$@112", "ncr_protocol_value", "ncr_format", "$@113",
+ "dep_qualifying_suffix", "$@114", "dep_override_no_update",
+ "dep_override_client_update", "dep_replace_client_name", "$@115",
+ "dep_generated_prefix", "$@116", "dep_hostname_char_set", "$@117",
+ "dep_hostname_char_replacement", "$@118", "dhcp6_json_object", "$@119",
+ "dhcpddns_json_object", "$@120", "control_agent_json_object", "$@121",
+ "config_control", "$@122", "sub_config_control", "$@123",
"config_control_params", "config_control_param", "config_databases",
- "$@119", "config_fetch_wait_time", "logging_object", "$@120",
- "sub_logging", "$@121", "logging_params", "logging_param", "loggers",
- "$@122", "loggers_entries", "logger_entry", "$@123", "logger_params",
- "logger_param", "debuglevel", "severity", "$@124", "output_options_list",
- "$@125", "output_options_list_content", "output_entry", "$@126",
- "output_params_list", "output_params", "output", "$@127", "flush",
- "maxsize", "maxver", "pattern", "$@128", YY_NULLPTR
+ "$@124", "config_fetch_wait_time", "logging_object", "$@125",
+ "sub_logging", "$@126", "logging_params", "logging_param", "loggers",
+ "$@127", "loggers_entries", "logger_entry", "$@128", "logger_params",
+ "logger_param", "debuglevel", "severity", "$@129", "output_options_list",
+ "$@130", "output_options_list_content", "output_entry", "$@131",
+ "output_params_list", "output_params", "output", "$@132", "flush",
+ "maxsize", "maxver", "pattern", "$@133", YY_NULLPTR
};
#if PARSER4_DEBUG
const unsigned short
Dhcp4Parser::yyrline_[] =
{
- 0, 266, 266, 266, 267, 267, 268, 268, 269, 269,
- 270, 270, 271, 271, 272, 272, 273, 273, 274, 274,
- 275, 275, 276, 276, 277, 277, 278, 278, 279, 279,
- 287, 288, 289, 290, 291, 292, 293, 296, 301, 301,
- 312, 315, 316, 319, 323, 330, 330, 337, 338, 341,
- 345, 352, 352, 359, 360, 363, 367, 378, 388, 388,
- 404, 405, 409, 410, 411, 412, 413, 414, 417, 417,
- 432, 432, 441, 442, 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, 476, 477, 478, 479, 480, 481, 482,
- 483, 484, 485, 486, 487, 488, 491, 496, 501, 506,
- 511, 516, 521, 526, 531, 536, 536, 544, 549, 554,
- 560, 560, 571, 572, 575, 576, 577, 578, 579, 580,
- 581, 584, 584, 593, 593, 603, 603, 610, 611, 614,
- 614, 621, 623, 627, 633, 633, 645, 645, 655, 656,
- 658, 660, 660, 678, 678, 690, 690, 700, 701, 704,
- 705, 708, 708, 718, 719, 722, 723, 724, 725, 726,
- 727, 728, 729, 730, 731, 732, 733, 734, 735, 736,
- 737, 738, 739, 740, 741, 742, 745, 745, 752, 753,
- 754, 755, 758, 758, 766, 766, 774, 774, 782, 787,
- 787, 795, 800, 805, 810, 815, 820, 825, 830, 830,
- 838, 838, 846, 846, 854, 854, 862, 867, 872, 878,
- 878, 888, 889, 892, 893, 894, 895, 896, 899, 904,
- 909, 914, 919, 924, 924, 934, 935, 938, 939, 942,
- 942, 952, 952, 962, 963, 964, 967, 968, 971, 971,
- 979, 979, 987, 987, 998, 999, 1002, 1003, 1004, 1005,
- 1006, 1007, 1010, 1015, 1020, 1025, 1030, 1035, 1043, 1043,
- 1056, 1057, 1060, 1061, 1068, 1068, 1094, 1094, 1105, 1106,
- 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119,
- 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129,
- 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1141,
- 1141, 1149, 1149, 1157, 1157, 1165, 1165, 1173, 1173, 1181,
- 1181, 1189, 1189, 1199, 1199, 1206, 1207, 1208, 1209, 1212,
- 1219, 1219, 1230, 1231, 1235, 1236, 1239, 1239, 1247, 1248,
- 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260,
- 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270,
- 1271, 1272, 1273, 1274, 1281, 1281, 1294, 1294, 1303, 1304,
- 1307, 1308, 1313, 1313, 1328, 1328, 1342, 1343, 1346, 1347,
- 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359,
- 1362, 1364, 1369, 1371, 1371, 1379, 1379, 1387, 1387, 1395,
- 1397, 1397, 1405, 1414, 1414, 1426, 1427, 1432, 1433, 1438,
- 1438, 1450, 1450, 1462, 1463, 1468, 1469, 1474, 1475, 1476,
- 1477, 1478, 1479, 1480, 1481, 1482, 1485, 1487, 1487, 1495,
- 1497, 1499, 1504, 1512, 1512, 1524, 1525, 1528, 1529, 1532,
- 1532, 1542, 1542, 1552, 1553, 1556, 1557, 1558, 1559, 1560,
- 1561, 1562, 1565, 1565, 1573, 1573, 1598, 1598, 1628, 1628,
- 1638, 1639, 1642, 1643, 1646, 1646, 1655, 1655, 1664, 1665,
- 1668, 1669, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680,
- 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1690, 1690, 1698,
- 1698, 1706, 1706, 1714, 1714, 1722, 1722, 1732, 1732, 1740,
- 1740, 1748, 1748, 1756, 1756, 1764, 1764, 1772, 1772, 1780,
- 1780, 1793, 1793, 1803, 1804, 1810, 1810, 1820, 1821, 1824,
- 1824, 1834, 1835, 1838, 1839, 1842, 1843, 1844, 1845, 1846,
- 1847, 1848, 1849, 1850, 1851, 1852, 1855, 1857, 1857, 1865,
- 1874, 1881, 1881, 1891, 1892, 1895, 1896, 1897, 1898, 1899,
- 1902, 1902, 1910, 1910, 1921, 1921, 1959, 1959, 1971, 1971,
- 1981, 1982, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
- 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
- 2005, 2010, 2010, 2018, 2018, 2026, 2031, 2031, 2039, 2044,
- 2049, 2049, 2057, 2058, 2061, 2061, 2069, 2074, 2079, 2079,
- 2087, 2090, 2093, 2096, 2099, 2105, 2105, 2113, 2113, 2121,
- 2121, 2132, 2132, 2139, 2139, 2146, 2146, 2153, 2153, 2164,
- 2164, 2174, 2175, 2179, 2180, 2183, 2183, 2193, 2203, 2203,
- 2213, 2213, 2224, 2225, 2229, 2233, 2233, 2245, 2246, 2250,
- 2250, 2258, 2259, 2262, 2263, 2264, 2265, 2266, 2267, 2268,
- 2271, 2276, 2276, 2284, 2284, 2294, 2295, 2298, 2298, 2306,
- 2307, 2310, 2311, 2312, 2313, 2314, 2317, 2317, 2325, 2330,
- 2335, 2340, 2340
+ 0, 272, 272, 272, 273, 273, 274, 274, 275, 275,
+ 276, 276, 277, 277, 278, 278, 279, 279, 280, 280,
+ 281, 281, 282, 282, 283, 283, 284, 284, 285, 285,
+ 293, 294, 295, 296, 297, 298, 299, 302, 307, 307,
+ 318, 321, 322, 325, 329, 336, 336, 343, 344, 347,
+ 351, 358, 358, 365, 366, 369, 373, 384, 394, 394,
+ 410, 411, 415, 416, 417, 418, 419, 420, 423, 423,
+ 438, 438, 447, 448, 453, 454, 455, 456, 457, 458,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 493, 494, 495, 496, 497, 498,
+ 499, 500, 503, 508, 513, 518, 523, 528, 533, 538,
+ 543, 548, 548, 556, 561, 566, 571, 576, 581, 586,
+ 586, 594, 597, 600, 603, 606, 612, 612, 620, 620,
+ 628, 628, 636, 636, 644, 644, 655, 656, 659, 660,
+ 661, 662, 663, 664, 665, 668, 668, 677, 677, 687,
+ 687, 694, 695, 698, 698, 705, 707, 711, 717, 717,
+ 729, 729, 739, 740, 742, 744, 744, 762, 762, 774,
+ 774, 784, 785, 788, 789, 792, 792, 802, 803, 806,
+ 807, 808, 809, 810, 811, 812, 813, 814, 815, 816,
+ 817, 818, 819, 820, 821, 822, 823, 824, 825, 826,
+ 829, 829, 836, 837, 838, 839, 842, 842, 850, 850,
+ 858, 858, 866, 871, 871, 879, 884, 889, 894, 899,
+ 904, 909, 914, 914, 922, 922, 930, 930, 938, 938,
+ 946, 951, 956, 962, 962, 972, 973, 976, 977, 978,
+ 979, 980, 983, 988, 993, 998, 1003, 1008, 1008, 1018,
+ 1019, 1022, 1023, 1026, 1026, 1036, 1036, 1046, 1047, 1048,
+ 1051, 1052, 1055, 1055, 1063, 1063, 1071, 1071, 1082, 1083,
+ 1086, 1087, 1088, 1089, 1090, 1091, 1094, 1099, 1104, 1109,
+ 1114, 1119, 1127, 1127, 1140, 1141, 1144, 1145, 1152, 1152,
+ 1178, 1178, 1189, 1190, 1194, 1195, 1196, 1197, 1198, 1199,
+ 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
+ 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
+ 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229,
+ 1230, 1233, 1233, 1241, 1241, 1249, 1249, 1257, 1257, 1265,
+ 1265, 1273, 1273, 1281, 1281, 1291, 1291, 1298, 1299, 1300,
+ 1301, 1304, 1311, 1311, 1322, 1323, 1327, 1328, 1331, 1331,
+ 1339, 1340, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350,
+ 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360,
+ 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370,
+ 1371, 1372, 1373, 1374, 1381, 1381, 1394, 1394, 1403, 1404,
+ 1407, 1408, 1413, 1413, 1428, 1428, 1442, 1443, 1446, 1447,
+ 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459,
+ 1462, 1464, 1469, 1471, 1471, 1479, 1479, 1487, 1487, 1495,
+ 1497, 1497, 1505, 1514, 1514, 1526, 1527, 1532, 1533, 1538,
+ 1538, 1550, 1550, 1562, 1563, 1568, 1569, 1574, 1575, 1576,
+ 1577, 1578, 1579, 1580, 1581, 1582, 1585, 1587, 1587, 1595,
+ 1597, 1599, 1604, 1612, 1612, 1624, 1625, 1628, 1629, 1632,
+ 1632, 1642, 1642, 1652, 1653, 1656, 1657, 1658, 1659, 1660,
+ 1661, 1662, 1665, 1665, 1673, 1673, 1698, 1698, 1728, 1728,
+ 1738, 1739, 1742, 1743, 1746, 1746, 1755, 1755, 1764, 1765,
+ 1768, 1769, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780,
+ 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1790, 1790, 1798,
+ 1798, 1806, 1806, 1814, 1814, 1822, 1822, 1832, 1832, 1840,
+ 1840, 1848, 1848, 1856, 1856, 1864, 1864, 1872, 1872, 1880,
+ 1880, 1893, 1893, 1903, 1904, 1910, 1910, 1920, 1921, 1924,
+ 1924, 1934, 1935, 1938, 1939, 1942, 1943, 1944, 1945, 1946,
+ 1947, 1948, 1949, 1950, 1951, 1952, 1955, 1957, 1957, 1965,
+ 1974, 1981, 1981, 1991, 1992, 1995, 1996, 1997, 1998, 1999,
+ 2002, 2002, 2010, 2010, 2021, 2021, 2059, 2059, 2071, 2071,
+ 2081, 2082, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092,
+ 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102,
+ 2105, 2110, 2110, 2118, 2123, 2123, 2131, 2136, 2141, 2141,
+ 2149, 2150, 2153, 2153, 2162, 2162, 2171, 2177, 2183, 2183,
+ 2191, 2191, 2200, 2200, 2209, 2209, 2220, 2220, 2227, 2227,
+ 2234, 2234, 2241, 2241, 2252, 2252, 2262, 2263, 2267, 2268,
+ 2271, 2271, 2281, 2291, 2291, 2301, 2301, 2312, 2313, 2317,
+ 2321, 2321, 2333, 2334, 2338, 2338, 2346, 2347, 2350, 2351,
+ 2352, 2353, 2354, 2355, 2356, 2359, 2364, 2364, 2372, 2372,
+ 2382, 2383, 2386, 2386, 2394, 2395, 2398, 2399, 2400, 2401,
+ 2402, 2405, 2405, 2413, 2418, 2423, 2428, 2428
};
// Print the state stack on the debug stream.
#endif // PARSER4_DEBUG
-#line 14 "dhcp4_parser.yy"
+#line 14 "dhcp4_parser.yy" // lalr1.cc:1218
} } // isc::dhcp
-#line 5127 "dhcp4_parser.cc"
-
-#line 2349 "dhcp4_parser.yy"
+#line 5275 "dhcp4_parser.cc" // lalr1.cc:1218
+#line 2437 "dhcp4_parser.yy" // lalr1.cc:1219
void
-// A Bison parser, made by GNU Bison 3.4.1.
+// A Bison parser, made by GNU Bison 3.2.1.
// Skeleton interface for Bison LALR(1) parsers in C++
-// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc.
+// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
#ifndef YY_PARSER4_DHCP4_PARSER_H_INCLUDED
# define YY_PARSER4_DHCP4_PARSER_H_INCLUDED
// // "%code requires" blocks.
-#line 17 "dhcp4_parser.yy"
+#line 17 "dhcp4_parser.yy" // lalr1.cc:404
#include <string>
#include <cc/data.h>
using namespace isc::data;
using namespace std;
-#line 60 "dhcp4_parser.h"
+#line 60 "dhcp4_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 PARSER4_DEBUG */
-#line 14 "dhcp4_parser.yy"
+#line 14 "dhcp4_parser.yy" // lalr1.cc:404
namespace isc { namespace dhcp {
-#line 184 "dhcp4_parser.h"
+#line 162 "dhcp4_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)
+ {}
+
+ /// Random access.
+ ///
+ /// Index 0 returns the topmost element.
+ T&
+ operator[] (size_type i)
+ {
+ return seq_[size () - 1 - i];
+ }
+ /// Random access.
+ ///
+ /// Index 0 returns the topmost element.
+ T&
+ operator[] (int i)
+ {
+ return operator[] (size_type (i));
+ }
+ /// Random access.
+ ///
+ /// Index 0 returns the topmost element.
+ const T&
+ operator[] (size_type i) const
+ {
+ return seq_[size () - 1 - i];
+ }
- /// A Bison parser.
- class Dhcp4Parser
+ /// 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 PARSER4_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 Dhcp4Parser
+ {
+ public:
+#ifndef PARSER4_STYPE
/// An auxiliary type to compute the largest semantic type.
union union_type
{
// value
// map_value
+ // ddns_replace_client_name_value
// socket_type
// outbound_interface_value
// db_type
// hr_mode
// ncr_protocol_value
- // replace_client_name_value
char dummy1[sizeof (ElementPtr)];
// "boolean"
// "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 PARSER4_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_T2_PERCENT = 319,
TOKEN_DECLINE_PROBATION_PERIOD = 320,
TOKEN_SERVER_TAG = 321,
- TOKEN_SUBNET4 = 322,
- TOKEN_SUBNET_4O6_INTERFACE = 323,
- TOKEN_SUBNET_4O6_INTERFACE_ID = 324,
- TOKEN_SUBNET_4O6_SUBNET = 325,
- TOKEN_OPTION_DEF = 326,
- TOKEN_OPTION_DATA = 327,
- TOKEN_NAME = 328,
- TOKEN_DATA = 329,
- TOKEN_CODE = 330,
- TOKEN_SPACE = 331,
- TOKEN_CSV_FORMAT = 332,
- TOKEN_ALWAYS_SEND = 333,
- TOKEN_RECORD_TYPES = 334,
- TOKEN_ENCAPSULATE = 335,
- TOKEN_ARRAY = 336,
- TOKEN_SHARED_NETWORKS = 337,
- TOKEN_POOLS = 338,
- TOKEN_POOL = 339,
- TOKEN_USER_CONTEXT = 340,
- TOKEN_COMMENT = 341,
- TOKEN_SUBNET = 342,
- TOKEN_INTERFACE = 343,
- TOKEN_ID = 344,
- TOKEN_RESERVATION_MODE = 345,
- TOKEN_DISABLED = 346,
- TOKEN_OUT_OF_POOL = 347,
- TOKEN_GLOBAL = 348,
- TOKEN_ALL = 349,
- TOKEN_HOST_RESERVATION_IDENTIFIERS = 350,
- TOKEN_CLIENT_CLASSES = 351,
- TOKEN_REQUIRE_CLIENT_CLASSES = 352,
- TOKEN_TEST = 353,
- TOKEN_ONLY_IF_REQUIRED = 354,
- TOKEN_CLIENT_CLASS = 355,
- TOKEN_RESERVATIONS = 356,
- TOKEN_DUID = 357,
- TOKEN_HW_ADDRESS = 358,
- TOKEN_CIRCUIT_ID = 359,
- TOKEN_CLIENT_ID = 360,
- TOKEN_HOSTNAME = 361,
- TOKEN_FLEX_ID = 362,
- TOKEN_RELAY = 363,
- TOKEN_IP_ADDRESS = 364,
- TOKEN_IP_ADDRESSES = 365,
- TOKEN_HOOKS_LIBRARIES = 366,
- TOKEN_LIBRARY = 367,
- TOKEN_PARAMETERS = 368,
- TOKEN_EXPIRED_LEASES_PROCESSING = 369,
- TOKEN_RECLAIM_TIMER_WAIT_TIME = 370,
- TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 371,
- TOKEN_HOLD_RECLAIMED_TIME = 372,
- TOKEN_MAX_RECLAIM_LEASES = 373,
- TOKEN_MAX_RECLAIM_TIME = 374,
- TOKEN_UNWARNED_RECLAIM_CYCLES = 375,
- TOKEN_DHCP4O6_PORT = 376,
- TOKEN_CONTROL_SOCKET = 377,
- TOKEN_SOCKET_TYPE = 378,
- TOKEN_SOCKET_NAME = 379,
- TOKEN_DHCP_QUEUE_CONTROL = 380,
- TOKEN_DHCP_DDNS = 381,
- TOKEN_ENABLE_UPDATES = 382,
- TOKEN_QUALIFYING_SUFFIX = 383,
- TOKEN_SERVER_IP = 384,
- TOKEN_SERVER_PORT = 385,
- TOKEN_SENDER_IP = 386,
- TOKEN_SENDER_PORT = 387,
- TOKEN_MAX_QUEUE_SIZE = 388,
- TOKEN_NCR_PROTOCOL = 389,
- TOKEN_NCR_FORMAT = 390,
- TOKEN_OVERRIDE_NO_UPDATE = 391,
- TOKEN_OVERRIDE_CLIENT_UPDATE = 392,
- TOKEN_REPLACE_CLIENT_NAME = 393,
- TOKEN_GENERATED_PREFIX = 394,
- TOKEN_TCP = 395,
- TOKEN_JSON = 396,
- TOKEN_WHEN_PRESENT = 397,
- TOKEN_NEVER = 398,
- TOKEN_ALWAYS = 399,
- TOKEN_WHEN_NOT_PRESENT = 400,
- TOKEN_HOSTNAME_CHAR_SET = 401,
- TOKEN_HOSTNAME_CHAR_REPLACEMENT = 402,
- TOKEN_LOGGING = 403,
- TOKEN_LOGGERS = 404,
- TOKEN_OUTPUT_OPTIONS = 405,
- TOKEN_OUTPUT = 406,
- TOKEN_DEBUGLEVEL = 407,
- TOKEN_SEVERITY = 408,
- TOKEN_FLUSH = 409,
- TOKEN_MAXSIZE = 410,
- TOKEN_MAXVER = 411,
- TOKEN_PATTERN = 412,
- TOKEN_DHCP6 = 413,
- TOKEN_DHCPDDNS = 414,
- TOKEN_CONTROL_AGENT = 415,
- TOKEN_TOPLEVEL_JSON = 416,
- TOKEN_TOPLEVEL_DHCP4 = 417,
- TOKEN_SUB_DHCP4 = 418,
- TOKEN_SUB_INTERFACES4 = 419,
- TOKEN_SUB_SUBNET4 = 420,
- TOKEN_SUB_POOL4 = 421,
- TOKEN_SUB_RESERVATION = 422,
- TOKEN_SUB_OPTION_DEFS = 423,
- TOKEN_SUB_OPTION_DEF = 424,
- TOKEN_SUB_OPTION_DATA = 425,
- TOKEN_SUB_HOOKS_LIBRARY = 426,
- TOKEN_SUB_DHCP_DDNS = 427,
- TOKEN_SUB_LOGGING = 428,
- TOKEN_SUB_CONFIG_CONTROL = 429,
- TOKEN_STRING = 430,
- TOKEN_INTEGER = 431,
- TOKEN_FLOAT = 432,
- TOKEN_BOOLEAN = 433
+ TOKEN_DDNS_SEND_UPDATES = 322,
+ TOKEN_DDNS_OVERRIDE_NO_UPDATE = 323,
+ TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 324,
+ TOKEN_DDNS_REPLACE_CLIENT_NAME = 325,
+ TOKEN_DDNS_GENERATED_PREFIX = 326,
+ TOKEN_DDNS_QUALIFYING_SUFFIX = 327,
+ TOKEN_SUBNET4 = 328,
+ TOKEN_SUBNET_4O6_INTERFACE = 329,
+ TOKEN_SUBNET_4O6_INTERFACE_ID = 330,
+ TOKEN_SUBNET_4O6_SUBNET = 331,
+ TOKEN_OPTION_DEF = 332,
+ TOKEN_OPTION_DATA = 333,
+ TOKEN_NAME = 334,
+ TOKEN_DATA = 335,
+ TOKEN_CODE = 336,
+ TOKEN_SPACE = 337,
+ TOKEN_CSV_FORMAT = 338,
+ TOKEN_ALWAYS_SEND = 339,
+ TOKEN_RECORD_TYPES = 340,
+ TOKEN_ENCAPSULATE = 341,
+ TOKEN_ARRAY = 342,
+ TOKEN_SHARED_NETWORKS = 343,
+ TOKEN_POOLS = 344,
+ TOKEN_POOL = 345,
+ TOKEN_USER_CONTEXT = 346,
+ TOKEN_COMMENT = 347,
+ TOKEN_SUBNET = 348,
+ TOKEN_INTERFACE = 349,
+ TOKEN_ID = 350,
+ TOKEN_RESERVATION_MODE = 351,
+ TOKEN_DISABLED = 352,
+ TOKEN_OUT_OF_POOL = 353,
+ TOKEN_GLOBAL = 354,
+ TOKEN_ALL = 355,
+ TOKEN_HOST_RESERVATION_IDENTIFIERS = 356,
+ TOKEN_CLIENT_CLASSES = 357,
+ TOKEN_REQUIRE_CLIENT_CLASSES = 358,
+ TOKEN_TEST = 359,
+ TOKEN_ONLY_IF_REQUIRED = 360,
+ TOKEN_CLIENT_CLASS = 361,
+ TOKEN_RESERVATIONS = 362,
+ TOKEN_DUID = 363,
+ TOKEN_HW_ADDRESS = 364,
+ TOKEN_CIRCUIT_ID = 365,
+ TOKEN_CLIENT_ID = 366,
+ TOKEN_HOSTNAME = 367,
+ TOKEN_FLEX_ID = 368,
+ TOKEN_RELAY = 369,
+ TOKEN_IP_ADDRESS = 370,
+ TOKEN_IP_ADDRESSES = 371,
+ TOKEN_HOOKS_LIBRARIES = 372,
+ TOKEN_LIBRARY = 373,
+ TOKEN_PARAMETERS = 374,
+ TOKEN_EXPIRED_LEASES_PROCESSING = 375,
+ TOKEN_RECLAIM_TIMER_WAIT_TIME = 376,
+ TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 377,
+ TOKEN_HOLD_RECLAIMED_TIME = 378,
+ TOKEN_MAX_RECLAIM_LEASES = 379,
+ TOKEN_MAX_RECLAIM_TIME = 380,
+ TOKEN_UNWARNED_RECLAIM_CYCLES = 381,
+ TOKEN_DHCP4O6_PORT = 382,
+ TOKEN_CONTROL_SOCKET = 383,
+ TOKEN_SOCKET_TYPE = 384,
+ TOKEN_SOCKET_NAME = 385,
+ TOKEN_DHCP_QUEUE_CONTROL = 386,
+ TOKEN_DHCP_DDNS = 387,
+ TOKEN_ENABLE_UPDATES = 388,
+ TOKEN_QUALIFYING_SUFFIX = 389,
+ TOKEN_SERVER_IP = 390,
+ TOKEN_SERVER_PORT = 391,
+ TOKEN_SENDER_IP = 392,
+ TOKEN_SENDER_PORT = 393,
+ TOKEN_MAX_QUEUE_SIZE = 394,
+ TOKEN_NCR_PROTOCOL = 395,
+ TOKEN_NCR_FORMAT = 396,
+ TOKEN_OVERRIDE_NO_UPDATE = 397,
+ TOKEN_OVERRIDE_CLIENT_UPDATE = 398,
+ TOKEN_REPLACE_CLIENT_NAME = 399,
+ TOKEN_GENERATED_PREFIX = 400,
+ TOKEN_TCP = 401,
+ TOKEN_JSON = 402,
+ TOKEN_WHEN_PRESENT = 403,
+ TOKEN_NEVER = 404,
+ TOKEN_ALWAYS = 405,
+ TOKEN_WHEN_NOT_PRESENT = 406,
+ TOKEN_HOSTNAME_CHAR_SET = 407,
+ TOKEN_HOSTNAME_CHAR_REPLACEMENT = 408,
+ TOKEN_LOGGING = 409,
+ TOKEN_LOGGERS = 410,
+ TOKEN_OUTPUT_OPTIONS = 411,
+ TOKEN_OUTPUT = 412,
+ TOKEN_DEBUGLEVEL = 413,
+ TOKEN_SEVERITY = 414,
+ TOKEN_FLUSH = 415,
+ TOKEN_MAXSIZE = 416,
+ TOKEN_MAXVER = 417,
+ TOKEN_PATTERN = 418,
+ TOKEN_DHCP6 = 419,
+ TOKEN_DHCPDDNS = 420,
+ TOKEN_CONTROL_AGENT = 421,
+ TOKEN_TOPLEVEL_JSON = 422,
+ TOKEN_TOPLEVEL_DHCP4 = 423,
+ TOKEN_SUB_DHCP4 = 424,
+ TOKEN_SUB_INTERFACES4 = 425,
+ TOKEN_SUB_SUBNET4 = 426,
+ TOKEN_SUB_POOL4 = 427,
+ TOKEN_SUB_RESERVATION = 428,
+ TOKEN_SUB_OPTION_DEFS = 429,
+ TOKEN_SUB_OPTION_DEF = 430,
+ TOKEN_SUB_OPTION_DATA = 431,
+ TOKEN_SUB_HOOKS_LIBRARY = 432,
+ TOKEN_SUB_DHCP_DDNS = 433,
+ TOKEN_SUB_LOGGING = 434,
+ TOKEN_SUB_CONFIG_CONTROL = 435,
+ TOKEN_STRING = 436,
+ TOKEN_INTEGER = 437,
+ TOKEN_FLOAT = 438,
+ TOKEN_BOOLEAN = 439
};
};
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 195: // value
- case 199: // map_value
- case 245: // socket_type
- case 248: // outbound_interface_value
- case 270: // db_type
- case 357: // hr_mode
- case 506: // ncr_protocol_value
- case 513: // replace_client_name_value
- value.template destroy< ElementPtr > ();
- break;
-
- case 178: // "boolean"
- value.template destroy< bool > ();
- break;
-
- case 177: // "floating point"
- value.template destroy< double > ();
- break;
-
- case 176: // "integer"
- value.template destroy< int64_t > ();
- break;
-
- case 175: // "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_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_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_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_PATTERN || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_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_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_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_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_PATTERN || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_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.
Dhcp4Parser (isc::dhcp::Parser4Context& 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_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_CONFIG_CONTROL (location_type l)
- {
- return symbol_type (token::TOKEN_CONFIG_CONTROL, std::move (l));
- }
-#else
- static
- symbol_type
- make_CONFIG_CONTROL (const location_type& l)
- {
- return symbol_type (token::TOKEN_CONFIG_CONTROL, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CONFIG_DATABASES (location_type l)
- {
- return symbol_type (token::TOKEN_CONFIG_DATABASES, std::move (l));
- }
-#else
- static
- symbol_type
- make_CONFIG_DATABASES (const location_type& l)
- {
- return symbol_type (token::TOKEN_CONFIG_DATABASES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CONFIG_FETCH_WAIT_TIME (location_type l)
- {
- return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, std::move (l));
- }
-#else
- static
- symbol_type
- make_CONFIG_FETCH_WAIT_TIME (const location_type& l)
- {
- return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_INTERFACES_CONFIG (location_type l)
- {
- return symbol_type (token::TOKEN_INTERFACES_CONFIG, std::move (l));
- }
-#else
- static
- symbol_type
- make_INTERFACES_CONFIG (const location_type& l)
- {
- return symbol_type (token::TOKEN_INTERFACES_CONFIG, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_INTERFACES (location_type l)
- {
- return symbol_type (token::TOKEN_INTERFACES, std::move (l));
- }
-#else
- static
- symbol_type
- make_INTERFACES (const location_type& l)
- {
- return symbol_type (token::TOKEN_INTERFACES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DHCP_SOCKET_TYPE (location_type l)
- {
- return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, std::move (l));
- }
-#else
- static
- symbol_type
- make_DHCP_SOCKET_TYPE (const location_type& l)
- {
- return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RAW (location_type l)
- {
- return symbol_type (token::TOKEN_RAW, std::move (l));
- }
-#else
- static
- symbol_type
- make_RAW (const location_type& l)
- {
- return symbol_type (token::TOKEN_RAW, 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_OUTBOUND_INTERFACE (location_type l)
- {
- return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, std::move (l));
- }
-#else
- static
- symbol_type
- make_OUTBOUND_INTERFACE (const location_type& l)
- {
- return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SAME_AS_INBOUND (location_type l)
- {
- return symbol_type (token::TOKEN_SAME_AS_INBOUND, std::move (l));
- }
-#else
- static
- symbol_type
- make_SAME_AS_INBOUND (const location_type& l)
- {
- return symbol_type (token::TOKEN_SAME_AS_INBOUND, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_USE_ROUTING (location_type l)
- {
- return symbol_type (token::TOKEN_USE_ROUTING, std::move (l));
- }
-#else
- static
- symbol_type
- make_USE_ROUTING (const location_type& l)
- {
- return symbol_type (token::TOKEN_USE_ROUTING, 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_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_ECHO_CLIENT_ID (location_type l)
- {
- return symbol_type (token::TOKEN_ECHO_CLIENT_ID, std::move (l));
- }
-#else
- static
- symbol_type
- make_ECHO_CLIENT_ID (const location_type& l)
- {
- return symbol_type (token::TOKEN_ECHO_CLIENT_ID, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MATCH_CLIENT_ID (location_type l)
- {
- return symbol_type (token::TOKEN_MATCH_CLIENT_ID, std::move (l));
- }
-#else
- static
- symbol_type
- make_MATCH_CLIENT_ID (const location_type& l)
- {
- return symbol_type (token::TOKEN_MATCH_CLIENT_ID, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_AUTHORITATIVE (location_type l)
- {
- return symbol_type (token::TOKEN_AUTHORITATIVE, std::move (l));
- }
-#else
- static
- symbol_type
- make_AUTHORITATIVE (const location_type& l)
- {
- return symbol_type (token::TOKEN_AUTHORITATIVE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_NEXT_SERVER (location_type l)
- {
- return symbol_type (token::TOKEN_NEXT_SERVER, std::move (l));
- }
-#else
- static
- symbol_type
- make_NEXT_SERVER (const location_type& l)
- {
- return symbol_type (token::TOKEN_NEXT_SERVER, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SERVER_HOSTNAME (location_type l)
- {
- return symbol_type (token::TOKEN_SERVER_HOSTNAME, std::move (l));
- }
-#else
- static
- symbol_type
- make_SERVER_HOSTNAME (const location_type& l)
- {
- return symbol_type (token::TOKEN_SERVER_HOSTNAME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_BOOT_FILE_NAME (location_type l)
- {
- return symbol_type (token::TOKEN_BOOT_FILE_NAME, std::move (l));
- }
-#else
- static
- symbol_type
- make_BOOT_FILE_NAME (const location_type& l)
- {
- return symbol_type (token::TOKEN_BOOT_FILE_NAME, 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_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_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_REQUEST_TIMEOUT (location_type l)
- {
- return symbol_type (token::TOKEN_REQUEST_TIMEOUT, std::move (l));
- }
-#else
- static
- symbol_type
- make_REQUEST_TIMEOUT (const location_type& l)
- {
- return symbol_type (token::TOKEN_REQUEST_TIMEOUT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_TCP_KEEPALIVE (location_type l)
- {
- return symbol_type (token::TOKEN_TCP_KEEPALIVE, std::move (l));
- }
-#else
- static
- symbol_type
- make_TCP_KEEPALIVE (const location_type& l)
- {
- return symbol_type (token::TOKEN_TCP_KEEPALIVE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_TCP_NODELAY (location_type l)
- {
- return symbol_type (token::TOKEN_TCP_NODELAY, std::move (l));
- }
-#else
- static
- symbol_type
- make_TCP_NODELAY (const location_type& l)
- {
- return symbol_type (token::TOKEN_TCP_NODELAY, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MAX_ROW_ERRORS (location_type l)
- {
- return symbol_type (token::TOKEN_MAX_ROW_ERRORS, std::move (l));
- }
-#else
- static
- symbol_type
- make_MAX_ROW_ERRORS (const location_type& l)
- {
- return symbol_type (token::TOKEN_MAX_ROW_ERRORS, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_VALID_LIFETIME (location_type l)
- {
- return symbol_type (token::TOKEN_VALID_LIFETIME, std::move (l));
- }
-#else
- static
- symbol_type
- make_VALID_LIFETIME (const location_type& l)
- {
- return symbol_type (token::TOKEN_VALID_LIFETIME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MIN_VALID_LIFETIME (location_type l)
- {
- return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, std::move (l));
- }
-#else
- static
- symbol_type
- make_MIN_VALID_LIFETIME (const location_type& l)
- {
- return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_MAX_VALID_LIFETIME (location_type l)
- {
- return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, std::move (l));
- }
-#else
- static
- symbol_type
- make_MAX_VALID_LIFETIME (const location_type& l)
- {
- return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_RENEW_TIMER (location_type l)
- {
- return symbol_type (token::TOKEN_RENEW_TIMER, std::move (l));
- }
-#else
- static
- symbol_type
- make_RENEW_TIMER (const location_type& l)
- {
- return symbol_type (token::TOKEN_RENEW_TIMER, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_REBIND_TIMER (location_type l)
- {
- return symbol_type (token::TOKEN_REBIND_TIMER, std::move (l));
- }
-#else
- static
- symbol_type
- make_REBIND_TIMER (const location_type& l)
- {
- return symbol_type (token::TOKEN_REBIND_TIMER, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CALCULATE_TEE_TIMES (location_type l)
- {
- return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, std::move (l));
- }
-#else
- static
- symbol_type
- make_CALCULATE_TEE_TIMES (const location_type& l)
- {
- return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_T1_PERCENT (location_type l)
- {
- return symbol_type (token::TOKEN_T1_PERCENT, std::move (l));
- }
-#else
- static
- symbol_type
- make_T1_PERCENT (const location_type& l)
- {
- return symbol_type (token::TOKEN_T1_PERCENT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_T2_PERCENT (location_type l)
- {
- return symbol_type (token::TOKEN_T2_PERCENT, std::move (l));
- }
-#else
- static
- symbol_type
- make_T2_PERCENT (const location_type& l)
- {
- return symbol_type (token::TOKEN_T2_PERCENT, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_DECLINE_PROBATION_PERIOD (location_type l)
- {
- return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, std::move (l));
- }
-#else
- static
- symbol_type
- make_DECLINE_PROBATION_PERIOD (const location_type& l)
- {
- return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SERVER_TAG (location_type l)
- {
- return symbol_type (token::TOKEN_SERVER_TAG, std::move (l));
- }
-#else
- static
- symbol_type
- make_SERVER_TAG (const location_type& l)
- {
- return symbol_type (token::TOKEN_SERVER_TAG, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUBNET4 (location_type l)
- {
- return symbol_type (token::TOKEN_SUBNET4, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUBNET4 (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUBNET4, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUBNET_4O6_INTERFACE (location_type l)
- {
- return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUBNET_4O6_INTERFACE (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUBNET_4O6_INTERFACE_ID (location_type l)
- {
- return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUBNET_4O6_INTERFACE_ID (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUBNET_4O6_SUBNET (location_type l)
- {
- return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUBNET_4O6_SUBNET (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, 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_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_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_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_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_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_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_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_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_CIRCUIT_ID (location_type l)
- {
- return symbol_type (token::TOKEN_CIRCUIT_ID, std::move (l));
- }
-#else
- static
- symbol_type
- make_CIRCUIT_ID (const location_type& l)
- {
- return symbol_type (token::TOKEN_CIRCUIT_ID, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_CLIENT_ID (location_type l)
- {
- return symbol_type (token::TOKEN_CLIENT_ID, std::move (l));
- }
-#else
- static
- symbol_type
- make_CLIENT_ID (const location_type& l)
- {
- return symbol_type (token::TOKEN_CLIENT_ID, 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_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_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_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_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_PATTERN (location_type l)
- {
- return symbol_type (token::TOKEN_PATTERN, std::move (l));
- }
-#else
- static
- symbol_type
- make_PATTERN (const location_type& l)
- {
- return symbol_type (token::TOKEN_PATTERN, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_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_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_DHCP4 (location_type l)
- {
- return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, std::move (l));
- }
-#else
- static
- symbol_type
- make_TOPLEVEL_DHCP4 (const location_type& l)
- {
- return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_DHCP4 (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_DHCP4, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_DHCP4 (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_DHCP4, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_INTERFACES4 (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_INTERFACES4, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_INTERFACES4 (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_INTERFACES4, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_SUBNET4 (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_SUBNET4, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_SUBNET4 (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_SUBNET4, l);
- }
-#endif
-#if 201103L <= YY_CPLUSPLUS
- static
- symbol_type
- make_SUB_POOL4 (location_type l)
- {
- return symbol_type (token::TOKEN_SUB_POOL4, std::move (l));
- }
-#else
- static
- symbol_type
- make_SUB_POOL4 (const location_type& l)
- {
- return symbol_type (token::TOKEN_SUB_POOL4, 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_DHCP4 (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_DHCP_SOCKET_TYPE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RAW (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_UDP (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_OUTBOUND_INTERFACE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SAME_AS_INBOUND (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_USE_ROUTING (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RE_DETECT (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_ECHO_CLIENT_ID (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MATCH_CLIENT_ID (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_AUTHORITATIVE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_NEXT_SERVER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SERVER_HOSTNAME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_BOOT_FILE_NAME (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_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_MAX_RECONNECT_TRIES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RECONNECT_WAIT_TIME (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_MAX_ROW_ERRORS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_VALID_LIFETIME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MIN_VALID_LIFETIME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MAX_VALID_LIFETIME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_RENEW_TIMER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_REBIND_TIMER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CALCULATE_TEE_TIMES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_T1_PERCENT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_T2_PERCENT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DECLINE_PROBATION_PERIOD (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SERVER_TAG (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DDNS_SEND_UPDATES (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DDNS_OVERRIDE_NO_UPDATE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DDNS_OVERRIDE_CLIENT_UPDATE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DDNS_REPLACE_CLIENT_NAME (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DDNS_GENERATED_PREFIX (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DDNS_QUALIFYING_SUFFIX (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUBNET4 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUBNET_4O6_INTERFACE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUBNET_4O6_INTERFACE_ID (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUBNET_4O6_SUBNET (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_SHARED_NETWORKS (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_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_ID (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_HOST_RESERVATION_IDENTIFIERS (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_DUID (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HW_ADDRESS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CIRCUIT_ID (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_CLIENT_ID (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_IP_ADDRESSES (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_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_TCP (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_JSON (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_WHEN_PRESENT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_NEVER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_ALWAYS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_WHEN_NOT_PRESENT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HOSTNAME_CHAR_SET (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_HOSTNAME_CHAR_REPLACEMENT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LOGGING (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_LOGGERS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_OUTPUT_OPTIONS (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_OUTPUT (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DEBUGLEVEL (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SEVERITY (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_FLUSH (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MAXSIZE (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_MAXVER (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_PATTERN (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_DHCP6 (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_DHCP4 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_DHCP4 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_INTERFACES4 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_SUBNET4 (YY_COPY (location_type) l);
+
+ static
+ symbol_type
+ make_SUB_POOL4 (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.
+ Dhcp4Parser (const Dhcp4Parser&);
+ Dhcp4Parser& operator= (const Dhcp4Parser&);
+
+ /// 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 PARSER4_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_ = 1127, ///< Last index in yytable_.
+ yynnts_ = 399, ///< Number of nonterminal symbols.
+ yyfinal_ = 30, ///< Termination state number.
+ yyterror_ = 1,
+ yyerrcode_ = 256,
+ yyntokens_ = 185 ///< Number of tokens.
+ };
+
+
+ // User arguments.
+ isc::dhcp::Parser4Context& ctx;
+ };
+
+ // Symbol number corresponding to token number t.
+ inline
+ Dhcp4Parser::token_number_type
+ Dhcp4Parser::yytranslate_ (token_type t)
+ {
+ static
+ const token_number_type
+ translate_table[] =
+ {
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 179, 180, 181, 182, 183, 184
+ };
+ const unsigned user_token_number_max_ = 439;
+ 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
+ Dhcp4Parser::syntax_error::syntax_error (const location_type& l, const std::string& m)
+ : std::runtime_error (m)
+ , location (l)
+ {}
+
+ // basic_symbol.
+ template <typename Base>
+ Dhcp4Parser::basic_symbol<Base>::basic_symbol ()
+ : value ()
+ , location ()
+ {}
+
+ template <typename Base>
+ Dhcp4Parser::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 201: // value
+ case 205: // map_value
+ case 246: // ddns_replace_client_name_value
+ case 265: // socket_type
+ case 268: // outbound_interface_value
+ case 290: // db_type
+ case 377: // hr_mode
+ case 524: // ncr_protocol_value
+ value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (other.value));
+ break;
+
+ case 184: // "boolean"
+ value.YY_MOVE_OR_COPY< bool > (YY_MOVE (other.value));
+ break;
+
+ case 183: // "floating point"
+ value.YY_MOVE_OR_COPY< double > (YY_MOVE (other.value));
+ break;
+
+ case 182: // "integer"
+ value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (other.value));
+ break;
+
+ case 181: // "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>
+ Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, YY_RVREF (location_type) l)
+ : Base (t)
+ , location (YY_MOVE (l))
+ {}
+
+ template <typename Base>
+ Dhcp4Parser::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>
+ Dhcp4Parser::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>
+ Dhcp4Parser::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>
+ Dhcp4Parser::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>
+ Dhcp4Parser::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>
+ Dhcp4Parser::basic_symbol<Base>::~basic_symbol ()
+ {
+ clear ();
+ }
+
+ template <typename Base>
+ void
+ Dhcp4Parser::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 201: // value
+ case 205: // map_value
+ case 246: // ddns_replace_client_name_value
+ case 265: // socket_type
+ case 268: // outbound_interface_value
+ case 290: // db_type
+ case 377: // hr_mode
+ case 524: // ncr_protocol_value
+ value.template destroy< ElementPtr > ();
+ break;
+
+ case 184: // "boolean"
+ value.template destroy< bool > ();
+ break;
+
+ case 183: // "floating point"
+ value.template destroy< double > ();
+ break;
+
+ case 182: // "integer"
+ value.template destroy< int64_t > ();
+ break;
+
+ case 181: // "constant string"
+ value.template destroy< std::string > ();
+ break;
+
+ default:
+ break;
+ }
+
+ Base::clear ();
+ }
+
+ template <typename Base>
+ bool
+ Dhcp4Parser::basic_symbol<Base>::empty () const
+ {
+ return Base::type_get () == empty_symbol;
+ }
+
+ template <typename Base>
+ void
+ Dhcp4Parser::basic_symbol<Base>::move (basic_symbol& s)
+ {
+ super_type::move (s);
+ switch (this->type_get ())
+ {
+ case 201: // value
+ case 205: // map_value
+ case 246: // ddns_replace_client_name_value
+ case 265: // socket_type
+ case 268: // outbound_interface_value
+ case 290: // db_type
+ case 377: // hr_mode
+ case 524: // ncr_protocol_value
+ value.move< ElementPtr > (YY_MOVE (s.value));
+ break;
+
+ case 184: // "boolean"
+ value.move< bool > (YY_MOVE (s.value));
+ break;
+
+ case 183: // "floating point"
+ value.move< double > (YY_MOVE (s.value));
+ break;
+
+ case 182: // "integer"
+ value.move< int64_t > (YY_MOVE (s.value));
+ break;
+
+ case 181: // "constant string"
+ value.move< std::string > (YY_MOVE (s.value));
+ break;
+
+ default:
+ break;
+ }
+
+ location = YY_MOVE (s.location);
+ }
+
+ // by_type.
+ inline
+ Dhcp4Parser::by_type::by_type ()
+ : type (empty_symbol)
+ {}
+
+ inline
+ Dhcp4Parser::by_type::by_type (const by_type& other)
+ : type (other.type)
+ {}
+
+ inline
+ Dhcp4Parser::by_type::by_type (token_type t)
+ : type (yytranslate_ (t))
+ {}
+
+ inline
+ void
+ Dhcp4Parser::by_type::clear ()
+ {
+ type = empty_symbol;
+ }
+
+ inline
+ void
+ Dhcp4Parser::by_type::move (by_type& that)
+ {
+ type = that.type;
+ that.clear ();
+ }
+
+ inline
+ int
+ Dhcp4Parser::by_type::type_get () const
+ {
+ return type;
+ }
+
+ inline
+ Dhcp4Parser::token_type
+ Dhcp4Parser::by_type::token () const
+ {
+ // YYTOKNUM[NUM] -- (External) token number corresponding to the
+ // (internal) symbol number NUM (which must be that of a token). */
+ static
+ const unsigned short
+ yytoken_number_[] =
+ {
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
+ 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
+ 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 438, 439
+ };
+ return static_cast<token_type> (yytoken_number_[type]);
+ }
+
+ // Implementation of make_symbol for each symbol type.
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_END (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_END, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_COMMA (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_COMMA, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_COLON (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_COLON, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_LSQUARE_BRACKET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LSQUARE_BRACKET, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_RSQUARE_BRACKET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RSQUARE_BRACKET, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_LCURLY_BRACKET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LCURLY_BRACKET, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_RCURLY_BRACKET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RCURLY_BRACKET, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_NULL_TYPE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_NULL_TYPE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DHCP4 (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP4, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CONFIG_CONTROL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONFIG_CONTROL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CONFIG_DATABASES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONFIG_DATABASES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CONFIG_FETCH_WAIT_TIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_INTERFACES_CONFIG (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_INTERFACES_CONFIG, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_INTERFACES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_INTERFACES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DHCP_SOCKET_TYPE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_RAW (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RAW, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_UDP (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_UDP, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_OUTBOUND_INTERFACE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SAME_AS_INBOUND (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SAME_AS_INBOUND, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_USE_ROUTING (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_USE_ROUTING, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_RE_DETECT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RE_DETECT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SANITY_CHECKS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SANITY_CHECKS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_LEASE_CHECKS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LEASE_CHECKS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_ECHO_CLIENT_ID (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ECHO_CLIENT_ID, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_MATCH_CLIENT_ID (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MATCH_CLIENT_ID, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_AUTHORITATIVE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_AUTHORITATIVE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_NEXT_SERVER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_NEXT_SERVER, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SERVER_HOSTNAME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SERVER_HOSTNAME, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_BOOT_FILE_NAME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_BOOT_FILE_NAME, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_LEASE_DATABASE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LEASE_DATABASE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_HOSTS_DATABASE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOSTS_DATABASE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_HOSTS_DATABASES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOSTS_DATABASES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_TYPE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_TYPE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_MEMFILE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MEMFILE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_MYSQL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MYSQL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_POSTGRESQL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_POSTGRESQL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CQL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CQL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_USER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_USER, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_PASSWORD (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PASSWORD, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_HOST (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOST, YY_MOVE (l));
+ }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_PORT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PORT, YY_MOVE (l));
+ }
- private:
- /// This class is not copyable.
- Dhcp4Parser (const Dhcp4Parser&);
- Dhcp4Parser& operator= (const Dhcp4Parser&);
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_PERSIST (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PERSIST, YY_MOVE (l));
+ }
- /// State numbers.
- typedef int state_type;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_LFC_INTERVAL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LFC_INTERVAL, 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_READONLY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_READONLY, 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CONNECT_TIMEOUT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONNECT_TIMEOUT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CONTACT_POINTS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONTACT_POINTS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_KEYSPACE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_KEYSPACE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CONSISTENCY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONSISTENCY, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SERIAL_CONSISTENCY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_MAX_RECONNECT_TRIES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_RECONNECT_WAIT_TIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_REQUEST_TIMEOUT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_REQUEST_TIMEOUT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_TCP_KEEPALIVE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_TCP_KEEPALIVE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_TCP_NODELAY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_TCP_NODELAY, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_MAX_ROW_ERRORS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAX_ROW_ERRORS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_VALID_LIFETIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_VALID_LIFETIME, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_MIN_VALID_LIFETIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_MAX_VALID_LIFETIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_RENEW_TIMER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RENEW_TIMER, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_REBIND_TIMER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_REBIND_TIMER, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CALCULATE_TEE_TIMES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_T1_PERCENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_T1_PERCENT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_T2_PERCENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_T2_PERCENT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DECLINE_PROBATION_PERIOD (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SERVER_TAG (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SERVER_TAG, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DDNS_SEND_UPDATES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DDNS_OVERRIDE_NO_UPDATE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DDNS_OVERRIDE_CLIENT_UPDATE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DDNS_REPLACE_CLIENT_NAME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DDNS_GENERATED_PREFIX (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DDNS_QUALIFYING_SUFFIX (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUBNET4 (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUBNET4, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUBNET_4O6_INTERFACE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUBNET_4O6_INTERFACE_ID (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUBNET_4O6_SUBNET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_OPTION_DEF (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OPTION_DEF, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_OPTION_DATA (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OPTION_DATA, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_NAME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_NAME, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DATA (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DATA, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CODE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CODE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SPACE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SPACE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CSV_FORMAT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CSV_FORMAT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_ALWAYS_SEND (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ALWAYS_SEND, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_RECORD_TYPES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RECORD_TYPES, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_ENCAPSULATE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ENCAPSULATE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_ARRAY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ARRAY, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SHARED_NETWORKS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SHARED_NETWORKS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_POOLS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_POOLS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_POOL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_POOL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_USER_CONTEXT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_USER_CONTEXT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_COMMENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_COMMENT, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUBNET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUBNET, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_INTERFACE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_INTERFACE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_ID (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ID, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_RESERVATION_MODE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RESERVATION_MODE, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DISABLED (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DISABLED, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_OUT_OF_POOL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OUT_OF_POOL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_GLOBAL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_GLOBAL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_ALL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ALL, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_HOST_RESERVATION_IDENTIFIERS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, YY_MOVE (l));
+ }
+
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CLIENT_CLASSES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CLIENT_CLASSES, 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_REQUIRE_CLIENT_CLASSES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_TEST (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_TEST, YY_MOVE (l));
+ }
- static const short yypact_ninf_;
- static const signed char yytable_ninf_;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_ONLY_IF_REQUIRED (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, YY_MOVE (l));
+ }
- /// Convert a scanner token number \a t to a symbol number.
- static token_number_type yytranslate_ (token_type t);
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CLIENT_CLASS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CLIENT_CLASS, YY_MOVE (l));
+ }
- // Tables.
- // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- // STATE-NUM.
- static const short yypact_[];
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_RESERVATIONS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RESERVATIONS, 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DUID (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DUID, YY_MOVE (l));
+ }
- // YYPGOTO[NTERM-NUM].
- static const short yypgoto_[];
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_HW_ADDRESS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HW_ADDRESS, YY_MOVE (l));
+ }
- // YYDEFGOTO[NTERM-NUM].
- static const short yydefgoto_[];
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CIRCUIT_ID (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CIRCUIT_ID, 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CLIENT_ID (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CLIENT_ID, YY_MOVE (l));
+ }
- static const short yycheck_[];
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_HOSTNAME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOSTNAME, YY_MOVE (l));
+ }
- // YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- // symbol of state STATE-NUM.
- static const unsigned short yystos_[];
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_FLEX_ID (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_FLEX_ID, YY_MOVE (l));
+ }
- // YYR1[YYN] -- Symbol number of symbol that rule YYN derives.
- static const unsigned short yyr1_[];
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_RELAY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RELAY, YY_MOVE (l));
+ }
- // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.
- static const unsigned char yyr2_[];
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_IP_ADDRESS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_IP_ADDRESS, YY_MOVE (l));
+ }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_IP_ADDRESSES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_IP_ADDRESSES, YY_MOVE (l));
+ }
- /// Convert the symbol name \a n to a form suitable for a diagnostic.
- static std::string yytnamerr_ (const char *n);
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_HOOKS_LIBRARIES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOOKS_LIBRARIES, YY_MOVE (l));
+ }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_LIBRARY (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LIBRARY, YY_MOVE (l));
+ }
- /// For a symbol, its name in clear.
- static const char* const yytname_[];
-#if PARSER4_DEBUG
- // YYRLINE[YYN] -- Source line where rule number YYN was defined.
- static const 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_PARAMETERS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PARAMETERS, YY_MOVE (l));
+ }
- /// Debugging level.
- int yydebug_;
- /// Debug stream.
- std::ostream* yycdebug_;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_EXPIRED_LEASES_PROCESSING (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_RECLAIM_TIMER_WAIT_TIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, YY_MOVE (l));
+ }
- private:
- /// Type access provider for state based symbols.
- struct by_state
- {
- /// Default constructor.
- by_state () YY_NOEXCEPT;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_HOLD_RECLAIMED_TIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, YY_MOVE (l));
+ }
- /// The symbol type as needed by the constructor.
- typedef state_type kind_type;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_MAX_RECLAIM_LEASES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, YY_MOVE (l));
+ }
- /// Constructor.
- by_state (kind_type s) YY_NOEXCEPT;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_MAX_RECLAIM_TIME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, YY_MOVE (l));
+ }
- /// Copy constructor.
- by_state (const by_state& that) YY_NOEXCEPT;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_UNWARNED_RECLAIM_CYCLES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, YY_MOVE (l));
+ }
- /// Record that this symbol is empty.
- void clear () YY_NOEXCEPT;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DHCP4O6_PORT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP4O6_PORT, YY_MOVE (l));
+ }
- /// Steal the symbol type from \a that.
- void move (by_state& that);
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CONTROL_SOCKET (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONTROL_SOCKET, 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SOCKET_TYPE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SOCKET_TYPE, YY_MOVE (l));
+ }
- /// The state number used to denote an empty symbol.
- enum { empty_state = -1 };
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SOCKET_NAME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SOCKET_NAME, YY_MOVE (l));
+ }
- /// The state.
- /// \a empty when empty.
- state_type state;
- };
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DHCP_QUEUE_CONTROL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DHCP_DDNS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP_DDNS, 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_ENABLE_UPDATES (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_ENABLE_UPDATES, YY_MOVE (l));
+ }
- /// Pop elements from the stack.
- void
- pop (int n = 1) YY_NOEXCEPT
- {
- for (; 0 < n; --n)
- seq_.pop_back ();
- }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_QUALIFYING_SUFFIX (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, YY_MOVE (l));
+ }
- /// Pop all elements from the stack.
- void
- clear () YY_NOEXCEPT
- {
- seq_.clear ();
- }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SERVER_IP (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SERVER_IP, YY_MOVE (l));
+ }
- /// Number of elements on the stack.
- size_type
- size () const YY_NOEXCEPT
- {
- return seq_.size ();
- }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SERVER_PORT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SERVER_PORT, YY_MOVE (l));
+ }
- /// Iterator on top of the stack (going downwards).
- const_iterator
- begin () const YY_NOEXCEPT
- {
- return seq_.rbegin ();
- }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SENDER_IP (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SENDER_IP, YY_MOVE (l));
+ }
- /// Bottom of the stack.
- const_iterator
- end () const YY_NOEXCEPT
- {
- return seq_.rend ();
- }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SENDER_PORT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SENDER_PORT, 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_MAX_QUEUE_SIZE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, YY_MOVE (l));
+ }
- private:
- stack (const stack&);
- stack& operator= (const stack&);
- /// The wrapped container.
- S seq_;
- };
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_NCR_PROTOCOL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_NCR_PROTOCOL, YY_MOVE (l));
+ }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_NCR_FORMAT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_NCR_FORMAT, YY_MOVE (l));
+ }
- /// Stack type.
- typedef stack<stack_symbol_type> stack_type;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_OVERRIDE_NO_UPDATE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, YY_MOVE (l));
+ }
- /// The stack.
- stack_type yystack_;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_OVERRIDE_CLIENT_UPDATE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OVERRIDE_CLIENT_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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_REPLACE_CLIENT_NAME (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_TCP (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_TCP, YY_MOVE (l));
+ }
- /// Constants.
- enum
- {
- yyeof_ = 0,
- yylast_ = 1054, ///< Last index in yytable_.
- yynnts_ = 386, ///< Number of nonterminal symbols.
- yyfinal_ = 30, ///< Termination state number.
- yyterror_ = 1,
- yyerrcode_ = 256,
- yyntokens_ = 179 ///< Number of tokens.
- };
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_JSON (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_JSON, YY_MOVE (l));
+ }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_WHEN_PRESENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_WHEN_PRESENT, YY_MOVE (l));
+ }
- // User arguments.
- isc::dhcp::Parser4Context& ctx;
- };
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_NEVER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_NEVER, YY_MOVE (l));
+ }
inline
- Dhcp4Parser::token_number_type
- Dhcp4Parser::yytranslate_ (token_type t)
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_ALWAYS (YY_COPY (location_type) l)
{
- // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to
- // TOKEN-NUM as returned by yylex.
- static
- const token_number_type
- translate_table[] =
- {
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
- 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
- 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
- 175, 176, 177, 178
- };
- const unsigned user_token_number_max_ = 433;
- const token_number_type undef_token_ = 2;
+ return symbol_type (token::TOKEN_ALWAYS, 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
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_WHEN_NOT_PRESENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, YY_MOVE (l));
}
- // basic_symbol.
-#if 201103L <= YY_CPLUSPLUS
- template <typename Base>
- Dhcp4Parser::basic_symbol<Base>::basic_symbol (basic_symbol&& that)
- : Base (std::move (that))
- , value ()
- , location (std::move (that.location))
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_HOSTNAME_CHAR_SET (YY_COPY (location_type) l)
{
- switch (this->type_get ())
- {
- case 195: // value
- case 199: // map_value
- case 245: // socket_type
- case 248: // outbound_interface_value
- case 270: // db_type
- case 357: // hr_mode
- case 506: // ncr_protocol_value
- case 513: // replace_client_name_value
- value.move< ElementPtr > (std::move (that.value));
- break;
+ return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, YY_MOVE (l));
+ }
- case 178: // "boolean"
- value.move< bool > (std::move (that.value));
- break;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_HOSTNAME_CHAR_REPLACEMENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, YY_MOVE (l));
+ }
- case 177: // "floating point"
- value.move< double > (std::move (that.value));
- break;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_LOGGING (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LOGGING, YY_MOVE (l));
+ }
- case 176: // "integer"
- value.move< int64_t > (std::move (that.value));
- break;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_LOGGERS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_LOGGERS, YY_MOVE (l));
+ }
- case 175: // "constant string"
- value.move< std::string > (std::move (that.value));
- break;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_OUTPUT_OPTIONS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OUTPUT_OPTIONS, YY_MOVE (l));
+ }
- default:
- break;
- }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_OUTPUT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_OUTPUT, YY_MOVE (l));
+ }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DEBUGLEVEL (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DEBUGLEVEL, YY_MOVE (l));
}
-#endif
- template <typename Base>
- Dhcp4Parser::basic_symbol<Base>::basic_symbol (const basic_symbol& that)
- : Base (that)
- , value ()
- , location (that.location)
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SEVERITY (YY_COPY (location_type) l)
{
- switch (this->type_get ())
- {
- case 195: // value
- case 199: // map_value
- case 245: // socket_type
- case 248: // outbound_interface_value
- case 270: // db_type
- case 357: // hr_mode
- case 506: // ncr_protocol_value
- case 513: // replace_client_name_value
- value.copy< ElementPtr > (YY_MOVE (that.value));
- break;
+ return symbol_type (token::TOKEN_SEVERITY, YY_MOVE (l));
+ }
- case 178: // "boolean"
- value.copy< bool > (YY_MOVE (that.value));
- break;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_FLUSH (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_FLUSH, YY_MOVE (l));
+ }
- case 177: // "floating point"
- value.copy< double > (YY_MOVE (that.value));
- break;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_MAXSIZE (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAXSIZE, YY_MOVE (l));
+ }
- case 176: // "integer"
- value.copy< int64_t > (YY_MOVE (that.value));
- break;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_MAXVER (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_MAXVER, YY_MOVE (l));
+ }
- case 175: // "constant string"
- value.copy< std::string > (YY_MOVE (that.value));
- break;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_PATTERN (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_PATTERN, YY_MOVE (l));
+ }
- default:
- break;
- }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DHCP6 (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCP6, YY_MOVE (l));
+ }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_DHCPDDNS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_DHCPDDNS, YY_MOVE (l));
}
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_CONTROL_AGENT (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_CONTROL_AGENT, YY_MOVE (l));
+ }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_TOPLEVEL_JSON (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_TOPLEVEL_JSON, YY_MOVE (l));
+ }
- template <typename Base>
- bool
- Dhcp4Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_TOPLEVEL_DHCP4 (YY_COPY (location_type) l)
{
- return Base::type_get () == empty_symbol;
+ return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, YY_MOVE (l));
}
- template <typename Base>
- void
- Dhcp4Parser::basic_symbol<Base>::move (basic_symbol& s)
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUB_DHCP4 (YY_COPY (location_type) l)
{
- super_type::move (s);
- switch (this->type_get ())
- {
- case 195: // value
- case 199: // map_value
- case 245: // socket_type
- case 248: // outbound_interface_value
- case 270: // db_type
- case 357: // hr_mode
- case 506: // ncr_protocol_value
- case 513: // replace_client_name_value
- value.move< ElementPtr > (YY_MOVE (s.value));
- break;
+ return symbol_type (token::TOKEN_SUB_DHCP4, YY_MOVE (l));
+ }
- case 178: // "boolean"
- value.move< bool > (YY_MOVE (s.value));
- break;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUB_INTERFACES4 (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_INTERFACES4, YY_MOVE (l));
+ }
- case 177: // "floating point"
- value.move< double > (YY_MOVE (s.value));
- break;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUB_SUBNET4 (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_SUBNET4, YY_MOVE (l));
+ }
- case 176: // "integer"
- value.move< int64_t > (YY_MOVE (s.value));
- break;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUB_POOL4 (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_POOL4, YY_MOVE (l));
+ }
- case 175: // "constant string"
- value.move< std::string > (YY_MOVE (s.value));
- break;
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUB_RESERVATION (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_RESERVATION, YY_MOVE (l));
+ }
- default:
- break;
- }
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUB_OPTION_DEFS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_OPTION_DEFS, YY_MOVE (l));
+ }
- location = YY_MOVE (s.location);
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUB_OPTION_DEF (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_OPTION_DEF, YY_MOVE (l));
}
- // by_type.
inline
- Dhcp4Parser::by_type::by_type ()
- : type (empty_symbol)
- {}
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUB_OPTION_DATA (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_OPTION_DATA, YY_MOVE (l));
+ }
-#if 201103L <= YY_CPLUSPLUS
inline
- Dhcp4Parser::by_type::by_type (by_type&& that)
- : type (that.type)
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUB_HOOKS_LIBRARY (YY_COPY (location_type) l)
{
- that.clear ();
+ return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, YY_MOVE (l));
}
-#endif
inline
- Dhcp4Parser::by_type::by_type (const by_type& that)
- : type (that.type)
- {}
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUB_DHCP_DDNS (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_DHCP_DDNS, YY_MOVE (l));
+ }
inline
- Dhcp4Parser::by_type::by_type (token_type t)
- : type (yytranslate_ (t))
- {}
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUB_LOGGING (YY_COPY (location_type) l)
+ {
+ return symbol_type (token::TOKEN_SUB_LOGGING, YY_MOVE (l));
+ }
inline
- void
- Dhcp4Parser::by_type::clear ()
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_SUB_CONFIG_CONTROL (YY_COPY (location_type) l)
{
- type = empty_symbol;
+ return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, YY_MOVE (l));
}
inline
- void
- Dhcp4Parser::by_type::move (by_type& that)
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_STRING (YY_COPY (std::string) v, YY_COPY (location_type) l)
{
- type = that.type;
- that.clear ();
+ return symbol_type (token::TOKEN_STRING, YY_MOVE (v), YY_MOVE (l));
}
inline
- int
- Dhcp4Parser::by_type::type_get () const YY_NOEXCEPT
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_INTEGER (YY_COPY (int64_t) v, YY_COPY (location_type) l)
{
- return type;
+ return symbol_type (token::TOKEN_INTEGER, YY_MOVE (v), YY_MOVE (l));
}
inline
- Dhcp4Parser::token_type
- Dhcp4Parser::by_type::token () const YY_NOEXCEPT
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::make_FLOAT (YY_COPY (double) v, YY_COPY (location_type) l)
{
- // YYTOKNUM[NUM] -- (External) token number corresponding to the
- // (internal) symbol number NUM (which must be that of a token). */
- static
- const unsigned short
- yytoken_number_[] =
- {
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
- 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
- 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
- 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
- 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
- 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
- 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
- 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
- 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
- 425, 426, 427, 428, 429, 430, 431, 432, 433
- };
- return token_type (yytoken_number_[type]);
+ return symbol_type (token::TOKEN_FLOAT, YY_MOVE (v), YY_MOVE (l));
}
-#line 14 "dhcp4_parser.yy"
-} } // isc::dhcp
-#line 4234 "dhcp4_parser.h"
+ inline
+ Dhcp4Parser::symbol_type
+ Dhcp4Parser::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 "dhcp4_parser.yy" // lalr1.cc:404
+} } // isc::dhcp
+#line 3415 "dhcp4_parser.h" // lalr1.cc:404
+
T2_PERCENT "t2-percent"
DECLINE_PROBATION_PERIOD "decline-probation-period"
SERVER_TAG "server-tag"
+ DDNS_SEND_UPDATES "ddns-send-updates"
+ DDNS_OVERRIDE_NO_UPDATE "ddns-override-no-update"
+ DDNS_OVERRIDE_CLIENT_UPDATE "ddns-override-client-update"
+ DDNS_REPLACE_CLIENT_NAME "ddns-replace-client-name"
+ DDNS_GENERATED_PREFIX "ddns-generated-prefix"
+ DDNS_QUALIFYING_SUFFIX "ddns-qualifying-suffix"
SUBNET4 "subnet4"
SUBNET_4O6_INTERFACE "4o6-interface"
SUBNET_4O6_INTERFACE_ID "4o6-interface-id"
%type <ElementPtr> db_type
%type <ElementPtr> hr_mode
%type <ElementPtr> ncr_protocol_value
-%type <ElementPtr> replace_client_name_value
+%type <ElementPtr> ddns_replace_client_name_value
%printer { yyoutput << $$; } <*>;
| loggers
| hostname_char_set
| hostname_char_replacement
+ | ddns_send_updates
+ | ddns_override_no_update
+ | ddns_override_client_update
+ | ddns_replace_client_name
+ | ddns_generated_prefix
+ | ddns_qualifying_suffix
| unknown_map_entry
;
ctx.stack_.back()->set("authoritative", prf);
};
+ddns_send_updates: DDNS_SEND_UPDATES COLON BOOLEAN {
+ ElementPtr b(new BoolElement($3, ctx.loc2pos(@3)));
+ ctx.stack_.back()->set("ddns-send-updates", b);
+};
+
+ddns_override_no_update: DDNS_OVERRIDE_NO_UPDATE COLON BOOLEAN {
+ ElementPtr b(new BoolElement($3, ctx.loc2pos(@3)));
+ ctx.stack_.back()->set("ddns-override-no-update", b);
+};
+
+ddns_override_client_update: DDNS_OVERRIDE_CLIENT_UPDATE COLON BOOLEAN {
+ ElementPtr b(new BoolElement($3, ctx.loc2pos(@3)));
+ ctx.stack_.back()->set("ddns-override-client-update", b);
+};
+
+ddns_replace_client_name: DDNS_REPLACE_CLIENT_NAME {
+ ctx.enter(ctx.REPLACE_CLIENT_NAME);
+} COLON ddns_replace_client_name_value {
+ ctx.stack_.back()->set("ddns-replace-client-name", $4);
+ ctx.leave();
+};
+
+ddns_replace_client_name_value:
+ WHEN_PRESENT {
+ $$ = ElementPtr(new StringElement("when-present", ctx.loc2pos(@1)));
+ }
+ | NEVER {
+ $$ = ElementPtr(new StringElement("never", ctx.loc2pos(@1)));
+ }
+ | ALWAYS {
+ $$ = ElementPtr(new StringElement("always", ctx.loc2pos(@1)));
+ }
+ | WHEN_NOT_PRESENT {
+ $$ = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(@1)));
+ }
+ | BOOLEAN {
+ error(@1, "boolean values for the replace-client-name are "
+ "no longer supported");
+ }
+ ;
+
+ddns_generated_prefix: DDNS_GENERATED_PREFIX {
+ ctx.enter(ctx.NO_KEYWORD);
+} COLON STRING {
+ ElementPtr s(new StringElement($4, ctx.loc2pos(@4)));
+ ctx.stack_.back()->set("ddns-generated-prefix", s);
+ ctx.leave();
+};
+
+ddns_qualifying_suffix: DDNS_QUALIFYING_SUFFIX {
+ ctx.enter(ctx.NO_KEYWORD);
+} COLON STRING {
+ ElementPtr s(new StringElement($4, ctx.loc2pos(@4)));
+ ctx.stack_.back()->set("ddns-qualifying-suffix", s);
+ ctx.leave();
+};
+
+hostname_char_set: HOSTNAME_CHAR_SET {
+ ctx.enter(ctx.NO_KEYWORD);
+} COLON STRING {
+ ElementPtr s(new StringElement($4, ctx.loc2pos(@4)));
+ ctx.stack_.back()->set("hostname-char-set", s);
+ ctx.leave();
+};
+
+hostname_char_replacement: HOSTNAME_CHAR_REPLACEMENT {
+ ctx.enter(ctx.NO_KEYWORD);
+} COLON STRING {
+ ElementPtr s(new StringElement($4, ctx.loc2pos(@4)));
+ ctx.stack_.back()->set("hostname-char-replacement", s);
+ ctx.leave();
+};
interfaces_config: INTERFACES_CONFIG {
ElementPtr i(new MapElement(ctx.loc2pos(@1)));
| calculate_tee_times
| t1_percent
| t2_percent
+ | ddns_send_updates
+ | ddns_override_no_update
+ | ddns_override_client_update
+ | ddns_replace_client_name
+ | ddns_generated_prefix
+ | ddns_qualifying_suffix
+ | hostname_char_set
+ | hostname_char_replacement
| unknown_map_entry
;
| calculate_tee_times
| t1_percent
| t2_percent
+ | ddns_send_updates
+ | ddns_override_no_update
+ | ddns_override_client_update
+ | ddns_replace_client_name
+ | ddns_generated_prefix
+ | ddns_qualifying_suffix
+ | hostname_char_set
+ | hostname_char_replacement
| unknown_map_entry
;
;
dhcp_ddns_param: enable_updates
- | qualifying_suffix
| server_ip
| server_port
| sender_ip
| max_queue_size
| ncr_protocol
| ncr_format
- | override_no_update
- | override_client_update
- | replace_client_name
- | generated_prefix
- | hostname_char_set
- | hostname_char_replacement
+ | dep_override_no_update
+ | dep_override_client_update
+ | dep_replace_client_name
+ | dep_generated_prefix
+ | dep_qualifying_suffix
+ | dep_hostname_char_set
+ | dep_hostname_char_replacement
| user_context
| comment
| unknown_map_entry
ctx.stack_.back()->set("enable-updates", b);
};
-qualifying_suffix: QUALIFYING_SUFFIX {
- ctx.enter(ctx.NO_KEYWORD);
-} COLON STRING {
- ElementPtr s(new StringElement($4, ctx.loc2pos(@4)));
- ctx.stack_.back()->set("qualifying-suffix", s);
- ctx.leave();
-};
-
server_ip: SERVER_IP {
ctx.enter(ctx.NO_KEYWORD);
} COLON STRING {
ctx.leave();
};
-override_no_update: OVERRIDE_NO_UPDATE COLON BOOLEAN {
+// Deprecated, moved to global/network scopes. Eventually it should be removed.
+dep_qualifying_suffix: QUALIFYING_SUFFIX {
+ ctx.enter(ctx.NO_KEYWORD);
+} COLON STRING {
+ ElementPtr s(new StringElement($4, ctx.loc2pos(@4)));
+ ctx.stack_.back()->set("qualifying-suffix", s);
+ ctx.leave();
+};
+
+// Deprecated, moved to global/network scopes. Eventually it should be removed.
+dep_override_no_update: OVERRIDE_NO_UPDATE COLON BOOLEAN {
ElementPtr b(new BoolElement($3, ctx.loc2pos(@3)));
ctx.stack_.back()->set("override-no-update", b);
};
-override_client_update: OVERRIDE_CLIENT_UPDATE COLON BOOLEAN {
+// Deprecated, moved to global/network scopes. Eventually it should be removed.
+dep_override_client_update: OVERRIDE_CLIENT_UPDATE COLON BOOLEAN {
ElementPtr b(new BoolElement($3, ctx.loc2pos(@3)));
ctx.stack_.back()->set("override-client-update", b);
};
-replace_client_name: REPLACE_CLIENT_NAME {
+// Deprecated, moved to global/network scopes. Eventually it should be removed.
+dep_replace_client_name: REPLACE_CLIENT_NAME {
ctx.enter(ctx.REPLACE_CLIENT_NAME);
-} COLON replace_client_name_value {
+} COLON ddns_replace_client_name_value {
ctx.stack_.back()->set("replace-client-name", $4);
ctx.leave();
};
-replace_client_name_value:
- WHEN_PRESENT {
- $$ = ElementPtr(new StringElement("when-present", ctx.loc2pos(@1)));
- }
- | NEVER {
- $$ = ElementPtr(new StringElement("never", ctx.loc2pos(@1)));
- }
- | ALWAYS {
- $$ = ElementPtr(new StringElement("always", ctx.loc2pos(@1)));
- }
- | WHEN_NOT_PRESENT {
- $$ = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(@1)));
- }
- | BOOLEAN {
- error(@1, "boolean values for the replace-client-name are "
- "no longer supported");
- }
- ;
-
-generated_prefix: GENERATED_PREFIX {
+// Deprecated, moved to global/network scopes. Eventually it should be removed.
+dep_generated_prefix: GENERATED_PREFIX {
ctx.enter(ctx.NO_KEYWORD);
} COLON STRING {
ElementPtr s(new StringElement($4, ctx.loc2pos(@4)));
ctx.leave();
};
-hostname_char_set: HOSTNAME_CHAR_SET {
+// Deprecated, moved to global/network scopes. Eventually it should be removed.
+dep_hostname_char_set: HOSTNAME_CHAR_SET {
ctx.enter(ctx.NO_KEYWORD);
} COLON STRING {
ElementPtr s(new StringElement($4, ctx.loc2pos(@4)));
ctx.leave();
};
-hostname_char_replacement: HOSTNAME_CHAR_REPLACEMENT {
+// Deprecated, moved to global/network scopes. Eventually it should be removed.
+dep_hostname_char_replacement: HOSTNAME_CHAR_REPLACEMENT {
ctx.enter(ctx.NO_KEYWORD);
} COLON STRING {
ElementPtr s(new StringElement($4, ctx.loc2pos(@4)));
// Set the server S, N, and O flags based on client's flags and
// current configuration.
D2ClientMgr& d2_mgr = CfgMgr::instance().getD2ClientMgr();
- d2_mgr.adjustFqdnFlags<Option4ClientFqdn>(*fqdn, *fqdn_resp);
-
+ d2_mgr.adjustFqdnFlags<Option4ClientFqdn>(*fqdn, *fqdn_resp,
+ *(ex.getContext()->getDdnsParams()));
// Carry over the client's E flag.
fqdn_resp->setFlag(Option4ClientFqdn::FLAG_E,
fqdn->getFlag(Option4ClientFqdn::FLAG_E));
!ex.getContext()->currentHost()->getHostname().empty()) {
D2ClientMgr& d2_mgr = CfgMgr::instance().getD2ClientMgr();
fqdn_resp->setDomainName(d2_mgr.qualifyName(ex.getContext()->currentHost()->getHostname(),
- true), Option4ClientFqdn::FULL);
+ *(ex.getContext()->getDdnsParams()), true),
+ Option4ClientFqdn::FULL);
} else {
// Adjust the domain name based on domain name value and type sent by the
// client and current configuration.
- d2_mgr.adjustDomainName<Option4ClientFqdn>(*fqdn, *fqdn_resp);
+ d2_mgr.adjustDomainName<Option4ClientFqdn>(*fqdn, *fqdn_resp,
+ *(ex.getContext()->getDdnsParams()));
}
// Add FQDN option to the response message. Note that, there may be some
// send back a hostname option, send this option with a reserved
// name for this client.
if (should_send_hostname) {
- std::string hostname =
- d2_mgr.qualifyName(ctx->currentHost()->getHostname(), false);
-
+ std::string hostname = d2_mgr.qualifyName(ctx->currentHost()->getHostname(),
+ *(ex.getContext()->getDdnsParams()), false);
// Convert hostname to lower case.
boost::algorithm::to_lower(hostname);
// hostname option to this client if the client has included hostname option
// but there is no reservation, or the configuration of the server requires
// that we send the option regardless.
-
- D2ClientConfig::ReplaceClientNameMode replace_name_mode =
- d2_mgr.getD2ClientConfig()->getReplaceClientNameMode();
+ D2ClientConfig::ReplaceClientNameMode replace_name_mode
+ = ex.getContext()->getDdnsParams()->replace_client_name_mode_;
// If we don't have a hostname then either we'll supply it or do nothing.
if (!opt_hostname) {
opt_hostname_resp.reset(new OptionString(Option::V4, DHO_HOST_NAME, "."));
} else {
// Sanitize the name the client sent us, if we're configured to do so.
- isc::util::str::StringSanitizerPtr sanitizer = d2_mgr.getD2ClientConfig()
- ->getHostnameSanitizer();
+ isc::util::str::StringSanitizerPtr sanitizer
+ = ex.getContext()->getDdnsParams()->getHostnameSanitizer();
+
if (sanitizer) {
hostname = sanitizer->scrub(hostname);
}
// hostname. We don't want to append the trailing dot because
// we don't know whether the hostname is partial or not and some
// clients do not handle the hostnames with the trailing dot.
- opt_hostname_resp.reset(new OptionString(Option::V4, DHO_HOST_NAME,
- d2_mgr.qualifyName(hostname, false)));
+ opt_hostname_resp.reset(
+ new OptionString(Option::V4, DHO_HOST_NAME,
+ d2_mgr.qualifyName(hostname, *(ex.getContext()->getDdnsParams()),
+ false)));
} else {
opt_hostname_resp.reset(new OptionString(Option::V4, DHO_HOST_NAME, hostname));
}
lease->hostname_ = CfgMgr::instance().getD2ClientMgr()
.qualifyName(ctx->currentHost()->getHostname(),
- static_cast<bool>(fqdn));
+ *(ex.getContext()->getDdnsParams()), static_cast<bool>(fqdn));
should_update = true;
// If there has been Client FQDN or Hostname option sent, but the
// the hostname. Whether the trailing dot is appended or not is
// controlled by the second argument to the generateFqdn().
lease->hostname_ = CfgMgr::instance().getD2ClientMgr()
- .generateFqdn(lease->addr_, static_cast<bool>(fqdn));
+ .generateFqdn(lease->addr_, *(ex.getContext()->getDdnsParams()),
+ static_cast<bool>(fqdn));
LOG_DEBUG(ddns4_logger, DBG_DHCP4_DETAIL, DHCP4_RESPONSE_HOSTNAME_GENERATE)
.arg(query->getLabel())
// Set T1 and T2 per configuration.
setTeeTimes(lease, subnet, resp);
+
// Create NameChangeRequests if DDNS is enabled and this is a
// real allocation.
- if (!fake_allocation && CfgMgr::instance().ddnsEnabled()) {
+ if (!fake_allocation && (ex.getContext()->getDdnsParams()->enable_updates_)) {
try {
LOG_DEBUG(ddns4_logger, DBG_DHCP4_DETAIL, DHCP4_NCR_CREATE)
.arg(query->getLabel());
// default values and will insert derived values as well.
mutable_cfg = boost::const_pointer_cast<Element>(config_set);
+ // Relocate dhcp-ddns parameters that have moved to global scope.
+ // Rule is that a global value overrides the dhcp-ddns value, so
+ // we need to do this before we apply global defaults.
+ // Note this is done for backward compatibilty.
+ srv_cfg->moveDdnsParams(mutable_cfg);
+
// Set all default values if not specified by the user.
SimpleParser4::setAllDefaults(mutable_cfg);
(config_pair.first == "t2-percent") ||
(config_pair.first == "loggers") ||
(config_pair.first == "hostname-char-set") ||
- (config_pair.first == "hostname-char-replacement")) {
-
+ (config_pair.first == "hostname-char-replacement") ||
+ (config_pair.first == "ddns-send-updates") ||
+ (config_pair.first == "ddns-override-no-update") ||
+ (config_pair.first == "ddns-override-client-update") ||
+ (config_pair.first == "ddns-replace-client-name") ||
+ (config_pair.first == "ddns-generated-prefix") ||
+ (config_pair.first == "ddns-qualifying-suffix")) {
CfgMgr::instance().getStagingCfg()->addConfiguredGlobal(config_pair.first,
config_pair.second);
continue;
// Validate D2 client confuguration.
if (!d2_client_cfg) {
d2_client_cfg.reset(new D2ClientConfig());
- d2_client_cfg->setFetchGlobalsFn([]() -> ConstElementPtr {
- return (CfgMgr::instance().getStagingCfg()->getConfiguredGlobals());
- });
}
d2_client_cfg->validateContents();
srv_cfg->setD2ClientConfig(d2_client_cfg);
-// Generated 201908191237
-// A Bison parser, made by GNU Bison 3.4.1.
+// A Bison parser, made by GNU Bison 3.2.1.
// Locations for Bison parsers in C++
-// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc.
+// Copyright (C) 2002-2015, 2018 Free Software Foundation, Inc.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
# endif
# endif
-#line 14 "dhcp4_parser.yy"
+#line 14 "dhcp4_parser.yy" // location.cc:339
namespace isc { namespace dhcp {
-#line 60 "location.hh"
-
+#line 60 "location.hh" // location.cc:339
/// A point in a source file.
class position
{
return ostr;
}
-#line 14 "dhcp4_parser.yy"
+#line 14 "dhcp4_parser.yy" // location.cc:339
} } // isc::dhcp
-#line 323 "location.hh"
-
+#line 322 "location.hh" // location.cc:339
#endif // !YY_PARSER4_LOCATION_HH_INCLUDED
-// Generated 201908191237
-// A Bison parser, made by GNU Bison 3.4.1.
+// A Bison parser, made by GNU Bison 3.2.1.
// Starting with Bison 3.2, this file is useless: the structure it
// used to define is now defined in "location.hh".
-// Generated 201908191237
-// A Bison parser, made by GNU Bison 3.4.1.
+// A Bison parser, made by GNU Bison 3.2.1.
// Starting with Bison 3.2, this file is useless: the structure it
// used to define is now defined with the parser itself.
EXPECT_TRUE(pool);
}
+ template <typename ValueType>
+ void checkGlobal(const std::string name, ValueType value) {
+ ConstElementPtr param;
+ ConstElementPtr exp_value;
+ param = CfgMgr::instance().getStagingCfg()->getConfiguredGlobal(name);
+ ASSERT_TRUE(param) << "global: " << name << ", expected but not found";
+ ASSERT_NO_THROW(exp_value = Element::create(value));
+ EXPECT_TRUE(param->equals(*exp_value)) << "global: " << name
+ << isc::data::prettyPrint(param)
+ << " does not match expected: "
+ << isc::data::prettyPrint(exp_value);
+ }
+
boost::scoped_ptr<Dhcpv4Srv> srv_; ///< DHCP4 server under test
int rcode_; ///< Return code from element parsing
ConstElementPtr comment_; ///< Reason for parse fail
EXPECT_FALSE(test_config.socketOpen("eth1", "192.0.2.5"));
}
-
-// This test checks the ability of the server to parse a configuration
-// containing a full, valid dhcp-ddns (D2ClientConfig) entry.
-TEST_F(Dhcp4ParserTest, d2ClientConfig) {
+// This test verifies that valid d2CliengConfig works correctly.
+TEST_F(Dhcp4ParserTest, d2ClientConfigValid) {
ConstElementPtr status;
// Verify that the D2 configuration can be fetched and is set to disabled.
" \"sender-port\" : 778, "
" \"max-queue-size\" : 2048, "
" \"ncr-protocol\" : \"UDP\", "
- " \"ncr-format\" : \"JSON\", "
- " \"override-no-update\" : true, "
- " \"override-client-update\" : true, "
- " \"replace-client-name\" : \"when-present\", "
- " \"generated-prefix\" : \"test.prefix\", "
- " \"qualifying-suffix\" : \"test.suffix.\", "
- " \"hostname-char-set\" : \"[^A-Za-z0-9_-]\", "
- " \"hostname-char-replacement\" : \"x\" }, "
+ " \"ncr-format\" : \"JSON\"}, "
"\"valid-lifetime\": 4000 }";
// Convert the JSON string to configuration elements.
EXPECT_EQ(2048, d2_client_config->getMaxQueueSize());
EXPECT_EQ(dhcp_ddns::NCR_UDP, d2_client_config->getNcrProtocol());
EXPECT_EQ(dhcp_ddns::FMT_JSON, d2_client_config->getNcrFormat());
- EXPECT_TRUE(d2_client_config->getOverrideNoUpdate());
- EXPECT_TRUE(d2_client_config->getOverrideClientUpdate());
- EXPECT_EQ(D2ClientConfig::RCM_WHEN_PRESENT, d2_client_config->getReplaceClientNameMode());
- EXPECT_EQ("test.prefix", d2_client_config->getGeneratedPrefix());
- EXPECT_EQ("test.suffix.", d2_client_config->getQualifyingSuffix());
- EXPECT_FALSE(d2_client_config->getHostnameCharSet().unspecified());
- EXPECT_EQ("[^A-Za-z0-9_-]", d2_client_config->getHostnameCharSet().get());
- EXPECT_FALSE(d2_client_config->getHostnameCharReplacement().unspecified());
- EXPECT_EQ("x", d2_client_config->getHostnameCharReplacement().get());
- EXPECT_TRUE(d2_client_config->getHostnameSanitizer());
+
+ // The following, deprecated dhcp-ddns parameters,
+ // should all have global default values.
+ checkGlobal("ddns-send-updates", true);
+ checkGlobal("ddns-override-no-update", false);
+ checkGlobal("ddns-override-client-update", false);
+ checkGlobal("ddns-replace-client-name", "never");
+ checkGlobal("ddns-generated-prefix", "myhost");
+ checkGlobal("ddns-qualifying-suffix", "");
}
-// This test checks the ability of the server to parse a configuration
-// containing a full, valid dhcp-ddns (D2ClientConfig) entry with
-// hostname-char-* at the global scope.
-TEST_F(Dhcp4ParserTest, d2ClientConfigGlobal) {
+// This test verifies that valid but deprecated dhcp-ddns parameters
+// get moved to the global scope when they do not already exist there.
+TEST_F(Dhcp4ParserTest, d2ClientConfigMoveToGlobal) {
ConstElementPtr status;
// Verify that the D2 configuration can be fetched and is set to disabled.
" \"override-client-update\" : true, "
" \"replace-client-name\" : \"when-present\", "
" \"generated-prefix\" : \"test.prefix\", "
- " \"qualifying-suffix\" : \"test.suffix.\" },"
- "\"hostname-char-set\" : \"[^A-Za-z0-9_-]\", "
- "\"hostname-char-replacement\" : \"x\", "
+ " \"qualifying-suffix\" : \"test.suffix.\", "
+ " \"hostname-char-set\" : \"[^A-Z]\", "
+ " \"hostname-char-replacement\" : \"x\" }, "
"\"valid-lifetime\": 4000 }";
// Convert the JSON string to configuration elements.
EXPECT_EQ(2048, d2_client_config->getMaxQueueSize());
EXPECT_EQ(dhcp_ddns::NCR_UDP, d2_client_config->getNcrProtocol());
EXPECT_EQ(dhcp_ddns::FMT_JSON, d2_client_config->getNcrFormat());
- EXPECT_TRUE(d2_client_config->getOverrideNoUpdate());
- EXPECT_TRUE(d2_client_config->getOverrideClientUpdate());
- EXPECT_EQ(D2ClientConfig::RCM_WHEN_PRESENT, d2_client_config->getReplaceClientNameMode());
- EXPECT_EQ("test.prefix", d2_client_config->getGeneratedPrefix());
- EXPECT_EQ("test.suffix.", d2_client_config->getQualifyingSuffix());
- EXPECT_FALSE(d2_client_config->getHostnameCharSet().unspecified());
- EXPECT_EQ("[^A-Za-z0-9_-]", d2_client_config->getHostnameCharSet().get());
- EXPECT_FALSE(d2_client_config->getHostnameCharReplacement().unspecified());
- EXPECT_EQ("x", d2_client_config->getHostnameCharReplacement().get());
- EXPECT_TRUE(d2_client_config->getHostnameSanitizer());
+
+ // ddns-send-updates should be global default
+ checkGlobal("ddns-send-updates", true);
+
+ // The following should all have been moved from dhcp-ddns.
+ checkGlobal("ddns-override-no-update", true);
+ checkGlobal("ddns-override-client-update", true);
+ checkGlobal("ddns-replace-client-name", "when-present");
+ checkGlobal("ddns-generated-prefix", "test.prefix");
+ checkGlobal("ddns-qualifying-suffix", "test.suffix.");
+ checkGlobal("hostname-char-set", "[^A-Z]");
+ checkGlobal("hostname-char-replacement", "x");
}
-// This test checks the ability of the server to parse a configuration
-// containing a full, valid dhcp-ddns (D2ClientConfig) entry with
-// hostname-char-* at the local and global scopes (local has the priority).
+// This test verifies that explicit global values override deprecated
+// dhcp-ddns parameters (i.e. global scope wins)
TEST_F(Dhcp4ParserTest, d2ClientConfigBoth) {
ConstElementPtr status;
" \"max-queue-size\" : 2048, "
" \"ncr-protocol\" : \"UDP\", "
" \"ncr-format\" : \"JSON\", "
- " \"override-no-update\" : true, "
- " \"override-client-update\" : true, "
+ " \"override-no-update\" : false, "
+ " \"override-client-update\" : false, "
" \"replace-client-name\" : \"when-present\", "
- " \"generated-prefix\" : \"test.prefix\", "
- " \"qualifying-suffix\" : \"test.suffix.\", "
- " \"hostname-char-set\" : \"[^A-Za-z0-9_-]\", "
- " \"hostname-char-replacement\" : \"x\" }, "
- "\"hostname-char-set\" : \"[^A-Z]\", "
- "\"hostname-char-replacement\" : \"z\", "
+ " \"generated-prefix\" : \"d2.prefix\", "
+ " \"qualifying-suffix\" : \"d2.suffix.\", "
+ " \"hostname-char-set\" : \"[^0-9]\", "
+ " \"hostname-char-replacement\" : \"z\" }, "
+ " \"ddns-send-updates\" : false, "
+ " \"ddns-override-no-update\" : true, "
+ " \"ddns-override-client-update\" : true, "
+ " \"ddns-replace-client-name\" : \"always\", "
+ " \"ddns-generated-prefix\" : \"global.prefix\", "
+ " \"ddns-qualifying-suffix\" : \"global.suffix.\", "
+ " \"hostname-char-set\" : \"[^A-Z]\", "
+ " \"hostname-char-replacement\" : \"x\", "
"\"valid-lifetime\": 4000 }";
// Convert the JSON string to configuration elements.
EXPECT_EQ(2048, d2_client_config->getMaxQueueSize());
EXPECT_EQ(dhcp_ddns::NCR_UDP, d2_client_config->getNcrProtocol());
EXPECT_EQ(dhcp_ddns::FMT_JSON, d2_client_config->getNcrFormat());
- EXPECT_TRUE(d2_client_config->getOverrideNoUpdate());
- EXPECT_TRUE(d2_client_config->getOverrideClientUpdate());
- EXPECT_EQ(D2ClientConfig::RCM_WHEN_PRESENT, d2_client_config->getReplaceClientNameMode());
- EXPECT_EQ("test.prefix", d2_client_config->getGeneratedPrefix());
- EXPECT_EQ("test.suffix.", d2_client_config->getQualifyingSuffix());
- EXPECT_FALSE(d2_client_config->getHostnameCharSet().unspecified());
- EXPECT_EQ("[^A-Za-z0-9_-]", d2_client_config->getHostnameCharSet().get());
- EXPECT_FALSE(d2_client_config->getHostnameCharReplacement().unspecified());
- EXPECT_EQ("x", d2_client_config->getHostnameCharReplacement().get());
- EXPECT_TRUE(d2_client_config->getHostnameSanitizer());
+
+ // Verify all global values won.
+ checkGlobal("ddns-send-updates", false);
+ checkGlobal("ddns-override-no-update", true);
+ checkGlobal("ddns-override-client-update", true);
+ checkGlobal("ddns-replace-client-name", "always");
+ checkGlobal("ddns-generated-prefix", "global.prefix");
+ checkGlobal("ddns-qualifying-suffix", "global.suffix.");
+ checkGlobal("hostname-char-set", "[^A-Z]");
+ checkGlobal("hostname-char-replacement", "x");
}
// This test checks the ability of the server to handle a configuration
int rcode;
ConstElementPtr comment = config::parseAnswer(rcode, status);
if (exp_result == SHOULD_PASS) {
- ASSERT_EQ(0, rcode);
+ ASSERT_EQ(0, rcode) << "parse comment: " << comment->stringValue();
} else {
- ASSERT_EQ(1, rcode);
+ ASSERT_EQ(1, rcode) << "parse comment: " << comment->stringValue();
}
if (rcode == 0) {
} );
if (commit) {
- auto cfg = CfgMgr::instance().getStagingCfg()->getD2ClientConfig();
- cfg->setFetchGlobalsFn([]() -> ConstElementPtr {
- return (CfgMgr::instance().getCurrentCfg()->getConfiguredGlobals());
- });
CfgMgr::instance().commit();
}
}
cfg_db->createManagers();
} );
if (commit) {
- auto cfg = CfgMgr::instance().getStagingCfg()->getD2ClientConfig();
- cfg->setFetchGlobalsFn([]() -> ConstElementPtr {
- return (CfgMgr::instance().getCurrentCfg()->getConfiguredGlobals());
- });
CfgMgr::instance().commit();
}
}
"}"
"}",
// 7
- // Configuration which enables DNS updates and hostname sanitization.
- // the second at the global scope.
+ // Configuration with disabled DNS updates (default) and
+ // hostname sanitization defined at global scope.
"{ \"interfaces-config\": {"
" \"interfaces\": [ \"*\" ]"
"},"
" }],"
"\"hostname-char-set\" : \"[^A-Za-z0-9.-]\","
"\"hostname-char-replacement\" : \"x\""
+ "}",
+ // 8
+ // D2 enabled
+ // global ddns-send-updates is false
+ // one subnet does not enable updates
+ // one subnet does enables updates
+ "{ \"interfaces-config\": {\n"
+ " \"interfaces\": [ \"*\" ]\n"
+ "},\n"
+ "\"dhcp-ddns\": {\n"
+ "\"enable-updates\": true\n"
+ "},\n"
+ "\"ddns-send-updates\": false,\n"
+ "\"subnet4\": [ {\n"
+ " \"subnet\": \"192.0.2.0/24\",\n"
+ " \"id\": 1,\n"
+ " \"pools\": [ { \"pool\": \"192.0.2.10-192.0.2.100\" } ],\n"
+ " \"interface\": \"eth0\"\n"
+ " },\n"
+ " {\n"
+ " \"subnet\": \"192.0.3.0/24\", \n"
+ " \"id\": 2,\n"
+ " \"pools\": [ { \"pool\": \"192.0.3.10-192.0.3.100\" } ],\n"
+ " \"interface\": \"eth1\",\n"
+ " \"ddns-send-updates\": true\n"
+ " }\n"
+ "]\n"
"}"
};
ASSERT_NO_THROW(cfg.reset(new D2ClientConfig(true,
isc::asiolink::IOAddress("127.0.0.1"), 53001,
isc::asiolink::IOAddress("0.0.0.0"), 0, 1024,
- dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
- (mask & OVERRIDE_NO_UPDATE),
- (mask & OVERRIDE_CLIENT_UPDATE),
- ((mask & REPLACE_CLIENT_NAME) ?
- D2ClientConfig::RCM_WHEN_PRESENT
- : D2ClientConfig::RCM_NEVER),
- "myhost", "example.com", "", "")));
+ dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON)));
+
ASSERT_NO_THROW(CfgMgr::instance().setD2ClientConfig(cfg));
+
+ // Now we'll set the DDNS parameters at the subnet level.
+ // These should get fetched when getDdnsParams() is invoked.
+ ASSERT_TRUE(subnet_) << "enableD2 called without subnet_ set";
+ subnet_->setDdnsSendUpdates(true);
+ subnet_->setDdnsOverrideNoUpdate(mask & OVERRIDE_NO_UPDATE);
+ subnet_->setDdnsOverrideClientUpdate(mask & OVERRIDE_CLIENT_UPDATE);
+ subnet_->setDdnsReplaceClientNameMode((mask & REPLACE_CLIENT_NAME) ?
+ D2ClientConfig::RCM_WHEN_PRESENT
+ : D2ClientConfig::RCM_NEVER);
+ subnet_->setDdnsGeneratedPrefix("myhost");
+ subnet_->setDdnsQualifyingSuffix("example.com");
+
ASSERT_NO_THROW(srv_->startD2());
}
+ // Fetch DDNS parameter set scoped to the current subnet_.
+ DdnsParamsPtr getDdnsParams() {
+ ConstElementPtr cfg = CfgMgr::instance().getCurrentCfg()->toElement();
+ if (!subnet_) {
+ ADD_FAILURE() << "getDdnsParams() - subnet_ is empty!";
+ return (DdnsParamsPtr(new DdnsParams()));
+ }
+
+ return(CfgMgr::instance().getCurrentCfg()->getDdnsParams(*subnet_));
+ }
+
// Create a lease to be used by various tests.
Lease4Ptr createLease(const isc::asiolink::IOAddress& addr,
const std::string& hostname,
std::string generatedNameFromAddress(const IOAddress& addr,
const bool trailing_dot = true) {
return(CfgMgr::instance().getD2ClientMgr()
- .generateFqdn(addr, trailing_dot));
+ .generateFqdn(addr, *getDdnsParams(), trailing_dot));
}
// Get the Client FQDN Option from the given message.
"},"
"\"valid-lifetime\": 3000,"
"\"subnet4\": [ { "
- " \"subnet\": \"10.0.0.0/24\", "
+ " \"subnet\": \"192.0.2.0/24\", "
" \"id\": 1,"
- " \"pools\": [ { \"pool\": \"10.0.0.10-10.0.0.10\" } ]"
+ " \"pools\": [ { \"pool\": \"192.0.2.10-192.0.2.10\" } ]"
" }],"
"\"dhcp-ddns\": {"
" \"enable-updates\": true,"
answer.reset(new Pkt4(DHCPACK, 1234));
}
+
Dhcpv4Exchange ex = createExchange(query);
+ if (!ex.getContext()->subnet_) {
+ ADD_FAILURE() << "createExchange did not select a subnet";
+ }
+
srv_->processClientName(ex);
OptionStringPtr hostname = getHostnameOption(ex.getResponse());
}
}
+// Verifies that socped ddns-parameter handling.
+// Specifically that D2 can be enabled with sending updates
+// disabled globally, and enabled at the subnet level.
+TEST_F(NameDhcpv4SrvTest, ddnsScopeTest) {
+ Dhcp4Client client1(Dhcp4Client::SELECTING);
+ client1.setIfaceName("eth0");
+
+ // Load a configuration with D2 enabled
+ ASSERT_NO_FATAL_FAILURE(configure(CONFIGS[8], *client1.getServer()));
+ ASSERT_TRUE(CfgMgr::instance().ddnsEnabled());
+
+ // Include the Client FQDN option.
+ ASSERT_NO_THROW(client1.includeFQDN((Option4ClientFqdn::FLAG_S
+ | Option4ClientFqdn::FLAG_E),
+ "client1.example.org.", Option4ClientFqdn::FULL));
+
+ // Now send the DHCPREQUEST with including the FQDN option.
+ ASSERT_NO_THROW(client1.doDORA());
+ Pkt4Ptr resp = client1.getContext().response_;
+ ASSERT_TRUE(resp);
+ ASSERT_EQ(DHCPACK, static_cast<int>(resp->getType()));
+
+ // Check that the response FQDN is as expected.
+ Option4ClientFqdnPtr fqdn;
+ fqdn = boost::dynamic_pointer_cast<Option4ClientFqdn>(resp->getOption(DHO_FQDN));
+ ASSERT_TRUE(fqdn);
+ EXPECT_EQ("client1.example.org.", fqdn->getDomainName());
+
+ // ddns-send-udpates for subnet 1 should be off, so we should NOT have an NRC.
+ ASSERT_EQ(0, CfgMgr::instance().getD2ClientMgr().getQueueSize());
+
+ // Now let's try with a client on subnet 2.
+ Dhcp4Client client2(Dhcp4Client::SELECTING);
+ client2.setIfaceName("eth1");
+
+ // Include the Client FQDN option.
+ ASSERT_NO_THROW(client2.includeFQDN((Option4ClientFqdn::FLAG_S
+ | Option4ClientFqdn::FLAG_E),
+ "two.example.org.", Option4ClientFqdn::FULL));
+
+ ASSERT_NO_THROW(client2.doDORA());
+ resp = client2.getContext().response_;
+ ASSERT_TRUE(resp);
+ ASSERT_EQ(DHCPACK, static_cast<int>(resp->getType()));
+
+ // Check that the response FQDN is as expected.
+ fqdn = boost::dynamic_pointer_cast<Option4ClientFqdn>(resp->getOption(DHO_FQDN));
+ ASSERT_TRUE(fqdn);
+ EXPECT_EQ("two.example.org.", fqdn->getDomainName());
+
+ // ddns-send-udpates for subnet 2 are enabled, verify the NCR is correct.
+ ASSERT_EQ(1, CfgMgr::instance().getD2ClientMgr().getQueueSize());
+ verifyNameChangeRequest(isc::dhcp_ddns::CHG_ADD, true, true,
+ resp->getYiaddr().toText(),
+ "two.example.org.", "",
+ time(NULL), 7200, true);
+}
+
} // end of anonymous namespace
///@{
/// @brief extracted configurations
const char* EXTRACTED_CONFIGS[] = {
+/// put this after const char* EXTRACTED_CONFIGS[] = {
// CONFIGURATION 0
"{\n"
" \"interfaces-config\": {\n"
"{\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": true,\n"
-" \"generated-prefix\": \"test.prefix\",\n"
-" \"hostname-char-replacement\": \"x\",\n"
-" \"hostname-char-set\": \"[^A-Za-z0-9_-]\",\n"
" \"max-queue-size\": 2048,\n"
" \"ncr-format\": \"JSON\",\n"
" \"ncr-protocol\": \"UDP\",\n"
-" \"override-client-update\": true,\n"
-" \"override-no-update\": true,\n"
-" \"qualifying-suffix\": \"test.suffix.\",\n"
-" \"replace-client-name\": \"when-present\",\n"
" \"sender-ip\": \"192.168.2.2\",\n"
" \"sender-port\": 778,\n"
" \"server-ip\": \"192.168.2.1\",\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": true,\n"
" \"generated-prefix\": \"test.prefix\",\n"
+" \"hostname-char-replacement\": \"x\",\n"
+" \"hostname-char-set\": \"[^A-Z]\",\n"
" \"max-queue-size\": 2048,\n"
" \"ncr-format\": \"JSON\",\n"
" \"ncr-protocol\": \"UDP\",\n"
" \"server-ip\": \"192.168.2.1\",\n"
" \"server-port\": 777\n"
" },\n"
-" \"hostname-char-replacement\": \"x\",\n"
-" \"hostname-char-set\": \"[^A-Za-z0-9_-]\",\n"
" \"interfaces-config\": {\n"
" \"interfaces\": [ \"*\" ],\n"
" \"re-detect\": false\n"
" }\n",
// CONFIGURATION 43
"{\n"
+" \"ddns-generated-prefix\": \"global.prefix\",\n"
+" \"ddns-override-client-update\": true,\n"
+" \"ddns-override-no-update\": true,\n"
+" \"ddns-qualifying-suffix\": \"global.suffix.\",\n"
+" \"ddns-replace-client-name\": \"always\",\n"
+" \"ddns-send-updates\": false,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": true,\n"
-" \"generated-prefix\": \"test.prefix\",\n"
-" \"hostname-char-replacement\": \"x\",\n"
-" \"hostname-char-set\": \"[^A-Za-z0-9_-]\",\n"
+" \"generated-prefix\": \"d2.prefix\",\n"
+" \"hostname-char-replacement\": \"z\",\n"
+" \"hostname-char-set\": \"[^0-9]\",\n"
" \"max-queue-size\": 2048,\n"
" \"ncr-format\": \"JSON\",\n"
" \"ncr-protocol\": \"UDP\",\n"
-" \"override-client-update\": true,\n"
-" \"override-no-update\": true,\n"
-" \"qualifying-suffix\": \"test.suffix.\",\n"
+" \"override-client-update\": false,\n"
+" \"override-no-update\": false,\n"
+" \"qualifying-suffix\": \"d2.suffix.\",\n"
" \"replace-client-name\": \"when-present\",\n"
" \"sender-ip\": \"192.168.2.2\",\n"
" \"sender-port\": 778,\n"
" \"server-ip\": \"192.168.2.1\",\n"
" \"server-port\": 777\n"
" },\n"
-" \"hostname-char-replacement\": \"z\",\n"
+" \"hostname-char-replacement\": \"x\",\n"
" \"hostname-char-set\": \"[^A-Z]\",\n"
" \"interfaces-config\": {\n"
" \"interfaces\": [ \"*\" ],\n"
/// @brief unparsed configurations
const char* UNPARSED_CONFIGS[] = {
+///put this after const char* UNPARSED_CONFIGS[] = {
// CONFIGURATION 0
"{\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"max-valid-lifetime\": 5000,\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 2,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 3,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 4,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1024,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 100,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 34,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"bar\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"bar\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"1.2.3.4\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"bar\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"1.2.3.4\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"nofile\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"bootfile.efi\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"1.2.3.4\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 2,\n"
" \"match-client-id\": false,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": false,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 2,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": true,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 2,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": true,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": true,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 2,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"max-valid-lifetime\": 5,\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 2,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 2,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": true,\n"
-" \"generated-prefix\": \"test.prefix\",\n"
-" \"hostname-char-replacement\": \"x\",\n"
-" \"hostname-char-set\": \"[^A-Za-z0-9_-]\",\n"
" \"max-queue-size\": 2048,\n"
" \"ncr-format\": \"JSON\",\n"
" \"ncr-protocol\": \"UDP\",\n"
-" \"override-client-update\": true,\n"
-" \"override-no-update\": true,\n"
-" \"qualifying-suffix\": \"test.suffix.\",\n"
-" \"replace-client-name\": \"when-present\",\n"
" \"sender-ip\": \"192.168.2.2\",\n"
" \"sender-port\": 778,\n"
" \"server-ip\": \"192.168.2.1\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"test.prefix\",\n"
+" \"ddns-override-client-update\": true,\n"
+" \"ddns-override-no-update\": true,\n"
+" \"ddns-qualifying-suffix\": \"test.suffix.\",\n"
+" \"ddns-replace-client-name\": \"when-present\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": true,\n"
-" \"generated-prefix\": \"test.prefix\",\n"
" \"max-queue-size\": 2048,\n"
" \"ncr-format\": \"JSON\",\n"
" \"ncr-protocol\": \"UDP\",\n"
-" \"override-client-update\": true,\n"
-" \"override-no-update\": true,\n"
-" \"qualifying-suffix\": \"test.suffix.\",\n"
-" \"replace-client-name\": \"when-present\",\n"
" \"sender-ip\": \"192.168.2.2\",\n"
" \"sender-port\": 778,\n"
" \"server-ip\": \"192.168.2.1\",\n"
" \"hooks-libraries\": [ ],\n"
" \"host-reservation-identifiers\": [ \"hw-address\", \"duid\", \"circuit-id\", \"client-id\" ],\n"
" \"hostname-char-replacement\": \"x\",\n"
-" \"hostname-char-set\": \"[^A-Za-z0-9_-]\",\n"
+" \"hostname-char-set\": \"[^A-Z]\",\n"
" \"interfaces-config\": {\n"
" \"interfaces\": [ \"*\" ],\n"
" \"re-detect\": false\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"test.prefix\",\n"
+" \"ddns-override-client-update\": true,\n"
+" \"ddns-override-no-update\": true,\n"
+" \"ddns-qualifying-suffix\": \"test.suffix.\",\n"
+" \"ddns-replace-client-name\": \"when-present\",\n"
+" \"ddns-send-updates\": true,\n"
+" \"hostname-char-replacement\": \"x\",\n"
+" \"hostname-char-set\": \"[^A-Z]\",\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"global.prefix\",\n"
+" \"ddns-override-client-update\": true,\n"
+" \"ddns-override-no-update\": true,\n"
+" \"ddns-qualifying-suffix\": \"global.suffix.\",\n"
+" \"ddns-replace-client-name\": \"always\",\n"
+" \"ddns-send-updates\": false,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": true,\n"
-" \"generated-prefix\": \"test.prefix\",\n"
-" \"hostname-char-replacement\": \"x\",\n"
-" \"hostname-char-set\": \"[^A-Za-z0-9_-]\",\n"
" \"max-queue-size\": 2048,\n"
" \"ncr-format\": \"JSON\",\n"
" \"ncr-protocol\": \"UDP\",\n"
-" \"override-client-update\": true,\n"
-" \"override-no-update\": true,\n"
-" \"qualifying-suffix\": \"test.suffix.\",\n"
-" \"replace-client-name\": \"when-present\",\n"
" \"sender-ip\": \"192.168.2.2\",\n"
" \"sender-port\": 778,\n"
" \"server-ip\": \"192.168.2.1\",\n"
" },\n"
" \"hooks-libraries\": [ ],\n"
" \"host-reservation-identifiers\": [ \"hw-address\", \"duid\", \"circuit-id\", \"client-id\" ],\n"
-" \"hostname-char-replacement\": \"z\",\n"
+" \"hostname-char-replacement\": \"x\",\n"
" \"hostname-char-set\": \"[^A-Z]\",\n"
" \"interfaces-config\": {\n"
" \"interfaces\": [ \"*\" ],\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"global.prefix\",\n"
+" \"ddns-override-client-update\": true,\n"
+" \"ddns-override-no-update\": true,\n"
+" \"ddns-qualifying-suffix\": \"global.suffix.\",\n"
+" \"ddns-replace-client-name\": \"always\",\n"
+" \"ddns-send-updates\": false,\n"
+" \"hostname-char-replacement\": \"x\",\n"
+" \"hostname-char-set\": \"[^A-Z]\",\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
" \"client-class\": \"alpha\",\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
" \"client-class\": \"beta\",\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 2,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
" \"client-class\": \"gamma\",\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 3,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 4,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 123,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 234,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 542,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 234,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 2,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 3,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 4,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 2,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 12345,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"2001:db8::123/45\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"2001:db8::543/21\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"server-hostname\": \"\"\n"
" }\n"
" ],\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 1,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"socket-name\": \"/tmp/kea4-ctrl-socket\",\n"
" \"socket-type\": \"unix\"\n"
" },\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"comment\": \"No dynamic DNS\",\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"comment\": \"A shared network\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"interface\": \"\",\n"
" \"match-client-id\": true,\n"
" \"name\": \"foo\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 100,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 123,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 542,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"authoritative\": false,\n"
" \"boot-file-name\": \"\",\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"decline-probation-period\": 86400,\n"
" \"dhcp-ddns\": {\n"
" \"enable-updates\": false,\n"
-" \"generated-prefix\": \"myhost\",\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"
" {\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": true,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"interface\": \"\",\n"
" \"match-client-id\": true,\n"
" \"name\": \"foo\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 100,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": true,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 200,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"
" \"4o6-subnet\": \"\",\n"
" \"authoritative\": false,\n"
" \"calculate-tee-times\": false,\n"
+" \"ddns-generated-prefix\": \"myhost\",\n"
+" \"ddns-override-client-update\": false,\n"
+" \"ddns-override-no-update\": false,\n"
+" \"ddns-qualifying-suffix\": \"\",\n"
+" \"ddns-replace-client-name\": \"never\",\n"
+" \"ddns-send-updates\": true,\n"
" \"id\": 300,\n"
" \"match-client-id\": true,\n"
" \"next-server\": \"0.0.0.0\",\n"