diff options
author | Thomas Markwalder <tmark@isc.org> | 2023-03-21 16:53:32 +0100 |
---|---|---|
committer | Thomas Markwalder <tmark@isc.org> | 2023-03-24 17:50:00 +0100 |
commit | 904f4d26112b4cff5651691151f5349e7cab723b (patch) | |
tree | 8294b560c07b3d7e8b4895d684b0bd082ec89d65 | |
parent | [#2748] Update release checklist (diff) | |
download | kea-904f4d26112b4cff5651691151f5349e7cab723b.tar.xz kea-904f4d26112b4cff5651691151f5349e7cab723b.zip |
[#225] Added ddsn-ttl-percent parameter
kea-dhcp4/6 both now support ddns-ttl-percent
at the global, shared-network, and subnet scopes.
If specified it is the percentage of the lease
lifetime to send to D2.
Not yet supported by CB.
modified:
doc/examples/kea4/all-keys.json
doc/examples/kea6/all-keys.json
src/bin/dhcp4/dhcp4_lexer.cc
src/bin/dhcp4/dhcp4_lexer.ll
src/bin/dhcp4/dhcp4_parser.cc
src/bin/dhcp4/dhcp4_parser.h
src/bin/dhcp4/dhcp4_parser.yy
src/bin/dhcp4/json_config_parser.cc
src/bin/dhcp4/location.hh
src/bin/dhcp6/dhcp6_lexer.cc
src/bin/dhcp6/dhcp6_lexer.ll
src/bin/dhcp6/dhcp6_parser.cc
src/bin/dhcp6/dhcp6_parser.h
src/bin/dhcp6/dhcp6_parser.yy
src/bin/dhcp6/dhcp6_srv.cc
src/bin/dhcp6/json_config_parser.cc
src/bin/dhcp6/location.hh
src/bin/dhcp6/tests/fqdn_unittest.cc
src/lib/dhcpsrv/cfg_globals.cc
src/lib/dhcpsrv/cfg_globals.h
src/lib/dhcpsrv/dhcpsrv_messages.cc
src/lib/dhcpsrv/dhcpsrv_messages.h
src/lib/dhcpsrv/dhcpsrv_messages.mes
src/lib/dhcpsrv/ncr_generator.cc
src/lib/dhcpsrv/ncr_generator.h
src/lib/dhcpsrv/network.cc
src/lib/dhcpsrv/network.h
src/lib/dhcpsrv/parsers/base_network_parser.cc
src/lib/dhcpsrv/parsers/base_network_parser.h
src/lib/dhcpsrv/parsers/simple_parser4.cc
src/lib/dhcpsrv/parsers/simple_parser6.cc
src/lib/dhcpsrv/srv_config.cc
src/lib/dhcpsrv/srv_config.h
src/lib/dhcpsrv/tests/ncr_generator_unittest.cc
src/lib/dhcpsrv/tests/network_unittest.cc
src/lib/dhcpsrv/tests/srv_config_unittest.cc
36 files changed, 9212 insertions, 7374 deletions
diff --git a/doc/examples/kea4/all-keys.json b/doc/examples/kea4/all-keys.json index 005438ecb0..6d6375893e 100644 --- a/doc/examples/kea4/all-keys.json +++ b/doc/examples/kea4/all-keys.json @@ -214,6 +214,10 @@ // It may be specified at the global, shared-network and subnet levels. "ddns-use-conflict-resolution": true, + // When greater than 0.0, it is the percent of the lease's lifetime + // to use for the DNS TTL. + "ddns-ttl-percent": 0.75, + // Time in seconds specifying how long a declined lease should be // excluded from DHCP assignments. The default value is 24 hours. "decline-probation-period": 86400, @@ -772,6 +776,9 @@ "ddns-use-conflict-resolution": true, // Shared network level value. See description at the global level. + "ddns-ttl-percent": 0.75, + + // Shared network level value. See description at the global level. "hostname-char-replacement": "x", // Shared network level value. See description at the global level. @@ -911,6 +918,9 @@ "ddns-use-conflict-resolution": true, // Subnet level value. See description at the global level. + "ddns-ttl-percent": 0.75, + + // Subnet level value. See description at the global level. "hostname-char-replacement": "x", // Subnet level value. See description at the global level. diff --git a/doc/examples/kea6/all-keys.json b/doc/examples/kea6/all-keys.json index 74c7a60f8c..83c2449f7c 100644 --- a/doc/examples/kea6/all-keys.json +++ b/doc/examples/kea6/all-keys.json @@ -164,6 +164,10 @@ // It may be specified at the global, shared-network and subnet levels. "ddns-use-conflict-resolution": true, + // When greater than 0.0, it is the percent of the lease's lifetime + // to use for the DNS TTL. + "ddns-ttl-percent": 0.75, + // Time in seconds specifying how long a declined lease should be // excluded from DHCP assignments. The default value is 24 hours. "decline-probation-period": 86400, @@ -713,6 +717,9 @@ "ddns-use-conflict-resolution": true, // Shared network level value. See description at the global level. + "ddns-ttl-percent": 0.65, + + // Shared network level value. See description at the global level. "hostname-char-replacement": "x", // Shared network level value. See description at the global level. @@ -844,6 +851,9 @@ "ddns-use-conflict-resolution": true, // Subnet level value. See description at the global level. + "ddns-ttl-percent": 0.55, + + // Subnet level value. See description at the global level. "hostname-char-replacement": "x", // Subnet level value. See description at the global level. diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc index 8790fb9373..f0551d7c5d 100644 --- a/src/bin/dhcp4/dhcp4_lexer.cc +++ b/src/bin/dhcp4/dhcp4_lexer.cc @@ -1,6 +1,6 @@ -#line 1 "dhcp4_lexer.cc" +#line 2 "dhcp4_lexer.cc" -#line 3 "dhcp4_lexer.cc" +#line 4 "dhcp4_lexer.cc" #define YY_INT_ALIGNED short int @@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 225 -#define YY_END_OF_BUFFER 226 +#define YY_NUM_RULES 226 +#define YY_END_OF_BUFFER 227 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -700,21 +700,21 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[2227] = +static const flex_int16_t yy_accept[2239] = { 0, - 218, 218, 0, 0, 0, 0, 0, 0, 0, 0, - 226, 224, 10, 11, 224, 1, 218, 215, 218, 218, - 224, 217, 216, 224, 224, 224, 224, 224, 211, 212, - 224, 224, 224, 213, 214, 5, 5, 5, 224, 224, - 224, 10, 11, 0, 0, 206, 0, 0, 0, 0, + 219, 219, 0, 0, 0, 0, 0, 0, 0, 0, + 227, 225, 10, 11, 225, 1, 219, 216, 219, 219, + 225, 218, 217, 225, 225, 225, 225, 225, 212, 213, + 225, 225, 225, 214, 215, 5, 5, 5, 225, 225, + 225, 10, 11, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 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, 218, - 218, 0, 217, 218, 3, 2, 6, 0, 218, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 219, + 219, 0, 218, 219, 3, 2, 6, 0, 219, 0, 0, 0, 0, 0, 0, 4, 0, 0, 9, 0, - 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 209, 0, 0, 0, 0, 0, 0, + 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -724,11 +724,11 @@ static const flex_int16_t yy_accept[2227] = 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, 208, 210, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -736,9 +736,9 @@ static const flex_int16_t yy_accept[2227] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, - 221, 0, 220, 219, 0, 0, 0, 0, 0, 0, - 0, 180, 0, 179, 0, 0, 100, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, + 222, 0, 221, 220, 0, 0, 0, 0, 0, 0, + 0, 181, 0, 180, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -746,207 +746,208 @@ static const flex_int16_t yy_accept[2227] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 19, 0, 0, 0, 0, 0, 222, 219, 0, - 0, 0, 0, 0, 0, 181, 0, 183, 0, 0, + 0, 19, 0, 0, 0, 0, 0, 223, 220, 0, + 0, 0, 0, 0, 0, 182, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 104, 0, 0, 0, 0, 0, 0, 85, - 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, + 0, 0, 105, 0, 0, 0, 0, 0, 0, 86, + 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 89, 0, 42, 0, 0, 0, + 0, 0, 0, 0, 90, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 35, 0, 0, 39, 0, 0, 0, 0, - 0, 0, 0, 12, 185, 184, 0, 0, 0, 0, - 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 12, 186, 185, 0, 0, 0, 0, + 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, - 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, + 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, + 0, 118, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 143, 111, - 0, 0, 0, 0, 0, 0, 116, 36, 0, 0, - 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 118, 43, 0, 0, + 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 144, 112, 0, 0, 0, 0, 0, 0, 117, + 36, 0, 0, 0, 0, 0, 0, 0, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, + 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 163, 0, 0, 0, 0, 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, 132, 0, 0, 0, 0, 0, 0, - 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, + 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 0, 0, 0, 0, 0, 34, 0, 0, 0, + 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, - 0, 0, 0, 0, 57, 0, 0, 0, 129, 0, + 0, 68, 0, 0, 0, 0, 0, 0, 57, 0, + 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 163, 0, 0, 0, 0, + 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 93, 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, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 168, 0, 0, 0, 166, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 169, 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 130, 0, 0, 0, 0, 0, 0, 0, 134, - 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, + 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, + 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, + 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, - 0, 23, 0, 139, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 0, - 87, 0, 0, 0, 0, 82, 0, 0, 0, 0, - 0, 0, 142, 0, 38, 0, 161, 0, 0, 0, + 0, 0, 0, 0, 129, 0, 0, 23, 0, 140, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 173, 0, 88, 0, 0, 0, + 0, 83, 0, 0, 0, 0, 0, 0, 143, 0, + 38, 0, 162, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, + 0, 0, 0, 0, 0, 0, 108, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, - 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, - 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 194, 0, 0, 83, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 169, 0, 0, - 167, 0, 0, 158, 157, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 0, 0, 0, 0, 0, 182, + 195, 0, 0, 84, 99, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, + 0, 0, 0, 0, 170, 0, 0, 168, 0, 0, + 159, 158, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 151, 0, 0, 0, 160, 0, 0, + 22, 0, 0, 0, 0, 0, 183, 0, 0, 0, + 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 140, 0, 15, 0, 0, 44, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 46, 64, 0, - 0, 135, 0, 0, 0, 126, 0, 0, 0, 0, + 0, 152, 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 0, 90, 0, 0, 188, 0, 0, 193, 0, - - 110, 0, 0, 0, 200, 0, 0, 0, 0, 0, + 141, 0, 15, 0, 0, 44, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 46, 64, 0, 0, 136, + 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, + + 91, 0, 0, 189, 0, 0, 194, 0, 111, 0, + 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, - 0, 0, 47, 0, 0, 196, 0, 0, 120, 31, - 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, + 0, 47, 0, 0, 197, 0, 0, 121, 31, 0, - 0, 0, 0, 0, 0, 0, 191, 0, 164, 0, + 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 192, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, - 0, 0, 0, 0, 0, 28, 0, 0, 170, 0, - 0, 0, 55, 0, 0, 0, 205, 0, 0, 112, + 0, 0, 0, 0, 0, 28, 0, 0, 171, 0, + 0, 0, 55, 0, 0, 0, 206, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 60, 0, 0, 109, + 0, 0, 0, 0, 0, 0, 60, 0, 0, 110, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 141, 0, 0, 0, 30, 0, 0, - 0, 0, 0, 192, 0, 0, 0, 0, 0, 152, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 21, 0, 0, 195, - 0, 81, 0, 51, 0, 0, 0, 0, 189, 187, - 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, - 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 149, 0, 0, 0, 125, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, - 0, 0, 52, 0, 0, 0, 0, 48, 154, 0, - - 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, + 0, 0, 0, 0, 142, 0, 0, 0, 30, 0, + 0, 0, 0, 0, 193, 0, 0, 0, 0, 0, + 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, + 196, 0, 82, 0, 51, 0, 0, 0, 0, 190, + 188, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 79, 0, 0, 0, 0, 17, 0, 0, 0, 0, + 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 150, 0, 0, 0, 126, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, + + 0, 0, 0, 0, 52, 0, 0, 0, 0, 48, + 155, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 177, 0, 0, 13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 0, 165, 0, 0, 0, + 0, 0, 0, 178, 0, 0, 13, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 156, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 148, 0, 62, 61, 20, - 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, + 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 149, 0, 62, + 61, 20, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, - 0, 54, 0, 67, 0, 49, 175, 0, 101, 0, - 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, - 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, - 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, - 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, + 0, 0, 0, 54, 0, 67, 0, 49, 176, 0, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 81, + 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, + 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, + 0, 0, 0, 0, 205, 0, 0, 0, 0, 0, - 0, 0, 33, 0, 0, 76, 0, 0, 0, 0, - 153, 0, 0, 0, 0, 0, 0, 198, 201, 174, - 0, 121, 102, 0, 0, 0, 0, 0, 0, 0, - 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 145, 0, 0, 0, 0, 0, 0, 150, - 0, 74, 0, 65, 0, 0, 0, 0, 0, 0, - 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, - 144, 0, 0, 178, 0, 203, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 73, 0, 0, 0, 0, 0, 27, + 0, 0, 0, 0, 33, 0, 0, 76, 0, 0, + 0, 0, 154, 0, 0, 0, 0, 0, 0, 199, + 202, 175, 0, 122, 103, 0, 0, 0, 0, 0, + 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, + 0, 151, 0, 74, 0, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, + 0, 0, 145, 0, 0, 179, 0, 204, 200, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 78, 0, 0, 105, 0, 0, - 70, 0, 0, 0, 202, 0, 0, 0, 0, 0, - 69, 0, 146, 26, 197, 0 + 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, + 0, 27, 25, 0, 0, 0, 78, 0, 0, 106, + 0, 0, 70, 0, 0, 0, 203, 0, 0, 0, + 0, 0, 69, 0, 147, 26, 198, 0 } ; static const YY_CHAR yy_ec[256] = @@ -993,285 +994,286 @@ static const YY_CHAR yy_meta[74] = 1, 1, 1 } ; -static const flex_int16_t yy_base[2235] = +static const flex_int16_t yy_base[2247] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 2617, 2618, 34, 2613, 145, 0, 207, 2618, 214, 221, - 13, 228, 2618, 2593, 118, 25, 2, 6, 2618, 2618, - 73, 11, 17, 2618, 2618, 2618, 104, 2601, 2554, 0, - 2591, 108, 2608, 24, 262, 2618, 2550, 67, 2556, 84, - 75, 88, 224, 91, 89, 290, 220, 2548, 206, 285, - 236, 204, 197, 60, 291, 2557, 247, 308, 315, 214, - 286, 2540, 212, 320, 344, 318, 2559, 335, 0, 385, - 401, 415, 422, 427, 2618, 0, 2618, 441, 446, 236, - 314, 238, 326, 353, 309, 2618, 2556, 2597, 2618, 263, - - 2618, 440, 2584, 308, 2553, 364, 10, 329, 359, 384, - 391, 241, 2594, 0, 501, 408, 2536, 2533, 2537, 418, - 2533, 80, 2541, 422, 2527, 2528, 2533, 78, 2543, 2526, - 2535, 2525, 2534, 341, 343, 340, 2527, 2525, 410, 2573, - 2577, 2523, 2516, 2569, 2509, 174, 2530, 2530, 2524, 340, - 2517, 2515, 2516, 2508, 2513, 2507, 429, 2518, 412, 2503, - 2502, 2516, 425, 2502, 422, 447, 2496, 497, 436, 471, - 2517, 2514, 2515, 432, 2513, 2548, 2547, 450, 446, 2494, - 471, 2495, 478, 2487, 2504, 2496, 2498, 0, 477, 483, - 473, 496, 489, 515, 2494, 2618, 2539, 530, 2488, 499, - - 523, 530, 2542, 535, 2541, 532, 2540, 2618, 2618, 578, - 441, 543, 2499, 2491, 2478, 2489, 2493, 2494, 2474, 2485, - 2489, 2486, 2485, 475, 516, 2523, 2487, 2468, 2465, 2473, - 2468, 2482, 2478, 2469, 2465, 2477, 2477, 2465, 2467, 2470, - 2450, 2454, 2467, 2469, 2466, 2458, 2448, 2466, 2618, 2451, - 2460, 523, 2498, 2444, 2453, 2495, 2442, 2452, 2455, 510, - 2451, 2490, 2435, 2437, 2448, 2486, 557, 2431, 562, 2444, - 2424, 2439, 561, 2429, 2435, 527, 2426, 2424, 2424, 2430, - 2421, 2420, 2427, 2417, 2476, 2432, 2431, 2425, 530, 2432, - 2427, 2419, 2409, 2424, 2423, 2418, 2422, 2403, 2419, 2405, - - 2411, 2418, 2400, 536, 2405, 2402, 2401, 603, 2400, 2395, - 2409, 571, 2408, 2451, 2410, 560, 2401, 2389, 561, 2618, - 2618, 583, 2618, 2618, 2387, 566, 461, 2435, 586, 2445, - 580, 2618, 2444, 2618, 2438, 630, 2618, 2400, 590, 2377, - 2386, 2434, 2394, 2377, 2394, 2430, 2390, 2373, 2379, 2431, - 2386, 2389, 2380, 2383, 2369, 2380, 2424, 2418, 2376, 2373, - 621, 2379, 2419, 2354, 2412, 2365, 2360, 2354, 2356, 2359, - 2406, 2363, 2352, 2368, 2402, 2348, 628, 2362, 2347, 2346, - 2359, 2357, 2355, 2355, 2354, 2349, 2356, 2351, 2347, 599, - 2345, 2348, 2343, 2329, 2341, 2337, 2387, 589, 602, 2381, - - 2618, 2328, 2344, 2378, 2328, 2327, 2326, 2319, 2321, 2333, - 2324, 2331, 2312, 2329, 2324, 610, 2371, 2324, 2321, 2324, - 2618, 2323, 559, 2313, 2325, 600, 2300, 2301, 2322, 2313, - 2303, 2354, 2299, 2313, 614, 2299, 2311, 2310, 2309, 2304, - 2346, 2306, 2305, 2304, 2303, 2286, 2294, 2344, 2303, 2283, - 2341, 2618, 2283, 2282, 661, 2295, 2293, 2618, 2618, 2293, - 2282, 2274, 605, 2333, 2332, 2618, 2331, 2618, 639, 687, - 2290, 606, 2329, 2271, 2282, 2321, 2274, 2276, 2278, 2265, - 2273, 2261, 2618, 2266, 2259, 2271, 2274, 2261, 2260, 2618, - 631, 2262, 2259, 626, 2257, 2259, 2618, 2304, 2266, 2263, - - 2248, 2262, 2260, 2260, 2254, 678, 2261, 2249, 2242, 2293, - 2618, 2240, 2256, 2290, 2251, 2249, 2247, 2248, 2232, 2241, - 2283, 2234, 2233, 2228, 2227, 2278, 2222, 636, 2241, 2215, - 2222, 2227, 2237, 2271, 2275, 2618, 2220, 2216, 710, 2214, - 2266, 2222, 2221, 2215, 2222, 2206, 2206, 2216, 2204, 2218, - 2218, 2206, 2202, 2200, 2618, 2257, 2618, 2199, 2210, 2249, - 2194, 2193, 2198, 2207, 2201, 2195, 2204, 2246, 2240, 2202, - 2186, 2181, 2201, 2176, 2182, 589, 2196, 2189, 2193, 2176, - 2234, 2175, 2175, 2226, 2171, 2172, 2171, 2169, 2186, 2618, - 2182, 2219, 2618, 2170, 2168, 2618, 2179, 2215, 2214, 2174, - - 2158, 2175, 2215, 2618, 2618, 2618, 649, 664, 2155, 711, - 2618, 2165, 2164, 660, 2171, 2151, 2161, 2203, 2148, 2201, - 2146, 2156, 2198, 2143, 2150, 2143, 2155, 2137, 2137, 2152, - 2151, 659, 2150, 2149, 2149, 2131, 2136, 2177, 2144, 2141, - 2135, 2180, 2124, 2139, 2139, 2137, 2137, 2618, 2122, 2119, - 2177, 2132, 2124, 2130, 2121, 2129, 2114, 2165, 2129, 2111, - 2123, 2115, 530, 2106, 2105, 2099, 2104, 2119, 2116, 2117, - 2096, 2106, 2112, 2155, 2110, 2102, 2093, 2618, 2094, 2096, - 2091, 2104, 2096, 2095, 2100, 2139, 2138, 2089, 16, 2098, - 2135, 2080, 2133, 2080, 2083, 2076, 2618, 2090, 2069, 2073, - - 2087, 2082, 2078, 2123, 2075, 2082, 2120, 2618, 2065, 2079, - 2078, 2081, 2062, 2114, 2113, 2060, 2111, 2071, 2055, 2104, - 20, 2618, 188, 224, 239, 702, 324, 363, 377, 457, - 606, 572, 599, 585, 625, 649, 642, 2618, 674, 667, - 2618, 691, 702, 670, 667, 667, 682, 694, 688, 677, - 673, 687, 688, 735, 699, 742, 702, 706, 739, 740, - 700, 700, 710, 715, 701, 704, 715, 715, 699, 756, - 709, 719, 722, 760, 723, 716, 720, 717, 719, 766, - 767, 731, 775, 732, 734, 2618, 737, 732, 723, 738, - 743, 740, 742, 744, 743, 731, 745, 743, 751, 787, - - 749, 794, 795, 745, 737, 747, 795, 754, 803, 2618, - 804, 757, 759, 755, 749, 765, 753, 763, 812, 808, - 771, 760, 773, 2618, 763, 774, 763, 776, 766, 779, - 823, 824, 767, 778, 763, 786, 777, 766, 772, 827, - 791, 775, 787, 831, 832, 779, 834, 798, 793, 798, - 796, 840, 782, 794, 797, 801, 793, 790, 2618, 854, - 813, 814, 802, 816, 806, 809, 820, 805, 812, 818, - 819, 811, 825, 865, 841, 815, 829, 834, 831, 813, - 820, 834, 879, 836, 833, 834, 832, 841, 2618, 837, - 832, 847, 844, 830, 832, 851, 848, 836, 843, 844, - - 853, 857, 893, 856, 846, 844, 843, 854, 850, 906, - 853, 864, 849, 850, 856, 872, 868, 863, 910, 2618, - 874, 874, 867, 878, 876, 921, 863, 865, 877, 885, - 883, 870, 868, 930, 887, 873, 879, 877, 2618, 2618, - 887, 892, 897, 885, 895, 897, 2618, 2618, 898, 885, - 903, 890, 892, 885, 902, 2618, 891, 909, 896, 946, - 897, 949, 895, 899, 917, 958, 2618, 2618, 903, 907, - 906, 903, 919, 964, 917, 907, 908, 904, 917, 928, - 929, 924, 925, 927, 920, 922, 918, 924, 924, 926, - 941, 924, 983, 940, 945, 922, 945, 931, 930, 2618, - - 937, 938, 987, 988, 940, 953, 991, 949, 939, 954, - 948, 956, 943, 975, 983, 1005, 953, 948, 1003, 1004, - 966, 1006, 2618, 1012, 955, 971, 975, 1016, 966, 965, - 960, 961, 973, 968, 964, 967, 968, 978, 988, 1024, - 972, 990, 982, 977, 1035, 992, 993, 984, 2618, 998, - 987, 990, 998, 1000, 985, 997, 1002, 999, 997, 1044, - 1010, 994, 995, 2618, 1011, 1014, 997, 1014, 1009, 1058, - 1001, 1020, 2618, 1019, 1022, 1008, 1003, 1021, 1061, 1019, - 1015, 1012, 1065, 1066, 1028, 1014, 1032, 1032, 1032, 1033, - 1034, 1020, 1035, 1027, 1034, 1024, 1042, 1041, 1028, 1045, - - 2618, 1037, 1043, 1046, 1091, 1038, 2618, 1041, 1046, 1091, - 1042, 1054, 1048, 1049, 1047, 1049, 1059, 1104, 1048, 1049, - 1049, 1108, 1052, 1064, 1057, 2618, 1053, 1061, 1059, 1110, - 1053, 1074, 1060, 1061, 1062, 1063, 1069, 1077, 1068, 1073, - 1083, 1084, 1085, 1090, 1131, 1103, 1108, 2618, 1090, 1087, - 1083, 1097, 1080, 1080, 2618, 1081, 1141, 1084, 2618, 1095, - 1085, 1105, 1104, 1095, 1106, 1149, 1110, 1103, 1107, 1111, - 1094, 1111, 1102, 1157, 1104, 2618, 1154, 1103, 1106, 1124, - 1106, 1107, 1107, 1128, 1125, 1113, 1131, 1119, 1133, 1119, - 1127, 1136, 1116, 1131, 1138, 1180, 1126, 1177, 2618, 1183, - - 1184, 1126, 1136, 1146, 1130, 1150, 1138, 1134, 1141, 1150, - 1138, 1145, 1146, 1158, 1199, 1146, 1201, 1145, 1144, 1148, - 1165, 1206, 1156, 1155, 1161, 1159, 1157, 1152, 1213, 1164, - 1215, 1211, 1217, 2618, 1158, 1175, 1168, 1159, 1178, 1166, - 1176, 1177, 1173, 1186, 1187, 2618, 1171, 1167, 1173, 2618, - 1174, 1234, 1193, 1174, 1193, 1194, 1196, 1235, 1188, 1242, - 1243, 1196, 1201, 1195, 1193, 1204, 1203, 1187, 1192, 1198, - 1211, 2618, 1233, 1224, 1256, 1196, 1218, 1213, 1213, 1217, - 1262, 2618, 1205, 1205, 1208, 1225, 1220, 1224, 1219, 2618, - 1211, 1228, 1208, 1229, 1219, 1270, 1223, 2618, 1237, 1237, - - 1275, 1222, 1231, 1279, 1237, 1242, 1228, 1288, 1231, 1232, - 1246, 1244, 1236, 1242, 1238, 1256, 1257, 1258, 2618, 1294, - 1249, 2618, 1259, 2618, 1244, 1255, 1246, 1265, 1258, 1256, - 1249, 1261, 1305, 1269, 1258, 1265, 1266, 1272, 2618, 1265, - 2618, 1317, 1270, 1259, 1320, 2618, 1321, 1263, 1269, 1276, - 1320, 1282, 2618, 1283, 2618, 1270, 2618, 1270, 1273, 1287, - 1292, 1275, 1334, 1291, 1292, 1332, 1284, 1289, 1340, 1336, - 1289, 1343, 2618, 1294, 1291, 1346, 1347, 1304, 1305, 1307, - 2618, 2618, 1299, 1294, 1348, 1297, 1313, 1356, 1298, 1310, - 1299, 1316, 1331, 1362, 2618, 1319, 1312, 1321, 1312, 1323, - - 2618, 1368, 1305, 1316, 1331, 1367, 1319, 1330, 1331, 1332, - 1329, 1373, 1336, 1326, 1336, 1342, 1329, 1325, 1385, 1381, - 1339, 1383, 1391, 1348, 2618, 1334, 1350, 1341, 1344, 1353, - 1354, 1351, 1341, 1344, 1344, 1345, 1356, 1351, 1406, 1353, - 1408, 1351, 1356, 1411, 1408, 1349, 1364, 1357, 1360, 1373, - 1374, 1372, 1421, 2618, 1370, 1376, 2618, 2618, 1381, 1373, - 1383, 1368, 1424, 1371, 1371, 1432, 1433, 1377, 1387, 1436, - 2618, 1384, 1385, 1387, 1440, 1381, 1384, 2618, 1402, 1403, - 2618, 1403, 1391, 2618, 2618, 1404, 1387, 1407, 1408, 1394, - 1396, 1455, 1405, 2618, 1457, 1406, 1400, 1460, 1440, 2618, - - 1462, 1419, 1464, 1415, 1462, 2618, 1410, 1469, 1419, 1413, - 1410, 1413, 1415, 1432, 1471, 1424, 1436, 1439, 1427, 1430, - 1423, 1430, 1421, 2618, 1429, 1444, 1429, 2618, 1431, 1485, - 1433, 1487, 1449, 1449, 1452, 1452, 1449, 1493, 1455, 1456, - 1448, 1449, 2618, 1450, 2618, 1460, 1452, 2618, 1458, 1463, - 1464, 1461, 1505, 1453, 1468, 1469, 1461, 2618, 1471, 1459, - 1460, 1460, 1466, 1465, 1463, 1517, 1478, 2618, 2618, 1519, - 1466, 2618, 1467, 1468, 1474, 2618, 1483, 1477, 1532, 1479, - 1472, 1484, 1479, 1489, 1500, 1493, 1499, 1489, 1544, 1497, - 2618, 1506, 2618, 1503, 1548, 2618, 1501, 1524, 2618, 1551, - - 2618, 1509, 1494, 1554, 2618, 1555, 1512, 1517, 1499, 1559, - 1555, 1519, 1516, 1512, 1505, 1560, 1518, 1519, 1509, 1514, - 1526, 1571, 1526, 1574, 1524, 1571, 1536, 1536, 1532, 1576, - 1524, 1529, 1527, 1586, 1530, 1538, 1544, 1532, 1591, 1587, - 1550, 1594, 1555, 1544, 1538, 1598, 1540, 1541, 1555, 1602, - 1559, 1559, 1605, 1547, 1564, 1560, 1558, 1565, 1549, 1607, - 1608, 1609, 1572, 1565, 1564, 1564, 1559, 1577, 2618, 1568, - 1574, 1579, 1566, 1567, 1566, 1568, 1623, 1569, 2618, 1565, - 1583, 1632, 2618, 1590, 1603, 2618, 1635, 1588, 2618, 2618, - 1579, 1590, 1639, 2618, 1585, 1590, 1588, 1638, 1597, 1602, - - 1590, 1606, 1595, 1593, 1607, 1594, 2618, 1596, 2618, 1614, - 1600, 1609, 1652, 1595, 1600, 1660, 1608, 1619, 1620, 2618, - 1665, 1605, 1662, 1620, 1664, 2618, 1615, 1671, 2618, 1614, - 1629, 1617, 2618, 1627, 1628, 1677, 2618, 1635, 1639, 2618, - 1675, 1641, 1617, 1635, 1636, 1645, 1627, 1634, 1646, 1645, - 1636, 1686, 1638, 1634, 1694, 1636, 1637, 1697, 1693, 1699, - 1649, 1701, 1654, 1644, 1660, 1653, 2618, 1706, 1707, 2618, - 1656, 1709, 1651, 2618, 1654, 1664, 1708, 1656, 1671, 1658, - 1673, 1659, 1666, 1666, 1721, 1678, 1679, 1666, 1668, 1682, - 1668, 1728, 1681, 2618, 1725, 1676, 1673, 2618, 1689, 1676, - - 1689, 1676, 1697, 2618, 1694, 1739, 1692, 1689, 1690, 2618, - 1743, 1702, 1685, 1687, 1703, 1696, 1686, 1702, 1703, 1712, - 1702, 1754, 1714, 1698, 1707, 1753, 2618, 1711, 1760, 2618, - 1709, 2618, 1703, 2618, 1710, 1764, 1765, 1762, 2618, 2618, - 1724, 2618, 1764, 1726, 1727, 1712, 1713, 1721, 1775, 1723, - 1772, 1773, 1728, 2618, 1723, 1741, 1723, 1729, 1742, 1737, - 2618, 1734, 1739, 1737, 1789, 1733, 1747, 1792, 1740, 1737, - 1737, 2618, 1752, 1753, 1754, 2618, 1755, 1745, 1757, 1802, - 1755, 1804, 1746, 1754, 1755, 1768, 2618, 1769, 1750, 1751, - 1758, 1760, 2618, 1774, 1771, 1811, 1772, 2618, 2618, 1776, - - 1761, 1761, 1776, 1769, 1768, 1779, 1766, 2618, 1782, 1770, - 1773, 1829, 1769, 1788, 1827, 1791, 1784, 1783, 1792, 1794, - 1798, 2618, 1834, 1789, 2618, 1793, 1784, 1843, 1786, 1845, - 1846, 1847, 1805, 1849, 2618, 1791, 2618, 1846, 1808, 1809, - 1796, 1804, 1815, 1802, 1813, 1799, 1797, 1805, 1804, 1809, - 1801, 1866, 1819, 1820, 1810, 1827, 1826, 1867, 1811, 1830, - 1831, 2618, 1836, 1829, 1868, 1835, 1822, 1837, 1882, 1839, - 1842, 1837, 1842, 1831, 1840, 2618, 1889, 2618, 2618, 2618, - 1850, 2618, 1891, 1833, 1893, 1894, 1837, 1896, 1844, 1893, - 1894, 1856, 1896, 1842, 1846, 1864, 1905, 1864, 2618, 1855, - - 1845, 1904, 1870, 1863, 1859, 1913, 1856, 1858, 1857, 1864, - 1907, 1861, 1920, 1864, 2618, 1869, 1879, 1881, 1883, 1866, - 1874, 2618, 1869, 2618, 1881, 2618, 2618, 1886, 2618, 1887, - 1887, 1878, 1934, 1878, 1888, 1873, 1886, 2618, 1888, 1896, - 1941, 1882, 1884, 1881, 1905, 2618, 1892, 1899, 1900, 1903, - 1950, 1893, 2618, 1947, 1894, 1902, 1911, 1897, 1913, 1912, - 1915, 1908, 1903, 1903, 1915, 1910, 2618, 1921, 1909, 1962, - 1913, 1925, 1970, 2618, 1916, 1928, 1973, 1922, 1924, 1922, - 1923, 1978, 2618, 1931, 1918, 1933, 1938, 1930, 1936, 1985, - 1986, 1987, 1944, 1989, 1990, 1934, 1938, 1934, 1950, 1933, - - 1945, 1939, 2618, 1955, 1999, 2618, 1956, 1941, 1959, 1950, - 2618, 1951, 1965, 1961, 1954, 1949, 1955, 2618, 2618, 2618, - 2010, 2618, 2618, 1953, 1961, 1956, 2009, 1975, 1972, 2017, - 1978, 2618, 2019, 1961, 2021, 1964, 1977, 1976, 1977, 1967, - 1979, 1975, 2618, 1970, 2030, 1983, 1992, 1985, 2029, 2618, - 1976, 2618, 1988, 2618, 2032, 2038, 1980, 1996, 2041, 1997, - 2043, 2044, 2618, 2001, 1995, 1988, 2008, 2005, 1997, 2001, - 2618, 2048, 1997, 2618, 2007, 2618, 2618, 1998, 2006, 2053, - 2013, 2006, 2061, 2009, 2009, 2005, 2007, 2022, 2067, 2068, - 2010, 2026, 2011, 2618, 2072, 2019, 2026, 2075, 2019, 2618, - - 2618, 2029, 2078, 2026, 2618, 2030, 2029, 2618, 2082, 2031, - 2618, 2025, 2025, 2042, 2618, 2043, 2088, 2034, 2090, 2091, - 2618, 2092, 2618, 2618, 2618, 2618, 2098, 2101, 2104, 2105, - 2107, 2110, 2113, 2116 + 2629, 2630, 34, 2625, 145, 0, 207, 2630, 214, 221, + 13, 228, 2630, 2605, 118, 25, 2, 6, 2630, 2630, + 73, 11, 17, 2630, 2630, 2630, 104, 2613, 2566, 0, + 2603, 108, 2620, 24, 262, 2630, 2562, 67, 2568, 84, + 75, 88, 224, 91, 89, 290, 220, 2560, 206, 285, + 236, 204, 197, 60, 291, 2569, 247, 308, 315, 214, + 286, 2552, 212, 320, 344, 318, 2571, 335, 0, 385, + 401, 415, 422, 427, 2630, 0, 2630, 441, 446, 236, + 314, 238, 326, 353, 309, 2630, 2568, 2609, 2630, 263, + + 2630, 440, 2596, 308, 2565, 364, 10, 329, 359, 384, + 391, 241, 2606, 0, 501, 408, 2548, 2545, 2549, 418, + 2545, 80, 2553, 422, 2539, 2540, 2545, 78, 2555, 2538, + 2547, 2537, 2546, 341, 343, 340, 2539, 2537, 410, 2585, + 2589, 2535, 2528, 2581, 2521, 174, 2542, 2542, 2536, 340, + 2529, 2527, 2528, 2520, 2525, 2519, 429, 2530, 412, 2515, + 2514, 2528, 425, 2514, 422, 447, 2508, 497, 436, 471, + 2529, 2526, 2527, 432, 2525, 2560, 2559, 450, 446, 2506, + 471, 2507, 478, 2499, 2516, 2508, 2510, 0, 477, 483, + 473, 496, 489, 515, 2506, 2630, 2551, 530, 2500, 499, + + 523, 530, 2554, 535, 2553, 532, 2552, 2630, 2630, 578, + 441, 543, 2511, 2503, 2490, 2501, 2505, 2506, 2486, 2497, + 2501, 2498, 2497, 475, 516, 2535, 2499, 2480, 2477, 2485, + 2480, 2494, 2490, 2481, 2477, 2489, 2489, 2477, 2479, 2482, + 2462, 2466, 2479, 2481, 2478, 2470, 2460, 2478, 2630, 2463, + 2472, 523, 2510, 2456, 2465, 2507, 2454, 2464, 2467, 510, + 2463, 2502, 2447, 2449, 2460, 2498, 557, 2443, 562, 2456, + 2436, 2451, 561, 2441, 2447, 527, 2438, 2436, 2436, 2442, + 2433, 2432, 2439, 2429, 2488, 2444, 2443, 2437, 530, 2444, + 2439, 2431, 2421, 2436, 2435, 2430, 2434, 2415, 2431, 2417, + + 2423, 2430, 2412, 536, 2417, 2414, 2413, 603, 2412, 2407, + 2421, 571, 2420, 2463, 2422, 560, 2413, 2401, 561, 2630, + 2630, 583, 2630, 2630, 2399, 566, 461, 2447, 586, 2457, + 580, 2630, 2456, 2630, 2450, 630, 2630, 2412, 590, 2389, + 2398, 2446, 2406, 2389, 2406, 2442, 2402, 2385, 2391, 2443, + 2398, 2401, 2392, 2395, 2381, 2392, 2436, 2430, 2388, 2385, + 621, 2391, 2431, 2366, 2424, 2377, 2372, 2366, 2368, 2371, + 2418, 2375, 2364, 2380, 2414, 2360, 628, 2374, 2359, 2358, + 2371, 2369, 2367, 2367, 2366, 2361, 2368, 2363, 2359, 599, + 2357, 2360, 2355, 2341, 2353, 2349, 2399, 589, 602, 2393, + + 2630, 2340, 2356, 2390, 2340, 2339, 2338, 2331, 2333, 2345, + 2336, 2343, 2324, 2341, 2336, 610, 2383, 2336, 2333, 2336, + 2630, 2335, 559, 2325, 2337, 600, 2312, 2313, 2334, 2325, + 2315, 2366, 2311, 2325, 614, 2311, 2323, 2322, 2321, 2316, + 2358, 2318, 2317, 2316, 2315, 2298, 2306, 2356, 2315, 2295, + 2353, 2630, 2295, 2294, 661, 2307, 2305, 2630, 2630, 2305, + 2294, 2286, 605, 2345, 2344, 2630, 2343, 2630, 639, 687, + 2302, 606, 2341, 2283, 2294, 2333, 2286, 2288, 2290, 2277, + 2285, 2273, 2630, 2278, 2271, 2283, 2286, 2273, 2272, 2630, + 631, 2274, 2271, 626, 2269, 2271, 2630, 2316, 2278, 2275, + + 2260, 2274, 2272, 2272, 2266, 678, 2273, 2261, 2254, 2305, + 2630, 2252, 2268, 2302, 2263, 2261, 2259, 2260, 2244, 2253, + 2295, 2246, 2245, 2240, 2239, 2290, 2234, 649, 2253, 2227, + 2234, 2239, 2249, 2283, 2287, 2630, 2232, 2228, 710, 2226, + 2278, 2234, 2233, 2227, 2234, 2218, 2218, 2228, 2216, 2230, + 2230, 2218, 2214, 2212, 2630, 2269, 2630, 2211, 2222, 2261, + 2206, 2205, 2210, 2219, 2213, 2207, 2216, 2258, 2252, 2214, + 2198, 2193, 2213, 2188, 2194, 589, 2208, 2201, 2205, 2188, + 2246, 2187, 2187, 2238, 2183, 2184, 2183, 2181, 2198, 2630, + 2194, 2231, 2630, 2182, 2180, 2630, 2191, 2227, 2226, 2186, + + 2170, 2187, 2227, 2630, 2630, 2630, 684, 683, 2167, 713, + 2630, 2177, 2176, 662, 2183, 2163, 2173, 2215, 2160, 2213, + 2158, 2168, 2210, 2155, 2162, 2155, 2167, 2149, 2149, 2164, + 2163, 2147, 621, 2161, 2160, 2160, 2142, 2147, 2188, 2155, + 2152, 2146, 2191, 2135, 2150, 2150, 2148, 2148, 2630, 2133, + 2130, 2188, 2143, 2135, 2141, 2132, 2140, 2125, 2176, 2140, + 2122, 2134, 2126, 530, 2117, 2116, 2110, 2115, 2130, 2127, + 2128, 2107, 2117, 2123, 2166, 2121, 2113, 2104, 2630, 2105, + 2107, 2102, 2115, 2107, 2106, 2111, 2150, 2149, 2100, 16, + 2109, 2146, 2091, 2144, 2091, 2094, 2087, 2630, 2101, 2080, + + 2084, 2098, 2093, 2089, 2134, 2086, 2093, 2131, 2630, 2076, + 2090, 2089, 2092, 2073, 2125, 2124, 2071, 2122, 2082, 2062, + 20, 242, 2630, 209, 239, 322, 722, 363, 379, 472, + 552, 607, 603, 601, 620, 646, 650, 643, 2630, 672, + 664, 2630, 688, 699, 669, 666, 666, 675, 694, 688, + 677, 673, 688, 690, 737, 702, 745, 705, 706, 747, + 748, 702, 702, 712, 717, 703, 706, 709, 718, 718, + 702, 759, 712, 722, 725, 763, 726, 719, 723, 720, + 722, 769, 770, 734, 778, 735, 737, 2630, 740, 735, + 726, 741, 746, 743, 745, 747, 746, 734, 748, 746, + + 754, 790, 752, 797, 798, 748, 740, 750, 798, 757, + 806, 2630, 807, 760, 762, 758, 752, 768, 756, 766, + 815, 811, 774, 763, 776, 2630, 766, 777, 766, 779, + 769, 782, 826, 827, 770, 781, 766, 789, 780, 769, + 775, 830, 794, 778, 790, 834, 835, 782, 837, 801, + 796, 801, 799, 843, 785, 797, 800, 804, 796, 793, + 2630, 857, 816, 817, 805, 819, 809, 812, 823, 808, + 815, 821, 822, 814, 828, 868, 844, 818, 832, 837, + 834, 816, 823, 837, 882, 839, 836, 837, 835, 844, + 2630, 840, 835, 850, 847, 833, 835, 854, 851, 839, + + 846, 847, 856, 895, 861, 898, 860, 850, 848, 847, + 858, 854, 910, 857, 868, 853, 854, 860, 876, 872, + 867, 914, 2630, 878, 878, 871, 882, 880, 925, 867, + 869, 881, 889, 887, 874, 872, 934, 891, 877, 883, + 881, 2630, 2630, 891, 896, 901, 889, 899, 901, 2630, + 2630, 902, 889, 907, 894, 896, 889, 906, 2630, 895, + 913, 900, 950, 901, 953, 899, 903, 921, 962, 2630, + 2630, 907, 911, 910, 907, 923, 968, 921, 911, 912, + 908, 921, 932, 933, 928, 929, 931, 924, 926, 922, + 928, 928, 930, 945, 928, 987, 944, 949, 926, 949, + + 935, 934, 2630, 941, 942, 991, 992, 944, 957, 995, + 953, 943, 958, 952, 960, 947, 979, 987, 1009, 957, + 952, 1007, 1008, 970, 1010, 2630, 1016, 959, 975, 979, + 1020, 970, 969, 964, 965, 977, 972, 968, 971, 972, + 982, 992, 1028, 980, 977, 995, 987, 982, 1040, 997, + 998, 989, 2630, 1003, 992, 995, 1003, 1005, 990, 1002, + 1007, 1004, 1002, 1049, 1015, 999, 1000, 2630, 1016, 1019, + 1002, 1019, 1014, 1063, 1006, 1025, 2630, 1024, 1027, 1013, + 1008, 1026, 1066, 1024, 1020, 1017, 1070, 1071, 1033, 1019, + 1037, 1037, 1037, 1038, 1039, 1025, 1040, 1032, 1039, 1029, + + 1047, 1046, 1033, 1050, 2630, 1042, 1048, 1051, 1096, 1043, + 2630, 1046, 1051, 1096, 1047, 1059, 1053, 1054, 1052, 1054, + 1064, 1109, 1053, 1054, 1054, 1113, 1057, 1069, 1062, 2630, + 1058, 1066, 1064, 1115, 1058, 1079, 1065, 1066, 1067, 1068, + 1074, 1082, 1073, 1078, 1088, 1089, 1090, 1095, 1136, 1108, + 1113, 2630, 1095, 1092, 1088, 1102, 1085, 1085, 2630, 1086, + 1146, 1089, 2630, 1100, 1090, 1110, 1109, 1100, 1111, 1154, + 1115, 1108, 1112, 1116, 1099, 1116, 1117, 1108, 1163, 1110, + 2630, 1162, 1109, 1112, 1130, 1112, 1113, 1113, 1134, 1131, + 1119, 1137, 1125, 1139, 1125, 1133, 1142, 1122, 1137, 1144, + + 1186, 1132, 1183, 2630, 1189, 1190, 1132, 1142, 1152, 1136, + 1156, 1144, 1140, 1147, 1156, 1144, 1151, 1152, 1164, 1205, + 1152, 1207, 1151, 1150, 1154, 1171, 1212, 1162, 1161, 1167, + 1165, 1163, 1158, 1219, 1170, 1221, 1217, 1223, 2630, 1164, + 1181, 1174, 1165, 1184, 1172, 1182, 1183, 1179, 1192, 1193, + 2630, 1177, 1173, 1179, 2630, 1180, 1240, 1199, 1180, 1199, + 1200, 1202, 1241, 1194, 1248, 1249, 1202, 1207, 1201, 1199, + 1210, 1209, 1193, 1198, 1204, 1217, 2630, 1239, 1230, 1262, + 1202, 1224, 1219, 1219, 1223, 1268, 2630, 1211, 1211, 1214, + 1231, 1226, 1230, 1225, 2630, 1217, 1234, 1214, 1235, 1225, + + 1224, 1277, 1231, 2630, 1244, 1244, 1282, 1229, 1239, 1286, + 1244, 1249, 1235, 1295, 1238, 1239, 1253, 1251, 1243, 1249, + 1245, 1263, 1264, 1265, 2630, 1301, 1256, 2630, 1266, 2630, + 1251, 1262, 1253, 1272, 1265, 1263, 1256, 1268, 1312, 1276, + 1265, 1272, 1273, 1279, 2630, 1272, 2630, 1324, 1277, 1266, + 1327, 2630, 1328, 1270, 1276, 1283, 1327, 1289, 2630, 1290, + 2630, 1277, 2630, 1277, 1280, 1294, 1299, 1282, 1341, 1298, + 1299, 1339, 1291, 1296, 1347, 1343, 1296, 1350, 2630, 1301, + 1298, 1353, 1354, 1311, 1312, 1314, 2630, 2630, 1306, 1301, + 1355, 1304, 1320, 1363, 1305, 1317, 1306, 1323, 1338, 1369, + + 2630, 1326, 1319, 1328, 1319, 1330, 2630, 1375, 1312, 1323, + 1338, 1374, 1326, 1337, 1338, 1339, 1336, 1380, 1343, 1345, + 1334, 1344, 1350, 1337, 1333, 1393, 1389, 1347, 1393, 1399, + 1356, 2630, 1342, 1358, 1349, 1352, 1361, 1362, 1359, 1349, + 1352, 1352, 1353, 1364, 1359, 1414, 1361, 1416, 1359, 1364, + 1420, 1416, 1357, 1372, 1365, 1368, 1381, 1382, 1380, 1429, + 2630, 1378, 1384, 2630, 2630, 1389, 1381, 1391, 1376, 1432, + 1379, 1379, 1440, 1441, 1385, 1395, 1444, 2630, 1392, 1393, + 1395, 1448, 1389, 1392, 2630, 1410, 1411, 2630, 1411, 1399, + 2630, 2630, 1412, 1395, 1415, 1416, 1402, 1404, 1463, 1413, + + 2630, 1465, 1414, 1408, 1468, 1448, 2630, 1470, 1427, 1472, + 1423, 1470, 2630, 1418, 1477, 1427, 1421, 1418, 1421, 1423, + 1440, 1479, 1432, 1444, 1447, 1444, 1436, 1439, 1432, 1440, + 1430, 2630, 1438, 1453, 1438, 2630, 1440, 1494, 1442, 1496, + 1458, 1458, 1461, 1461, 1458, 1502, 1464, 1465, 1457, 1458, + 2630, 1459, 2630, 1469, 1461, 2630, 1467, 1472, 1473, 1470, + 1514, 1462, 1477, 1478, 1470, 2630, 1480, 1468, 1469, 1469, + 1475, 1474, 1472, 1526, 1487, 2630, 2630, 1528, 1475, 2630, + 1476, 1477, 1483, 2630, 1492, 1486, 1541, 1488, 1481, 1493, + 1488, 1498, 1509, 1502, 1508, 1498, 1553, 1506, 2630, 1515, + + 2630, 1512, 1557, 2630, 1510, 1533, 2630, 1560, 2630, 1518, + 1503, 1563, 2630, 1564, 1521, 1526, 1508, 1568, 1564, 1528, + 1525, 1521, 1514, 1521, 1570, 1528, 1529, 1519, 1524, 1536, + 1582, 1536, 1584, 1534, 1582, 1546, 1546, 1542, 1586, 1534, + 1539, 1537, 1596, 1540, 1548, 1554, 1542, 1601, 1597, 1560, + 1604, 1565, 1554, 1548, 1608, 1550, 1551, 1565, 1612, 1569, + 1569, 1615, 1557, 1574, 1570, 1568, 1575, 1559, 1617, 1618, + 1619, 1582, 1575, 1574, 1574, 1569, 1587, 2630, 1578, 1584, + 1589, 1576, 1577, 1576, 1578, 1633, 1579, 2630, 1575, 1593, + 1642, 2630, 1600, 1613, 2630, 1645, 1598, 2630, 2630, 1589, + + 1600, 1649, 2630, 1595, 1600, 1598, 1648, 1607, 1612, 1598, + 1601, 1617, 1606, 1604, 1618, 1605, 2630, 1607, 2630, 1625, + 1611, 1620, 1663, 1606, 1611, 1671, 1620, 1630, 1631, 2630, + 1676, 1616, 1673, 1631, 1675, 2630, 1626, 1682, 2630, 1625, + 1640, 1628, 2630, 1638, 1639, 1688, 2630, 1646, 1650, 2630, + 1686, 1652, 1628, 1646, 1647, 1656, 1638, 1645, 1657, 1656, + 1647, 1697, 1649, 1645, 1705, 1647, 1648, 1708, 1704, 1710, + 1660, 1712, 1665, 1655, 1671, 1664, 2630, 1717, 1718, 2630, + 1667, 1720, 1662, 2630, 1665, 1675, 1719, 1667, 1682, 1669, + 1728, 1685, 1671, 1678, 1678, 1733, 1690, 1691, 1678, 1680, + + 1694, 1680, 1740, 1693, 2630, 1737, 1688, 1685, 2630, 1701, + 1688, 1701, 1688, 1709, 2630, 1706, 1751, 1704, 1701, 1702, + 2630, 1755, 1714, 1697, 1699, 1715, 1708, 1698, 1714, 1715, + 1724, 1714, 1766, 1726, 1710, 1719, 1765, 2630, 1723, 1772, + 2630, 1721, 2630, 1715, 2630, 1722, 1776, 1777, 1774, 2630, + 2630, 1736, 2630, 1776, 1738, 1739, 1724, 1725, 1733, 1787, + 2630, 1735, 1784, 1785, 1740, 2630, 1735, 1753, 1735, 1741, + 1754, 1749, 2630, 1746, 1751, 1749, 1801, 1745, 1759, 1804, + 1752, 1749, 1749, 2630, 1764, 1765, 1766, 2630, 1767, 1757, + 1769, 1814, 1767, 1816, 1758, 1766, 1767, 1780, 2630, 1781, + + 1762, 1763, 1770, 1772, 2630, 1786, 1783, 1823, 1784, 2630, + 2630, 1788, 1773, 1773, 1788, 1781, 1780, 1791, 1778, 2630, + 1794, 1782, 1785, 1841, 1781, 1800, 1839, 1803, 1796, 1795, + 1804, 1806, 1810, 2630, 1846, 1801, 2630, 1805, 1796, 1855, + 1798, 1857, 1858, 1859, 1817, 1861, 2630, 1803, 2630, 1858, + 1820, 1821, 1808, 1816, 1827, 1814, 1825, 1811, 1809, 1817, + 1816, 1821, 1813, 1878, 1831, 1832, 1822, 1839, 1838, 1879, + 1823, 1842, 1843, 2630, 1848, 1841, 1880, 1847, 1834, 1849, + 1894, 1851, 1854, 1849, 1854, 1843, 1852, 2630, 1901, 2630, + 2630, 2630, 1862, 2630, 1903, 1845, 1905, 1906, 1849, 1908, + + 1856, 1905, 1906, 1868, 1908, 1854, 1858, 1876, 1917, 1876, + 2630, 1867, 1857, 1916, 1882, 1875, 1871, 1925, 1868, 1870, + 1869, 1876, 1919, 1873, 1932, 1876, 2630, 1881, 1891, 1893, + 1895, 1878, 1886, 2630, 1881, 2630, 1893, 2630, 2630, 1898, + 2630, 1899, 1899, 1890, 1946, 1890, 1900, 1885, 1898, 2630, + 1900, 1908, 1953, 1894, 1896, 1893, 1917, 2630, 1904, 1911, + 1912, 1915, 1962, 1905, 2630, 1959, 1906, 1914, 1923, 1909, + 1925, 1924, 1927, 1920, 1915, 1915, 1927, 1922, 2630, 1933, + 1921, 1974, 1925, 1937, 1982, 2630, 1928, 1940, 1985, 1934, + 1936, 1934, 1935, 1990, 2630, 1943, 1930, 1945, 1950, 1942, + + 1948, 1997, 1998, 1999, 1956, 2001, 2002, 1946, 1950, 1946, + 1962, 1945, 1957, 1951, 2630, 1967, 2011, 2630, 1968, 1953, + 1971, 1962, 2630, 1963, 1977, 1973, 1966, 1961, 1967, 2630, + 2630, 2630, 2022, 2630, 2630, 1965, 1973, 1968, 2021, 1987, + 1984, 2029, 1990, 2630, 2031, 1973, 2033, 1976, 1989, 1988, + 1989, 1979, 1991, 1987, 2630, 1982, 2042, 1995, 2004, 1997, + 2041, 2630, 1988, 2630, 2000, 2630, 2044, 2050, 1992, 2008, + 2053, 2009, 2055, 2056, 2630, 2013, 2007, 2000, 2020, 2017, + 2009, 2013, 2630, 2060, 2009, 2630, 2019, 2630, 2630, 2010, + 2018, 2065, 2025, 2018, 2073, 2021, 2021, 2017, 2019, 2034, + + 2079, 2080, 2022, 2038, 2023, 2630, 2084, 2031, 2038, 2087, + 2031, 2630, 2630, 2041, 2090, 2038, 2630, 2042, 2041, 2630, + 2094, 2043, 2630, 2037, 2037, 2054, 2630, 2055, 2100, 2046, + 2102, 2103, 2630, 2104, 2630, 2630, 2630, 2630, 2110, 2113, + 2116, 2117, 2119, 2122, 2125, 2128 } ; -static const flex_int16_t yy_def[2235] = +static const flex_int16_t yy_def[2247] = { 0, - 2227, 2227, 2228, 2228, 2227, 2227, 2227, 2227, 2227, 2227, - 2226, 2226, 2226, 2226, 2226, 2229, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2230, - 2226, 2226, 2226, 2231, 15, 2226, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2232, 45, 45, 45, 45, + 2239, 2239, 2240, 2240, 2239, 2239, 2239, 2239, 2239, 2239, + 2238, 2238, 2238, 2238, 2238, 2241, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2242, + 2238, 2238, 2238, 2243, 15, 2238, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2244, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2229, 2226, - 2226, 2226, 2226, 2226, 2226, 2233, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2230, 2226, 2231, + 45, 45, 45, 45, 45, 45, 45, 45, 2241, 2238, + 2238, 2238, 2238, 2238, 2238, 2245, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2242, 2238, 2243, - 2226, 2226, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2234, 45, 2232, 45, 45, 45, 45, 45, + 2238, 2238, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2246, 45, 2244, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2233, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2245, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2234, 2226, 2226, 115, + 45, 45, 45, 45, 45, 45, 2246, 2238, 2238, 115, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -1279,9 +1281,9 @@ static const flex_int16_t yy_def[2235] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 45, 45, 45, 45, 45, - 45, 2226, 45, 2226, 45, 115, 2226, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 45, 45, 45, 45, 45, + 45, 2238, 45, 2238, 45, 115, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -1289,219 +1291,220 @@ static const flex_int16_t yy_def[2235] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2226, 45, 45, 45, 45, 45, 2226, 2226, 2226, - 45, 45, 45, 45, 45, 2226, 45, 2226, 45, 115, + 45, 2238, 45, 45, 45, 45, 45, 2238, 2238, 2238, + 45, 45, 45, 45, 45, 2238, 45, 2238, 45, 115, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2226, 45, 45, 45, 45, 45, 45, 2226, - 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, + 45, 45, 2238, 45, 45, 45, 45, 45, 45, 2238, + 45, 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2226, 45, 2226, 45, 45, 45, + 45, 45, 45, 45, 2238, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2226, - 45, 45, 2226, 45, 45, 2226, 45, 45, 45, 2226, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2238, + 45, 45, 2238, 45, 45, 2238, 45, 45, 45, 2238, - 45, 45, 45, 2226, 2226, 2226, 45, 45, 45, 45, - 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2238, 2238, 2238, 45, 45, 45, 45, + 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, - 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2238, 45, + 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, + 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2226, 2226, - 45, 45, 45, 45, 45, 45, 2226, 2226, 45, 45, - 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2226, 2226, 45, 45, + 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2238, 2238, 45, 45, 45, 45, 45, 45, 2238, + 2238, 45, 45, 45, 45, 45, 45, 45, 2238, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2238, + 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2226, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, - 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, + 45, 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2226, 45, 45, 45, 45, 45, 2226, 45, 45, 45, + 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, + 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, - 45, 45, 45, 45, 2226, 45, 45, 45, 2226, 45, + 45, 2238, 45, 45, 45, 45, 45, 45, 2238, 45, + 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, + 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, + 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2226, 45, 45, 45, 2226, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2238, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2226, 45, 45, 45, 45, 45, 45, 45, 2226, - 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, + 45, 45, 45, 45, 45, 45, 2238, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2238, 45, 45, 45, + 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, + 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2238, 45, 45, 2238, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, - 45, 2226, 45, 2226, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, - 2226, 45, 45, 45, 45, 2226, 45, 45, 45, 45, - 45, 45, 2226, 45, 2226, 45, 2226, 45, 45, 45, + 45, 45, 45, 45, 2238, 45, 2238, 45, 45, 45, + 45, 2238, 45, 45, 45, 45, 45, 45, 2238, 45, + 2238, 45, 2238, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2238, 45, + 45, 45, 45, 45, 45, 45, 2238, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, - 2226, 2226, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, - 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2238, 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2226, 45, 45, 2226, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2226, 45, 45, 45, 45, 45, 45, 2226, 45, 45, - 2226, 45, 45, 2226, 2226, 45, 45, 45, 45, 45, - 45, 45, 45, 2226, 45, 45, 45, 45, 45, 2226, + 2238, 45, 45, 2238, 2238, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, + 45, 45, 45, 45, 2238, 45, 45, 2238, 45, 45, + 2238, 2238, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, + 2238, 45, 45, 45, 45, 45, 2238, 45, 45, 45, + 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2226, 45, 45, 45, 2226, 45, 45, + 45, 2238, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2226, 45, 2226, 45, 45, 2226, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2226, 2226, 45, - 45, 2226, 45, 45, 45, 2226, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2226, 45, 2226, 45, 45, 2226, 45, 45, 2226, 45, - - 2226, 45, 45, 45, 2226, 45, 45, 45, 45, 45, + 2238, 45, 2238, 45, 45, 2238, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2238, 2238, 45, 45, 2238, + 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2238, 45, + + 2238, 45, 45, 2238, 45, 45, 2238, 45, 2238, 45, + 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, - 45, 45, 2226, 45, 45, 2226, 45, 45, 2226, 2226, - 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 2226, 45, 2226, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2226, - 45, 45, 45, 45, 45, 2226, 45, 45, 2226, 45, - 45, 45, 2226, 45, 45, 45, 2226, 45, 45, 2226, + 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, + 45, 2238, 45, 45, 2238, 45, 45, 2238, 2238, 45, + + 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2238, 45, 2238, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2238, + 45, 45, 45, 45, 45, 2238, 45, 45, 2238, 45, + 45, 45, 2238, 45, 45, 45, 2238, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2226, 45, 45, 2226, - 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2238, 45, 45, 2238, + 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2226, 45, 45, 45, 2226, 45, 45, - 45, 45, 45, 2226, 45, 45, 45, 45, 45, 2226, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2226, 45, 45, 2226, - 45, 2226, 45, 2226, 45, 45, 45, 45, 2226, 2226, - 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, - 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2226, 45, 45, 45, 2226, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, - 45, 45, 2226, 45, 45, 45, 45, 2226, 2226, 45, - - 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, + 45, 45, 45, 45, 2238, 45, 45, 45, 2238, 45, + 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, + 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, + 2238, 45, 2238, 45, 2238, 45, 45, 45, 45, 2238, + 2238, 45, 2238, 45, 45, 45, 45, 45, 45, 45, + 2238, 45, 45, 45, 45, 2238, 45, 45, 45, 45, + 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2238, 45, 45, 45, 2238, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2238, 45, + + 45, 45, 45, 45, 2238, 45, 45, 45, 45, 2238, + 2238, 45, 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2226, 45, 45, 2226, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2226, 45, 2226, 45, 45, 45, + 45, 45, 45, 2238, 45, 45, 2238, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2238, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2226, 45, 2226, 2226, 2226, - 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2226, 45, + 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2238, 45, 2238, + 2238, 2238, 45, 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2226, 45, 45, 45, 45, 45, - 45, 2226, 45, 2226, 45, 2226, 2226, 45, 2226, 45, - 45, 45, 45, 45, 45, 45, 45, 2226, 45, 45, - 45, 45, 45, 45, 45, 2226, 45, 45, 45, 45, - 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2226, 45, 45, 45, - 45, 45, 45, 2226, 45, 45, 45, 45, 45, 45, - 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2238, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2238, 45, 45, 45, + 45, 45, 45, 2238, 45, 2238, 45, 2238, 2238, 45, + 2238, 45, 45, 45, 45, 45, 45, 45, 45, 2238, + 45, 45, 45, 45, 45, 45, 45, 2238, 45, 45, + 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2238, 45, + 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, + 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, - 45, 45, 2226, 45, 45, 2226, 45, 45, 45, 45, - 2226, 45, 45, 45, 45, 45, 45, 2226, 2226, 2226, - 45, 2226, 2226, 45, 45, 45, 45, 45, 45, 45, - 45, 2226, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2226, 45, 45, 45, 45, 45, 45, 2226, - 45, 2226, 45, 2226, 45, 45, 45, 45, 45, 45, - 45, 45, 2226, 45, 45, 45, 45, 45, 45, 45, - 2226, 45, 45, 2226, 45, 2226, 2226, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2226, 45, 45, 45, 45, 45, 2226, + 45, 45, 45, 45, 2238, 45, 45, 2238, 45, 45, + 45, 45, 2238, 45, 45, 45, 45, 45, 45, 2238, + 2238, 2238, 45, 2238, 2238, 45, 45, 45, 45, 45, + 45, 45, 45, 2238, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, + 45, 2238, 45, 2238, 45, 2238, 45, 45, 45, 45, + 45, 45, 45, 45, 2238, 45, 45, 45, 45, 45, + 45, 45, 2238, 45, 45, 2238, 45, 2238, 2238, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2226, 45, 45, 45, 2226, 45, 45, 2226, 45, 45, - 2226, 45, 45, 45, 2226, 45, 45, 45, 45, 45, - 2226, 45, 2226, 2226, 2226, 0, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226 + 45, 45, 45, 45, 45, 2238, 45, 45, 45, 45, + 45, 2238, 2238, 45, 45, 45, 2238, 45, 45, 2238, + 45, 45, 2238, 45, 45, 45, 2238, 45, 45, 45, + 45, 45, 2238, 45, 2238, 2238, 2238, 0, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238 } ; -static const flex_int16_t yy_nxt[2692] = +static const flex_int16_t yy_nxt[2704] = { 0, - 2226, 13, 14, 13, 2226, 15, 16, 2226, 17, 18, + 2238, 13, 14, 13, 2238, 15, 16, 2238, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 85, 824, 37, 14, 37, 86, 25, 26, 38, 101, - 855, 27, 37, 14, 37, 42, 28, 42, 38, 91, + 85, 826, 37, 14, 37, 86, 25, 26, 38, 101, + 856, 27, 37, 14, 37, 42, 28, 42, 38, 91, 92, 29, 201, 30, 13, 14, 13, 90, 91, 25, 31, 92, 13, 14, 13, 13, 14, 13, 32, 40, - 825, 13, 14, 13, 33, 40, 102, 91, 92, 201, + 827, 13, 14, 13, 33, 40, 102, 91, 92, 201, 90, 34, 35, 13, 14, 13, 94, 15, 16, 95, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 13, 14, 13, 90, 39, 104, 25, 26, @@ -1522,10 +1525,10 @@ static const flex_int16_t yy_nxt[2692] = 81, 81, 81, 81, 81, 80, 106, 83, 83, 83, 83, 83, 255, 82, 84, 84, 84, 84, 84, 80, 82, 83, 83, 83, 83, 83, 137, 82, 109, 106, - 104, 120, 856, 138, 82, 121, 82, 167, 110, 122, + 104, 120, 857, 138, 82, 121, 82, 167, 110, 122, 136, 168, 123, 82, 158, 124, 189, 206, 101, 125, - 82, 109, 159, 857, 160, 191, 116, 82, 45, 161, - 162, 132, 117, 133, 45, 118, 110, 45, 858, 45, + 82, 109, 159, 858, 160, 191, 116, 82, 45, 161, + 162, 132, 117, 133, 45, 118, 110, 45, 859, 45, 206, 45, 189, 45, 134, 114, 146, 147, 45, 45, 148, 45, 45, 191, 135, 102, 149, 45, 45, 45, @@ -1535,13 +1538,13 @@ static const flex_int16_t yy_nxt[2692] = 45, 108, 142, 111, 190, 165, 191, 198, 45, 143, 131, 144, 45, 150, 45, 115, 189, 151, 176, 177, 155, 152, 156, 112, 157, 169, 183, 202, 109, 170, - 190, 861, 171, 153, 194, 198, 184, 154, 110, 172, + 190, 860, 171, 153, 194, 198, 184, 154, 110, 172, 173, 185, 192, 190, 174, 175, 236, 112, 237, 241, 238, 178, 203, 179, 200, 202, 180, 187, 84, 84, 84, 84, 84, 239, 259, 242, 181, 240, 260, 193, - 862, 82, 80, 182, 81, 81, 81, 81, 81, 203, - 200, 204, 270, 88, 205, 88, 863, 82, 89, 89, + 863, 82, 80, 182, 81, 81, 81, 81, 81, 203, + 200, 204, 270, 88, 205, 88, 864, 82, 89, 89, 89, 89, 89, 80, 82, 83, 83, 83, 83, 83, 84, 84, 84, 84, 84, 100, 337, 198, 82, 204, 82, 205, 100, 82, 89, 89, 89, 89, 89, 89, @@ -1552,55 +1555,55 @@ static const flex_int16_t yy_nxt[2692] = 338, 463, 100, 309, 100, 100, 209, 286, 204, 310, 308, 205, 319, 320, 210, 210, 210, 210, 210, 320, - 390, 864, 321, 210, 210, 210, 210, 210, 210, 297, + 390, 865, 321, 210, 210, 210, 210, 210, 210, 297, 463, 319, 351, 298, 329, 352, 312, 299, 314, 320, 319, 321, 287, 288, 289, 323, 210, 210, 210, 210, 210, 210, 327, 290, 330, 291, 331, 292, 293, 322, 294, 333, 329, 335, 324, 327, 353, 401, 381, 562, - 454, 406, 411, 391, 354, 327, 392, 798, 799, 331, + 454, 406, 411, 391, 354, 327, 392, 800, 801, 331, 355, 330, 412, 331, 333, 382, 425, 458, 339, 426, - 335, 336, 336, 336, 336, 336, 441, 333, 442, 716, + 335, 336, 336, 336, 336, 336, 441, 333, 442, 717, 336, 336, 336, 336, 336, 336, 399, 407, 332, 458, - 458, 402, 465, 446, 467, 555, 865, 866, 563, 461, + 458, 402, 465, 446, 467, 555, 866, 867, 563, 461, 333, 408, 455, 336, 336, 336, 336, 336, 336, 462, 463, 494, 459, 511, 450, 465, 467, 495, 512, 537, - 603, 603, 467, 470, 470, 470, 470, 470, 867, 538, - 868, 717, 470, 470, 470, 470, 470, 470, 566, 472, + 603, 603, 467, 470, 470, 470, 470, 470, 868, 538, + 869, 718, 470, 470, 470, 470, 470, 470, 566, 472, 527, 528, 567, 576, 539, 529, 596, 577, 603, 610, - 607, 597, 608, 556, 635, 470, 470, 470, 470, 470, - 470, 742, 627, 648, 869, 670, 513, 636, 649, 637, - 628, 514, 629, 630, 631, 671, 632, 607, 743, 608, - - 45, 45, 45, 45, 45, 870, 871, 859, 742, 45, - 45, 45, 45, 45, 45, 606, 741, 748, 860, 767, - 681, 745, 768, 872, 749, 873, 743, 874, 875, 876, - 877, 878, 45, 45, 45, 45, 45, 45, 879, 880, - 881, 882, 883, 884, 885, 886, 887, 889, 890, 894, - 895, 875, 888, 891, 892, 874, 893, 896, 897, 898, + 607, 597, 608, 556, 636, 470, 470, 470, 470, 470, + 470, 769, 627, 649, 770, 870, 513, 637, 650, 638, + 628, 514, 629, 630, 631, 632, 633, 607, 671, 608, + + 45, 45, 45, 45, 45, 871, 872, 873, 672, 45, + 45, 45, 45, 45, 45, 606, 743, 744, 742, 749, + 682, 874, 875, 746, 876, 877, 750, 861, 878, 879, + 880, 881, 45, 45, 45, 45, 45, 45, 862, 882, + 883, 884, 885, 743, 886, 744, 887, 888, 877, 889, + 891, 892, 876, 893, 894, 890, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, - 909, 910, 911, 912, 913, 916, 917, 918, 914, 919, - 920, 921, 915, 922, 923, 924, 925, 926, 927, 928, - 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, + 909, 910, 911, 912, 913, 914, 915, 916, 919, 920, + 921, 917, 922, 923, 924, 918, 925, 926, 927, 928, + 929, 930, 931, 932, 934, 935, 936, 937, 938, 939, - 940, 941, 942, 943, 930, 945, 944, 946, 947, 948, + 940, 941, 942, 943, 944, 945, 946, 933, 948, 947, 949, 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, 987, 988, 989, - 992, 993, 994, 986, 997, 995, 990, 998, 999, 1000, - 991, 996, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, + 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, + 990, 991, 992, 995, 996, 997, 989, 1000, 998, 993, + 1001, 1002, 1003, 994, 999, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, - 1039, 1040, 1041, 1042, 1015, 1043, 1044, 1045, 1046, 1047, + 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1018, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, - 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1066, 1067, 1068, - 1069, 1065, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, + 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, + 1068, 1070, 1071, 1072, 1073, 1069, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, - 1088, 1089, 1090, 1091, 1092, 1094, 1095, 1096, 1093, 1097, - 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, + 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1098, + 1099, 1100, 1097, 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, @@ -1608,77 +1611,77 @@ static const flex_int16_t yy_nxt[2692] = 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, 1147, 1170, 1171, 1146, 1172, 1173, 1174, 1175, + 1168, 1169, 1170, 1171, 1172, 1173, 1151, 1174, 1175, 1150, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, - 1196, 1197, 1198, 1199, 1201, 1202, 1203, 1204, 1205, 1206, + 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, - 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, + 1227, 1228, 1229, 1230, 1231, 1233, 1234, 1235, 1236, 1237, - 1227, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, + 1238, 1239, 1240, 1241, 1242, 1232, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, - 1257, 1200, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, - 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1275, 1274, - 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, + 1257, 1258, 1259, 1260, 1261, 1262, 1205, 1263, 1264, 1265, + 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, + 1276, 1277, 1278, 1280, 1279, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, - 1296, 1297, 1298, 1299, 1300, 1273, 1274, 1301, 1302, 1303, - 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, - 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1324, - 1326, 1327, 1328, 1323, 1329, 1330, 1331, 1332, 1333, 1334, + 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, + 1278, 1279, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, + 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, + 1324, 1325, 1326, 1327, 1328, 1330, 1332, 1333, 1334, 1329, 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, 1325, 1368, 1369, 1370, 1371, 1372, 1373, + 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1331, 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, 1393, 1416, 1417, 1418, 1419, 1420, 1394, 1421, - 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, + 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1399, 1422, + 1423, 1424, 1425, 1426, 1400, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, - 1472, 1473, 1474, 1476, 1477, 1478, 1479, 1480, 1481, 1482, + 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, - 1503, 1504, 1505, 1506, 1508, 1509, 1510, 1511, 1512, 1513, - 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, - 1524, 1525, 1526, 1527, 1499, 1475, 1528, 1529, 1530, 1531, - - 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, - 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1507, 1549, 1550, - 1551, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1552, 1560, - 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, - 1571, 1572, 1573, 1574, 1575, 1576, 1578, 1579, 1582, 1580, - 1577, 1581, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, - 1591, 1592, 1593, 1594, 1595, 1596, 1598, 1599, 1600, 1601, - 1597, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, - 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1598, - 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, + 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, + 1513, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, + 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, + + 1534, 1506, 1482, 1535, 1536, 1537, 1538, 1539, 1540, 1541, + 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, + 1552, 1553, 1554, 1555, 1514, 1556, 1557, 1558, 1559, 1561, + 1562, 1563, 1564, 1565, 1566, 1567, 1560, 1568, 1569, 1570, + 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, + 1581, 1582, 1583, 1584, 1586, 1587, 1590, 1588, 1585, 1589, + 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, + 1601, 1602, 1603, 1604, 1606, 1607, 1608, 1609, 1605, 1610, + 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, + 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1606, 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, 1668, 1665, 1669, 1670, 1666, - 1671, 1672, 1667, 1673, 1674, 1675, 1676, 1677, 1678, 1679, - 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, - 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1698, 1699, 1700, - 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1697, 1708, 1709, - 1710, 1711, 1685, 1712, 1713, 1714, 1715, 1716, 1717, 1718, - 1719, 1720, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, - - 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, + 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, + 1670, 1671, 1672, 1673, 1677, 1674, 1678, 1679, 1675, 1680, + 1681, 1676, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, + 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, + 1700, 1701, 1702, 1703, 1704, 1705, 1707, 1708, 1709, 1710, + 1711, 1712, 1713, 1714, 1715, 1716, 1706, 1717, 1718, 1719, + 1720, 1694, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, + + 1729, 1730, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, - 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1721, - 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, - 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1769, 1796, 1797, - 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, + 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, + 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1731, + 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, + 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1779, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, @@ -1688,9 +1691,9 @@ static const flex_int16_t yy_nxt[2692] = 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, - 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1896, 1897, 1898, - 1899, 1895, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, - 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, + 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, + 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1908, + 1909, 1910, 1911, 1907, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, @@ -1699,9 +1702,9 @@ static const flex_int16_t yy_nxt[2692] = 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, - 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1995, - 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, - 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, + 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, + 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008, + 2009, 2007, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, @@ -1720,89 +1723,90 @@ static const flex_int16_t yy_nxt[2692] = 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, - 2178, 2179, 2180, 2181, 2183, 2182, 2184, 2185, 2186, 2187, - 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, + 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, + 2188, 2189, 2190, 2191, 2192, 2193, 2195, 2194, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, - 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 12, 12, - - 12, 36, 36, 36, 79, 98, 79, 100, 100, 100, - 113, 113, 113, 188, 854, 188, 207, 207, 207, 853, - 852, 851, 850, 849, 848, 847, 846, 845, 844, 843, - 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, - 832, 831, 830, 829, 828, 827, 826, 823, 822, 821, - 820, 819, 818, 817, 816, 815, 814, 813, 812, 811, - 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, - 800, 797, 796, 795, 794, 793, 792, 791, 790, 789, - 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, - 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, - - 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, - 756, 755, 754, 753, 752, 751, 750, 747, 746, 744, - 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, - 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, - 721, 720, 719, 718, 715, 714, 713, 712, 711, 710, - 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, 680, 679, - 678, 677, 676, 675, 674, 673, 672, 669, 668, 667, - 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, - - 656, 655, 654, 653, 652, 651, 650, 647, 646, 645, - 644, 643, 642, 641, 640, 639, 638, 634, 633, 626, - 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, - 615, 614, 613, 612, 611, 609, 606, 605, 604, 602, - 601, 600, 599, 598, 595, 594, 593, 592, 591, 590, - 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, - 579, 578, 575, 574, 573, 572, 571, 570, 569, 568, - 565, 564, 561, 560, 559, 558, 557, 554, 553, 552, - 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, - 541, 540, 536, 535, 534, 533, 532, 531, 530, 526, - - 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, - 515, 510, 509, 508, 507, 506, 505, 504, 503, 502, - 501, 500, 499, 498, 497, 496, 493, 492, 491, 490, - 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, - 479, 478, 477, 476, 475, 474, 473, 471, 469, 468, - 466, 464, 460, 457, 456, 453, 452, 451, 449, 448, - 447, 445, 444, 443, 440, 439, 438, 437, 436, 435, - 434, 433, 432, 431, 430, 429, 428, 427, 424, 423, - 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, - 410, 409, 405, 404, 403, 400, 398, 397, 396, 395, - - 394, 393, 389, 388, 387, 386, 385, 384, 383, 380, - 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, - 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, - 359, 358, 357, 356, 350, 349, 348, 347, 346, 345, - 344, 343, 342, 341, 340, 208, 334, 332, 328, 326, - 325, 318, 317, 316, 315, 313, 311, 307, 306, 305, - 302, 301, 300, 285, 279, 274, 273, 272, 269, 266, - 265, 264, 263, 262, 261, 258, 257, 256, 253, 252, - 251, 250, 249, 248, 244, 243, 235, 234, 233, 232, - 231, 228, 227, 226, 222, 219, 215, 214, 213, 208, - - 199, 197, 196, 195, 186, 166, 145, 119, 105, 103, - 43, 99, 97, 96, 87, 43, 2226, 11, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226 - + 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, + + 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, + 12, 12, 12, 36, 36, 36, 79, 98, 79, 100, + 100, 100, 113, 113, 113, 188, 855, 188, 207, 207, + 207, 854, 853, 852, 851, 850, 849, 848, 847, 846, + 845, 844, 843, 842, 841, 840, 839, 838, 837, 836, + 835, 834, 833, 832, 831, 830, 829, 828, 825, 824, + 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, + 813, 812, 811, 810, 809, 808, 807, 806, 805, 804, + 803, 802, 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, 772, + 771, 768, 767, 766, 765, 764, 763, 762, 761, 760, + 759, 758, 757, 756, 755, 754, 753, 752, 751, 748, + 747, 745, 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, 697, 696, 695, 694, 693, + 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, + 681, 680, 679, 678, 677, 676, 675, 674, 673, 670, + + 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, + 659, 658, 657, 656, 655, 654, 653, 652, 651, 648, + 647, 646, 645, 644, 643, 642, 641, 640, 639, 635, + 634, 626, 625, 624, 623, 622, 621, 620, 619, 618, + 617, 616, 615, 614, 613, 612, 611, 609, 606, 605, + 604, 602, 601, 600, 599, 598, 595, 594, 593, 592, + 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, + 581, 580, 579, 578, 575, 574, 573, 572, 571, 570, + 569, 568, 565, 564, 561, 560, 559, 558, 557, 554, + 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, + + 543, 542, 541, 540, 536, 535, 534, 533, 532, 531, + 530, 526, 525, 524, 523, 522, 521, 520, 519, 518, + 517, 516, 515, 510, 509, 508, 507, 506, 505, 504, + 503, 502, 501, 500, 499, 498, 497, 496, 493, 492, + 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, + 481, 480, 479, 478, 477, 476, 475, 474, 473, 471, + 469, 468, 466, 464, 460, 457, 456, 453, 452, 451, + 449, 448, 447, 445, 444, 443, 440, 439, 438, 437, + 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, + 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, + + 414, 413, 410, 409, 405, 404, 403, 400, 398, 397, + 396, 395, 394, 393, 389, 388, 387, 386, 385, 384, + 383, 380, 379, 378, 377, 376, 375, 374, 373, 372, + 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, + 361, 360, 359, 358, 357, 356, 350, 349, 348, 347, + 346, 345, 344, 343, 342, 341, 340, 208, 334, 332, + 328, 326, 325, 318, 317, 316, 315, 313, 311, 307, + 306, 305, 302, 301, 300, 285, 279, 274, 273, 272, + 269, 266, 265, 264, 263, 262, 261, 258, 257, 256, + 253, 252, 251, 250, 249, 248, 244, 243, 235, 234, + + 233, 232, 231, 228, 227, 226, 222, 219, 215, 214, + 213, 208, 199, 197, 196, 195, 186, 166, 145, 119, + 105, 103, 43, 99, 97, 96, 87, 43, 2238, 11, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + + 2238, 2238, 2238 } ; -static const flex_int16_t yy_chk[2692] = +static const flex_int16_t yy_chk[2704] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 21, 689, 3, 3, 3, 21, 1, 1, 3, 44, + 21, 690, 3, 3, 3, 21, 1, 1, 3, 44, 721, 1, 4, 4, 4, 13, 1, 13, 4, 27, 28, 1, 107, 1, 5, 5, 5, 26, 32, 1, 1, 33, 6, 6, 6, 7, 7, 7, 1, 7, - 689, 8, 8, 8, 1, 8, 44, 27, 28, 107, + 690, 8, 8, 8, 1, 8, 44, 27, 28, 107, 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, @@ -1823,7 +1827,7 @@ static const flex_int16_t yy_chk[2692] = 17, 17, 17, 17, 17, 19, 62, 19, 19, 19, 19, 19, 146, 17, 20, 20, 20, 20, 20, 22, 19, 22, 22, 22, 22, 22, 63, 20, 53, 62, - 57, 59, 723, 63, 22, 59, 17, 73, 53, 59, + 57, 59, 722, 63, 22, 59, 17, 73, 53, 59, 62, 73, 59, 19, 70, 59, 90, 112, 100, 59, 20, 53, 70, 724, 70, 92, 57, 22, 45, 70, 70, 61, 57, 61, 45, 57, 53, 45, 725, 45, @@ -1836,7 +1840,7 @@ static const flex_int16_t yy_chk[2692] = 56, 69, 65, 76, 91, 71, 95, 104, 56, 65, 60, 65, 56, 68, 56, 56, 93, 68, 75, 75, 69, 68, 69, 78, 69, 74, 76, 108, 75, 74, - 91, 727, 74, 68, 95, 104, 76, 68, 75, 74, + 91, 726, 74, 68, 95, 104, 76, 68, 75, 74, 74, 76, 93, 94, 74, 74, 134, 78, 134, 136, 135, 75, 109, 75, 106, 108, 75, 78, 80, 80, @@ -1858,7 +1862,7 @@ static const flex_int16_t yy_chk[2692] = 189, 194, 168, 168, 168, 193, 115, 115, 115, 115, 115, 115, 198, 168, 201, 168, 202, 168, 168, 192, 168, 204, 200, 206, 194, 212, 225, 269, 252, 423, - 316, 273, 276, 260, 225, 198, 260, 663, 663, 202, + 316, 273, 276, 260, 225, 198, 260, 664, 664, 202, 225, 201, 276, 267, 204, 252, 289, 319, 212, 289, 206, 210, 210, 210, 210, 210, 304, 312, 304, 576, @@ -1870,229 +1874,230 @@ static const flex_int16_t yy_chk[2692] = 734, 576, 336, 336, 336, 336, 336, 336, 426, 339, 390, 390, 426, 435, 399, 390, 455, 435, 463, 472, 469, 455, 469, 416, 494, 336, 336, 336, 336, 336, - 336, 607, 491, 506, 735, 528, 377, 494, 506, 494, - 491, 377, 491, 491, 491, 528, 491, 469, 608, 469, - - 470, 470, 470, 470, 470, 736, 737, 726, 607, 470, - 470, 470, 470, 470, 470, 539, 610, 614, 726, 632, - 539, 610, 632, 739, 614, 740, 608, 742, 743, 744, - 745, 746, 470, 470, 470, 470, 470, 470, 747, 748, - 749, 750, 751, 752, 753, 754, 755, 756, 757, 759, - 760, 743, 755, 758, 758, 742, 758, 761, 762, 763, - 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, - 774, 775, 776, 777, 778, 779, 780, 781, 778, 782, - 783, 784, 778, 785, 787, 788, 789, 790, 791, 792, - 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, - - 803, 804, 805, 806, 793, 807, 806, 808, 809, 811, - 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, - 822, 823, 825, 826, 827, 828, 829, 830, 831, 832, - 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, - 843, 844, 845, 846, 847, 848, 849, 850, 851, 851, - 852, 853, 854, 849, 856, 855, 851, 857, 858, 860, - 851, 855, 861, 862, 863, 864, 865, 866, 867, 868, - 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, - 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, - 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, - - 900, 901, 902, 903, 875, 904, 905, 906, 907, 908, - 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, - 919, 921, 922, 923, 924, 925, 926, 927, 928, 929, - 930, 926, 931, 932, 933, 934, 935, 936, 937, 938, - 941, 942, 943, 944, 945, 946, 949, 950, 951, 952, - 953, 954, 955, 957, 958, 959, 960, 961, 958, 962, - 963, 964, 965, 966, 969, 970, 971, 972, 973, 974, - 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, - 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, - 995, 996, 997, 998, 999, 1001, 1002, 1003, 1004, 1005, - - 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, - 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1024, 1025, 1026, - 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, - 1037, 1038, 1015, 1039, 1040, 1014, 1041, 1042, 1043, 1044, - 1045, 1046, 1047, 1048, 1050, 1051, 1052, 1053, 1054, 1055, - 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1065, 1066, - 1067, 1068, 1069, 1070, 1071, 1072, 1074, 1075, 1076, 1077, - 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, - 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, - 1098, 1099, 1100, 1102, 1103, 1104, 1105, 1106, 1108, 1109, - - 1097, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, - 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1127, 1128, 1129, - 1130, 1070, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, - 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1149, 1147, - 1150, 1151, 1152, 1153, 1154, 1156, 1157, 1158, 1160, 1161, - 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, - 1172, 1173, 1174, 1175, 1177, 1146, 1147, 1178, 1179, 1180, - 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, - 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1200, 1201, - 1202, 1203, 1204, 1200, 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, - 1231, 1232, 1233, 1235, 1236, 1237, 1238, 1239, 1240, 1241, - 1242, 1243, 1244, 1201, 1245, 1247, 1248, 1249, 1251, 1252, - 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, - 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1273, - 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1283, 1284, - 1285, 1286, 1287, 1288, 1289, 1291, 1292, 1293, 1294, 1295, - 1296, 1297, 1273, 1299, 1300, 1301, 1302, 1303, 1274, 1304, - 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, - - 1315, 1316, 1317, 1318, 1320, 1321, 1323, 1325, 1326, 1327, - 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, - 1338, 1340, 1342, 1343, 1344, 1345, 1347, 1348, 1349, 1350, - 1351, 1352, 1354, 1356, 1358, 1359, 1360, 1361, 1362, 1363, - 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1374, - 1375, 1376, 1377, 1378, 1379, 1380, 1383, 1384, 1385, 1386, - 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1396, 1397, - 1398, 1399, 1400, 1402, 1403, 1404, 1405, 1406, 1407, 1408, - 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, - 1419, 1420, 1421, 1422, 1393, 1366, 1423, 1424, 1426, 1427, - - 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, - 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1402, 1445, 1446, - 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1455, 1447, 1456, - 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, - 1469, 1470, 1472, 1473, 1474, 1475, 1476, 1477, 1480, 1479, - 1475, 1479, 1482, 1483, 1486, 1487, 1488, 1489, 1490, 1491, - 1492, 1493, 1495, 1496, 1497, 1498, 1499, 1501, 1502, 1503, - 1498, 1504, 1505, 1507, 1508, 1509, 1510, 1511, 1512, 1513, - 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1499, - 1523, 1525, 1526, 1527, 1529, 1530, 1531, 1532, 1533, 1534, - - 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1544, 1546, - 1547, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, - 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1570, - 1571, 1573, 1574, 1575, 1577, 1578, 1577, 1579, 1580, 1577, - 1581, 1582, 1577, 1583, 1584, 1585, 1586, 1587, 1588, 1589, - 1590, 1592, 1594, 1595, 1597, 1598, 1600, 1602, 1603, 1604, - 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, - 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1612, 1623, 1624, - 1625, 1626, 1598, 1627, 1628, 1629, 1630, 1631, 1632, 1633, - 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, 1670, 1671, 1672, 1673, - 1674, 1675, 1676, 1677, 1678, 1680, 1681, 1682, 1684, 1685, - 1687, 1688, 1691, 1692, 1693, 1695, 1696, 1697, 1698, 1634, - 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1708, 1710, - 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1685, 1718, 1719, - 1721, 1722, 1723, 1724, 1725, 1727, 1728, 1730, 1731, 1732, - 1734, 1735, 1736, 1738, 1739, 1741, 1742, 1743, 1744, 1745, - 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, - - 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, - 1766, 1768, 1769, 1771, 1772, 1773, 1775, 1776, 1777, 1778, - 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, - 1789, 1790, 1791, 1792, 1793, 1795, 1796, 1797, 1799, 1800, - 1801, 1802, 1803, 1805, 1806, 1807, 1808, 1809, 1811, 1812, - 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, - 1823, 1824, 1825, 1826, 1828, 1829, 1831, 1833, 1835, 1836, - 1837, 1831, 1838, 1841, 1843, 1844, 1845, 1846, 1847, 1848, - 1849, 1850, 1851, 1852, 1853, 1855, 1856, 1857, 1858, 1859, - 1860, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, - - 1871, 1873, 1874, 1875, 1877, 1878, 1879, 1880, 1881, 1882, - 1883, 1884, 1885, 1886, 1888, 1889, 1890, 1891, 1892, 1894, - 1895, 1896, 1897, 1900, 1901, 1902, 1903, 1904, 1905, 1906, - 1907, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, - 1918, 1919, 1920, 1921, 1923, 1924, 1926, 1927, 1928, 1929, - 1930, 1931, 1932, 1933, 1934, 1936, 1938, 1939, 1940, 1941, - 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1948, - 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, - 1961, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, - 1972, 1973, 1974, 1975, 1977, 1981, 1983, 1984, 1985, 1986, - - 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, - 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, - 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017, 2018, - 2019, 2020, 2021, 2023, 2025, 2028, 2030, 2031, 2032, 2033, - 2034, 2035, 2036, 2037, 2039, 2040, 2041, 2042, 2043, 2044, - 2045, 2047, 2048, 2049, 2050, 2051, 2052, 2054, 2055, 2056, - 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, - 2068, 2069, 2070, 2071, 2072, 2073, 2075, 2076, 2077, 2078, - 2079, 2080, 2081, 2082, 2084, 2085, 2086, 2087, 2088, 2089, - 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, - - 2100, 2101, 2102, 2104, 2105, 2107, 2108, 2109, 2110, 2112, - 2113, 2114, 2115, 2116, 2117, 2121, 2124, 2125, 2126, 2127, - 2128, 2129, 2130, 2131, 2133, 2134, 2135, 2136, 2137, 2138, - 2139, 2140, 2141, 2142, 2144, 2145, 2146, 2147, 2148, 2149, - 2151, 2153, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, - 2164, 2165, 2166, 2167, 2168, 2167, 2169, 2170, 2172, 2173, - 2175, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, - 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2195, 2196, 2197, - 2198, 2199, 2202, 2203, 2204, 2206, 2207, 2209, 2210, 2212, - 2213, 2214, 2216, 2217, 2218, 2219, 2220, 2222, 2227, 2227, - - 2227, 2228, 2228, 2228, 2229, 2230, 2229, 2231, 2231, 2231, - 2232, 2232, 2232, 2233, 720, 2233, 2234, 2234, 2234, 719, - 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, - 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, - 696, 695, 694, 693, 692, 691, 690, 688, 687, 686, - 685, 684, 683, 682, 681, 680, 679, 677, 676, 675, - 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, - 664, 662, 661, 660, 659, 658, 657, 656, 655, 654, - 653, 652, 651, 650, 649, 647, 646, 645, 644, 643, - 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, - - 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, - 621, 620, 619, 618, 617, 616, 615, 613, 612, 609, - 603, 602, 601, 600, 599, 598, 597, 595, 594, 592, - 591, 589, 588, 587, 586, 585, 584, 583, 582, 581, - 580, 579, 578, 577, 575, 574, 573, 572, 571, 570, - 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, - 559, 558, 556, 554, 553, 552, 551, 550, 549, 548, - 547, 546, 545, 544, 543, 542, 541, 540, 538, 537, - 535, 534, 533, 532, 531, 530, 529, 527, 526, 525, - 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, - - 514, 513, 512, 510, 509, 508, 507, 505, 504, 503, - 502, 501, 500, 499, 498, 496, 495, 493, 492, 489, - 488, 487, 486, 485, 484, 482, 481, 480, 479, 478, - 477, 476, 475, 474, 473, 471, 467, 465, 464, 462, - 461, 460, 457, 456, 454, 453, 451, 450, 449, 448, - 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, - 437, 436, 434, 433, 432, 431, 430, 429, 428, 427, - 425, 424, 422, 420, 419, 418, 417, 415, 414, 413, - 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, - 402, 400, 397, 396, 395, 394, 393, 392, 391, 389, - - 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, - 378, 376, 375, 374, 373, 372, 371, 370, 369, 368, - 367, 366, 365, 364, 363, 362, 360, 359, 358, 357, - 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, - 346, 345, 344, 343, 342, 341, 340, 338, 335, 333, - 330, 328, 325, 318, 317, 315, 314, 313, 311, 310, - 309, 307, 306, 305, 303, 302, 301, 300, 299, 298, - 297, 296, 295, 294, 293, 292, 291, 290, 288, 287, - 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, - 275, 274, 272, 271, 270, 268, 266, 265, 264, 263, - - 262, 261, 259, 258, 257, 256, 255, 254, 253, 251, - 250, 248, 247, 246, 245, 244, 243, 242, 241, 240, - 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, - 229, 228, 227, 226, 223, 222, 221, 220, 219, 218, - 217, 216, 215, 214, 213, 207, 205, 203, 199, 197, - 195, 187, 186, 185, 184, 182, 180, 177, 176, 175, - 173, 172, 171, 167, 164, 162, 161, 160, 158, 156, - 155, 154, 153, 152, 151, 149, 148, 147, 145, 144, - 143, 142, 141, 140, 138, 137, 133, 132, 131, 130, - 129, 127, 126, 125, 123, 121, 119, 118, 117, 113, - - 105, 103, 98, 97, 77, 72, 66, 58, 49, 47, - 43, 41, 39, 38, 24, 14, 11, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, - 2226 - + 336, 633, 491, 506, 633, 735, 377, 494, 506, 494, + 491, 377, 491, 491, 491, 491, 491, 469, 528, 469, + + 470, 470, 470, 470, 470, 736, 737, 738, 528, 470, + 470, 470, 470, 470, 470, 539, 607, 608, 610, 614, + 539, 740, 741, 610, 743, 744, 614, 727, 745, 746, + 747, 748, 470, 470, 470, 470, 470, 470, 727, 749, + 750, 751, 752, 607, 753, 608, 754, 755, 744, 756, + 757, 758, 743, 759, 759, 756, 759, 760, 761, 762, + 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, + 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, + 783, 780, 784, 785, 786, 780, 787, 789, 790, 791, + 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, + + 802, 803, 804, 805, 806, 807, 808, 795, 809, 808, + 810, 811, 813, 814, 815, 816, 817, 818, 819, 820, + 821, 822, 823, 824, 825, 827, 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, 853, 854, 855, 856, 851, 858, 857, 853, + 859, 860, 862, 853, 857, 863, 864, 865, 866, 867, + 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, + 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, + 888, 889, 890, 892, 893, 894, 895, 896, 897, 898, + + 899, 900, 901, 902, 903, 904, 905, 877, 906, 907, + 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, + 918, 919, 920, 921, 922, 924, 925, 926, 927, 928, + 929, 930, 931, 932, 933, 929, 934, 935, 936, 937, + 938, 939, 940, 941, 944, 945, 946, 947, 948, 949, + 952, 953, 954, 955, 956, 957, 958, 960, 961, 962, + 963, 964, 961, 965, 966, 967, 968, 969, 972, 973, + 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, + 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, + 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1004, + + 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, + 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, + 1025, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, + 1036, 1037, 1038, 1039, 1040, 1041, 1018, 1042, 1043, 1017, + 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1054, + 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, + 1065, 1066, 1067, 1069, 1070, 1071, 1072, 1073, 1074, 1075, + 1076, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, + 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, + 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1106, 1107, + + 1108, 1109, 1110, 1112, 1113, 1101, 1114, 1115, 1116, 1117, + 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, + 1128, 1129, 1131, 1132, 1133, 1134, 1074, 1135, 1136, 1137, + 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, + 1148, 1149, 1150, 1153, 1151, 1154, 1155, 1156, 1157, 1158, + 1160, 1161, 1162, 1164, 1165, 1166, 1167, 1168, 1169, 1170, + 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, + 1150, 1151, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, + 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, + 1200, 1201, 1202, 1203, 1205, 1206, 1207, 1208, 1209, 1205, + + 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, + 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, + 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1240, + 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1206, + 1250, 1252, 1253, 1254, 1256, 1257, 1258, 1259, 1260, 1261, + 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, + 1272, 1273, 1274, 1275, 1276, 1278, 1279, 1280, 1281, 1282, + 1283, 1284, 1285, 1286, 1288, 1289, 1290, 1291, 1292, 1293, + 1294, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1278, 1303, + 1305, 1306, 1307, 1308, 1279, 1309, 1310, 1311, 1312, 1313, + + 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, + 1324, 1326, 1327, 1329, 1331, 1332, 1333, 1334, 1335, 1336, + 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1346, 1348, + 1349, 1350, 1351, 1353, 1354, 1355, 1356, 1357, 1358, 1360, + 1362, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, + 1373, 1374, 1375, 1376, 1377, 1378, 1380, 1381, 1382, 1383, + 1384, 1385, 1386, 1389, 1390, 1391, 1392, 1393, 1394, 1395, + 1396, 1397, 1398, 1399, 1400, 1402, 1403, 1404, 1405, 1406, + 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, + 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, + + 1428, 1399, 1372, 1429, 1430, 1431, 1433, 1434, 1435, 1436, + 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, + 1447, 1448, 1449, 1450, 1408, 1451, 1452, 1453, 1454, 1455, + 1456, 1457, 1458, 1459, 1460, 1462, 1454, 1463, 1466, 1467, + 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, + 1479, 1480, 1481, 1482, 1483, 1484, 1487, 1486, 1482, 1486, + 1489, 1490, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, + 1502, 1503, 1504, 1505, 1506, 1508, 1509, 1510, 1505, 1511, + 1512, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, + 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1506, 1530, 1531, + + 1533, 1534, 1535, 1537, 1538, 1539, 1540, 1541, 1542, 1543, + 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1552, 1554, 1555, + 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1567, + 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1578, 1579, + 1581, 1582, 1583, 1585, 1586, 1585, 1587, 1588, 1585, 1589, + 1590, 1585, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, + 1600, 1602, 1603, 1605, 1606, 1608, 1610, 1611, 1612, 1614, + 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, + 1625, 1626, 1627, 1628, 1629, 1630, 1620, 1631, 1632, 1633, + 1634, 1606, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, + + 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, 1679, 1680, 1681, 1682, + 1683, 1684, 1685, 1686, 1687, 1689, 1690, 1691, 1693, 1694, + 1696, 1697, 1700, 1701, 1702, 1704, 1705, 1706, 1707, 1643, + 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1718, + 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1694, 1727, 1728, + 1729, 1731, 1732, 1733, 1734, 1735, 1737, 1738, 1740, 1741, + 1742, 1744, 1745, 1746, 1748, 1749, 1751, 1752, 1753, 1754, + + 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, + 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, + 1775, 1776, 1778, 1779, 1781, 1782, 1783, 1785, 1786, 1787, + 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, + 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1806, 1807, 1808, + 1810, 1811, 1812, 1813, 1814, 1816, 1817, 1818, 1819, 1820, + 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, + 1832, 1833, 1834, 1835, 1836, 1837, 1839, 1840, 1842, 1844, + 1846, 1847, 1848, 1842, 1849, 1852, 1854, 1855, 1856, 1857, + 1858, 1859, 1860, 1862, 1863, 1864, 1865, 1867, 1868, 1869, + + 1870, 1871, 1872, 1874, 1875, 1876, 1877, 1878, 1879, 1880, + 1881, 1882, 1883, 1885, 1886, 1887, 1889, 1890, 1891, 1892, + 1893, 1894, 1895, 1896, 1897, 1898, 1900, 1901, 1902, 1903, + 1904, 1906, 1907, 1908, 1909, 1912, 1913, 1914, 1915, 1916, + 1917, 1918, 1919, 1921, 1922, 1923, 1924, 1925, 1926, 1927, + 1928, 1929, 1930, 1931, 1932, 1933, 1935, 1936, 1938, 1939, + 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1948, 1950, 1951, + 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, + 1962, 1960, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, + 1971, 1972, 1973, 1975, 1976, 1977, 1978, 1979, 1980, 1981, + + 1982, 1983, 1984, 1985, 1986, 1987, 1989, 1993, 1995, 1996, + 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, + 2007, 2008, 2009, 2010, 2012, 2013, 2014, 2015, 2016, 2017, + 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2028, + 2029, 2030, 2031, 2032, 2033, 2035, 2037, 2040, 2042, 2043, + 2044, 2045, 2046, 2047, 2048, 2049, 2051, 2052, 2053, 2054, + 2055, 2056, 2057, 2059, 2060, 2061, 2062, 2063, 2064, 2066, + 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, + 2077, 2078, 2080, 2081, 2082, 2083, 2084, 2085, 2087, 2088, + 2089, 2090, 2091, 2092, 2093, 2094, 2096, 2097, 2098, 2099, + + 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, + 2110, 2111, 2112, 2113, 2114, 2116, 2117, 2119, 2120, 2121, + 2122, 2124, 2125, 2126, 2127, 2128, 2129, 2133, 2136, 2137, + 2138, 2139, 2140, 2141, 2142, 2143, 2145, 2146, 2147, 2148, + 2149, 2150, 2151, 2152, 2153, 2154, 2156, 2157, 2158, 2159, + 2160, 2161, 2163, 2165, 2167, 2168, 2169, 2170, 2171, 2172, + 2173, 2174, 2176, 2177, 2178, 2179, 2180, 2179, 2181, 2182, + 2184, 2185, 2187, 2190, 2191, 2192, 2193, 2194, 2195, 2196, + 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2207, + 2208, 2209, 2210, 2211, 2214, 2215, 2216, 2218, 2219, 2221, + + 2222, 2224, 2225, 2226, 2228, 2229, 2230, 2231, 2232, 2234, + 2239, 2239, 2239, 2240, 2240, 2240, 2241, 2242, 2241, 2243, + 2243, 2243, 2244, 2244, 2244, 2245, 720, 2245, 2246, 2246, + 2246, 719, 718, 717, 716, 715, 714, 713, 712, 711, + 710, 708, 707, 706, 705, 704, 703, 702, 701, 700, + 699, 697, 696, 695, 694, 693, 692, 691, 689, 688, + 687, 686, 685, 684, 683, 682, 681, 680, 678, 677, + 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, + 666, 665, 663, 662, 661, 660, 659, 658, 657, 656, + 655, 654, 653, 652, 651, 650, 648, 647, 646, 645, + + 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, + 634, 632, 631, 630, 629, 628, 627, 626, 625, 624, + 623, 622, 621, 620, 619, 618, 617, 616, 615, 613, + 612, 609, 603, 602, 601, 600, 599, 598, 597, 595, + 594, 592, 591, 589, 588, 587, 586, 585, 584, 583, + 582, 581, 580, 579, 578, 577, 575, 574, 573, 572, + 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, + 561, 560, 559, 558, 556, 554, 553, 552, 551, 550, + 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, + 538, 537, 535, 534, 533, 532, 531, 530, 529, 527, + + 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, + 516, 515, 514, 513, 512, 510, 509, 508, 507, 505, + 504, 503, 502, 501, 500, 499, 498, 496, 495, 493, + 492, 489, 488, 487, 486, 485, 484, 482, 481, 480, + 479, 478, 477, 476, 475, 474, 473, 471, 467, 465, + 464, 462, 461, 460, 457, 456, 454, 453, 451, 450, + 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, + 439, 438, 437, 436, 434, 433, 432, 431, 430, 429, + 428, 427, 425, 424, 422, 420, 419, 418, 417, 415, + 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, + + 404, 403, 402, 400, 397, 396, 395, 394, 393, 392, + 391, 389, 388, 387, 386, 385, 384, 383, 382, 381, + 380, 379, 378, 376, 375, 374, 373, 372, 371, 370, + 369, 368, 367, 366, 365, 364, 363, 362, 360, 359, + 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, + 348, 347, 346, 345, 344, 343, 342, 341, 340, 338, + 335, 333, 330, 328, 325, 318, 317, 315, 314, 313, + 311, 310, 309, 307, 306, 305, 303, 302, 301, 300, + 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, + 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, + + 278, 277, 275, 274, 272, 271, 270, 268, 266, 265, + 264, 263, 262, 261, 259, 258, 257, 256, 255, 254, + 253, 251, 250, 248, 247, 246, 245, 244, 243, 242, + 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, + 231, 230, 229, 228, 227, 226, 223, 222, 221, 220, + 219, 218, 217, 216, 215, 214, 213, 207, 205, 203, + 199, 197, 195, 187, 186, 185, 184, 182, 180, 177, + 176, 175, 173, 172, 171, 167, 164, 162, 161, 160, + 158, 156, 155, 154, 153, 152, 151, 149, 148, 147, + 145, 144, 143, 142, 141, 140, 138, 137, 133, 132, + + 131, 130, 129, 127, 126, 125, 123, 121, 119, 118, + 117, 113, 105, 103, 98, 97, 77, 72, 66, 58, + 49, 47, 43, 41, 39, 38, 24, 14, 11, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, + + 2238, 2238, 2238 } ; static yy_state_type yy_last_accepting_state; @@ -2101,7 +2106,7 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[225] = +static const flex_int16_t yy_rule_linenum[226] = { 0, 146, 148, 150, 155, 156, 161, 162, 163, 175, 178, 183, 190, 199, 208, 217, 226, 235, 244, 253, 263, @@ -2110,24 +2115,24 @@ static const flex_int16_t yy_rule_linenum[225] = 459, 470, 481, 492, 503, 514, 525, 536, 547, 558, 569, 578, 587, 596, 607, 616, 627, 638, 649, 660, 672, 684, 696, 707, 718, 727, 736, 745, 756, 765, - 774, 785, 796, 807, 818, 829, 840, 851, 862, 872, - 883, 892, 902, 916, 932, 941, 950, 959, 968, 977, - 999, 1021, 1030, 1040, 1049, 1060, 1069, 1078, 1087, 1096, - - 1105, 1116, 1127, 1138, 1148, 1157, 1168, 1179, 1190, 1201, - 1213, 1222, 1231, 1240, 1249, 1258, 1267, 1276, 1285, 1294, - 1304, 1315, 1327, 1336, 1345, 1354, 1364, 1374, 1384, 1394, - 1404, 1414, 1423, 1433, 1442, 1451, 1460, 1469, 1479, 1489, - 1498, 1508, 1517, 1526, 1535, 1544, 1553, 1562, 1571, 1580, - 1589, 1598, 1607, 1616, 1625, 1634, 1643, 1652, 1661, 1670, - 1679, 1688, 1697, 1706, 1715, 1724, 1733, 1742, 1751, 1760, - 1769, 1778, 1787, 1796, 1805, 1814, 1823, 1835, 1847, 1857, - 1867, 1877, 1887, 1897, 1907, 1917, 1927, 1937, 1946, 1955, - 1964, 1973, 1984, 1995, 2008, 2021, 2034, 2043, 2052, 2061, - - 2070, 2079, 2088, 2097, 2106, 2118, 2219, 2235, 2284, 2292, - 2307, 2308, 2309, 2310, 2311, 2312, 2314, 2332, 2345, 2350, - 2354, 2356, 2358, 2360 + 774, 785, 796, 807, 818, 829, 840, 851, 862, 873, + 883, 894, 903, 913, 927, 943, 952, 961, 970, 979, + 988, 1010, 1032, 1041, 1051, 1060, 1071, 1080, 1089, 1098, + + 1107, 1116, 1127, 1138, 1149, 1159, 1168, 1179, 1190, 1201, + 1212, 1224, 1233, 1242, 1251, 1260, 1269, 1278, 1287, 1296, + 1305, 1315, 1326, 1338, 1347, 1356, 1365, 1375, 1385, 1395, + 1405, 1415, 1425, 1434, 1444, 1453, 1462, 1471, 1480, 1490, + 1500, 1509, 1519, 1528, 1537, 1546, 1555, 1564, 1573, 1582, + 1591, 1600, 1609, 1618, 1627, 1636, 1645, 1654, 1663, 1672, + 1681, 1690, 1699, 1708, 1717, 1726, 1735, 1744, 1753, 1762, + 1771, 1780, 1789, 1798, 1807, 1816, 1825, 1834, 1846, 1858, + 1868, 1878, 1888, 1898, 1908, 1918, 1928, 1938, 1948, 1957, + 1966, 1975, 1984, 1995, 2006, 2019, 2032, 2045, 2054, 2063, + + 2072, 2081, 2090, 2099, 2108, 2117, 2129, 2230, 2246, 2295, + 2303, 2318, 2319, 2320, 2321, 2322, 2323, 2325, 2343, 2356, + 2361, 2365, 2367, 2369, 2371 } ; /* The intent behind this definition is that it'll catch @@ -2181,7 +2186,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg) -#line 2184 "dhcp4_lexer.cc" +#line 2190 "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 @@ -2207,8 +2212,8 @@ using namespace isc::dhcp; by moving it ahead by yyleng bytes. yyleng specifies the length of the currently matched token. */ #define YY_USER_ACTION driver.loc_.columns(yyleng); -#line 2210 "dhcp4_lexer.cc" -#line 2211 "dhcp4_lexer.cc" +#line 2216 "dhcp4_lexer.cc" +#line 2217 "dhcp4_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2536,7 +2541,7 @@ YY_DECL } -#line 2539 "dhcp4_lexer.cc" +#line 2545 "dhcp4_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2565,13 +2570,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 2227 ) + if ( yy_current_state >= 2239 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 2226 ); + while ( yy_current_state != 2238 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2590,13 +2595,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 225 ) + else if ( yy_act < 226 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 225 ) + else if ( yy_act == 226 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 226 ) + else if ( yy_act == 227 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3579,6 +3584,20 @@ YY_RULE_SETUP { 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_TTL_PERCENT(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("ddns_ttl-percent", driver.loc_); + } +} + YY_BREAK +case 80: +YY_RULE_SETUP +#line 873 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DHCP4: case isc::dhcp::Parser4Context::SHARED_NETWORK: return isc::dhcp::Dhcp4Parser::make_SUBNET4(driver.loc_); default: @@ -3586,9 +3605,9 @@ YY_RULE_SETUP } } YY_BREAK -case 80: +case 81: YY_RULE_SETUP -#line 872 "dhcp4_lexer.ll" +#line 883 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3600,9 +3619,9 @@ YY_RULE_SETUP } } YY_BREAK -case 81: +case 82: YY_RULE_SETUP -#line 883 "dhcp4_lexer.ll" +#line 894 "dhcp4_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3612,9 +3631,9 @@ YY_RULE_SETUP } } YY_BREAK -case 82: +case 83: YY_RULE_SETUP -#line 892 "dhcp4_lexer.ll" +#line 903 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3625,9 +3644,9 @@ YY_RULE_SETUP } } YY_BREAK -case 83: +case 84: YY_RULE_SETUP -#line 902 "dhcp4_lexer.ll" +#line 913 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3642,9 +3661,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 85: YY_RULE_SETUP -#line 916 "dhcp4_lexer.ll" +#line 927 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -3661,9 +3680,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 86: YY_RULE_SETUP -#line 932 "dhcp4_lexer.ll" +#line 943 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3673,9 +3692,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 87: YY_RULE_SETUP -#line 941 "dhcp4_lexer.ll" +#line 952 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3685,9 +3704,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 88: YY_RULE_SETUP -#line 950 "dhcp4_lexer.ll" +#line 961 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3697,9 +3716,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 89: YY_RULE_SETUP -#line 959 "dhcp4_lexer.ll" +#line 970 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3709,9 +3728,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 90: YY_RULE_SETUP -#line 968 "dhcp4_lexer.ll" +#line 979 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::POOLS: @@ -3721,9 +3740,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 91: YY_RULE_SETUP -#line 977 "dhcp4_lexer.ll" +#line 988 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3746,9 +3765,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 92: YY_RULE_SETUP -#line 999 "dhcp4_lexer.ll" +#line 1010 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3771,9 +3790,9 @@ YY_RULE_SETUP } } YY_BREAK -case 92: +case 93: YY_RULE_SETUP -#line 1021 "dhcp4_lexer.ll" +#line 1032 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3783,9 +3802,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 94: YY_RULE_SETUP -#line 1030 "dhcp4_lexer.ll" +#line 1041 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3796,9 +3815,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 95: YY_RULE_SETUP -#line 1040 "dhcp4_lexer.ll" +#line 1051 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3808,9 +3827,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 96: YY_RULE_SETUP -#line 1049 "dhcp4_lexer.ll" +#line 1060 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3822,9 +3841,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 97: YY_RULE_SETUP -#line 1060 "dhcp4_lexer.ll" +#line 1071 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3834,9 +3853,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 98: YY_RULE_SETUP -#line 1069 "dhcp4_lexer.ll" +#line 1080 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3846,9 +3865,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 99: YY_RULE_SETUP -#line 1078 "dhcp4_lexer.ll" +#line 1089 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3858,9 +3877,9 @@ YY_RULE_SETUP } } YY_BREAK -case 99: +case 100: YY_RULE_SETUP -#line 1087 "dhcp4_lexer.ll" +#line 1098 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3870,9 +3889,9 @@ YY_RULE_SETUP } } YY_BREAK -case 100: +case 101: YY_RULE_SETUP -#line 1096 "dhcp4_lexer.ll" +#line 1107 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3882,9 +3901,9 @@ YY_RULE_SETUP } } YY_BREAK -case 101: +case 102: YY_RULE_SETUP -#line 1105 "dhcp4_lexer.ll" +#line 1116 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3896,9 +3915,9 @@ YY_RULE_SETUP } } YY_BREAK -case 102: +case 103: YY_RULE_SETUP -#line 1116 "dhcp4_lexer.ll" +#line 1127 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3910,9 +3929,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 104: YY_RULE_SETUP -#line 1127 "dhcp4_lexer.ll" +#line 1138 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3924,9 +3943,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 105: YY_RULE_SETUP -#line 1138 "dhcp4_lexer.ll" +#line 1149 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3937,9 +3956,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 106: YY_RULE_SETUP -#line 1148 "dhcp4_lexer.ll" +#line 1159 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3949,9 +3968,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 107: YY_RULE_SETUP -#line 1157 "dhcp4_lexer.ll" +#line 1168 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3963,9 +3982,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 108: YY_RULE_SETUP -#line 1168 "dhcp4_lexer.ll" +#line 1179 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3977,9 +3996,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 1179 "dhcp4_lexer.ll" +#line 1190 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3991,9 +4010,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 110: YY_RULE_SETUP -#line 1190 "dhcp4_lexer.ll" +#line 1201 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4005,9 +4024,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 111: YY_RULE_SETUP -#line 1201 "dhcp4_lexer.ll" +#line 1212 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4019,9 +4038,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 112: YY_RULE_SETUP -#line 1213 "dhcp4_lexer.ll" +#line 1224 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4031,9 +4050,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 113: YY_RULE_SETUP -#line 1222 "dhcp4_lexer.ll" +#line 1233 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -4043,9 +4062,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 114: YY_RULE_SETUP -#line 1231 "dhcp4_lexer.ll" +#line 1242 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4055,9 +4074,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 115: YY_RULE_SETUP -#line 1240 "dhcp4_lexer.ll" +#line 1251 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -4067,9 +4086,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 116: YY_RULE_SETUP -#line 1249 "dhcp4_lexer.ll" +#line 1260 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4079,9 +4098,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 117: YY_RULE_SETUP -#line 1258 "dhcp4_lexer.ll" +#line 1269 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4091,9 +4110,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 118: YY_RULE_SETUP -#line 1267 "dhcp4_lexer.ll" +#line 1278 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4103,9 +4122,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 119: YY_RULE_SETUP -#line 1276 "dhcp4_lexer.ll" +#line 1287 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4115,9 +4134,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 120: YY_RULE_SETUP -#line 1285 "dhcp4_lexer.ll" +#line 1296 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -4127,9 +4146,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 121: YY_RULE_SETUP -#line 1294 "dhcp4_lexer.ll" +#line 1305 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4140,9 +4159,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 122: YY_RULE_SETUP -#line 1304 "dhcp4_lexer.ll" +#line 1315 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4154,9 +4173,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 123: YY_RULE_SETUP -#line 1315 "dhcp4_lexer.ll" +#line 1326 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4169,9 +4188,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 124: YY_RULE_SETUP -#line 1327 "dhcp4_lexer.ll" +#line 1338 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4181,9 +4200,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 125: YY_RULE_SETUP -#line 1336 "dhcp4_lexer.ll" +#line 1347 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4193,9 +4212,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 126: YY_RULE_SETUP -#line 1345 "dhcp4_lexer.ll" +#line 1356 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4205,9 +4224,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 127: YY_RULE_SETUP -#line 1354 "dhcp4_lexer.ll" +#line 1365 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4218,9 +4237,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 128: YY_RULE_SETUP -#line 1364 "dhcp4_lexer.ll" +#line 1375 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4231,9 +4250,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 129: YY_RULE_SETUP -#line 1374 "dhcp4_lexer.ll" +#line 1385 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4244,9 +4263,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 130: YY_RULE_SETUP -#line 1384 "dhcp4_lexer.ll" +#line 1395 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4257,9 +4276,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 131: YY_RULE_SETUP -#line 1394 "dhcp4_lexer.ll" +#line 1405 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4270,9 +4289,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 132: YY_RULE_SETUP -#line 1404 "dhcp4_lexer.ll" +#line 1415 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4283,9 +4302,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 133: YY_RULE_SETUP -#line 1414 "dhcp4_lexer.ll" +#line 1425 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATIONS: @@ -4295,9 +4314,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 134: YY_RULE_SETUP -#line 1423 "dhcp4_lexer.ll" +#line 1434 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4308,9 +4327,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 135: YY_RULE_SETUP -#line 1433 "dhcp4_lexer.ll" +#line 1444 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -4320,9 +4339,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 136: YY_RULE_SETUP -#line 1442 "dhcp4_lexer.ll" +#line 1453 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4332,9 +4351,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 137: YY_RULE_SETUP -#line 1451 "dhcp4_lexer.ll" +#line 1462 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4344,9 +4363,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 138: YY_RULE_SETUP -#line 1460 "dhcp4_lexer.ll" +#line 1471 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4356,9 +4375,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 139: YY_RULE_SETUP -#line 1469 "dhcp4_lexer.ll" +#line 1480 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4369,9 +4388,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 140: YY_RULE_SETUP -#line 1479 "dhcp4_lexer.ll" +#line 1490 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -4382,9 +4401,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 141: YY_RULE_SETUP -#line 1489 "dhcp4_lexer.ll" +#line 1500 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -4394,9 +4413,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 142: YY_RULE_SETUP -#line 1498 "dhcp4_lexer.ll" +#line 1509 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4406,9 +4425,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 143: YY_RULE_SETUP -#line 1508 "dhcp4_lexer.ll" +#line 1519 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -4418,9 +4437,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 144: YY_RULE_SETUP -#line 1517 "dhcp4_lexer.ll" +#line 1528 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -4430,9 +4449,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 145: YY_RULE_SETUP -#line 1526 "dhcp4_lexer.ll" +#line 1537 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4442,9 +4461,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 146: YY_RULE_SETUP -#line 1535 "dhcp4_lexer.ll" +#line 1546 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4454,9 +4473,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 147: YY_RULE_SETUP -#line 1544 "dhcp4_lexer.ll" +#line 1555 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4466,9 +4485,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 148: YY_RULE_SETUP -#line 1553 "dhcp4_lexer.ll" +#line 1564 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4478,9 +4497,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 149: YY_RULE_SETUP -#line 1562 "dhcp4_lexer.ll" +#line 1573 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4490,9 +4509,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 150: YY_RULE_SETUP -#line 1571 "dhcp4_lexer.ll" +#line 1582 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4502,9 +4521,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 151: YY_RULE_SETUP -#line 1580 "dhcp4_lexer.ll" +#line 1591 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4514,9 +4533,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 152: YY_RULE_SETUP -#line 1589 "dhcp4_lexer.ll" +#line 1600 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4526,9 +4545,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 153: YY_RULE_SETUP -#line 1598 "dhcp4_lexer.ll" +#line 1609 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4538,9 +4557,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 154: YY_RULE_SETUP -#line 1607 "dhcp4_lexer.ll" +#line 1618 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4550,9 +4569,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 155: YY_RULE_SETUP -#line 1616 "dhcp4_lexer.ll" +#line 1627 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4562,9 +4581,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 156: YY_RULE_SETUP -#line 1625 "dhcp4_lexer.ll" +#line 1636 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4574,9 +4593,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 157: YY_RULE_SETUP -#line 1634 "dhcp4_lexer.ll" +#line 1645 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4586,9 +4605,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 158: YY_RULE_SETUP -#line 1643 "dhcp4_lexer.ll" +#line 1654 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4598,9 +4617,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 159: YY_RULE_SETUP -#line 1652 "dhcp4_lexer.ll" +#line 1663 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4610,9 +4629,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 160: YY_RULE_SETUP -#line 1661 "dhcp4_lexer.ll" +#line 1672 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4622,9 +4641,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 161: YY_RULE_SETUP -#line 1670 "dhcp4_lexer.ll" +#line 1681 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4634,9 +4653,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 162: YY_RULE_SETUP -#line 1679 "dhcp4_lexer.ll" +#line 1690 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4646,9 +4665,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 163: YY_RULE_SETUP -#line 1688 "dhcp4_lexer.ll" +#line 1699 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4658,9 +4677,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 164: YY_RULE_SETUP -#line 1697 "dhcp4_lexer.ll" +#line 1708 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4670,9 +4689,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 165: YY_RULE_SETUP -#line 1706 "dhcp4_lexer.ll" +#line 1717 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4682,9 +4701,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 166: YY_RULE_SETUP -#line 1715 "dhcp4_lexer.ll" +#line 1726 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4694,9 +4713,9 @@ YY_RULE_SETUP } } YY_BREAK -case 166: +case 167: YY_RULE_SETUP -#line 1724 "dhcp4_lexer.ll" +#line 1735 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4706,9 +4725,9 @@ YY_RULE_SETUP } } YY_BREAK -case 167: +case 168: YY_RULE_SETUP -#line 1733 "dhcp4_lexer.ll" +#line 1744 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4718,9 +4737,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 169: YY_RULE_SETUP -#line 1742 "dhcp4_lexer.ll" +#line 1753 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4730,9 +4749,9 @@ YY_RULE_SETUP } } YY_BREAK -case 169: +case 170: YY_RULE_SETUP -#line 1751 "dhcp4_lexer.ll" +#line 1762 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4742,9 +4761,9 @@ YY_RULE_SETUP } } YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 1760 "dhcp4_lexer.ll" +#line 1771 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4754,9 +4773,9 @@ YY_RULE_SETUP } } YY_BREAK -case 171: +case 172: YY_RULE_SETUP -#line 1769 "dhcp4_lexer.ll" +#line 1780 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4766,9 +4785,9 @@ YY_RULE_SETUP } } YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 1778 "dhcp4_lexer.ll" +#line 1789 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4778,9 +4797,9 @@ YY_RULE_SETUP } } YY_BREAK -case 173: +case 174: YY_RULE_SETUP -#line 1787 "dhcp4_lexer.ll" +#line 1798 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4790,9 +4809,9 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 175: YY_RULE_SETUP -#line 1796 "dhcp4_lexer.ll" +#line 1807 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4802,9 +4821,9 @@ YY_RULE_SETUP } } YY_BREAK -case 175: +case 176: YY_RULE_SETUP -#line 1805 "dhcp4_lexer.ll" +#line 1816 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4814,9 +4833,9 @@ YY_RULE_SETUP } } YY_BREAK -case 176: +case 177: YY_RULE_SETUP -#line 1814 "dhcp4_lexer.ll" +#line 1825 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4826,9 +4845,9 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 178: YY_RULE_SETUP -#line 1823 "dhcp4_lexer.ll" +#line 1834 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4841,9 +4860,9 @@ YY_RULE_SETUP } } YY_BREAK -case 178: +case 179: YY_RULE_SETUP -#line 1835 "dhcp4_lexer.ll" +#line 1846 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4856,9 +4875,9 @@ YY_RULE_SETUP } } YY_BREAK -case 179: +case 180: YY_RULE_SETUP -#line 1847 "dhcp4_lexer.ll" +#line 1858 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -4869,9 +4888,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 180: +case 181: YY_RULE_SETUP -#line 1857 "dhcp4_lexer.ll" +#line 1868 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -4882,9 +4901,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 181: +case 182: YY_RULE_SETUP -#line 1867 "dhcp4_lexer.ll" +#line 1878 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) { @@ -4895,9 +4914,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 182: +case 183: YY_RULE_SETUP -#line 1877 "dhcp4_lexer.ll" +#line 1888 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4908,9 +4927,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 183: +case 184: YY_RULE_SETUP -#line 1887 "dhcp4_lexer.ll" +#line 1898 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4921,9 +4940,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 184: +case 185: YY_RULE_SETUP -#line 1897 "dhcp4_lexer.ll" +#line 1908 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4934,9 +4953,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 185: +case 186: YY_RULE_SETUP -#line 1907 "dhcp4_lexer.ll" +#line 1918 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4947,9 +4966,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 186: +case 187: YY_RULE_SETUP -#line 1917 "dhcp4_lexer.ll" +#line 1928 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4960,9 +4979,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 187: +case 188: YY_RULE_SETUP -#line 1927 "dhcp4_lexer.ll" +#line 1938 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4973,9 +4992,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 188: +case 189: YY_RULE_SETUP -#line 1937 "dhcp4_lexer.ll" +#line 1948 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4985,9 +5004,9 @@ YY_RULE_SETUP } } YY_BREAK -case 189: +case 190: YY_RULE_SETUP -#line 1946 "dhcp4_lexer.ll" +#line 1957 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4997,9 +5016,9 @@ YY_RULE_SETUP } } YY_BREAK -case 190: +case 191: YY_RULE_SETUP -#line 1955 "dhcp4_lexer.ll" +#line 1966 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -5009,9 +5028,9 @@ YY_RULE_SETUP } } YY_BREAK -case 191: +case 192: YY_RULE_SETUP -#line 1964 "dhcp4_lexer.ll" +#line 1975 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5021,9 +5040,9 @@ YY_RULE_SETUP } } YY_BREAK -case 192: +case 193: YY_RULE_SETUP -#line 1973 "dhcp4_lexer.ll" +#line 1984 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5035,9 +5054,9 @@ YY_RULE_SETUP } } YY_BREAK -case 193: +case 194: YY_RULE_SETUP -#line 1984 "dhcp4_lexer.ll" +#line 1995 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5049,9 +5068,9 @@ YY_RULE_SETUP } } YY_BREAK -case 194: +case 195: YY_RULE_SETUP -#line 1995 "dhcp4_lexer.ll" +#line 2006 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5065,9 +5084,9 @@ YY_RULE_SETUP } } YY_BREAK -case 195: +case 196: YY_RULE_SETUP -#line 2008 "dhcp4_lexer.ll" +#line 2019 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5081,9 +5100,9 @@ YY_RULE_SETUP } } YY_BREAK -case 196: +case 197: YY_RULE_SETUP -#line 2021 "dhcp4_lexer.ll" +#line 2032 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5097,9 +5116,9 @@ YY_RULE_SETUP } } YY_BREAK -case 197: +case 198: YY_RULE_SETUP -#line 2034 "dhcp4_lexer.ll" +#line 2045 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5109,9 +5128,9 @@ YY_RULE_SETUP } } YY_BREAK -case 198: +case 199: YY_RULE_SETUP -#line 2043 "dhcp4_lexer.ll" +#line 2054 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5121,9 +5140,9 @@ YY_RULE_SETUP } } YY_BREAK -case 199: +case 200: YY_RULE_SETUP -#line 2052 "dhcp4_lexer.ll" +#line 2063 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5133,9 +5152,9 @@ YY_RULE_SETUP } } YY_BREAK -case 200: +case 201: YY_RULE_SETUP -#line 2061 "dhcp4_lexer.ll" +#line 2072 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5145,9 +5164,9 @@ YY_RULE_SETUP } } YY_BREAK -case 201: +case 202: YY_RULE_SETUP -#line 2070 "dhcp4_lexer.ll" +#line 2081 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5157,9 +5176,9 @@ YY_RULE_SETUP } } YY_BREAK -case 202: +case 203: YY_RULE_SETUP -#line 2079 "dhcp4_lexer.ll" +#line 2090 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5169,9 +5188,9 @@ YY_RULE_SETUP } } YY_BREAK -case 203: +case 204: YY_RULE_SETUP -#line 2088 "dhcp4_lexer.ll" +#line 2099 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5181,9 +5200,9 @@ YY_RULE_SETUP } } YY_BREAK -case 204: +case 205: YY_RULE_SETUP -#line 2097 "dhcp4_lexer.ll" +#line 2108 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5193,9 +5212,9 @@ YY_RULE_SETUP } } YY_BREAK -case 205: +case 206: YY_RULE_SETUP -#line 2106 "dhcp4_lexer.ll" +#line 2117 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5208,9 +5227,9 @@ YY_RULE_SETUP } } YY_BREAK -case 206: +case 207: YY_RULE_SETUP -#line 2118 "dhcp4_lexer.ll" +#line 2129 "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. @@ -5312,10 +5331,10 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 207: -/* rule 207 can match eol */ +case 208: +/* rule 208 can match eol */ YY_RULE_SETUP -#line 2219 "dhcp4_lexer.ll" +#line 2230 "dhcp4_lexer.ll" { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -5332,10 +5351,10 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 208: -/* rule 208 can match eol */ +case 209: +/* rule 209 can match eol */ YY_RULE_SETUP -#line 2235 "dhcp4_lexer.ll" +#line 2246 "dhcp4_lexer.ll" { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -5385,9 +5404,9 @@ YY_RULE_SETUP pos); } YY_BREAK -case 209: +case 210: YY_RULE_SETUP -#line 2284 "dhcp4_lexer.ll" +#line 2295 "dhcp4_lexer.ll" { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -5396,9 +5415,9 @@ YY_RULE_SETUP raw.size() + 1); } YY_BREAK -case 210: +case 211: YY_RULE_SETUP -#line 2292 "dhcp4_lexer.ll" +#line 2303 "dhcp4_lexer.ll" { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5414,39 +5433,39 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 211: +case 212: YY_RULE_SETUP -#line 2307 "dhcp4_lexer.ll" +#line 2318 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 212: +case 213: YY_RULE_SETUP -#line 2308 "dhcp4_lexer.ll" +#line 2319 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 213: +case 214: YY_RULE_SETUP -#line 2309 "dhcp4_lexer.ll" +#line 2320 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 214: +case 215: YY_RULE_SETUP -#line 2310 "dhcp4_lexer.ll" +#line 2321 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 215: +case 216: YY_RULE_SETUP -#line 2311 "dhcp4_lexer.ll" +#line 2322 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } YY_BREAK -case 216: +case 217: YY_RULE_SETUP -#line 2312 "dhcp4_lexer.ll" +#line 2323 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } YY_BREAK -case 217: +case 218: YY_RULE_SETUP -#line 2314 "dhcp4_lexer.ll" +#line 2325 "dhcp4_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -5465,9 +5484,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 218: +case 219: YY_RULE_SETUP -#line 2332 "dhcp4_lexer.ll" +#line 2343 "dhcp4_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -5481,43 +5500,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 219: +case 220: YY_RULE_SETUP -#line 2345 "dhcp4_lexer.ll" +#line 2356 "dhcp4_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 220: +case 221: YY_RULE_SETUP -#line 2350 "dhcp4_lexer.ll" +#line 2361 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 221: +case 222: YY_RULE_SETUP -#line 2354 "dhcp4_lexer.ll" +#line 2365 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 222: +case 223: YY_RULE_SETUP -#line 2356 "dhcp4_lexer.ll" +#line 2367 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 223: +case 224: YY_RULE_SETUP -#line 2358 "dhcp4_lexer.ll" +#line 2369 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 224: +case 225: YY_RULE_SETUP -#line 2360 "dhcp4_lexer.ll" +#line 2371 "dhcp4_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2362 "dhcp4_lexer.ll" +#line 2373 "dhcp4_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp4Parser::make_END(driver.loc_); @@ -5541,12 +5560,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 225: +case 226: YY_RULE_SETUP -#line 2385 "dhcp4_lexer.ll" +#line 2396 "dhcp4_lexer.ll" ECHO; YY_BREAK -#line 5549 "dhcp4_lexer.cc" +#line 5569 "dhcp4_lexer.cc" case YY_END_OF_BUFFER: { @@ -5865,7 +5884,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 2227 ) + if ( yy_current_state >= 2239 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5898,11 +5917,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 2227 ) + if ( yy_current_state >= 2239 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 2226); + yy_is_jam = (yy_current_state == 2238); return yy_is_jam ? 0 : yy_current_state; } @@ -6651,7 +6670,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2385 "dhcp4_lexer.ll" +#line 2396 "dhcp4_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll index 3ac2354b38..92a719e678 100644 --- a/src/bin/dhcp4/dhcp4_lexer.ll +++ b/src/bin/dhcp4/dhcp4_lexer.ll @@ -858,6 +858,17 @@ ControlCharacterFill [^"\\]|\\["\\/bfnrtu] } } +\"ddns-ttl-percent\" { + 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_TTL_PERCENT(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("ddns_ttl-percent", driver.loc_); + } +} + \"subnet4\" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc index 4f6bffdb02..88712edef3 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.8.2. +// A Bison parser, made by GNU Bison 3.7.2. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ // GNU General Public License for more details. // You should have received a copy of the GNU General Public License -// along with this program. If not, see <https://www.gnu.org/licenses/>. +// along with this program. If not, see <http://www.gnu.org/licenses/>. // As a special exception, you may create a larger work that contains // part or all of the Bison parser skeleton and distribute that work @@ -125,7 +125,7 @@ #else // !PARSER4_DEBUG # define YYCDEBUG if (false) std::cerr -# define YY_SYMBOL_PRINT(Title, Symbol) YY_USE (Symbol) +# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol) # define YY_REDUCE_PRINT(Rule) static_cast<void> (0) # define YY_STACK_PRINT() static_cast<void> (0) @@ -160,9 +160,9 @@ namespace isc { namespace dhcp { Dhcp4Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW {} - /*---------. - | symbol. | - `---------*/ + /*---------------. + | symbol kinds. | + `---------------*/ @@ -390,7 +390,7 @@ namespace isc { namespace dhcp { Dhcp4Parser::yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const { std::ostream& yyoutput = yyo; - YY_USE (yyoutput); + YYUSE (yyoutput); if (yysym.empty ()) yyo << "empty symbol"; else @@ -402,79 +402,79 @@ namespace isc { namespace dhcp { switch (yykind) { case symbol_kind::S_STRING: // "constant string" -#line 297 "dhcp4_parser.yy" +#line 298 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 408 "dhcp4_parser.cc" break; case symbol_kind::S_INTEGER: // "integer" -#line 297 "dhcp4_parser.yy" +#line 298 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 414 "dhcp4_parser.cc" break; case symbol_kind::S_FLOAT: // "floating point" -#line 297 "dhcp4_parser.yy" +#line 298 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 420 "dhcp4_parser.cc" break; case symbol_kind::S_BOOLEAN: // "boolean" -#line 297 "dhcp4_parser.yy" +#line 298 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 426 "dhcp4_parser.cc" break; case symbol_kind::S_value: // value -#line 297 "dhcp4_parser.yy" +#line 298 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 432 "dhcp4_parser.cc" break; case symbol_kind::S_map_value: // map_value -#line 297 "dhcp4_parser.yy" +#line 298 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 438 "dhcp4_parser.cc" break; case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 297 "dhcp4_parser.yy" +#line 298 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 444 "dhcp4_parser.cc" break; case symbol_kind::S_socket_type: // socket_type -#line 297 "dhcp4_parser.yy" +#line 298 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 450 "dhcp4_parser.cc" break; case symbol_kind::S_outbound_interface_value: // outbound_interface_value -#line 297 "dhcp4_parser.yy" +#line 298 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 456 "dhcp4_parser.cc" break; case symbol_kind::S_db_type: // db_type -#line 297 "dhcp4_parser.yy" +#line 298 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 462 "dhcp4_parser.cc" break; case symbol_kind::S_on_fail_mode: // on_fail_mode -#line 297 "dhcp4_parser.yy" +#line 298 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 468 "dhcp4_parser.cc" break; case symbol_kind::S_hr_mode: // hr_mode -#line 297 "dhcp4_parser.yy" +#line 298 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 474 "dhcp4_parser.cc" break; case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 297 "dhcp4_parser.yy" +#line 298 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 480 "dhcp4_parser.cc" break; @@ -507,7 +507,7 @@ namespace isc { namespace dhcp { } void - Dhcp4Parser::yypop_ (int n) YY_NOEXCEPT + Dhcp4Parser::yypop_ (int n) { yystack_.pop (n); } @@ -550,13 +550,13 @@ namespace isc { namespace dhcp { } bool - Dhcp4Parser::yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT + Dhcp4Parser::yy_pact_value_is_default_ (int yyvalue) { return yyvalue == yypact_ninf_; } bool - Dhcp4Parser::yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT + Dhcp4Parser::yy_table_value_is_error_ (int yyvalue) { return yyvalue == yytable_ninf_; } @@ -755,127 +755,127 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: // $@1: %empty -#line 306 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 761 "dhcp4_parser.cc" break; case 4: // $@2: %empty -#line 307 "dhcp4_parser.yy" +#line 308 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 767 "dhcp4_parser.cc" break; case 6: // $@3: %empty -#line 308 "dhcp4_parser.yy" +#line 309 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 773 "dhcp4_parser.cc" break; case 8: // $@4: %empty -#line 309 "dhcp4_parser.yy" +#line 310 "dhcp4_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 779 "dhcp4_parser.cc" break; case 10: // $@5: %empty -#line 310 "dhcp4_parser.yy" +#line 311 "dhcp4_parser.yy" { ctx.ctx_ = ctx.SUBNET4; } #line 785 "dhcp4_parser.cc" break; case 12: // $@6: %empty -#line 311 "dhcp4_parser.yy" +#line 312 "dhcp4_parser.yy" { ctx.ctx_ = ctx.POOLS; } #line 791 "dhcp4_parser.cc" break; case 14: // $@7: %empty -#line 312 "dhcp4_parser.yy" +#line 313 "dhcp4_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } #line 797 "dhcp4_parser.cc" break; case 16: // $@8: %empty -#line 313 "dhcp4_parser.yy" +#line 314 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 803 "dhcp4_parser.cc" break; case 18: // $@9: %empty -#line 314 "dhcp4_parser.yy" +#line 315 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } #line 809 "dhcp4_parser.cc" break; case 20: // $@10: %empty -#line 315 "dhcp4_parser.yy" +#line 316 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } #line 815 "dhcp4_parser.cc" break; case 22: // $@11: %empty -#line 316 "dhcp4_parser.yy" +#line 317 "dhcp4_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 821 "dhcp4_parser.cc" break; case 24: // $@12: %empty -#line 317 "dhcp4_parser.yy" +#line 318 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } #line 827 "dhcp4_parser.cc" break; case 26: // $@13: %empty -#line 318 "dhcp4_parser.yy" +#line 319 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 833 "dhcp4_parser.cc" break; case 28: // value: "integer" -#line 326 "dhcp4_parser.yy" +#line 327 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 839 "dhcp4_parser.cc" break; case 29: // value: "floating point" -#line 327 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 845 "dhcp4_parser.cc" break; case 30: // value: "boolean" -#line 328 "dhcp4_parser.yy" +#line 329 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 851 "dhcp4_parser.cc" break; case 31: // value: "constant string" -#line 329 "dhcp4_parser.yy" +#line 330 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 857 "dhcp4_parser.cc" break; case 32: // value: "null" -#line 330 "dhcp4_parser.yy" +#line 331 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 863 "dhcp4_parser.cc" break; case 33: // value: map2 -#line 331 "dhcp4_parser.yy" +#line 332 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 869 "dhcp4_parser.cc" break; case 34: // value: list_generic -#line 332 "dhcp4_parser.yy" +#line 333 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 875 "dhcp4_parser.cc" break; case 35: // sub_json: value -#line 335 "dhcp4_parser.yy" +#line 336 "dhcp4_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); @@ -884,7 +884,7 @@ namespace isc { namespace dhcp { break; case 36: // $@14: %empty -#line 340 "dhcp4_parser.yy" +#line 341 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -895,7 +895,7 @@ namespace isc { namespace dhcp { break; case 37: // map2: "{" $@14 map_content "}" -#line 345 "dhcp4_parser.yy" +#line 346 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -905,13 +905,13 @@ namespace isc { namespace dhcp { break; case 38: // map_value: map2 -#line 351 "dhcp4_parser.yy" +#line 352 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 911 "dhcp4_parser.cc" break; case 41: // not_empty_map: "constant string" ":" value -#line 358 "dhcp4_parser.yy" +#line 359 "dhcp4_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); @@ -921,7 +921,7 @@ namespace isc { namespace dhcp { break; case 42: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 363 "dhcp4_parser.yy" +#line 364 "dhcp4_parser.yy" { // map consisting of a shorter map followed by // comma and string:value @@ -932,7 +932,7 @@ namespace isc { namespace dhcp { break; case 43: // not_empty_map: not_empty_map "," -#line 369 "dhcp4_parser.yy" +#line 370 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -940,7 +940,7 @@ namespace isc { namespace dhcp { break; case 44: // $@15: %empty -#line 374 "dhcp4_parser.yy" +#line 375 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -949,7 +949,7 @@ namespace isc { namespace dhcp { break; case 45: // list_generic: "[" $@15 list_content "]" -#line 377 "dhcp4_parser.yy" +#line 378 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here } @@ -957,7 +957,7 @@ namespace isc { namespace dhcp { break; case 48: // not_empty_list: value -#line 385 "dhcp4_parser.yy" +#line 386 "dhcp4_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -966,7 +966,7 @@ namespace isc { namespace dhcp { break; case 49: // not_empty_list: not_empty_list "," value -#line 389 "dhcp4_parser.yy" +#line 390 "dhcp4_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -975,7 +975,7 @@ namespace isc { namespace dhcp { break; case 50: // not_empty_list: not_empty_list "," -#line 393 "dhcp4_parser.yy" +#line 394 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -983,7 +983,7 @@ namespace isc { namespace dhcp { break; case 51: // $@16: %empty -#line 399 "dhcp4_parser.yy" +#line 400 "dhcp4_parser.yy" { // List parsing about to start } @@ -991,7 +991,7 @@ namespace isc { namespace dhcp { break; case 52: // list_strings: "[" $@16 list_strings_content "]" -#line 401 "dhcp4_parser.yy" +#line 402 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -1000,7 +1000,7 @@ namespace isc { namespace dhcp { break; case 55: // not_empty_list_strings: "constant string" -#line 410 "dhcp4_parser.yy" +#line 411 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1009,7 +1009,7 @@ namespace isc { namespace dhcp { break; case 56: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 414 "dhcp4_parser.yy" +#line 415 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1018,7 +1018,7 @@ namespace isc { namespace dhcp { break; case 57: // not_empty_list_strings: not_empty_list_strings "," -#line 418 "dhcp4_parser.yy" +#line 419 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1026,7 +1026,7 @@ namespace isc { namespace dhcp { break; case 58: // unknown_map_entry: "constant string" ":" -#line 428 "dhcp4_parser.yy" +#line 429 "dhcp4_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); @@ -1037,7 +1037,7 @@ namespace isc { namespace dhcp { break; case 59: // $@17: %empty -#line 437 "dhcp4_parser.yy" +#line 438 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1048,7 +1048,7 @@ namespace isc { namespace dhcp { break; case 60: // syntax_map: "{" $@17 global_object "}" -#line 442 "dhcp4_parser.yy" +#line 443 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1061,7 +1061,7 @@ namespace isc { namespace dhcp { break; case 61: // $@18: %empty -#line 452 "dhcp4_parser.yy" +#line 453 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1076,7 +1076,7 @@ namespace isc { namespace dhcp { break; case 62: // global_object: "Dhcp4" $@18 ":" "{" global_params "}" -#line 461 "dhcp4_parser.yy" +#line 462 "dhcp4_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); @@ -1086,7 +1086,7 @@ namespace isc { namespace dhcp { break; case 64: // global_object_comma: global_object "," -#line 469 "dhcp4_parser.yy" +#line 470 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1094,7 +1094,7 @@ namespace isc { namespace dhcp { break; case 65: // $@19: %empty -#line 475 "dhcp4_parser.yy" +#line 476 "dhcp4_parser.yy" { // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1104,7 +1104,7 @@ namespace isc { namespace dhcp { break; case 66: // sub_dhcp4: "{" $@19 global_params "}" -#line 479 "dhcp4_parser.yy" +#line 480 "dhcp4_parser.yy" { // No global parameter is required // parsing completed @@ -1113,15 +1113,15 @@ namespace isc { namespace dhcp { break; case 69: // global_params: global_params "," -#line 486 "dhcp4_parser.yy" +#line 487 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } #line 1121 "dhcp4_parser.cc" break; - case 136: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 561 "dhcp4_parser.yy" + case 137: // valid_lifetime: "valid-lifetime" ":" "integer" +#line 563 "dhcp4_parser.yy" { ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1130,8 +1130,8 @@ namespace isc { namespace dhcp { #line 1131 "dhcp4_parser.cc" break; - case 137: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 567 "dhcp4_parser.yy" + case 138: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" +#line 569 "dhcp4_parser.yy" { ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1140,8 +1140,8 @@ namespace isc { namespace dhcp { #line 1141 "dhcp4_parser.cc" break; - case 138: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 573 "dhcp4_parser.yy" + case 139: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" +#line 575 "dhcp4_parser.yy" { ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1150,8 +1150,8 @@ namespace isc { namespace dhcp { #line 1151 "dhcp4_parser.cc" break; - case 139: // renew_timer: "renew-timer" ":" "integer" -#line 579 "dhcp4_parser.yy" + case 140: // renew_timer: "renew-timer" ":" "integer" +#line 581 "dhcp4_parser.yy" { ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1160,8 +1160,8 @@ namespace isc { namespace dhcp { #line 1161 "dhcp4_parser.cc" break; - case 140: // rebind_timer: "rebind-timer" ":" "integer" -#line 585 "dhcp4_parser.yy" + case 141: // rebind_timer: "rebind-timer" ":" "integer" +#line 587 "dhcp4_parser.yy" { ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1170,8 +1170,8 @@ namespace isc { namespace dhcp { #line 1171 "dhcp4_parser.cc" break; - case 141: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 591 "dhcp4_parser.yy" + case 142: // calculate_tee_times: "calculate-tee-times" ":" "boolean" +#line 593 "dhcp4_parser.yy" { ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location)); ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1180,8 +1180,8 @@ namespace isc { namespace dhcp { #line 1181 "dhcp4_parser.cc" break; - case 142: // t1_percent: "t1-percent" ":" "floating point" -#line 597 "dhcp4_parser.yy" + case 143: // t1_percent: "t1-percent" ":" "floating point" +#line 599 "dhcp4_parser.yy" { ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1190,8 +1190,8 @@ namespace isc { namespace dhcp { #line 1191 "dhcp4_parser.cc" break; - case 143: // t2_percent: "t2-percent" ":" "floating point" -#line 603 "dhcp4_parser.yy" + case 144: // t2_percent: "t2-percent" ":" "floating point" +#line 605 "dhcp4_parser.yy" { ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1200,8 +1200,8 @@ namespace isc { namespace dhcp { #line 1201 "dhcp4_parser.cc" break; - case 144: // cache_threshold: "cache-threshold" ":" "floating point" -#line 609 "dhcp4_parser.yy" + case 145: // cache_threshold: "cache-threshold" ":" "floating point" +#line 611 "dhcp4_parser.yy" { ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location)); ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1210,8 +1210,8 @@ namespace isc { namespace dhcp { #line 1211 "dhcp4_parser.cc" break; - case 145: // cache_max_age: "cache-max-age" ":" "integer" -#line 615 "dhcp4_parser.yy" + case 146: // cache_max_age: "cache-max-age" ":" "integer" +#line 617 "dhcp4_parser.yy" { ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location)); ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1220,8 +1220,8 @@ namespace isc { namespace dhcp { #line 1221 "dhcp4_parser.cc" break; - case 146: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 621 "dhcp4_parser.yy" + case 147: // decline_probation_period: "decline-probation-period" ":" "integer" +#line 623 "dhcp4_parser.yy" { ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location)); ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1230,8 +1230,8 @@ namespace isc { namespace dhcp { #line 1231 "dhcp4_parser.cc" break; - case 147: // $@20: %empty -#line 627 "dhcp4_parser.yy" + case 148: // $@20: %empty +#line 629 "dhcp4_parser.yy" { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1239,8 +1239,8 @@ namespace isc { namespace dhcp { #line 1240 "dhcp4_parser.cc" break; - case 148: // server_tag: "server-tag" $@20 ":" "constant string" -#line 630 "dhcp4_parser.yy" + case 149: // server_tag: "server-tag" $@20 ":" "constant string" +#line 632 "dhcp4_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); @@ -1249,8 +1249,8 @@ namespace isc { namespace dhcp { #line 1250 "dhcp4_parser.cc" break; - case 149: // parked_packet_limit: "parked-packet-limit" ":" "integer" -#line 636 "dhcp4_parser.yy" + case 150: // parked_packet_limit: "parked-packet-limit" ":" "integer" +#line 638 "dhcp4_parser.yy" { ctx.unique("parked-packet-limit", ctx.loc2pos(yystack_[2].location)); ElementPtr ppl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1259,8 +1259,8 @@ namespace isc { namespace dhcp { #line 1260 "dhcp4_parser.cc" break; - case 150: // $@21: %empty -#line 642 "dhcp4_parser.yy" + case 151: // $@21: %empty +#line 644 "dhcp4_parser.yy" { ctx.unique("allocator", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1268,8 +1268,8 @@ namespace isc { namespace dhcp { #line 1269 "dhcp4_parser.cc" break; - case 151: // allocator: "allocator" $@21 ":" "constant string" -#line 645 "dhcp4_parser.yy" + case 152: // allocator: "allocator" $@21 ":" "constant string" +#line 647 "dhcp4_parser.yy" { ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("allocator", al); @@ -1278,8 +1278,8 @@ namespace isc { namespace dhcp { #line 1279 "dhcp4_parser.cc" break; - case 152: // echo_client_id: "echo-client-id" ":" "boolean" -#line 651 "dhcp4_parser.yy" + case 153: // echo_client_id: "echo-client-id" ":" "boolean" +#line 653 "dhcp4_parser.yy" { ctx.unique("echo-client-id", ctx.loc2pos(yystack_[2].location)); ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1288,8 +1288,8 @@ namespace isc { namespace dhcp { #line 1289 "dhcp4_parser.cc" break; - case 153: // match_client_id: "match-client-id" ":" "boolean" -#line 657 "dhcp4_parser.yy" + case 154: // match_client_id: "match-client-id" ":" "boolean" +#line 659 "dhcp4_parser.yy" { ctx.unique("match-client-id", ctx.loc2pos(yystack_[2].location)); ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1298,8 +1298,8 @@ namespace isc { namespace dhcp { #line 1299 "dhcp4_parser.cc" break; - case 154: // authoritative: "authoritative" ":" "boolean" -#line 663 "dhcp4_parser.yy" + case 155: // authoritative: "authoritative" ":" "boolean" +#line 665 "dhcp4_parser.yy" { ctx.unique("authoritative", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1308,8 +1308,8 @@ namespace isc { namespace dhcp { #line 1309 "dhcp4_parser.cc" break; - case 155: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 669 "dhcp4_parser.yy" + case 156: // ddns_send_updates: "ddns-send-updates" ":" "boolean" +#line 671 "dhcp4_parser.yy" { ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1318,8 +1318,8 @@ namespace isc { namespace dhcp { #line 1319 "dhcp4_parser.cc" break; - case 156: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 675 "dhcp4_parser.yy" + case 157: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" +#line 677 "dhcp4_parser.yy" { ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1328,8 +1328,8 @@ namespace isc { namespace dhcp { #line 1329 "dhcp4_parser.cc" break; - case 157: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 681 "dhcp4_parser.yy" + case 158: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" +#line 683 "dhcp4_parser.yy" { ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1338,8 +1338,8 @@ namespace isc { namespace dhcp { #line 1339 "dhcp4_parser.cc" break; - case 158: // $@22: %empty -#line 687 "dhcp4_parser.yy" + case 159: // $@22: %empty +#line 689 "dhcp4_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); @@ -1347,8 +1347,8 @@ namespace isc { namespace dhcp { #line 1348 "dhcp4_parser.cc" break; - case 159: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value -#line 690 "dhcp4_parser.yy" + case 160: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value +#line 692 "dhcp4_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1356,40 +1356,40 @@ namespace isc { namespace dhcp { #line 1357 "dhcp4_parser.cc" break; - case 160: // ddns_replace_client_name_value: "when-present" -#line 696 "dhcp4_parser.yy" + case 161: // ddns_replace_client_name_value: "when-present" +#line 698 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } #line 1365 "dhcp4_parser.cc" break; - case 161: // ddns_replace_client_name_value: "never" -#line 699 "dhcp4_parser.yy" + case 162: // ddns_replace_client_name_value: "never" +#line 701 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } #line 1373 "dhcp4_parser.cc" break; - case 162: // ddns_replace_client_name_value: "always" -#line 702 "dhcp4_parser.yy" + case 163: // ddns_replace_client_name_value: "always" +#line 704 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } #line 1381 "dhcp4_parser.cc" break; - case 163: // ddns_replace_client_name_value: "when-not-present" -#line 705 "dhcp4_parser.yy" + case 164: // ddns_replace_client_name_value: "when-not-present" +#line 707 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } #line 1389 "dhcp4_parser.cc" break; - case 164: // ddns_replace_client_name_value: "boolean" -#line 708 "dhcp4_parser.yy" + case 165: // ddns_replace_client_name_value: "boolean" +#line 710 "dhcp4_parser.yy" { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); @@ -1397,8 +1397,8 @@ namespace isc { namespace dhcp { #line 1398 "dhcp4_parser.cc" break; - case 165: // $@23: %empty -#line 714 "dhcp4_parser.yy" + case 166: // $@23: %empty +#line 716 "dhcp4_parser.yy" { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1406,8 +1406,8 @@ namespace isc { namespace dhcp { #line 1407 "dhcp4_parser.cc" break; - case 166: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" -#line 717 "dhcp4_parser.yy" + case 167: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" +#line 719 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-generated-prefix", s); @@ -1416,8 +1416,8 @@ namespace isc { namespace dhcp { #line 1417 "dhcp4_parser.cc" break; - case 167: // $@24: %empty -#line 723 "dhcp4_parser.yy" + case 168: // $@24: %empty +#line 725 "dhcp4_parser.yy" { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1425,8 +1425,8 @@ namespace isc { namespace dhcp { #line 1426 "dhcp4_parser.cc" break; - case 168: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" -#line 726 "dhcp4_parser.yy" + case 169: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" +#line 728 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-qualifying-suffix", s); @@ -1435,8 +1435,8 @@ namespace isc { namespace dhcp { #line 1436 "dhcp4_parser.cc" break; - case 169: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 732 "dhcp4_parser.yy" + case 170: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" +#line 734 "dhcp4_parser.yy" { ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1445,8 +1445,8 @@ namespace isc { namespace dhcp { #line 1446 "dhcp4_parser.cc" break; - case 170: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" -#line 738 "dhcp4_parser.yy" + case 171: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" +#line 740 "dhcp4_parser.yy" { ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1455,116 +1455,126 @@ namespace isc { namespace dhcp { #line 1456 "dhcp4_parser.cc" break; - case 171: // $@25: %empty -#line 744 "dhcp4_parser.yy" + case 172: // ddns_ttl_percent: "ddns-ttl-percent" ":" "floating point" +#line 746 "dhcp4_parser.yy" + { + ctx.unique("ddns-ttl-percent", ctx.loc2pos(yystack_[2].location)); + ElementPtr ttl(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-ttl-percent", ttl); +} +#line 1466 "dhcp4_parser.cc" + break; + + case 173: // $@25: %empty +#line 752 "dhcp4_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1465 "dhcp4_parser.cc" +#line 1475 "dhcp4_parser.cc" break; - case 172: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string" -#line 747 "dhcp4_parser.yy" + case 174: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string" +#line 755 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 1475 "dhcp4_parser.cc" +#line 1485 "dhcp4_parser.cc" break; - case 173: // $@26: %empty -#line 753 "dhcp4_parser.yy" + case 175: // $@26: %empty +#line 761 "dhcp4_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1484 "dhcp4_parser.cc" +#line 1494 "dhcp4_parser.cc" break; - case 174: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string" -#line 756 "dhcp4_parser.yy" + case 176: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string" +#line 764 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 1494 "dhcp4_parser.cc" +#line 1504 "dhcp4_parser.cc" break; - case 175: // store_extended_info: "store-extended-info" ":" "boolean" -#line 762 "dhcp4_parser.yy" + case 177: // store_extended_info: "store-extended-info" ":" "boolean" +#line 770 "dhcp4_parser.yy" { ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("store-extended-info", b); } -#line 1504 "dhcp4_parser.cc" +#line 1514 "dhcp4_parser.cc" break; - case 176: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 768 "dhcp4_parser.yy" + case 178: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" +#line 776 "dhcp4_parser.yy" { ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location)); ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("statistic-default-sample-count", count); } -#line 1514 "dhcp4_parser.cc" +#line 1524 "dhcp4_parser.cc" break; - case 177: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 774 "dhcp4_parser.yy" + case 179: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" +#line 782 "dhcp4_parser.yy" { ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location)); ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("statistic-default-sample-age", age); } -#line 1524 "dhcp4_parser.cc" +#line 1534 "dhcp4_parser.cc" break; - case 178: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean" -#line 780 "dhcp4_parser.yy" + case 180: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean" +#line 788 "dhcp4_parser.yy" { ctx.unique("early-global-reservations-lookup", ctx.loc2pos(yystack_[2].location)); ElementPtr early(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("early-global-reservations-lookup", early); } -#line 1534 "dhcp4_parser.cc" +#line 1544 "dhcp4_parser.cc" break; - case 179: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 786 "dhcp4_parser.yy" + case 181: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" +#line 794 "dhcp4_parser.yy" { ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location)); ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-reservations-unique", unique); } -#line 1544 "dhcp4_parser.cc" +#line 1554 "dhcp4_parser.cc" break; - case 180: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean" -#line 792 "dhcp4_parser.yy" + case 182: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean" +#line 800 "dhcp4_parser.yy" { ctx.unique("reservations-lookup-first", ctx.loc2pos(yystack_[2].location)); ElementPtr first(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-lookup-first", first); } -#line 1554 "dhcp4_parser.cc" +#line 1564 "dhcp4_parser.cc" break; - case 181: // offer_lifetime: "offer-lifetime" ":" "integer" -#line 798 "dhcp4_parser.yy" + case 183: // offer_lifetime: "offer-lifetime" ":" "integer" +#line 806 "dhcp4_parser.yy" { ctx.unique("offer-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr offer_lifetime(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("offer-lifetime", offer_lifetime); } -#line 1564 "dhcp4_parser.cc" +#line 1574 "dhcp4_parser.cc" break; - case 182: // $@27: %empty -#line 804 "dhcp4_parser.yy" + case 184: // $@27: %empty +#line 812 "dhcp4_parser.yy" { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1572,48 +1582,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1576 "dhcp4_parser.cc" +#line 1586 "dhcp4_parser.cc" break; - case 183: // interfaces_config: "interfaces-config" $@27 ":" "{" interfaces_config_params "}" -#line 810 "dhcp4_parser.yy" + case 185: // interfaces_config: "interfaces-config" $@27 ":" "{" interfaces_config_params "}" +#line 818 "dhcp4_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1586 "dhcp4_parser.cc" +#line 1596 "dhcp4_parser.cc" break; - case 186: // interfaces_config_params: interfaces_config_params "," -#line 818 "dhcp4_parser.yy" + case 188: // interfaces_config_params: interfaces_config_params "," +#line 826 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1594 "dhcp4_parser.cc" +#line 1604 "dhcp4_parser.cc" break; - case 197: // $@28: %empty -#line 835 "dhcp4_parser.yy" + case 199: // $@28: %empty +#line 843 "dhcp4_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1604 "dhcp4_parser.cc" +#line 1614 "dhcp4_parser.cc" break; - case 198: // sub_interfaces4: "{" $@28 interfaces_config_params "}" -#line 839 "dhcp4_parser.yy" + case 200: // sub_interfaces4: "{" $@28 interfaces_config_params "}" +#line 847 "dhcp4_parser.yy" { // No interfaces config param is required // parsing completed } -#line 1613 "dhcp4_parser.cc" +#line 1623 "dhcp4_parser.cc" break; - case 199: // $@29: %empty -#line 844 "dhcp4_parser.yy" + case 201: // $@29: %empty +#line 852 "dhcp4_parser.yy" { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1621,124 +1631,124 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1625 "dhcp4_parser.cc" +#line 1635 "dhcp4_parser.cc" break; - case 200: // interfaces_list: "interfaces" $@29 ":" list_strings -#line 850 "dhcp4_parser.yy" + case 202: // interfaces_list: "interfaces" $@29 ":" list_strings +#line 858 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1634 "dhcp4_parser.cc" +#line 1644 "dhcp4_parser.cc" break; - case 201: // $@30: %empty -#line 855 "dhcp4_parser.yy" + case 203: // $@30: %empty +#line 863 "dhcp4_parser.yy" { ctx.unique("dhcp-socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DHCP_SOCKET_TYPE); } -#line 1643 "dhcp4_parser.cc" +#line 1653 "dhcp4_parser.cc" break; - case 202: // dhcp_socket_type: "dhcp-socket-type" $@30 ":" socket_type -#line 858 "dhcp4_parser.yy" + case 204: // dhcp_socket_type: "dhcp-socket-type" $@30 ":" socket_type +#line 866 "dhcp4_parser.yy" { ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1652 "dhcp4_parser.cc" +#line 1662 "dhcp4_parser.cc" break; - case 203: // socket_type: "raw" -#line 863 "dhcp4_parser.yy" + case 205: // socket_type: "raw" +#line 871 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } -#line 1658 "dhcp4_parser.cc" +#line 1668 "dhcp4_parser.cc" break; - case 204: // socket_type: "udp" -#line 864 "dhcp4_parser.yy" + case 206: // socket_type: "udp" +#line 872 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } -#line 1664 "dhcp4_parser.cc" +#line 1674 "dhcp4_parser.cc" break; - case 205: // $@31: %empty -#line 867 "dhcp4_parser.yy" + case 207: // $@31: %empty +#line 875 "dhcp4_parser.yy" { ctx.unique("outbound-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.OUTBOUND_INTERFACE); } -#line 1673 "dhcp4_parser.cc" +#line 1683 "dhcp4_parser.cc" break; - case 206: // outbound_interface: "outbound-interface" $@31 ":" outbound_interface_value -#line 870 "dhcp4_parser.yy" + case 208: // outbound_interface: "outbound-interface" $@31 ":" outbound_interface_value +#line 878 "dhcp4_parser.yy" { ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1682 "dhcp4_parser.cc" +#line 1692 "dhcp4_parser.cc" break; - case 207: // outbound_interface_value: "same-as-inbound" -#line 875 "dhcp4_parser.yy" + case 209: // outbound_interface_value: "same-as-inbound" +#line 883 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); } -#line 1690 "dhcp4_parser.cc" +#line 1700 "dhcp4_parser.cc" break; - case 208: // outbound_interface_value: "use-routing" -#line 877 "dhcp4_parser.yy" + case 210: // outbound_interface_value: "use-routing" +#line 885 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); } -#line 1698 "dhcp4_parser.cc" +#line 1708 "dhcp4_parser.cc" break; - case 209: // re_detect: "re-detect" ":" "boolean" -#line 881 "dhcp4_parser.yy" + case 211: // re_detect: "re-detect" ":" "boolean" +#line 889 "dhcp4_parser.yy" { ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("re-detect", b); } -#line 1708 "dhcp4_parser.cc" +#line 1718 "dhcp4_parser.cc" break; - case 210: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean" -#line 887 "dhcp4_parser.yy" + case 212: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean" +#line 895 "dhcp4_parser.yy" { ctx.unique("service-sockets-require-all", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("service-sockets-require-all", b); } -#line 1718 "dhcp4_parser.cc" +#line 1728 "dhcp4_parser.cc" break; - case 211: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer" -#line 893 "dhcp4_parser.yy" + case 213: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer" +#line 901 "dhcp4_parser.yy" { ctx.unique("service-sockets-retry-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("service-sockets-retry-wait-time", n); } -#line 1728 "dhcp4_parser.cc" +#line 1738 "dhcp4_parser.cc" break; - case 212: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer" -#line 899 "dhcp4_parser.yy" + case 214: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer" +#line 907 "dhcp4_parser.yy" { ctx.unique("service-sockets-max-retries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("service-sockets-max-retries", n); } -#line 1738 "dhcp4_parser.cc" +#line 1748 "dhcp4_parser.cc" break; - case 213: // $@32: %empty -#line 905 "dhcp4_parser.yy" + case 215: // $@32: %empty +#line 913 "dhcp4_parser.yy" { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1746,22 +1756,22 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1750 "dhcp4_parser.cc" +#line 1760 "dhcp4_parser.cc" break; - case 214: // lease_database: "lease-database" $@32 ":" "{" database_map_params "}" -#line 911 "dhcp4_parser.yy" + case 216: // lease_database: "lease-database" $@32 ":" "{" database_map_params "}" +#line 919 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1761 "dhcp4_parser.cc" +#line 1771 "dhcp4_parser.cc" break; - case 215: // $@33: %empty -#line 918 "dhcp4_parser.yy" + case 217: // $@33: %empty +#line 926 "dhcp4_parser.yy" { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1769,37 +1779,37 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 1773 "dhcp4_parser.cc" +#line 1783 "dhcp4_parser.cc" break; - case 216: // sanity_checks: "sanity-checks" $@33 ":" "{" sanity_checks_params "}" -#line 924 "dhcp4_parser.yy" + case 218: // sanity_checks: "sanity-checks" $@33 ":" "{" sanity_checks_params "}" +#line 932 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1782 "dhcp4_parser.cc" +#line 1792 "dhcp4_parser.cc" break; - case 219: // sanity_checks_params: sanity_checks_params "," -#line 931 "dhcp4_parser.yy" + case 221: // sanity_checks_params: sanity_checks_params "," +#line 939 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1790 "dhcp4_parser.cc" +#line 1800 "dhcp4_parser.cc" break; - case 222: // $@34: %empty -#line 940 "dhcp4_parser.yy" + case 224: // $@34: %empty +#line 948 "dhcp4_parser.yy" { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1799 "dhcp4_parser.cc" +#line 1809 "dhcp4_parser.cc" break; - case 223: // lease_checks: "lease-checks" $@34 ":" "constant string" -#line 943 "dhcp4_parser.yy" + case 225: // lease_checks: "lease-checks" $@34 ":" "constant string" +#line 951 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1815,20 +1825,20 @@ namespace isc { namespace dhcp { ", supported values are: none, warn, fix, fix-del, del"); } } -#line 1819 "dhcp4_parser.cc" +#line 1829 "dhcp4_parser.cc" break; - case 224: // $@35: %empty -#line 959 "dhcp4_parser.yy" + case 226: // $@35: %empty +#line 967 "dhcp4_parser.yy" { ctx.unique("extended-info-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1828 "dhcp4_parser.cc" +#line 1838 "dhcp4_parser.cc" break; - case 225: // extended_info_checks: "extended-info-checks" $@35 ":" "constant string" -#line 962 "dhcp4_parser.yy" + case 227: // extended_info_checks: "extended-info-checks" $@35 ":" "constant string" +#line 970 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1843,11 +1853,11 @@ namespace isc { namespace dhcp { ", supported values are: none, fix, strict, pedantic"); } } -#line 1847 "dhcp4_parser.cc" +#line 1857 "dhcp4_parser.cc" break; - case 226: // $@36: %empty -#line 977 "dhcp4_parser.yy" + case 228: // $@36: %empty +#line 985 "dhcp4_parser.yy" { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1855,22 +1865,22 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1859 "dhcp4_parser.cc" +#line 1869 "dhcp4_parser.cc" break; - case 227: // hosts_database: "hosts-database" $@36 ":" "{" database_map_params "}" -#line 983 "dhcp4_parser.yy" + case 229: // hosts_database: "hosts-database" $@36 ":" "{" database_map_params "}" +#line 991 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1870 "dhcp4_parser.cc" +#line 1880 "dhcp4_parser.cc" break; - case 228: // $@37: %empty -#line 990 "dhcp4_parser.yy" + case 230: // $@37: %empty +#line 998 "dhcp4_parser.yy" { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1878,390 +1888,390 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1882 "dhcp4_parser.cc" +#line 1892 "dhcp4_parser.cc" break; - case 229: // hosts_databases: "hosts-databases" $@37 ":" "[" database_list "]" -#line 996 "dhcp4_parser.yy" + case 231: // hosts_databases: "hosts-databases" $@37 ":" "[" database_list "]" +#line 1004 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1891 "dhcp4_parser.cc" +#line 1901 "dhcp4_parser.cc" break; - case 234: // not_empty_database_list: not_empty_database_list "," -#line 1007 "dhcp4_parser.yy" + case 236: // not_empty_database_list: not_empty_database_list "," +#line 1015 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1899 "dhcp4_parser.cc" +#line 1909 "dhcp4_parser.cc" break; - case 235: // $@38: %empty -#line 1012 "dhcp4_parser.yy" + case 237: // $@38: %empty +#line 1020 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1909 "dhcp4_parser.cc" +#line 1919 "dhcp4_parser.cc" break; - case 236: // database: "{" $@38 database_map_params "}" -#line 1016 "dhcp4_parser.yy" + case 238: // database: "{" $@38 database_map_params "}" +#line 1024 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1919 "dhcp4_parser.cc" +#line 1929 "dhcp4_parser.cc" break; - case 239: // database_map_params: database_map_params "," -#line 1024 "dhcp4_parser.yy" + case 241: // database_map_params: database_map_params "," +#line 1032 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1927 "dhcp4_parser.cc" +#line 1937 "dhcp4_parser.cc" break; - case 262: // $@39: %empty -#line 1053 "dhcp4_parser.yy" + case 264: // $@39: %empty +#line 1061 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_TYPE); } -#line 1936 "dhcp4_parser.cc" +#line 1946 "dhcp4_parser.cc" break; - case 263: // database_type: "type" $@39 ":" db_type -#line 1056 "dhcp4_parser.yy" + case 265: // database_type: "type" $@39 ":" db_type +#line 1064 "dhcp4_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1945 "dhcp4_parser.cc" +#line 1955 "dhcp4_parser.cc" break; - case 264: // db_type: "memfile" -#line 1061 "dhcp4_parser.yy" + case 266: // db_type: "memfile" +#line 1069 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1951 "dhcp4_parser.cc" +#line 1961 "dhcp4_parser.cc" break; - case 265: // db_type: "mysql" -#line 1062 "dhcp4_parser.yy" + case 267: // db_type: "mysql" +#line 1070 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1957 "dhcp4_parser.cc" +#line 1967 "dhcp4_parser.cc" break; - case 266: // db_type: "postgresql" -#line 1063 "dhcp4_parser.yy" + case 268: // db_type: "postgresql" +#line 1071 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1963 "dhcp4_parser.cc" +#line 1973 "dhcp4_parser.cc" break; - case 267: // $@40: %empty -#line 1066 "dhcp4_parser.yy" + case 269: // $@40: %empty +#line 1074 "dhcp4_parser.yy" { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1972 "dhcp4_parser.cc" +#line 1982 "dhcp4_parser.cc" break; - case 268: // user: "user" $@40 ":" "constant string" -#line 1069 "dhcp4_parser.yy" + case 270: // user: "user" $@40 ":" "constant string" +#line 1077 "dhcp4_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); ctx.leave(); } -#line 1982 "dhcp4_parser.cc" +#line 1992 "dhcp4_parser.cc" break; - case 269: // $@41: %empty -#line 1075 "dhcp4_parser.yy" + case 271: // $@41: %empty +#line 1083 "dhcp4_parser.yy" { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1991 "dhcp4_parser.cc" +#line 2001 "dhcp4_parser.cc" break; - case 270: // password: "password" $@41 ":" "constant string" -#line 1078 "dhcp4_parser.yy" + case 272: // password: "password" $@41 ":" "constant string" +#line 1086 "dhcp4_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); ctx.leave(); } -#line 2001 "dhcp4_parser.cc" +#line 2011 "dhcp4_parser.cc" break; - case 271: // $@42: %empty -#line 1084 "dhcp4_parser.yy" + case 273: // $@42: %empty +#line 1092 "dhcp4_parser.yy" { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2010 "dhcp4_parser.cc" +#line 2020 "dhcp4_parser.cc" break; - case 272: // host: "host" $@42 ":" "constant string" -#line 1087 "dhcp4_parser.yy" + case 274: // host: "host" $@42 ":" "constant string" +#line 1095 "dhcp4_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); ctx.leave(); } -#line 2020 "dhcp4_parser.cc" +#line 2030 "dhcp4_parser.cc" break; - case 273: // port: "port" ":" "integer" -#line 1093 "dhcp4_parser.yy" + case 275: // port: "port" ":" "integer" +#line 1101 "dhcp4_parser.yy" { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", p); } -#line 2030 "dhcp4_parser.cc" +#line 2040 "dhcp4_parser.cc" break; - case 274: // $@43: %empty -#line 1099 "dhcp4_parser.yy" + case 276: // $@43: %empty +#line 1107 "dhcp4_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2039 "dhcp4_parser.cc" +#line 2049 "dhcp4_parser.cc" break; - case 275: // name: "name" $@43 ":" "constant string" -#line 1102 "dhcp4_parser.yy" + case 277: // name: "name" $@43 ":" "constant string" +#line 1110 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 2049 "dhcp4_parser.cc" +#line 2059 "dhcp4_parser.cc" break; - case 276: // persist: "persist" ":" "boolean" -#line 1108 "dhcp4_parser.yy" + case 278: // persist: "persist" ":" "boolean" +#line 1116 "dhcp4_parser.yy" { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); } -#line 2059 "dhcp4_parser.cc" +#line 2069 "dhcp4_parser.cc" break; - case 277: // lfc_interval: "lfc-interval" ":" "integer" -#line 1114 "dhcp4_parser.yy" + case 279: // lfc_interval: "lfc-interval" ":" "integer" +#line 1122 "dhcp4_parser.yy" { ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); } -#line 2069 "dhcp4_parser.cc" +#line 2079 "dhcp4_parser.cc" break; - case 278: // readonly: "readonly" ":" "boolean" -#line 1120 "dhcp4_parser.yy" + case 280: // readonly: "readonly" ":" "boolean" +#line 1128 "dhcp4_parser.yy" { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); } -#line 2079 "dhcp4_parser.cc" +#line 2089 "dhcp4_parser.cc" break; - case 279: // connect_timeout: "connect-timeout" ":" "integer" -#line 1126 "dhcp4_parser.yy" + case 281: // connect_timeout: "connect-timeout" ":" "integer" +#line 1134 "dhcp4_parser.yy" { ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("connect-timeout", n); } -#line 2089 "dhcp4_parser.cc" +#line 2099 "dhcp4_parser.cc" break; - case 280: // read_timeout: "read-timeout" ":" "integer" -#line 1132 "dhcp4_parser.yy" + case 282: // read_timeout: "read-timeout" ":" "integer" +#line 1140 "dhcp4_parser.yy" { ctx.unique("read-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("read-timeout", n); } -#line 2099 "dhcp4_parser.cc" +#line 2109 "dhcp4_parser.cc" break; - case 281: // write_timeout: "write-timeout" ":" "integer" -#line 1138 "dhcp4_parser.yy" + case 283: // write_timeout: "write-timeout" ":" "integer" +#line 1146 "dhcp4_parser.yy" { ctx.unique("write-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("write-timeout", n); } -#line 2109 "dhcp4_parser.cc" +#line 2119 "dhcp4_parser.cc" break; - case 282: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" -#line 1144 "dhcp4_parser.yy" + case 284: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" +#line 1152 "dhcp4_parser.yy" { ctx.unique("tcp-user-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-user-timeout", n); } -#line 2119 "dhcp4_parser.cc" +#line 2129 "dhcp4_parser.cc" break; - case 283: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 1150 "dhcp4_parser.yy" + case 285: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" +#line 1158 "dhcp4_parser.yy" { ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 2129 "dhcp4_parser.cc" +#line 2139 "dhcp4_parser.cc" break; - case 284: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 1156 "dhcp4_parser.yy" + case 286: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" +#line 1164 "dhcp4_parser.yy" { ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 2139 "dhcp4_parser.cc" +#line 2149 "dhcp4_parser.cc" break; - case 285: // $@44: %empty -#line 1162 "dhcp4_parser.yy" + case 287: // $@44: %empty +#line 1170 "dhcp4_parser.yy" { ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_ON_FAIL); } -#line 2148 "dhcp4_parser.cc" +#line 2158 "dhcp4_parser.cc" break; - case 286: // on_fail: "on-fail" $@44 ":" on_fail_mode -#line 1165 "dhcp4_parser.yy" + case 288: // on_fail: "on-fail" $@44 ":" on_fail_mode +#line 1173 "dhcp4_parser.yy" { ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2157 "dhcp4_parser.cc" +#line 2167 "dhcp4_parser.cc" break; - case 287: // on_fail_mode: "stop-retry-exit" -#line 1170 "dhcp4_parser.yy" + case 289: // on_fail_mode: "stop-retry-exit" +#line 1178 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); } -#line 2163 "dhcp4_parser.cc" +#line 2173 "dhcp4_parser.cc" break; - case 288: // on_fail_mode: "serve-retry-exit" -#line 1171 "dhcp4_parser.yy" + case 290: // on_fail_mode: "serve-retry-exit" +#line 1179 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); } -#line 2169 "dhcp4_parser.cc" +#line 2179 "dhcp4_parser.cc" break; - case 289: // on_fail_mode: "serve-retry-continue" -#line 1172 "dhcp4_parser.yy" + case 291: // on_fail_mode: "serve-retry-continue" +#line 1180 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); } -#line 2175 "dhcp4_parser.cc" +#line 2185 "dhcp4_parser.cc" break; - case 290: // max_row_errors: "max-row-errors" ":" "integer" -#line 1175 "dhcp4_parser.yy" + case 292: // max_row_errors: "max-row-errors" ":" "integer" +#line 1183 "dhcp4_parser.yy" { ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-row-errors", n); } -#line 2185 "dhcp4_parser.cc" +#line 2195 "dhcp4_parser.cc" break; - case 291: // $@45: %empty -#line 1181 "dhcp4_parser.yy" + case 293: // $@45: %empty +#line 1189 "dhcp4_parser.yy" { ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2194 "dhcp4_parser.cc" +#line 2204 "dhcp4_parser.cc" break; - case 292: // trust_anchor: "trust-anchor" $@45 ":" "constant string" -#line 1184 "dhcp4_parser.yy" + case 294: // trust_anchor: "trust-anchor" $@45 ":" "constant string" +#line 1192 "dhcp4_parser.yy" { ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("trust-anchor", ca); ctx.leave(); } -#line 2204 "dhcp4_parser.cc" +#line 2214 "dhcp4_parser.cc" break; - case 293: // $@46: %empty -#line 1190 "dhcp4_parser.yy" + case 295: // $@46: %empty +#line 1198 "dhcp4_parser.yy" { ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2213 "dhcp4_parser.cc" +#line 2223 "dhcp4_parser.cc" break; - case 294: // cert_file: "cert-file" $@46 ":" "constant string" -#line 1193 "dhcp4_parser.yy" + case 296: // cert_file: "cert-file" $@46 ":" "constant string" +#line 1201 "dhcp4_parser.yy" { ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-file", cert); ctx.leave(); } -#line 2223 "dhcp4_parser.cc" +#line 2233 "dhcp4_parser.cc" break; - case 295: // $@47: %empty -#line 1199 "dhcp4_parser.yy" + case 297: // $@47: %empty +#line 1207 "dhcp4_parser.yy" { ctx.unique("key-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2232 "dhcp4_parser.cc" +#line 2242 "dhcp4_parser.cc" break; - case 296: // key_file: "key-file" $@47 ":" "constant string" -#line 1202 "dhcp4_parser.yy" + case 298: // key_file: "key-file" $@47 ":" "constant string" +#line 1210 "dhcp4_parser.yy" { ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("key-file", key); ctx.leave(); } -#line 2242 "dhcp4_parser.cc" +#line 2252 "dhcp4_parser.cc" break; - case 297: // $@48: %empty -#line 1208 "dhcp4_parser.yy" + case 299: // $@48: %empty +#line 1216 "dhcp4_parser.yy" { ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2251 "dhcp4_parser.cc" +#line 2261 "dhcp4_parser.cc" break; - case 298: // cipher_list: "cipher-list" $@48 ":" "constant string" -#line 1211 "dhcp4_parser.yy" + case 300: // cipher_list: "cipher-list" $@48 ":" "constant string" +#line 1219 "dhcp4_parser.yy" { ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cipher-list", cl); ctx.leave(); } -#line 2261 "dhcp4_parser.cc" +#line 2271 "dhcp4_parser.cc" break; - case 299: // $@49: %empty -#line 1217 "dhcp4_parser.yy" + case 301: // $@49: %empty +#line 1225 "dhcp4_parser.yy" { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2269,73 +2279,73 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 2273 "dhcp4_parser.cc" +#line 2283 "dhcp4_parser.cc" break; - case 300: // host_reservation_identifiers: "host-reservation-identifiers" $@49 ":" "[" host_reservation_identifiers_list "]" -#line 1223 "dhcp4_parser.yy" + case 302: // host_reservation_identifiers: "host-reservation-identifiers" $@49 ":" "[" host_reservation_identifiers_list "]" +#line 1231 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2282 "dhcp4_parser.cc" +#line 2292 "dhcp4_parser.cc" break; - case 303: // host_reservation_identifiers_list: host_reservation_identifiers_list "," -#line 1230 "dhcp4_parser.yy" + case 305: // host_reservation_identifiers_list: host_reservation_identifiers_list "," +#line 1238 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2290 "dhcp4_parser.cc" +#line 2300 "dhcp4_parser.cc" break; - case 309: // duid_id: "duid" -#line 1242 "dhcp4_parser.yy" + case 311: // duid_id: "duid" +#line 1250 "dhcp4_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2299 "dhcp4_parser.cc" +#line 2309 "dhcp4_parser.cc" break; - case 310: // hw_address_id: "hw-address" -#line 1247 "dhcp4_parser.yy" + case 312: // hw_address_id: "hw-address" +#line 1255 "dhcp4_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 2308 "dhcp4_parser.cc" +#line 2318 "dhcp4_parser.cc" break; - case 311: // circuit_id: "circuit-id" -#line 1252 "dhcp4_parser.yy" + case 313: // circuit_id: "circuit-id" +#line 1260 "dhcp4_parser.yy" { ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(circuit); } -#line 2317 "dhcp4_parser.cc" +#line 2327 "dhcp4_parser.cc" break; - case 312: // client_id: "client-id" -#line 1257 "dhcp4_parser.yy" + case 314: // client_id: "client-id" +#line 1265 "dhcp4_parser.yy" { ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(client); } -#line 2326 "dhcp4_parser.cc" +#line 2336 "dhcp4_parser.cc" break; - case 313: // flex_id: "flex-id" -#line 1262 "dhcp4_parser.yy" + case 315: // flex_id: "flex-id" +#line 1270 "dhcp4_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 2335 "dhcp4_parser.cc" +#line 2345 "dhcp4_parser.cc" break; - case 314: // $@50: %empty -#line 1269 "dhcp4_parser.yy" + case 316: // $@50: %empty +#line 1277 "dhcp4_parser.yy" { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2343,60 +2353,60 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(mt); ctx.enter(ctx.DHCP_MULTI_THREADING); } -#line 2347 "dhcp4_parser.cc" +#line 2357 "dhcp4_parser.cc" break; - case 315: // dhcp_multi_threading: "multi-threading" $@50 ":" "{" multi_threading_params "}" -#line 1275 "dhcp4_parser.yy" + case 317: // dhcp_multi_threading: "multi-threading" $@50 ":" "{" multi_threading_params "}" +#line 1283 "dhcp4_parser.yy" { // The enable parameter is required. ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 2358 "dhcp4_parser.cc" +#line 2368 "dhcp4_parser.cc" break; - case 318: // multi_threading_params: multi_threading_params "," -#line 1284 "dhcp4_parser.yy" + case 320: // multi_threading_params: multi_threading_params "," +#line 1292 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2366 "dhcp4_parser.cc" +#line 2376 "dhcp4_parser.cc" break; - case 325: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1297 "dhcp4_parser.yy" + case 327: // enable_multi_threading: "enable-multi-threading" ":" "boolean" +#line 1305 "dhcp4_parser.yy" { ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-multi-threading", b); } -#line 2376 "dhcp4_parser.cc" +#line 2386 "dhcp4_parser.cc" break; - case 326: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1303 "dhcp4_parser.yy" + case 328: // thread_pool_size: "thread-pool-size" ":" "integer" +#line 1311 "dhcp4_parser.yy" { ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("thread-pool-size", prf); } -#line 2386 "dhcp4_parser.cc" +#line 2396 "dhcp4_parser.cc" break; - case 327: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1309 "dhcp4_parser.yy" + case 329: // packet_queue_size: "packet-queue-size" ":" "integer" +#line 1317 "dhcp4_parser.yy" { ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("packet-queue-size", prf); } -#line 2396 "dhcp4_parser.cc" +#line 2406 "dhcp4_parser.cc" break; - case 328: // $@51: %empty -#line 1315 "dhcp4_parser.yy" + case 330: // $@51: %empty +#line 1323 "dhcp4_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2404,113 +2414,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2408 "dhcp4_parser.cc" +#line 2418 "dhcp4_parser.cc" break; - case 329: // hooks_libraries: "hooks-libraries" $@51 ":" "[" hooks_libraries_list "]" -#line 1321 "dhcp4_parser.yy" + case 331: // hooks_libraries: "hooks-libraries" $@51 ":" "[" hooks_libraries_list "]" +#line 1329 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2417 "dhcp4_parser.cc" +#line 2427 "dhcp4_parser.cc" break; - case 334: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," -#line 1332 "dhcp4_parser.yy" + case 336: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," +#line 1340 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2425 "dhcp4_parser.cc" +#line 2435 "dhcp4_parser.cc" break; - case 335: // $@52: %empty -#line 1337 "dhcp4_parser.yy" + case 337: // $@52: %empty +#line 1345 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2435 "dhcp4_parser.cc" +#line 2445 "dhcp4_parser.cc" break; - case 336: // hooks_library: "{" $@52 hooks_params "}" -#line 1341 "dhcp4_parser.yy" + case 338: // hooks_library: "{" $@52 hooks_params "}" +#line 1349 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2445 "dhcp4_parser.cc" +#line 2455 "dhcp4_parser.cc" break; - case 337: // $@53: %empty -#line 1347 "dhcp4_parser.yy" + case 339: // $@53: %empty +#line 1355 "dhcp4_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2455 "dhcp4_parser.cc" +#line 2465 "dhcp4_parser.cc" break; - case 338: // sub_hooks_library: "{" $@53 hooks_params "}" -#line 1351 "dhcp4_parser.yy" + case 340: // sub_hooks_library: "{" $@53 hooks_params "}" +#line 1359 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2465 "dhcp4_parser.cc" +#line 2475 "dhcp4_parser.cc" break; - case 341: // hooks_params: hooks_params "," -#line 1359 "dhcp4_parser.yy" + case 343: // hooks_params: hooks_params "," +#line 1367 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2473 "dhcp4_parser.cc" +#line 2483 "dhcp4_parser.cc" break; - case 345: // $@54: %empty -#line 1369 "dhcp4_parser.yy" + case 347: // $@54: %empty +#line 1377 "dhcp4_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2482 "dhcp4_parser.cc" +#line 2492 "dhcp4_parser.cc" break; - case 346: // library: "library" $@54 ":" "constant string" -#line 1372 "dhcp4_parser.yy" + case 348: // library: "library" $@54 ":" "constant string" +#line 1380 "dhcp4_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 2492 "dhcp4_parser.cc" +#line 2502 "dhcp4_parser.cc" break; - case 347: // $@55: %empty -#line 1378 "dhcp4_parser.yy" + case 349: // $@55: %empty +#line 1386 "dhcp4_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2501 "dhcp4_parser.cc" +#line 2511 "dhcp4_parser.cc" break; - case 348: // parameters: "parameters" $@55 ":" map_value -#line 1381 "dhcp4_parser.yy" + case 350: // parameters: "parameters" $@55 ":" map_value +#line 1389 "dhcp4_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2510 "dhcp4_parser.cc" +#line 2520 "dhcp4_parser.cc" break; - case 349: // $@56: %empty -#line 1387 "dhcp4_parser.yy" + case 351: // $@56: %empty +#line 1395 "dhcp4_parser.yy" { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2518,89 +2528,89 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2522 "dhcp4_parser.cc" +#line 2532 "dhcp4_parser.cc" break; - case 350: // expired_leases_processing: "expired-leases-processing" $@56 ":" "{" expired_leases_params "}" -#line 1393 "dhcp4_parser.yy" + case 352: // expired_leases_processing: "expired-leases-processing" $@56 ":" "{" expired_leases_params "}" +#line 1401 "dhcp4_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2532 "dhcp4_parser.cc" +#line 2542 "dhcp4_parser.cc" break; - case 353: // expired_leases_params: expired_leases_params "," -#line 1401 "dhcp4_parser.yy" + case 355: // expired_leases_params: expired_leases_params "," +#line 1409 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2540 "dhcp4_parser.cc" +#line 2550 "dhcp4_parser.cc" break; - case 360: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1414 "dhcp4_parser.yy" + case 362: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" +#line 1422 "dhcp4_parser.yy" { ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 2550 "dhcp4_parser.cc" +#line 2560 "dhcp4_parser.cc" break; - case 361: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1420 "dhcp4_parser.yy" + case 363: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" +#line 1428 "dhcp4_parser.yy" { ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 2560 "dhcp4_parser.cc" +#line 2570 "dhcp4_parser.cc" break; - case 362: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1426 "dhcp4_parser.yy" + case 364: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" +#line 1434 "dhcp4_parser.yy" { ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2570 "dhcp4_parser.cc" +#line 2580 "dhcp4_parser.cc" break; - case 363: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1432 "dhcp4_parser.yy" + case 365: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" +#line 1440 "dhcp4_parser.yy" { ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2580 "dhcp4_parser.cc" +#line 2590 "dhcp4_parser.cc" break; - case 364: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1438 "dhcp4_parser.yy" + case 366: // max_reclaim_time: "max-reclaim-time" ":" "integer" +#line 1446 "dhcp4_parser.yy" { ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2590 "dhcp4_parser.cc" +#line 2600 "dhcp4_parser.cc" break; - case 365: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1444 "dhcp4_parser.yy" + case 367: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" +#line 1452 "dhcp4_parser.yy" { ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2600 "dhcp4_parser.cc" +#line 2610 "dhcp4_parser.cc" break; - case 366: // $@57: %empty -#line 1453 "dhcp4_parser.yy" + case 368: // $@57: %empty +#line 1461 "dhcp4_parser.yy" { ctx.unique("subnet4", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2608,38 +2618,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET4); } -#line 2612 "dhcp4_parser.cc" +#line 2622 "dhcp4_parser.cc" break; - case 367: // subnet4_list: "subnet4" $@57 ":" "[" subnet4_list_content "]" -#line 1459 "dhcp4_parser.yy" + case 369: // subnet4_list: "subnet4" $@57 ":" "[" subnet4_list_content "]" +#line 1467 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2621 "dhcp4_parser.cc" +#line 2631 "dhcp4_parser.cc" break; - case 372: // not_empty_subnet4_list: not_empty_subnet4_list "," -#line 1473 "dhcp4_parser.yy" + case 374: // not_empty_subnet4_list: not_empty_subnet4_list "," +#line 1481 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2629 "dhcp4_parser.cc" +#line 2639 "dhcp4_parser.cc" break; - case 373: // $@58: %empty -#line 1482 "dhcp4_parser.yy" + case 375: // $@58: %empty +#line 1490 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2639 "dhcp4_parser.cc" +#line 2649 "dhcp4_parser.cc" break; - case 374: // subnet4: "{" $@58 subnet4_params "}" -#line 1486 "dhcp4_parser.yy" + case 376: // subnet4: "{" $@58 subnet4_params "}" +#line 1494 "dhcp4_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -2661,153 +2671,153 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2665 "dhcp4_parser.cc" +#line 2675 "dhcp4_parser.cc" break; - case 375: // $@59: %empty -#line 1508 "dhcp4_parser.yy" + case 377: // $@59: %empty +#line 1516 "dhcp4_parser.yy" { // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2675 "dhcp4_parser.cc" +#line 2685 "dhcp4_parser.cc" break; - case 376: // sub_subnet4: "{" $@59 subnet4_params "}" -#line 1512 "dhcp4_parser.yy" + case 378: // sub_subnet4: "{" $@59 subnet4_params "}" +#line 1520 "dhcp4_parser.yy" { // The subnet subnet4 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2685 "dhcp4_parser.cc" +#line 2695 "dhcp4_parser.cc" break; - case 379: // subnet4_params: subnet4_params "," -#line 1521 "dhcp4_parser.yy" + case 381: // subnet4_params: subnet4_params "," +#line 1529 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2693 "dhcp4_parser.cc" +#line 2703 "dhcp4_parser.cc" break; - case 427: // $@60: %empty -#line 1576 "dhcp4_parser.yy" + case 430: // $@60: %empty +#line 1585 "dhcp4_parser.yy" { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2702 "dhcp4_parser.cc" +#line 2712 "dhcp4_parser.cc" break; - case 428: // subnet: "subnet" $@60 ":" "constant string" -#line 1579 "dhcp4_parser.yy" + case 431: // subnet: "subnet" $@60 ":" "constant string" +#line 1588 "dhcp4_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2712 "dhcp4_parser.cc" +#line 2722 "dhcp4_parser.cc" break; - case 429: // $@61: %empty -#line 1585 "dhcp4_parser.yy" + case 432: // $@61: %empty +#line 1594 "dhcp4_parser.yy" { ctx.unique("4o6-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2721 "dhcp4_parser.cc" +#line 2731 "dhcp4_parser.cc" break; - case 430: // subnet_4o6_interface: "4o6-interface" $@61 ":" "constant string" -#line 1588 "dhcp4_parser.yy" + case 433: // subnet_4o6_interface: "4o6-interface" $@61 ":" "constant string" +#line 1597 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface", iface); ctx.leave(); } -#line 2731 "dhcp4_parser.cc" +#line 2741 "dhcp4_parser.cc" break; - case 431: // $@62: %empty -#line 1594 "dhcp4_parser.yy" + case 434: // $@62: %empty +#line 1603 "dhcp4_parser.yy" { ctx.unique("4o6-interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2740 "dhcp4_parser.cc" +#line 2750 "dhcp4_parser.cc" break; - case 432: // subnet_4o6_interface_id: "4o6-interface-id" $@62 ":" "constant string" -#line 1597 "dhcp4_parser.yy" + case 435: // subnet_4o6_interface_id: "4o6-interface-id" $@62 ":" "constant string" +#line 1606 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface-id", iface); ctx.leave(); } -#line 2750 "dhcp4_parser.cc" +#line 2760 "dhcp4_parser.cc" break; - case 433: // $@63: %empty -#line 1603 "dhcp4_parser.yy" + case 436: // $@63: %empty +#line 1612 "dhcp4_parser.yy" { ctx.unique("4o6-subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2759 "dhcp4_parser.cc" +#line 2769 "dhcp4_parser.cc" break; - case 434: // subnet_4o6_subnet: "4o6-subnet" $@63 ":" "constant string" -#line 1606 "dhcp4_parser.yy" + case 437: // subnet_4o6_subnet: "4o6-subnet" $@63 ":" "constant string" +#line 1615 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-subnet", iface); ctx.leave(); } -#line 2769 "dhcp4_parser.cc" +#line 2779 "dhcp4_parser.cc" break; - case 435: // $@64: %empty -#line 1612 "dhcp4_parser.yy" + case 438: // $@64: %empty +#line 1621 "dhcp4_parser.yy" { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2778 "dhcp4_parser.cc" +#line 2788 "dhcp4_parser.cc" break; - case 436: // interface: "interface" $@64 ":" "constant string" -#line 1615 "dhcp4_parser.yy" + case 439: // interface: "interface" $@64 ":" "constant string" +#line 1624 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2788 "dhcp4_parser.cc" +#line 2798 "dhcp4_parser.cc" break; - case 437: // $@65: %empty -#line 1621 "dhcp4_parser.yy" + case 440: // $@65: %empty +#line 1630 "dhcp4_parser.yy" { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2797 "dhcp4_parser.cc" +#line 2807 "dhcp4_parser.cc" break; - case 438: // client_class: "client-class" $@65 ":" "constant string" -#line 1624 "dhcp4_parser.yy" + case 441: // client_class: "client-class" $@65 ":" "constant string" +#line 1633 "dhcp4_parser.yy" { ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 2807 "dhcp4_parser.cc" +#line 2817 "dhcp4_parser.cc" break; - case 439: // $@66: %empty -#line 1630 "dhcp4_parser.yy" + case 442: // $@66: %empty +#line 1639 "dhcp4_parser.yy" { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2815,102 +2825,102 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2819 "dhcp4_parser.cc" +#line 2829 "dhcp4_parser.cc" break; - case 440: // require_client_classes: "require-client-classes" $@66 ":" list_strings -#line 1636 "dhcp4_parser.yy" + case 443: // require_client_classes: "require-client-classes" $@66 ":" list_strings +#line 1645 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2828 "dhcp4_parser.cc" +#line 2838 "dhcp4_parser.cc" break; - case 441: // reservations_global: "reservations-global" ":" "boolean" -#line 1641 "dhcp4_parser.yy" + case 444: // reservations_global: "reservations-global" ":" "boolean" +#line 1650 "dhcp4_parser.yy" { ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-global", b); } -#line 2838 "dhcp4_parser.cc" +#line 2848 "dhcp4_parser.cc" break; - case 442: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" -#line 1647 "dhcp4_parser.yy" + case 445: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" +#line 1656 "dhcp4_parser.yy" { ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-in-subnet", b); } -#line 2848 "dhcp4_parser.cc" +#line 2858 "dhcp4_parser.cc" break; - case 443: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" -#line 1653 "dhcp4_parser.yy" + case 446: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" +#line 1662 "dhcp4_parser.yy" { ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-out-of-pool", b); } -#line 2858 "dhcp4_parser.cc" +#line 2868 "dhcp4_parser.cc" break; - case 444: // $@67: %empty -#line 1659 "dhcp4_parser.yy" + case 447: // $@67: %empty +#line 1668 "dhcp4_parser.yy" { ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.RESERVATION_MODE); } -#line 2867 "dhcp4_parser.cc" +#line 2877 "dhcp4_parser.cc" break; - case 445: // reservation_mode: "reservation-mode" $@67 ":" hr_mode -#line 1662 "dhcp4_parser.yy" + case 448: // reservation_mode: "reservation-mode" $@67 ":" hr_mode +#line 1671 "dhcp4_parser.yy" { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2876 "dhcp4_parser.cc" +#line 2886 "dhcp4_parser.cc" break; - case 446: // hr_mode: "disabled" -#line 1667 "dhcp4_parser.yy" + case 449: // hr_mode: "disabled" +#line 1676 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2882 "dhcp4_parser.cc" +#line 2892 "dhcp4_parser.cc" break; - case 447: // hr_mode: "out-of-pool" -#line 1668 "dhcp4_parser.yy" + case 450: // hr_mode: "out-of-pool" +#line 1677 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2888 "dhcp4_parser.cc" +#line 2898 "dhcp4_parser.cc" break; - case 448: // hr_mode: "global" -#line 1669 "dhcp4_parser.yy" + case 451: // hr_mode: "global" +#line 1678 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2894 "dhcp4_parser.cc" +#line 2904 "dhcp4_parser.cc" break; - case 449: // hr_mode: "all" -#line 1670 "dhcp4_parser.yy" + case 452: // hr_mode: "all" +#line 1679 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2900 "dhcp4_parser.cc" +#line 2910 "dhcp4_parser.cc" break; - case 450: // id: "id" ":" "integer" -#line 1673 "dhcp4_parser.yy" + case 453: // id: "id" ":" "integer" +#line 1682 "dhcp4_parser.yy" { ctx.unique("id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2910 "dhcp4_parser.cc" +#line 2920 "dhcp4_parser.cc" break; - case 451: // $@68: %empty -#line 1681 "dhcp4_parser.yy" + case 454: // $@68: %empty +#line 1690 "dhcp4_parser.yy" { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2918,54 +2928,54 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2922 "dhcp4_parser.cc" +#line 2932 "dhcp4_parser.cc" break; - case 452: // shared_networks: "shared-networks" $@68 ":" "[" shared_networks_content "]" -#line 1687 "dhcp4_parser.yy" + case 455: // shared_networks: "shared-networks" $@68 ":" "[" shared_networks_content "]" +#line 1696 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2931 "dhcp4_parser.cc" +#line 2941 "dhcp4_parser.cc" break; - case 457: // shared_networks_list: shared_networks_list "," -#line 1700 "dhcp4_parser.yy" + case 460: // shared_networks_list: shared_networks_list "," +#line 1709 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2939 "dhcp4_parser.cc" +#line 2949 "dhcp4_parser.cc" break; - case 458: // $@69: %empty -#line 1705 "dhcp4_parser.yy" + case 461: // $@69: %empty +#line 1714 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2949 "dhcp4_parser.cc" +#line 2959 "dhcp4_parser.cc" break; - case 459: // shared_network: "{" $@69 shared_network_params "}" -#line 1709 "dhcp4_parser.yy" + case 462: // shared_network: "{" $@69 shared_network_params "}" +#line 1718 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 2957 "dhcp4_parser.cc" +#line 2967 "dhcp4_parser.cc" break; - case 462: // shared_network_params: shared_network_params "," -#line 1715 "dhcp4_parser.yy" + case 465: // shared_network_params: shared_network_params "," +#line 1724 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2965 "dhcp4_parser.cc" +#line 2975 "dhcp4_parser.cc" break; - case 505: // $@70: %empty -#line 1768 "dhcp4_parser.yy" + case 509: // $@70: %empty +#line 1778 "dhcp4_parser.yy" { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2973,55 +2983,55 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2977 "dhcp4_parser.cc" +#line 2987 "dhcp4_parser.cc" break; - case 506: // option_def_list: "option-def" $@70 ":" "[" option_def_list_content "]" -#line 1774 "dhcp4_parser.yy" + case 510: // option_def_list: "option-def" $@70 ":" "[" option_def_list_content "]" +#line 1784 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2986 "dhcp4_parser.cc" +#line 2996 "dhcp4_parser.cc" break; - case 507: // $@71: %empty -#line 1782 "dhcp4_parser.yy" + case 511: // $@71: %empty +#line 1792 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2995 "dhcp4_parser.cc" +#line 3005 "dhcp4_parser.cc" break; - case 508: // sub_option_def_list: "{" $@71 option_def_list "}" -#line 1785 "dhcp4_parser.yy" + case 512: // sub_option_def_list: "{" $@71 option_def_list "}" +#line 1795 "dhcp4_parser.yy" { // parsing completed } -#line 3003 "dhcp4_parser.cc" +#line 3013 "dhcp4_parser.cc" break; - case 513: // not_empty_option_def_list: not_empty_option_def_list "," -#line 1797 "dhcp4_parser.yy" + case 517: // not_empty_option_def_list: not_empty_option_def_list "," +#line 1807 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3011 "dhcp4_parser.cc" +#line 3021 "dhcp4_parser.cc" break; - case 514: // $@72: %empty -#line 1804 "dhcp4_parser.yy" + case 518: // $@72: %empty +#line 1814 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3021 "dhcp4_parser.cc" +#line 3031 "dhcp4_parser.cc" break; - case 515: // option_def_entry: "{" $@72 option_def_params "}" -#line 1808 "dhcp4_parser.yy" + case 519: // option_def_entry: "{" $@72 option_def_params "}" +#line 1818 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3029,21 +3039,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3033 "dhcp4_parser.cc" +#line 3043 "dhcp4_parser.cc" break; - case 516: // $@73: %empty -#line 1819 "dhcp4_parser.yy" + case 520: // $@73: %empty +#line 1829 "dhcp4_parser.yy" { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3043 "dhcp4_parser.cc" +#line 3053 "dhcp4_parser.cc" break; - case 517: // sub_option_def: "{" $@73 option_def_params "}" -#line 1823 "dhcp4_parser.yy" + case 521: // sub_option_def: "{" $@73 option_def_params "}" +#line 1833 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3051,115 +3061,115 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3055 "dhcp4_parser.cc" +#line 3065 "dhcp4_parser.cc" break; - case 522: // not_empty_option_def_params: not_empty_option_def_params "," -#line 1839 "dhcp4_parser.yy" + case 526: // not_empty_option_def_params: not_empty_option_def_params "," +#line 1849 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3063 "dhcp4_parser.cc" +#line 3073 "dhcp4_parser.cc" break; - case 534: // code: "code" ":" "integer" -#line 1858 "dhcp4_parser.yy" + case 538: // code: "code" ":" "integer" +#line 1868 "dhcp4_parser.yy" { ctx.unique("code", ctx.loc2pos(yystack_[2].location)); ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 3073 "dhcp4_parser.cc" +#line 3083 "dhcp4_parser.cc" break; - case 536: // $@74: %empty -#line 1866 "dhcp4_parser.yy" + case 540: // $@74: %empty +#line 1876 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3082 "dhcp4_parser.cc" +#line 3092 "dhcp4_parser.cc" break; - case 537: // option_def_type: "type" $@74 ":" "constant string" -#line 1869 "dhcp4_parser.yy" + case 541: // option_def_type: "type" $@74 ":" "constant string" +#line 1879 "dhcp4_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 3092 "dhcp4_parser.cc" +#line 3102 "dhcp4_parser.cc" break; - case 538: // $@75: %empty -#line 1875 "dhcp4_parser.yy" + case 542: // $@75: %empty +#line 1885 "dhcp4_parser.yy" { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3101 "dhcp4_parser.cc" +#line 3111 "dhcp4_parser.cc" break; - case 539: // option_def_record_types: "record-types" $@75 ":" "constant string" -#line 1878 "dhcp4_parser.yy" + case 543: // option_def_record_types: "record-types" $@75 ":" "constant string" +#line 1888 "dhcp4_parser.yy" { ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } -#line 3111 "dhcp4_parser.cc" +#line 3121 "dhcp4_parser.cc" break; - case 540: // $@76: %empty -#line 1884 "dhcp4_parser.yy" + case 544: // $@76: %empty +#line 1894 "dhcp4_parser.yy" { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3120 "dhcp4_parser.cc" +#line 3130 "dhcp4_parser.cc" break; - case 541: // space: "space" $@76 ":" "constant string" -#line 1887 "dhcp4_parser.yy" + case 545: // space: "space" $@76 ":" "constant string" +#line 1897 "dhcp4_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 3130 "dhcp4_parser.cc" +#line 3140 "dhcp4_parser.cc" break; - case 543: // $@77: %empty -#line 1895 "dhcp4_parser.yy" + case 547: // $@77: %empty +#line 1905 "dhcp4_parser.yy" { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3139 "dhcp4_parser.cc" +#line 3149 "dhcp4_parser.cc" break; - case 544: // option_def_encapsulate: "encapsulate" $@77 ":" "constant string" -#line 1898 "dhcp4_parser.yy" + case 548: // option_def_encapsulate: "encapsulate" $@77 ":" "constant string" +#line 1908 "dhcp4_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 3149 "dhcp4_parser.cc" +#line 3159 "dhcp4_parser.cc" break; - case 545: // option_def_array: "array" ":" "boolean" -#line 1904 "dhcp4_parser.yy" + case 549: // option_def_array: "array" ":" "boolean" +#line 1914 "dhcp4_parser.yy" { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 3159 "dhcp4_parser.cc" +#line 3169 "dhcp4_parser.cc" break; - case 546: // $@78: %empty -#line 1914 "dhcp4_parser.yy" + case 550: // $@78: %empty +#line 1924 "dhcp4_parser.yy" { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3167,123 +3177,123 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 3171 "dhcp4_parser.cc" +#line 3181 "dhcp4_parser.cc" break; - case 547: // option_data_list: "option-data" $@78 ":" "[" option_data_list_content "]" -#line 1920 "dhcp4_parser.yy" + case 551: // option_data_list: "option-data" $@78 ":" "[" option_data_list_content "]" +#line 1930 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3180 "dhcp4_parser.cc" +#line 3190 "dhcp4_parser.cc" break; - case 552: // not_empty_option_data_list: not_empty_option_data_list "," -#line 1935 "dhcp4_parser.yy" + case 556: // not_empty_option_data_list: not_empty_option_data_list "," +#line 1945 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3188 "dhcp4_parser.cc" +#line 3198 "dhcp4_parser.cc" break; - case 553: // $@79: %empty -#line 1942 "dhcp4_parser.yy" + case 557: // $@79: %empty +#line 1952 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3198 "dhcp4_parser.cc" +#line 3208 "dhcp4_parser.cc" break; - case 554: // option_data_entry: "{" $@79 option_data_params "}" -#line 1946 "dhcp4_parser.yy" + case 558: // option_data_entry: "{" $@79 option_data_params "}" +#line 1956 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 3207 "dhcp4_parser.cc" +#line 3217 "dhcp4_parser.cc" break; - case 555: // $@80: %empty -#line 1954 "dhcp4_parser.yy" + case 559: // $@80: %empty +#line 1964 "dhcp4_parser.yy" { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3217 "dhcp4_parser.cc" +#line 3227 "dhcp4_parser.cc" break; - case 556: // sub_option_data: "{" $@80 option_data_params "}" -#line 1958 "dhcp4_parser.yy" + case 560: // sub_option_data: "{" $@80 option_data_params "}" +#line 1968 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed } -#line 3226 "dhcp4_parser.cc" +#line 3236 "dhcp4_parser.cc" break; - case 561: // not_empty_option_data_params: not_empty_option_data_params "," -#line 1974 "dhcp4_parser.yy" + case 565: // not_empty_option_data_params: not_empty_option_data_params "," +#line 1984 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3234 "dhcp4_parser.cc" +#line 3244 "dhcp4_parser.cc" break; - case 573: // $@81: %empty -#line 1995 "dhcp4_parser.yy" + case 577: // $@81: %empty +#line 2005 "dhcp4_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3243 "dhcp4_parser.cc" +#line 3253 "dhcp4_parser.cc" break; - case 574: // option_data_data: "data" $@81 ":" "constant string" -#line 1998 "dhcp4_parser.yy" + case 578: // option_data_data: "data" $@81 ":" "constant string" +#line 2008 "dhcp4_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 3253 "dhcp4_parser.cc" +#line 3263 "dhcp4_parser.cc" break; - case 577: // option_data_csv_format: "csv-format" ":" "boolean" -#line 2008 "dhcp4_parser.yy" + case 581: // option_data_csv_format: "csv-format" ":" "boolean" +#line 2018 "dhcp4_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", csv); } -#line 3263 "dhcp4_parser.cc" +#line 3273 "dhcp4_parser.cc" break; - case 578: // option_data_always_send: "always-send" ":" "boolean" -#line 2014 "dhcp4_parser.yy" + case 582: // option_data_always_send: "always-send" ":" "boolean" +#line 2024 "dhcp4_parser.yy" { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 3273 "dhcp4_parser.cc" +#line 3283 "dhcp4_parser.cc" break; - case 579: // option_data_never_send: "never-send" ":" "boolean" -#line 2020 "dhcp4_parser.yy" + case 583: // option_data_never_send: "never-send" ":" "boolean" +#line 2030 "dhcp4_parser.yy" { ctx.unique("never-send", ctx.loc2pos(yystack_[2].location)); ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("never-send", cancel); } -#line 3283 "dhcp4_parser.cc" +#line 3293 "dhcp4_parser.cc" break; - case 580: // $@82: %empty -#line 2029 "dhcp4_parser.yy" + case 584: // $@82: %empty +#line 2039 "dhcp4_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3291,103 +3301,103 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 3295 "dhcp4_parser.cc" +#line 3305 "dhcp4_parser.cc" break; - case 581: // pools_list: "pools" $@82 ":" "[" pools_list_content "]" -#line 2035 "dhcp4_parser.yy" + case 585: // pools_list: "pools" $@82 ":" "[" pools_list_content "]" +#line 2045 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3304 "dhcp4_parser.cc" +#line 3314 "dhcp4_parser.cc" break; - case 586: // not_empty_pools_list: not_empty_pools_list "," -#line 2048 "dhcp4_parser.yy" + case 590: // not_empty_pools_list: not_empty_pools_list "," +#line 2058 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3312 "dhcp4_parser.cc" +#line 3322 "dhcp4_parser.cc" break; - case 587: // $@83: %empty -#line 2053 "dhcp4_parser.yy" + case 591: // $@83: %empty +#line 2063 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3322 "dhcp4_parser.cc" +#line 3332 "dhcp4_parser.cc" break; - case 588: // pool_list_entry: "{" $@83 pool_params "}" -#line 2057 "dhcp4_parser.yy" + case 592: // pool_list_entry: "{" $@83 pool_params "}" +#line 2067 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3332 "dhcp4_parser.cc" +#line 3342 "dhcp4_parser.cc" break; - case 589: // $@84: %empty -#line 2063 "dhcp4_parser.yy" + case 593: // $@84: %empty +#line 2073 "dhcp4_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3342 "dhcp4_parser.cc" +#line 3352 "dhcp4_parser.cc" break; - case 590: // sub_pool4: "{" $@84 pool_params "}" -#line 2067 "dhcp4_parser.yy" + case 594: // sub_pool4: "{" $@84 pool_params "}" +#line 2077 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3352 "dhcp4_parser.cc" +#line 3362 "dhcp4_parser.cc" break; - case 593: // pool_params: pool_params "," -#line 2075 "dhcp4_parser.yy" + case 597: // pool_params: pool_params "," +#line 2085 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3360 "dhcp4_parser.cc" +#line 3370 "dhcp4_parser.cc" break; - case 601: // $@85: %empty -#line 2089 "dhcp4_parser.yy" + case 605: // $@85: %empty +#line 2099 "dhcp4_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3369 "dhcp4_parser.cc" +#line 3379 "dhcp4_parser.cc" break; - case 602: // pool_entry: "pool" $@85 ":" "constant string" -#line 2092 "dhcp4_parser.yy" + case 606: // pool_entry: "pool" $@85 ":" "constant string" +#line 2102 "dhcp4_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 3379 "dhcp4_parser.cc" +#line 3389 "dhcp4_parser.cc" break; - case 603: // $@86: %empty -#line 2098 "dhcp4_parser.yy" + case 607: // $@86: %empty +#line 2108 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3387 "dhcp4_parser.cc" +#line 3397 "dhcp4_parser.cc" break; - case 604: // user_context: "user-context" $@86 ":" map_value -#line 2100 "dhcp4_parser.yy" + case 608: // user_context: "user-context" $@86 ":" map_value +#line 2110 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3410,19 +3420,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3414 "dhcp4_parser.cc" +#line 3424 "dhcp4_parser.cc" break; - case 605: // $@87: %empty -#line 2123 "dhcp4_parser.yy" + case 609: // $@87: %empty +#line 2133 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3422 "dhcp4_parser.cc" +#line 3432 "dhcp4_parser.cc" break; - case 606: // comment: "comment" $@87 ":" "constant string" -#line 2125 "dhcp4_parser.yy" + case 610: // comment: "comment" $@87 ":" "constant string" +#line 2135 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3447,11 +3457,11 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3451 "dhcp4_parser.cc" +#line 3461 "dhcp4_parser.cc" break; - case 607: // $@88: %empty -#line 2153 "dhcp4_parser.yy" + case 611: // $@88: %empty +#line 2163 "dhcp4_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3459,150 +3469,150 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3463 "dhcp4_parser.cc" +#line 3473 "dhcp4_parser.cc" break; - case 608: // reservations: "reservations" $@88 ":" "[" reservations_list "]" -#line 2159 "dhcp4_parser.yy" + case 612: // reservations: "reservations" $@88 ":" "[" reservations_list "]" +#line 2169 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3472 "dhcp4_parser.cc" +#line 3482 "dhcp4_parser.cc" break; - case 613: // not_empty_reservations_list: not_empty_reservations_list "," -#line 2170 "dhcp4_parser.yy" + case 617: // not_empty_reservations_list: not_empty_reservations_list "," +#line 2180 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3480 "dhcp4_parser.cc" +#line 3490 "dhcp4_parser.cc" break; - case 614: // $@89: %empty -#line 2175 "dhcp4_parser.yy" + case 618: // $@89: %empty +#line 2185 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3490 "dhcp4_parser.cc" +#line 3500 "dhcp4_parser.cc" break; - case 615: // reservation: "{" $@89 reservation_params "}" -#line 2179 "dhcp4_parser.yy" + case 619: // reservation: "{" $@89 reservation_params "}" +#line 2189 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3499 "dhcp4_parser.cc" +#line 3509 "dhcp4_parser.cc" break; - case 616: // $@90: %empty -#line 2184 "dhcp4_parser.yy" + case 620: // $@90: %empty +#line 2194 "dhcp4_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3509 "dhcp4_parser.cc" +#line 3519 "dhcp4_parser.cc" break; - case 617: // sub_reservation: "{" $@90 reservation_params "}" -#line 2188 "dhcp4_parser.yy" + case 621: // sub_reservation: "{" $@90 reservation_params "}" +#line 2198 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 3518 "dhcp4_parser.cc" +#line 3528 "dhcp4_parser.cc" break; - case 622: // not_empty_reservation_params: not_empty_reservation_params "," -#line 2199 "dhcp4_parser.yy" + case 626: // not_empty_reservation_params: not_empty_reservation_params "," +#line 2209 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3526 "dhcp4_parser.cc" +#line 3536 "dhcp4_parser.cc" break; - case 638: // $@91: %empty -#line 2222 "dhcp4_parser.yy" + case 642: // $@91: %empty +#line 2232 "dhcp4_parser.yy" { ctx.unique("next-server", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3535 "dhcp4_parser.cc" +#line 3545 "dhcp4_parser.cc" break; - case 639: // next_server: "next-server" $@91 ":" "constant string" -#line 2225 "dhcp4_parser.yy" + case 643: // next_server: "next-server" $@91 ":" "constant string" +#line 2235 "dhcp4_parser.yy" { ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("next-server", next_server); ctx.leave(); } -#line 3545 "dhcp4_parser.cc" +#line 3555 "dhcp4_parser.cc" break; - case 640: // $@92: %empty -#line 2231 "dhcp4_parser.yy" + case 644: // $@92: %empty +#line 2241 "dhcp4_parser.yy" { ctx.unique("server-hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3554 "dhcp4_parser.cc" +#line 3564 "dhcp4_parser.cc" break; - case 641: // server_hostname: "server-hostname" $@92 ":" "constant string" -#line 2234 "dhcp4_parser.yy" + case 645: // server_hostname: "server-hostname" $@92 ":" "constant string" +#line 2244 "dhcp4_parser.yy" { ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-hostname", srv); ctx.leave(); } -#line 3564 "dhcp4_parser.cc" +#line 3574 "dhcp4_parser.cc" break; - case 642: // $@93: %empty -#line 2240 "dhcp4_parser.yy" + case 646: // $@93: %empty +#line 2250 "dhcp4_parser.yy" { ctx.unique("boot-file-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3573 "dhcp4_parser.cc" +#line 3583 "dhcp4_parser.cc" break; - case 643: // boot_file_name: "boot-file-name" $@93 ":" "constant string" -#line 2243 "dhcp4_parser.yy" + case 647: // boot_file_name: "boot-file-name" $@93 ":" "constant string" +#line 2253 "dhcp4_parser.yy" { ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("boot-file-name", bootfile); ctx.leave(); } -#line 3583 "dhcp4_parser.cc" +#line 3593 "dhcp4_parser.cc" break; - case 644: // $@94: %empty -#line 2249 "dhcp4_parser.yy" + case 648: // $@94: %empty +#line 2259 "dhcp4_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3592 "dhcp4_parser.cc" +#line 3602 "dhcp4_parser.cc" break; - case 645: // ip_address: "ip-address" $@94 ":" "constant string" -#line 2252 "dhcp4_parser.yy" + case 649: // ip_address: "ip-address" $@94 ":" "constant string" +#line 2262 "dhcp4_parser.yy" { ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } -#line 3602 "dhcp4_parser.cc" +#line 3612 "dhcp4_parser.cc" break; - case 646: // $@95: %empty -#line 2258 "dhcp4_parser.yy" + case 650: // $@95: %empty +#line 2268 "dhcp4_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3610,134 +3620,134 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3614 "dhcp4_parser.cc" +#line 3624 "dhcp4_parser.cc" break; - case 647: // ip_addresses: "ip-addresses" $@95 ":" list_strings -#line 2264 "dhcp4_parser.yy" + case 651: // ip_addresses: "ip-addresses" $@95 ":" list_strings +#line 2274 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3623 "dhcp4_parser.cc" +#line 3633 "dhcp4_parser.cc" break; - case 648: // $@96: %empty -#line 2269 "dhcp4_parser.yy" + case 652: // $@96: %empty +#line 2279 "dhcp4_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3632 "dhcp4_parser.cc" +#line 3642 "dhcp4_parser.cc" break; - case 649: // duid: "duid" $@96 ":" "constant string" -#line 2272 "dhcp4_parser.yy" + case 653: // duid: "duid" $@96 ":" "constant string" +#line 2282 "dhcp4_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 3642 "dhcp4_parser.cc" +#line 3652 "dhcp4_parser.cc" break; - case 650: // $@97: %empty -#line 2278 "dhcp4_parser.yy" + case 654: // $@97: %empty +#line 2288 "dhcp4_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3651 "dhcp4_parser.cc" +#line 3661 "dhcp4_parser.cc" break; - case 651: // hw_address: "hw-address" $@97 ":" "constant string" -#line 2281 "dhcp4_parser.yy" + case 655: // hw_address: "hw-address" $@97 ":" "constant string" +#line 2291 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 3661 "dhcp4_parser.cc" +#line 3671 "dhcp4_parser.cc" break; - case 652: // $@98: %empty -#line 2287 "dhcp4_parser.yy" + case 656: // $@98: %empty +#line 2297 "dhcp4_parser.yy" { ctx.unique("client-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3670 "dhcp4_parser.cc" +#line 3680 "dhcp4_parser.cc" break; - case 653: // client_id_value: "client-id" $@98 ":" "constant string" -#line 2290 "dhcp4_parser.yy" + case 657: // client_id_value: "client-id" $@98 ":" "constant string" +#line 2300 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-id", hw); ctx.leave(); } -#line 3680 "dhcp4_parser.cc" +#line 3690 "dhcp4_parser.cc" break; - case 654: // $@99: %empty -#line 2296 "dhcp4_parser.yy" + case 658: // $@99: %empty +#line 2306 "dhcp4_parser.yy" { ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3689 "dhcp4_parser.cc" +#line 3699 "dhcp4_parser.cc" break; - case 655: // circuit_id_value: "circuit-id" $@99 ":" "constant string" -#line 2299 "dhcp4_parser.yy" + case 659: // circuit_id_value: "circuit-id" $@99 ":" "constant string" +#line 2309 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("circuit-id", hw); ctx.leave(); } -#line 3699 "dhcp4_parser.cc" +#line 3709 "dhcp4_parser.cc" break; - case 656: // $@100: %empty -#line 2305 "dhcp4_parser.yy" + case 660: // $@100: %empty +#line 2315 "dhcp4_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3708 "dhcp4_parser.cc" +#line 3718 "dhcp4_parser.cc" break; - case 657: // flex_id_value: "flex-id" $@100 ":" "constant string" -#line 2308 "dhcp4_parser.yy" + case 661: // flex_id_value: "flex-id" $@100 ":" "constant string" +#line 2318 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 3718 "dhcp4_parser.cc" +#line 3728 "dhcp4_parser.cc" break; - case 658: // $@101: %empty -#line 2314 "dhcp4_parser.yy" + case 662: // $@101: %empty +#line 2324 "dhcp4_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3727 "dhcp4_parser.cc" +#line 3737 "dhcp4_parser.cc" break; - case 659: // hostname: "hostname" $@101 ":" "constant string" -#line 2317 "dhcp4_parser.yy" + case 663: // hostname: "hostname" $@101 ":" "constant string" +#line 2327 "dhcp4_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 3737 "dhcp4_parser.cc" +#line 3747 "dhcp4_parser.cc" break; - case 660: // $@102: %empty -#line 2323 "dhcp4_parser.yy" + case 664: // $@102: %empty +#line 2333 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3745,20 +3755,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3749 "dhcp4_parser.cc" +#line 3759 "dhcp4_parser.cc" break; - case 661: // reservation_client_classes: "client-classes" $@102 ":" list_strings -#line 2329 "dhcp4_parser.yy" + case 665: // reservation_client_classes: "client-classes" $@102 ":" list_strings +#line 2339 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3758 "dhcp4_parser.cc" +#line 3768 "dhcp4_parser.cc" break; - case 662: // $@103: %empty -#line 2337 "dhcp4_parser.yy" + case 666: // $@103: %empty +#line 2347 "dhcp4_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3766,20 +3776,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3770 "dhcp4_parser.cc" +#line 3780 "dhcp4_parser.cc" break; - case 663: // relay: "relay" $@103 ":" "{" relay_map "}" -#line 2343 "dhcp4_parser.yy" + case 667: // relay: "relay" $@103 ":" "{" relay_map "}" +#line 2353 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3779 "dhcp4_parser.cc" +#line 3789 "dhcp4_parser.cc" break; - case 666: // $@104: %empty -#line 2355 "dhcp4_parser.yy" + case 670: // $@104: %empty +#line 2365 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3787,114 +3797,114 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3791 "dhcp4_parser.cc" +#line 3801 "dhcp4_parser.cc" break; - case 667: // client_classes: "client-classes" $@104 ":" "[" client_classes_list "]" -#line 2361 "dhcp4_parser.yy" + case 671: // client_classes: "client-classes" $@104 ":" "[" client_classes_list "]" +#line 2371 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3800 "dhcp4_parser.cc" +#line 3810 "dhcp4_parser.cc" break; - case 670: // client_classes_list: client_classes_list "," -#line 2368 "dhcp4_parser.yy" + case 674: // client_classes_list: client_classes_list "," +#line 2378 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3808 "dhcp4_parser.cc" +#line 3818 "dhcp4_parser.cc" break; - case 671: // $@105: %empty -#line 2373 "dhcp4_parser.yy" + case 675: // $@105: %empty +#line 2383 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3818 "dhcp4_parser.cc" +#line 3828 "dhcp4_parser.cc" break; - case 672: // client_class_entry: "{" $@105 client_class_params "}" -#line 2377 "dhcp4_parser.yy" + case 676: // client_class_entry: "{" $@105 client_class_params "}" +#line 2387 "dhcp4_parser.yy" { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3828 "dhcp4_parser.cc" +#line 3838 "dhcp4_parser.cc" break; - case 677: // not_empty_client_class_params: not_empty_client_class_params "," -#line 2389 "dhcp4_parser.yy" + case 681: // not_empty_client_class_params: not_empty_client_class_params "," +#line 2399 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3836 "dhcp4_parser.cc" +#line 3846 "dhcp4_parser.cc" break; - case 695: // $@106: %empty -#line 2414 "dhcp4_parser.yy" + case 699: // $@106: %empty +#line 2424 "dhcp4_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3845 "dhcp4_parser.cc" +#line 3855 "dhcp4_parser.cc" break; - case 696: // client_class_test: "test" $@106 ":" "constant string" -#line 2417 "dhcp4_parser.yy" + case 700: // client_class_test: "test" $@106 ":" "constant string" +#line 2427 "dhcp4_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3855 "dhcp4_parser.cc" +#line 3865 "dhcp4_parser.cc" break; - case 697: // $@107: %empty -#line 2423 "dhcp4_parser.yy" + case 701: // $@107: %empty +#line 2433 "dhcp4_parser.yy" { ctx.unique("template-test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3864 "dhcp4_parser.cc" +#line 3874 "dhcp4_parser.cc" break; - case 698: // client_class_template_test: "template-test" $@107 ":" "constant string" -#line 2426 "dhcp4_parser.yy" + case 702: // client_class_template_test: "template-test" $@107 ":" "constant string" +#line 2436 "dhcp4_parser.yy" { ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("template-test", template_test); ctx.leave(); } -#line 3874 "dhcp4_parser.cc" +#line 3884 "dhcp4_parser.cc" break; - case 699: // only_if_required: "only-if-required" ":" "boolean" -#line 2432 "dhcp4_parser.yy" + case 703: // only_if_required: "only-if-required" ":" "boolean" +#line 2442 "dhcp4_parser.yy" { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3884 "dhcp4_parser.cc" +#line 3894 "dhcp4_parser.cc" break; - case 700: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2440 "dhcp4_parser.yy" + case 704: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" +#line 2450 "dhcp4_parser.yy" { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 3894 "dhcp4_parser.cc" +#line 3904 "dhcp4_parser.cc" break; - case 701: // $@108: %empty -#line 2448 "dhcp4_parser.yy" + case 705: // $@108: %empty +#line 2458 "dhcp4_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3902,66 +3912,66 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 3906 "dhcp4_parser.cc" +#line 3916 "dhcp4_parser.cc" break; - case 702: // control_socket: "control-socket" $@108 ":" "{" control_socket_params "}" -#line 2454 "dhcp4_parser.yy" + case 706: // control_socket: "control-socket" $@108 ":" "{" control_socket_params "}" +#line 2464 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3915 "dhcp4_parser.cc" +#line 3925 "dhcp4_parser.cc" break; - case 705: // control_socket_params: control_socket_params "," -#line 2461 "dhcp4_parser.yy" + case 709: // control_socket_params: control_socket_params "," +#line 2471 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3923 "dhcp4_parser.cc" +#line 3933 "dhcp4_parser.cc" break; - case 711: // $@109: %empty -#line 2473 "dhcp4_parser.yy" + case 715: // $@109: %empty +#line 2483 "dhcp4_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3932 "dhcp4_parser.cc" +#line 3942 "dhcp4_parser.cc" break; - case 712: // control_socket_type: "socket-type" $@109 ":" "constant string" -#line 2476 "dhcp4_parser.yy" + case 716: // control_socket_type: "socket-type" $@109 ":" "constant string" +#line 2486 "dhcp4_parser.yy" { ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } -#line 3942 "dhcp4_parser.cc" +#line 3952 "dhcp4_parser.cc" break; - case 713: // $@110: %empty -#line 2482 "dhcp4_parser.yy" + case 717: // $@110: %empty +#line 2492 "dhcp4_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3951 "dhcp4_parser.cc" +#line 3961 "dhcp4_parser.cc" break; - case 714: // control_socket_name: "socket-name" $@110 ":" "constant string" -#line 2485 "dhcp4_parser.yy" + case 718: // control_socket_name: "socket-name" $@110 ":" "constant string" +#line 2495 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 3961 "dhcp4_parser.cc" +#line 3971 "dhcp4_parser.cc" break; - case 715: // $@111: %empty -#line 2494 "dhcp4_parser.yy" + case 719: // $@111: %empty +#line 2504 "dhcp4_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3969,87 +3979,87 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 3973 "dhcp4_parser.cc" +#line 3983 "dhcp4_parser.cc" break; - case 716: // dhcp_queue_control: "dhcp-queue-control" $@111 ":" "{" queue_control_params "}" -#line 2500 "dhcp4_parser.yy" + case 720: // dhcp_queue_control: "dhcp-queue-control" $@111 ":" "{" queue_control_params "}" +#line 2510 "dhcp4_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3984 "dhcp4_parser.cc" +#line 3994 "dhcp4_parser.cc" break; - case 719: // queue_control_params: queue_control_params "," -#line 2509 "dhcp4_parser.yy" + case 723: // queue_control_params: queue_control_params "," +#line 2519 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3992 "dhcp4_parser.cc" +#line 4002 "dhcp4_parser.cc" break; - case 726: // enable_queue: "enable-queue" ":" "boolean" -#line 2522 "dhcp4_parser.yy" + case 730: // enable_queue: "enable-queue" ":" "boolean" +#line 2532 "dhcp4_parser.yy" { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 4002 "dhcp4_parser.cc" +#line 4012 "dhcp4_parser.cc" break; - case 727: // $@112: %empty -#line 2528 "dhcp4_parser.yy" + case 731: // $@112: %empty +#line 2538 "dhcp4_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4011 "dhcp4_parser.cc" +#line 4021 "dhcp4_parser.cc" break; - case 728: // queue_type: "queue-type" $@112 ":" "constant string" -#line 2531 "dhcp4_parser.yy" + case 732: // queue_type: "queue-type" $@112 ":" "constant string" +#line 2541 "dhcp4_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); ctx.leave(); } -#line 4021 "dhcp4_parser.cc" +#line 4031 "dhcp4_parser.cc" break; - case 729: // capacity: "capacity" ":" "integer" -#line 2537 "dhcp4_parser.yy" + case 733: // capacity: "capacity" ":" "integer" +#line 2547 "dhcp4_parser.yy" { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 4031 "dhcp4_parser.cc" +#line 4041 "dhcp4_parser.cc" break; - case 730: // $@113: %empty -#line 2543 "dhcp4_parser.yy" + case 734: // $@113: %empty +#line 2553 "dhcp4_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4040 "dhcp4_parser.cc" +#line 4050 "dhcp4_parser.cc" break; - case 731: // arbitrary_map_entry: "constant string" $@113 ":" value -#line 2546 "dhcp4_parser.yy" + case 735: // arbitrary_map_entry: "constant string" $@113 ":" value +#line 2556 "dhcp4_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4049 "dhcp4_parser.cc" +#line 4059 "dhcp4_parser.cc" break; - case 732: // $@114: %empty -#line 2553 "dhcp4_parser.yy" + case 736: // $@114: %empty +#line 2563 "dhcp4_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4057,291 +4067,291 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 4061 "dhcp4_parser.cc" +#line 4071 "dhcp4_parser.cc" break; - case 733: // dhcp_ddns: "dhcp-ddns" $@114 ":" "{" dhcp_ddns_params "}" -#line 2559 "dhcp4_parser.yy" + case 737: // dhcp_ddns: "dhcp-ddns" $@114 ":" "{" dhcp_ddns_params "}" +#line 2569 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4072 "dhcp4_parser.cc" +#line 4082 "dhcp4_parser.cc" break; - case 734: // $@115: %empty -#line 2566 "dhcp4_parser.yy" + case 738: // $@115: %empty +#line 2576 "dhcp4_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4082 "dhcp4_parser.cc" +#line 4092 "dhcp4_parser.cc" break; - case 735: // sub_dhcp_ddns: "{" $@115 dhcp_ddns_params "}" -#line 2570 "dhcp4_parser.yy" + case 739: // sub_dhcp_ddns: "{" $@115 dhcp_ddns_params "}" +#line 2580 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 4092 "dhcp4_parser.cc" +#line 4102 "dhcp4_parser.cc" break; - case 738: // dhcp_ddns_params: dhcp_ddns_params "," -#line 2578 "dhcp4_parser.yy" + case 742: // dhcp_ddns_params: dhcp_ddns_params "," +#line 2588 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4100 "dhcp4_parser.cc" +#line 4110 "dhcp4_parser.cc" break; - case 757: // enable_updates: "enable-updates" ":" "boolean" -#line 2603 "dhcp4_parser.yy" + case 761: // enable_updates: "enable-updates" ":" "boolean" +#line 2613 "dhcp4_parser.yy" { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 4110 "dhcp4_parser.cc" +#line 4120 "dhcp4_parser.cc" break; - case 758: // $@116: %empty -#line 2609 "dhcp4_parser.yy" + case 762: // $@116: %empty +#line 2619 "dhcp4_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4119 "dhcp4_parser.cc" +#line 4129 "dhcp4_parser.cc" break; - case 759: // server_ip: "server-ip" $@116 ":" "constant string" -#line 2612 "dhcp4_parser.yy" + case 763: // server_ip: "server-ip" $@116 ":" "constant string" +#line 2622 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 4129 "dhcp4_parser.cc" +#line 4139 "dhcp4_parser.cc" break; - case 760: // server_port: "server-port" ":" "integer" -#line 2618 "dhcp4_parser.yy" + case 764: // server_port: "server-port" ":" "integer" +#line 2628 "dhcp4_parser.yy" { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 4139 "dhcp4_parser.cc" +#line 4149 "dhcp4_parser.cc" break; - case 761: // $@117: %empty -#line 2624 "dhcp4_parser.yy" + case 765: // $@117: %empty +#line 2634 "dhcp4_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4148 "dhcp4_parser.cc" +#line 4158 "dhcp4_parser.cc" break; - case 762: // sender_ip: "sender-ip" $@117 ":" "constant string" -#line 2627 "dhcp4_parser.yy" + case 766: // sender_ip: "sender-ip" $@117 ":" "constant string" +#line 2637 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 4158 "dhcp4_parser.cc" +#line 4168 "dhcp4_parser.cc" break; - case 763: // sender_port: "sender-port" ":" "integer" -#line 2633 "dhcp4_parser.yy" + case 767: // sender_port: "sender-port" ":" "integer" +#line 2643 "dhcp4_parser.yy" { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 4168 "dhcp4_parser.cc" +#line 4178 "dhcp4_parser.cc" break; - case 764: // max_queue_size: "max-queue-size" ":" "integer" -#line 2639 "dhcp4_parser.yy" + case 768: // max_queue_size: "max-queue-size" ":" "integer" +#line 2649 "dhcp4_parser.yy" { ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 4178 "dhcp4_parser.cc" +#line 4188 "dhcp4_parser.cc" break; - case 765: // $@118: %empty -#line 2645 "dhcp4_parser.yy" + case 769: // $@118: %empty +#line 2655 "dhcp4_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 4187 "dhcp4_parser.cc" +#line 4197 "dhcp4_parser.cc" break; - case 766: // ncr_protocol: "ncr-protocol" $@118 ":" ncr_protocol_value -#line 2648 "dhcp4_parser.yy" + case 770: // ncr_protocol: "ncr-protocol" $@118 ":" ncr_protocol_value +#line 2658 "dhcp4_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4196 "dhcp4_parser.cc" +#line 4206 "dhcp4_parser.cc" break; - case 767: // ncr_protocol_value: "udp" -#line 2654 "dhcp4_parser.yy" + case 771: // ncr_protocol_value: "udp" +#line 2664 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 4202 "dhcp4_parser.cc" +#line 4212 "dhcp4_parser.cc" break; - case 768: // ncr_protocol_value: "tcp" -#line 2655 "dhcp4_parser.yy" + case 772: // ncr_protocol_value: "tcp" +#line 2665 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 4208 "dhcp4_parser.cc" +#line 4218 "dhcp4_parser.cc" break; - case 769: // $@119: %empty -#line 2658 "dhcp4_parser.yy" + case 773: // $@119: %empty +#line 2668 "dhcp4_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 4217 "dhcp4_parser.cc" +#line 4227 "dhcp4_parser.cc" break; - case 770: // ncr_format: "ncr-format" $@119 ":" "JSON" -#line 2661 "dhcp4_parser.yy" + case 774: // ncr_format: "ncr-format" $@119 ":" "JSON" +#line 2671 "dhcp4_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 4227 "dhcp4_parser.cc" +#line 4237 "dhcp4_parser.cc" break; - case 771: // $@120: %empty -#line 2668 "dhcp4_parser.yy" + case 775: // $@120: %empty +#line 2678 "dhcp4_parser.yy" { ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4236 "dhcp4_parser.cc" +#line 4246 "dhcp4_parser.cc" break; - case 772: // dep_qualifying_suffix: "qualifying-suffix" $@120 ":" "constant string" -#line 2671 "dhcp4_parser.yy" + case 776: // dep_qualifying_suffix: "qualifying-suffix" $@120 ":" "constant string" +#line 2681 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); ctx.leave(); } -#line 4246 "dhcp4_parser.cc" +#line 4256 "dhcp4_parser.cc" break; - case 773: // dep_override_no_update: "override-no-update" ":" "boolean" -#line 2678 "dhcp4_parser.yy" + case 777: // dep_override_no_update: "override-no-update" ":" "boolean" +#line 2688 "dhcp4_parser.yy" { ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 4256 "dhcp4_parser.cc" +#line 4266 "dhcp4_parser.cc" break; - case 774: // dep_override_client_update: "override-client-update" ":" "boolean" -#line 2685 "dhcp4_parser.yy" + case 778: // dep_override_client_update: "override-client-update" ":" "boolean" +#line 2695 "dhcp4_parser.yy" { ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 4266 "dhcp4_parser.cc" +#line 4276 "dhcp4_parser.cc" break; - case 775: // $@121: %empty -#line 2692 "dhcp4_parser.yy" + case 779: // $@121: %empty +#line 2702 "dhcp4_parser.yy" { ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 4275 "dhcp4_parser.cc" +#line 4285 "dhcp4_parser.cc" break; - case 776: // dep_replace_client_name: "replace-client-name" $@121 ":" ddns_replace_client_name_value -#line 2695 "dhcp4_parser.yy" + case 780: // dep_replace_client_name: "replace-client-name" $@121 ":" ddns_replace_client_name_value +#line 2705 "dhcp4_parser.yy" { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4284 "dhcp4_parser.cc" +#line 4294 "dhcp4_parser.cc" break; - case 777: // $@122: %empty -#line 2701 "dhcp4_parser.yy" + case 781: // $@122: %empty +#line 2711 "dhcp4_parser.yy" { ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4293 "dhcp4_parser.cc" +#line 4303 "dhcp4_parser.cc" break; - case 778: // dep_generated_prefix: "generated-prefix" $@122 ":" "constant string" -#line 2704 "dhcp4_parser.yy" + case 782: // dep_generated_prefix: "generated-prefix" $@122 ":" "constant string" +#line 2714 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); ctx.leave(); } -#line 4303 "dhcp4_parser.cc" +#line 4313 "dhcp4_parser.cc" break; - case 779: // $@123: %empty -#line 2711 "dhcp4_parser.yy" + case 783: // $@123: %empty +#line 2721 "dhcp4_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4312 "dhcp4_parser.cc" +#line 4322 "dhcp4_parser.cc" break; - case 780: // dep_hostname_char_set: "hostname-char-set" $@123 ":" "constant string" -#line 2714 "dhcp4_parser.yy" + case 784: // dep_hostname_char_set: "hostname-char-set" $@123 ":" "constant string" +#line 2724 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 4322 "dhcp4_parser.cc" +#line 4332 "dhcp4_parser.cc" break; - case 781: // $@124: %empty -#line 2721 "dhcp4_parser.yy" + case 785: // $@124: %empty +#line 2731 "dhcp4_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4331 "dhcp4_parser.cc" +#line 4341 "dhcp4_parser.cc" break; - case 782: // dep_hostname_char_replacement: "hostname-char-replacement" $@124 ":" "constant string" -#line 2724 "dhcp4_parser.yy" + case 786: // dep_hostname_char_replacement: "hostname-char-replacement" $@124 ":" "constant string" +#line 2734 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 4341 "dhcp4_parser.cc" +#line 4351 "dhcp4_parser.cc" break; - case 783: // $@125: %empty -#line 2733 "dhcp4_parser.yy" + case 787: // $@125: %empty +#line 2743 "dhcp4_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4349,48 +4359,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 4353 "dhcp4_parser.cc" +#line 4363 "dhcp4_parser.cc" break; - case 784: // config_control: "config-control" $@125 ":" "{" config_control_params "}" -#line 2739 "dhcp4_parser.yy" + case 788: // config_control: "config-control" $@125 ":" "{" config_control_params "}" +#line 2749 "dhcp4_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4363 "dhcp4_parser.cc" +#line 4373 "dhcp4_parser.cc" break; - case 785: // $@126: %empty -#line 2745 "dhcp4_parser.yy" + case 789: // $@126: %empty +#line 2755 "dhcp4_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4373 "dhcp4_parser.cc" +#line 4383 "dhcp4_parser.cc" break; - case 786: // sub_config_control: "{" $@126 config_control_params "}" -#line 2749 "dhcp4_parser.yy" + case 790: // sub_config_control: "{" $@126 config_control_params "}" +#line 2759 "dhcp4_parser.yy" { // No config_control params are required // parsing completed } -#line 4382 "dhcp4_parser.cc" +#line 4392 "dhcp4_parser.cc" break; - case 789: // config_control_params: config_control_params "," -#line 2757 "dhcp4_parser.yy" + case 793: // config_control_params: config_control_params "," +#line 2767 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4390 "dhcp4_parser.cc" +#line 4400 "dhcp4_parser.cc" break; - case 792: // $@127: %empty -#line 2767 "dhcp4_parser.yy" + case 796: // $@127: %empty +#line 2777 "dhcp4_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4398,30 +4408,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 4402 "dhcp4_parser.cc" +#line 4412 "dhcp4_parser.cc" break; - case 793: // config_databases: "config-databases" $@127 ":" "[" database_list "]" -#line 2773 "dhcp4_parser.yy" + case 797: // config_databases: "config-databases" $@127 ":" "[" database_list "]" +#line 2783 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4411 "dhcp4_parser.cc" +#line 4421 "dhcp4_parser.cc" break; - case 794: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 2778 "dhcp4_parser.yy" + case 798: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" +#line 2788 "dhcp4_parser.yy" { ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 4421 "dhcp4_parser.cc" +#line 4431 "dhcp4_parser.cc" break; - case 795: // $@128: %empty -#line 2786 "dhcp4_parser.yy" + case 799: // $@128: %empty +#line 2796 "dhcp4_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4429,83 +4439,83 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 4433 "dhcp4_parser.cc" +#line 4443 "dhcp4_parser.cc" break; - case 796: // loggers: "loggers" $@128 ":" "[" loggers_entries "]" -#line 2792 "dhcp4_parser.yy" + case 800: // loggers: "loggers" $@128 ":" "[" loggers_entries "]" +#line 2802 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4442 "dhcp4_parser.cc" +#line 4452 "dhcp4_parser.cc" break; - case 799: // loggers_entries: loggers_entries "," -#line 2801 "dhcp4_parser.yy" + case 803: // loggers_entries: loggers_entries "," +#line 2811 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4450 "dhcp4_parser.cc" +#line 4460 "dhcp4_parser.cc" break; - case 800: // $@129: %empty -#line 2807 "dhcp4_parser.yy" + case 804: // $@129: %empty +#line 2817 "dhcp4_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 4460 "dhcp4_parser.cc" +#line 4470 "dhcp4_parser.cc" break; - case 801: // logger_entry: "{" $@129 logger_params "}" -#line 2811 "dhcp4_parser.yy" + case 805: // logger_entry: "{" $@129 logger_params "}" +#line 2821 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4468 "dhcp4_parser.cc" +#line 4478 "dhcp4_parser.cc" break; - case 804: // logger_params: logger_params "," -#line 2817 "dhcp4_parser.yy" + case 808: // logger_params: logger_params "," +#line 2827 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4476 "dhcp4_parser.cc" +#line 4486 "dhcp4_parser.cc" break; - case 812: // debuglevel: "debuglevel" ":" "integer" -#line 2831 "dhcp4_parser.yy" + case 816: // debuglevel: "debuglevel" ":" "integer" +#line 2841 "dhcp4_parser.yy" { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 4486 "dhcp4_parser.cc" +#line 4496 "dhcp4_parser.cc" break; - case 813: // $@130: %empty -#line 2837 "dhcp4_parser.yy" + case 817: // $@130: %empty +#line 2847 "dhcp4_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4495 "dhcp4_parser.cc" +#line 4505 "dhcp4_parser.cc" break; - case 814: // severity: "severity" $@130 ":" "constant string" -#line 2840 "dhcp4_parser.yy" + case 818: // severity: "severity" $@130 ":" "constant string" +#line 2850 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 4505 "dhcp4_parser.cc" +#line 4515 "dhcp4_parser.cc" break; - case 815: // $@131: %empty -#line 2846 "dhcp4_parser.yy" + case 819: // $@131: %empty +#line 2856 "dhcp4_parser.yy" { ctx.unique("output_options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4513,122 +4523,122 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4517 "dhcp4_parser.cc" +#line 4527 "dhcp4_parser.cc" break; - case 816: // output_options_list: "output_options" $@131 ":" "[" output_options_list_content "]" -#line 2852 "dhcp4_parser.yy" + case 820: // output_options_list: "output_options" $@131 ":" "[" output_options_list_content "]" +#line 2862 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4526 "dhcp4_parser.cc" +#line 4536 "dhcp4_parser.cc" break; - case 819: // output_options_list_content: output_options_list_content "," -#line 2859 "dhcp4_parser.yy" + case 823: // output_options_list_content: output_options_list_content "," +#line 2869 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4534 "dhcp4_parser.cc" +#line 4544 "dhcp4_parser.cc" break; - case 820: // $@132: %empty -#line 2864 "dhcp4_parser.yy" + case 824: // $@132: %empty +#line 2874 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4544 "dhcp4_parser.cc" +#line 4554 "dhcp4_parser.cc" break; - case 821: // output_entry: "{" $@132 output_params_list "}" -#line 2868 "dhcp4_parser.yy" + case 825: // output_entry: "{" $@132 output_params_list "}" +#line 2878 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4552 "dhcp4_parser.cc" +#line 4562 "dhcp4_parser.cc" break; - case 824: // output_params_list: output_params_list "," -#line 2874 "dhcp4_parser.yy" + case 828: // output_params_list: output_params_list "," +#line 2884 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4560 "dhcp4_parser.cc" +#line 4570 "dhcp4_parser.cc" break; - case 830: // $@133: %empty -#line 2886 "dhcp4_parser.yy" + case 834: // $@133: %empty +#line 2896 "dhcp4_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4569 "dhcp4_parser.cc" +#line 4579 "dhcp4_parser.cc" break; - case 831: // output: "output" $@133 ":" "constant string" -#line 2889 "dhcp4_parser.yy" + case 835: // output: "output" $@133 ":" "constant string" +#line 2899 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 4579 "dhcp4_parser.cc" +#line 4589 "dhcp4_parser.cc" break; - case 832: // flush: "flush" ":" "boolean" -#line 2895 "dhcp4_parser.yy" + case 836: // flush: "flush" ":" "boolean" +#line 2905 "dhcp4_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 4589 "dhcp4_parser.cc" +#line 4599 "dhcp4_parser.cc" break; - case 833: // maxsize: "maxsize" ":" "integer" -#line 2901 "dhcp4_parser.yy" + case 837: // maxsize: "maxsize" ":" "integer" +#line 2911 "dhcp4_parser.yy" { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 4599 "dhcp4_parser.cc" +#line 4609 "dhcp4_parser.cc" break; - case 834: // maxver: "maxver" ":" "integer" -#line 2907 "dhcp4_parser.yy" + case 838: // maxver: "maxver" ":" "integer" +#line 2917 "dhcp4_parser.yy" { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 4609 "dhcp4_parser.cc" +#line 4619 "dhcp4_parser.cc" break; - case 835: // $@134: %empty -#line 2913 "dhcp4_parser.yy" + case 839: // $@134: %empty +#line 2923 "dhcp4_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4618 "dhcp4_parser.cc" +#line 4628 "dhcp4_parser.cc" break; - case 836: // pattern: "pattern" $@134 ":" "constant string" -#line 2916 "dhcp4_parser.yy" + case 840: // pattern: "pattern" $@134 ":" "constant string" +#line 2926 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 4628 "dhcp4_parser.cc" +#line 4638 "dhcp4_parser.cc" break; - case 837: // $@135: %empty -#line 2922 "dhcp4_parser.yy" + case 841: // $@135: %empty +#line 2932 "dhcp4_parser.yy" { ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4636,68 +4646,68 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.COMPATIBILITY); } -#line 4640 "dhcp4_parser.cc" +#line 4650 "dhcp4_parser.cc" break; - case 838: // compatibility: "compatibility" $@135 ":" "{" compatibility_params "}" -#line 2928 "dhcp4_parser.yy" + case 842: // compatibility: "compatibility" $@135 ":" "{" compatibility_params "}" +#line 2938 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4649 "dhcp4_parser.cc" +#line 4659 "dhcp4_parser.cc" break; - case 841: // compatibility_params: compatibility_params "," -#line 2935 "dhcp4_parser.yy" + case 845: // compatibility_params: compatibility_params "," +#line 2945 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4657 "dhcp4_parser.cc" +#line 4667 "dhcp4_parser.cc" break; - case 847: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" -#line 2947 "dhcp4_parser.yy" + case 851: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" +#line 2957 "dhcp4_parser.yy" { ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lenient-option-parsing", b); } -#line 4667 "dhcp4_parser.cc" +#line 4677 "dhcp4_parser.cc" break; - case 848: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean" -#line 2953 "dhcp4_parser.yy" + case 852: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean" +#line 2963 "dhcp4_parser.yy" { ctx.unique("ignore-dhcp-server-identifier", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ignore-dhcp-server-identifier", b); } -#line 4677 "dhcp4_parser.cc" +#line 4687 "dhcp4_parser.cc" break; - case 849: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean" -#line 2959 "dhcp4_parser.yy" + case 853: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean" +#line 2969 "dhcp4_parser.yy" { ctx.unique("ignore-rai-link-selection", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ignore-rai-link-selection", b); } -#line 4687 "dhcp4_parser.cc" +#line 4697 "dhcp4_parser.cc" break; - case 850: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean" -#line 2965 "dhcp4_parser.yy" + case 854: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean" +#line 2975 "dhcp4_parser.yy" { ctx.unique("exclude-first-last-24", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("exclude-first-last-24", b); } -#line 4697 "dhcp4_parser.cc" +#line 4707 "dhcp4_parser.cc" break; -#line 4701 "dhcp4_parser.cc" +#line 4711 "dhcp4_parser.cc" default: break; @@ -4935,16 +4945,16 @@ namespace isc { namespace dhcp { // Actual number of expected tokens int yycount = 0; - const int yyn = yypact_[+yyparser_.yystack_[0].state]; + int yyn = yypact_[+yyparser_.yystack_[0].state]; if (!yy_pact_value_is_default_ (yyn)) { /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. In other words, skip the first -YYN actions for this state because they are default actions. */ - const int yyxbegin = yyn < 0 ? -yyn : 0; + int yyxbegin = yyn < 0 ? -yyn : 0; // Stay within bounds of both yycheck and yytname. - const int yychecklim = yylast_ - yyn + 1; - const int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yychecklim = yylast_ - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; for (int yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror && !yy_table_value_is_error_ (yytable_[yyx + yyn])) @@ -4965,9 +4975,6 @@ namespace isc { namespace dhcp { - - - int Dhcp4Parser::yy_syntax_error_arguments_ (const context& yyctx, symbol_kind_type yyarg[], int yyargn) const @@ -5049,144 +5056,145 @@ namespace isc { namespace dhcp { } - const short Dhcp4Parser::yypact_ninf_ = -1001; + const short Dhcp4Parser::yypact_ninf_ = -1006; const signed char Dhcp4Parser::yytable_ninf_ = -1; const short Dhcp4Parser::yypact_[] = { - 400, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, 34, 31, 61, 66, 94, 100, - 111, 118, 122, 130, 142, 144, 165, 172, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, 31, -151, 137, 197, 87, 642, - 74, 43, -21, 265, 233, -94, 254, 212, -1001, 175, - 80, 181, 187, 213, -1001, 78, -1001, -1001, -1001, -1001, - 238, 294, 308, -1001, -1001, -1001, 311, -1001, -1001, -1001, - 319, 320, 321, 330, 331, 333, 334, 337, 365, 367, - 368, -1001, 369, 387, 389, 404, 405, -1001, -1001, -1001, - 425, 426, 427, -1001, -1001, -1001, 437, -1001, -1001, -1001, - -1001, -1001, 447, 448, 452, -1001, -1001, -1001, -1001, -1001, - 453, -1001, -1001, -1001, -1001, -1001, -1001, 455, 458, 459, - -1001, -1001, 460, -1001, 114, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, 461, 462, 466, 470, -1001, 132, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, 471, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, 140, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, 147, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, 287, 353, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, 432, -1001, -1001, 473, -1001, - -1001, -1001, 476, -1001, -1001, 442, 478, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - 479, 480, 482, -1001, -1001, -1001, -1001, 474, 487, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, 202, -1001, -1001, -1001, 489, -1001, -1001, 494, - -1001, 498, 500, -1001, -1001, 502, 504, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, 214, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, 505, 235, -1001, -1001, -1001, -1001, 31, 31, - -1001, -148, 507, -1001, -1001, 509, 510, 512, 301, 303, - 304, 514, 517, 520, 313, 524, 525, 526, 317, 318, - 323, 326, 327, 328, 332, 335, 338, 329, 340, 529, - 343, 346, 336, 339, 347, 530, 542, 552, 354, 355, - 356, 555, 563, 564, 361, 574, 579, 581, 582, 584, - 373, 374, 377, 592, 609, 610, 611, 612, 403, 614, - 615, 616, 617, 618, 619, 408, 409, 410, 623, 624, - -1001, 197, -1001, 625, 626, 627, 416, 417, 420, 421, - 87, -1001, 632, 633, 634, 635, 636, 637, 428, 639, - 640, 641, 642, -1001, 644, 74, -1001, 646, 647, 648, - 649, 650, 651, 652, 653, -1001, 43, -1001, 654, 655, - 449, 656, 658, 660, 450, -1001, 265, 661, 454, 463, - 464, -1001, 233, 664, 665, -92, -1001, 465, 667, 674, - 468, 679, 472, 475, 684, 686, 477, 481, 688, 690, - 691, 692, 254, -1001, 694, 485, 212, -1001, -1001, -1001, - 696, 710, 711, 712, 713, -1001, -1001, -1001, 433, 488, - 521, -1001, 723, 729, 732, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, 527, -1001, -1001, -1001, - -1001, -1001, -123, 532, 533, -1001, -1001, -1001, 733, 734, - 743, -1001, 537, 752, 751, 546, 53, -1001, -1001, -1001, - 755, 759, 760, 762, 761, -1001, 765, 766, 767, 768, - 556, 566, -1001, -1001, -1001, 771, 770, -1001, 775, 222, - 237, -1001, -1001, -1001, -1001, -1001, 568, 569, 570, 779, - 572, 573, -1001, 775, 575, 780, -1001, 576, -1001, 775, - 577, 578, 580, 583, 585, 586, 587, -1001, 588, 589, - -1001, 590, 591, 593, -1001, -1001, 594, -1001, -1001, -1001, - -1001, 595, 751, -1001, -1001, 596, 597, -1001, 598, -1001, - -1001, 15, 621, -1001, -1001, -123, 599, 600, 601, -1001, - 787, -1001, -1001, 31, 197, 212, 87, 232, -1001, -1001, - -1001, 351, 351, 788, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, 798, 808, 809, -1001, 810, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, 56, 811, 812, 813, - 241, 48, -59, 5, 254, -1001, -1001, 814, -109, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - 815, -1001, -1001, -1001, -1001, 184, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, 788, -1001, 283, 285, 289, -1001, - -1001, 291, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 790, - 821, 822, 823, 824, 825, 826, 827, 834, 835, -1001, - 836, -1001, -1001, -1001, -1001, -1001, 302, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 305, - -1001, 837, 838, -1001, -1001, 839, 841, -1001, -1001, 840, - 844, -1001, -1001, 842, 846, -1001, -1001, 845, 847, -1001, - -1001, -1001, -1001, -1001, -1001, 64, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, 88, -1001, -1001, 848, 849, -1001, -1001, - 850, 854, -1001, 855, 856, 857, 858, 859, 860, 306, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, 861, 862, 873, - -1001, 341, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, 342, -1001, -1001, -1001, 874, -1001, 875, - -1001, -1001, -1001, 345, -1001, -1001, -1001, -1001, -1001, 349, - -1001, 200, -1001, 876, 887, 888, 889, -1001, 352, -1001, - -1001, -1001, -1001, -1001, 629, -1001, 852, 891, -1001, -1001, - -1001, -1001, 890, 893, -1001, -1001, -1001, 896, 897, 232, - -1001, 898, 899, 900, 901, 683, 693, 699, 701, 704, - 705, 706, 714, 715, 717, 902, 718, 904, 906, 911, - 920, 351, -1001, -1001, 351, -1001, 788, 642, -1001, 798, - 265, -1001, 808, 233, -1001, 809, 802, -1001, 810, 56, - -1001, 127, 811, -1001, 43, -1001, 812, -94, -1001, 813, - 719, 720, 721, 722, 725, 727, 241, -1001, 709, 728, - 730, 48, -1001, 923, 933, -59, -1001, 731, 941, 741, - 944, 5, -1001, -1001, -57, 814, -1001, 750, 753, 754, - 769, -109, -1001, -1001, 998, 1005, 74, -1001, 815, 1008, - -1001, -1001, 805, 877, -1001, 38, 881, 882, 883, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 192, - -1001, 884, 885, 886, 892, -1001, 362, -1001, 429, -1001, - 1013, -1001, 1014, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 430, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, 1021, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, 1018, 1025, -1001, -1001, - -1001, -1001, -1001, -1001, 1030, -1001, 436, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 894, - 895, -1001, -1001, 903, -1001, 31, -1001, -1001, 1044, -1001, - -1001, -1001, -1001, -1001, 439, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, 905, 445, -1001, 775, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, 802, -1001, 1045, 1083, 907, -1001, 127, -1001, -1001, - -1001, -1001, -1001, -1001, 1096, 908, 1097, -57, -1001, -1001, - -1001, -1001, -1001, 912, 913, -1001, -1001, 1098, -1001, 914, - -1001, -1001, -1001, 1095, -1001, -1001, 201, -1001, 21, 1095, - -1001, -1001, 1100, 1102, 1105, -1001, 446, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, 1106, 915, 910, 916, 1107, 21, - -1001, 919, -1001, -1001, -1001, 921, -1001, -1001, -1001 + 195, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, 38, 41, 40, 42, 50, 66, + 86, 94, 100, 108, 115, 136, 158, 178, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, 41, -160, 163, 199, 87, 647, + 93, 46, 82, 97, 267, -89, 446, 211, -1006, 56, + 130, 61, 181, 190, -1006, 48, -1006, -1006, -1006, -1006, + 79, 192, 205, -1006, -1006, -1006, 216, -1006, -1006, -1006, + 249, 298, 311, 312, 320, 324, 333, 340, 351, 367, + 369, -1006, 383, 384, 408, 425, 426, -1006, -1006, -1006, + 427, 439, 442, 444, -1006, -1006, -1006, 445, -1006, -1006, + -1006, -1006, -1006, 447, 448, 449, -1006, -1006, -1006, -1006, + -1006, 450, -1006, -1006, -1006, -1006, -1006, -1006, 451, 452, + 453, -1006, -1006, 454, -1006, 78, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, 456, 457, 459, 462, + -1006, 88, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 464, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 111, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, 127, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, 283, 387, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 362, -1006, + -1006, 465, -1006, -1006, -1006, 466, -1006, -1006, 402, 438, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, 467, 470, 474, -1006, -1006, -1006, -1006, + 476, 479, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, 144, -1006, -1006, -1006, 481, + -1006, -1006, 482, -1006, 483, 484, -1006, -1006, 486, 490, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, 168, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, 493, 180, -1006, -1006, -1006, + -1006, 41, 41, -1006, 236, 498, -1006, -1006, 502, 504, + 506, 295, 296, 301, 511, 513, 516, 306, 518, 519, + 520, 313, 316, 317, 318, 319, 308, 321, 322, 325, + 329, 330, 531, 332, 336, 331, 341, 342, 532, 546, + 550, 343, 346, 352, 347, 557, 563, 567, 357, 570, + 571, 572, 575, 578, 373, 375, 376, 585, 590, 593, + 596, 600, 390, 603, 604, 618, 619, 620, 621, 409, + 410, 413, 627, 628, -1006, 199, -1006, 629, 630, 631, + 419, 420, 423, 424, 87, -1006, 636, 637, 638, 639, + 640, 641, 431, 643, 644, 645, 647, -1006, 646, 93, + -1006, 649, 651, 652, 653, 654, 655, 657, 658, -1006, + 46, -1006, 659, 660, 455, 661, 663, 664, 458, -1006, + 97, 665, 468, 469, 471, -1006, 267, 667, 669, -74, + -1006, 477, 670, 672, 472, 679, 478, 480, 680, 687, + 485, 487, 693, 694, 695, 696, 446, -1006, 697, 488, + 211, -1006, -1006, -1006, 701, 699, 715, 716, 717, -1006, + -1006, -1006, 522, 526, 528, -1006, 718, 736, 739, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + 536, -1006, -1006, -1006, -1006, -1006, 155, 537, 538, -1006, + -1006, -1006, -1006, 740, 749, 751, -1006, 549, 759, 758, + 552, 122, -1006, -1006, -1006, 765, 766, 768, 769, 771, + -1006, 772, 773, 774, 775, 561, 569, -1006, -1006, -1006, + 780, 779, -1006, 782, 194, 206, -1006, -1006, -1006, -1006, + -1006, 574, 576, 577, 784, 579, 580, -1006, 782, 581, + 785, -1006, 582, -1006, 782, 583, 584, 586, 587, 588, + 589, 591, -1006, 592, 594, -1006, 595, 597, 598, -1006, + -1006, 599, -1006, -1006, -1006, -1006, 601, 758, -1006, -1006, + 602, 605, -1006, 606, -1006, -1006, 14, 622, -1006, -1006, + 155, 607, 608, 609, -1006, 799, -1006, -1006, 41, 199, + 211, 87, 223, -1006, -1006, -1006, 372, 372, 800, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 803, 807, + 810, -1006, 811, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, 83, 817, 818, 819, 99, -77, 49, 7, 446, + -1006, -1006, 820, -110, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, 821, -1006, -1006, -1006, -1006, + 123, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 800, + -1006, 183, 251, 286, -1006, -1006, 287, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, 827, 828, 829, 830, 831, 838, + 839, 840, 841, 842, -1006, 843, -1006, -1006, -1006, -1006, + -1006, 300, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, 309, -1006, 844, 648, -1006, -1006, + 845, 846, -1006, -1006, 847, 849, -1006, -1006, 848, 852, + -1006, -1006, 850, 854, -1006, -1006, -1006, -1006, -1006, -1006, + 34, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 91, -1006, + -1006, 853, 855, -1006, -1006, 856, 857, -1006, 859, 860, + 861, 862, 863, 864, 310, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, 865, 866, 877, -1006, 335, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 337, -1006, + -1006, -1006, 878, -1006, 879, -1006, -1006, -1006, 338, -1006, + -1006, -1006, -1006, -1006, 344, -1006, 126, -1006, 880, 892, + 893, 894, -1006, 345, -1006, -1006, -1006, -1006, -1006, 634, + -1006, 896, 900, -1006, -1006, -1006, -1006, 891, 898, -1006, + -1006, -1006, 901, 902, 223, -1006, 903, 904, 905, 906, + 698, 703, 700, 705, 708, 709, 710, 714, 719, 721, + 907, 722, 910, 914, 926, 928, 372, -1006, -1006, 372, + -1006, 800, 647, -1006, 803, 97, -1006, 807, 267, -1006, + 810, 806, -1006, 811, 83, -1006, 265, 817, -1006, 46, + -1006, 818, -89, -1006, 819, 723, 724, 725, 726, 727, + 729, 99, -1006, 730, 731, 734, -77, -1006, 929, 946, + 49, -1006, 735, 949, 745, 967, 7, -1006, -1006, -40, + 820, -1006, 757, 792, 796, 809, -110, -1006, -1006, 969, + 987, 93, -1006, 821, 1013, -1006, -1006, 813, 816, -1006, + 113, 881, 885, 886, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, 268, -1006, 888, 889, 890, 895, + -1006, 348, -1006, 366, -1006, 1015, -1006, 1023, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, 386, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 1029, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, 1035, 1050, -1006, -1006, -1006, -1006, -1006, -1006, + 1046, -1006, 406, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, 897, 899, -1006, -1006, 908, + -1006, 41, -1006, -1006, 1101, -1006, -1006, -1006, -1006, -1006, + 434, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, 909, 436, -1006, 782, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, 806, -1006, 1102, + 1103, 911, -1006, 265, -1006, -1006, -1006, -1006, -1006, -1006, + 1104, 912, 1106, -40, -1006, -1006, -1006, -1006, -1006, 915, + 916, -1006, -1006, 1107, -1006, 917, -1006, -1006, -1006, 1108, + -1006, -1006, 166, -1006, -31, 1108, -1006, -1006, 1110, 1112, + 1113, -1006, 437, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + 1114, 918, 919, 921, 1115, -31, -1006, 923, -1006, -1006, + -1006, 924, -1006, -1006, -1006 }; const short @@ -5196,732 +5204,736 @@ namespace isc { namespace dhcp { 20, 22, 24, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 44, 36, 32, 31, 28, 29, 30, 35, 3, 33, 34, - 59, 5, 65, 7, 197, 9, 375, 11, 589, 13, - 616, 15, 507, 17, 516, 19, 555, 21, 337, 23, - 734, 25, 785, 27, 46, 39, 0, 0, 0, 0, - 0, 618, 0, 518, 557, 0, 0, 0, 48, 0, - 47, 0, 0, 40, 61, 0, 63, 783, 182, 215, - 0, 0, 0, 638, 640, 642, 0, 213, 226, 228, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 0, 0, 0, 0, 0, 158, 165, 167, - 0, 0, 0, 366, 505, 546, 0, 150, 451, 603, - 605, 444, 0, 0, 0, 299, 666, 607, 328, 349, - 0, 314, 701, 715, 732, 171, 173, 0, 0, 0, - 795, 837, 0, 135, 0, 67, 70, 71, 72, 73, - 74, 108, 109, 110, 111, 112, 75, 103, 132, 133, - 92, 93, 94, 116, 117, 118, 119, 120, 121, 122, - 123, 114, 115, 124, 125, 126, 128, 129, 130, 134, - 78, 79, 100, 80, 81, 82, 127, 86, 87, 76, - 105, 106, 107, 104, 77, 84, 85, 98, 99, 101, - 95, 96, 97, 83, 88, 89, 90, 91, 102, 113, - 131, 199, 201, 205, 0, 0, 0, 0, 196, 0, - 184, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 429, 431, 433, 580, 427, 435, 0, 439, 437, 662, - 426, 380, 381, 382, 383, 384, 408, 409, 410, 411, - 412, 424, 398, 399, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 425, 0, 377, 387, 403, - 404, 405, 388, 390, 391, 394, 395, 396, 393, 389, - 385, 386, 406, 407, 392, 400, 401, 402, 397, 601, - 600, 596, 597, 595, 0, 591, 594, 598, 599, 660, - 648, 650, 654, 652, 658, 656, 644, 637, 631, 635, - 636, 0, 619, 620, 632, 633, 634, 628, 623, 629, - 625, 626, 627, 630, 624, 0, 536, 274, 0, 540, - 538, 543, 0, 532, 533, 0, 519, 520, 523, 535, - 524, 525, 526, 542, 527, 528, 529, 530, 531, 573, - 0, 0, 0, 571, 572, 575, 576, 0, 558, 559, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 345, - 347, 342, 0, 339, 343, 344, 0, 771, 758, 0, - 761, 0, 0, 765, 769, 0, 0, 775, 777, 779, - 781, 756, 754, 755, 0, 736, 739, 740, 741, 742, - 743, 744, 745, 746, 751, 747, 748, 749, 750, 752, - 753, 792, 0, 0, 787, 790, 791, 45, 50, 0, - 37, 43, 0, 64, 60, 0, 0, 0, 0, 0, + 59, 5, 65, 7, 199, 9, 377, 11, 593, 13, + 620, 15, 511, 17, 520, 19, 559, 21, 339, 23, + 738, 25, 789, 27, 46, 39, 0, 0, 0, 0, + 0, 622, 0, 522, 561, 0, 0, 0, 48, 0, + 47, 0, 0, 40, 61, 0, 63, 787, 184, 217, + 0, 0, 0, 642, 644, 646, 0, 215, 228, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 148, 0, 0, 0, 0, 0, 159, 166, 168, + 0, 0, 0, 0, 368, 509, 550, 0, 151, 454, + 607, 609, 447, 0, 0, 0, 301, 670, 611, 330, + 351, 0, 316, 705, 719, 736, 173, 175, 0, 0, + 0, 799, 841, 0, 136, 0, 67, 70, 71, 72, + 73, 74, 108, 109, 110, 111, 112, 75, 103, 133, + 134, 92, 93, 94, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 114, 115, 125, 126, 127, 129, 130, + 131, 135, 78, 79, 100, 80, 81, 82, 128, 86, + 87, 76, 105, 106, 107, 104, 77, 84, 85, 98, + 99, 101, 95, 96, 97, 83, 88, 89, 90, 91, + 102, 113, 132, 201, 203, 207, 0, 0, 0, 0, + 198, 0, 186, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 432, 434, 436, 584, 430, 438, 0, 442, + 440, 666, 429, 382, 383, 384, 385, 386, 410, 411, + 412, 413, 414, 427, 400, 401, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 428, 0, + 379, 389, 405, 406, 407, 390, 392, 393, 396, 397, + 398, 395, 391, 387, 388, 408, 409, 394, 402, 403, + 404, 399, 605, 604, 600, 601, 599, 0, 595, 598, + 602, 603, 664, 652, 654, 658, 656, 662, 660, 648, + 641, 635, 639, 640, 0, 623, 624, 636, 637, 638, + 632, 627, 633, 629, 630, 631, 634, 628, 0, 540, + 276, 0, 544, 542, 547, 0, 536, 537, 0, 523, + 524, 527, 539, 528, 529, 530, 546, 531, 532, 533, + 534, 535, 577, 0, 0, 0, 575, 576, 579, 580, + 0, 562, 563, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 347, 349, 344, 0, 341, 345, 346, 0, + 775, 762, 0, 765, 0, 0, 769, 773, 0, 0, + 779, 781, 783, 785, 760, 758, 759, 0, 740, 743, + 744, 745, 746, 747, 748, 749, 750, 755, 751, 752, + 753, 754, 756, 757, 796, 0, 0, 791, 794, 795, + 45, 50, 0, 37, 43, 0, 64, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 58, 69, 66, 0, 0, 0, 0, 0, 0, 0, - 186, 198, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 379, 376, 0, 593, 590, 0, 0, 0, - 0, 0, 0, 0, 0, 617, 622, 508, 0, 0, - 0, 0, 0, 0, 0, 517, 522, 0, 0, 0, - 0, 556, 561, 0, 0, 341, 338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 738, 735, 0, 0, 789, 786, 49, 41, - 0, 0, 0, 0, 0, 152, 153, 154, 0, 0, - 0, 181, 0, 0, 0, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 0, 176, 177, 155, - 156, 157, 0, 0, 0, 169, 170, 175, 0, 0, - 0, 149, 0, 0, 0, 0, 0, 441, 442, 443, - 0, 0, 0, 0, 0, 700, 0, 0, 0, 0, - 0, 0, 178, 179, 180, 0, 0, 68, 0, 0, - 0, 209, 210, 211, 212, 185, 0, 0, 0, 0, - 0, 0, 450, 0, 0, 0, 378, 0, 592, 0, - 0, 0, 0, 0, 0, 0, 0, 621, 0, 0, - 534, 0, 0, 0, 545, 521, 0, 577, 578, 579, - 560, 0, 0, 340, 757, 0, 0, 760, 0, 763, - 764, 0, 0, 773, 774, 0, 0, 0, 0, 737, - 0, 794, 788, 0, 0, 0, 0, 0, 639, 641, - 643, 0, 0, 230, 148, 160, 161, 162, 163, 164, - 159, 166, 168, 368, 509, 548, 151, 453, 38, 604, - 606, 446, 447, 448, 449, 445, 0, 0, 609, 330, - 0, 0, 0, 0, 0, 172, 174, 0, 0, 51, - 200, 203, 204, 202, 207, 208, 206, 430, 432, 434, - 582, 428, 436, 440, 438, 0, 602, 661, 649, 651, - 655, 653, 659, 657, 645, 537, 275, 541, 539, 544, - 574, 346, 348, 772, 759, 762, 767, 768, 766, 770, - 776, 778, 780, 782, 230, 42, 0, 0, 0, 222, - 224, 0, 217, 220, 221, 262, 267, 269, 271, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, - 0, 291, 293, 295, 297, 261, 0, 237, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 0, - 235, 0, 231, 232, 373, 0, 369, 370, 514, 0, - 510, 511, 553, 0, 549, 550, 458, 0, 454, 455, - 309, 310, 311, 312, 313, 0, 301, 304, 305, 306, - 307, 308, 671, 0, 668, 614, 0, 610, 611, 335, - 0, 331, 332, 0, 0, 0, 0, 0, 0, 0, - 351, 354, 355, 356, 357, 358, 359, 0, 0, 0, - 324, 0, 316, 319, 320, 321, 322, 323, 711, 713, - 710, 708, 709, 0, 703, 706, 707, 0, 727, 0, - 730, 723, 724, 0, 717, 720, 721, 722, 725, 0, - 800, 0, 797, 0, 0, 0, 0, 846, 0, 839, - 842, 843, 844, 845, 53, 587, 0, 583, 584, 646, - 664, 665, 0, 0, 62, 784, 183, 0, 0, 219, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 58, 69, 66, 0, 0, 0, + 0, 0, 0, 0, 188, 200, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 381, 378, 0, 597, + 594, 0, 0, 0, 0, 0, 0, 0, 0, 621, + 626, 512, 0, 0, 0, 0, 0, 0, 0, 521, + 526, 0, 0, 0, 0, 560, 565, 0, 0, 343, + 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 742, 739, 0, 0, + 793, 790, 49, 41, 0, 0, 0, 0, 0, 153, + 154, 155, 0, 0, 0, 183, 0, 0, 0, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 0, 178, 179, 156, 157, 158, 0, 0, 0, 170, + 171, 172, 177, 0, 0, 0, 150, 0, 0, 0, + 0, 0, 444, 445, 446, 0, 0, 0, 0, 0, + 704, 0, 0, 0, 0, 0, 0, 180, 181, 182, + 0, 0, 68, 0, 0, 0, 211, 212, 213, 214, + 187, 0, 0, 0, 0, 0, 0, 453, 0, 0, + 0, 380, 0, 596, 0, 0, 0, 0, 0, 0, + 0, 0, 625, 0, 0, 538, 0, 0, 0, 549, + 525, 0, 581, 582, 583, 564, 0, 0, 342, 761, + 0, 0, 764, 0, 767, 768, 0, 0, 777, 778, + 0, 0, 0, 0, 741, 0, 798, 792, 0, 0, + 0, 0, 0, 643, 645, 647, 0, 0, 232, 149, + 161, 162, 163, 164, 165, 160, 167, 169, 370, 513, + 552, 152, 456, 38, 608, 610, 449, 450, 451, 452, + 448, 0, 0, 613, 332, 0, 0, 0, 0, 0, + 174, 176, 0, 0, 51, 202, 205, 206, 204, 209, + 210, 208, 433, 435, 437, 586, 431, 439, 443, 441, + 0, 606, 665, 653, 655, 659, 657, 663, 661, 649, + 541, 277, 545, 543, 548, 578, 348, 350, 776, 763, + 766, 771, 772, 770, 774, 780, 782, 784, 786, 232, + 42, 0, 0, 0, 224, 226, 0, 219, 222, 223, + 264, 269, 271, 273, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 287, 0, 293, 295, 297, 299, + 263, 0, 239, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 0, 237, 0, 233, 234, 375, + 0, 371, 372, 518, 0, 514, 515, 557, 0, 553, + 554, 461, 0, 457, 458, 311, 312, 313, 314, 315, + 0, 303, 306, 307, 308, 309, 310, 675, 0, 672, + 618, 0, 614, 615, 337, 0, 333, 334, 0, 0, + 0, 0, 0, 0, 0, 353, 356, 357, 358, 359, + 360, 361, 0, 0, 0, 326, 0, 318, 321, 322, + 323, 324, 325, 715, 717, 714, 712, 713, 0, 707, + 710, 711, 0, 731, 0, 734, 727, 728, 0, 721, + 724, 725, 726, 729, 0, 804, 0, 801, 0, 0, + 0, 0, 850, 0, 843, 846, 847, 848, 849, 53, + 591, 0, 587, 588, 650, 668, 669, 0, 0, 62, + 788, 185, 0, 0, 221, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 239, 214, 227, 0, 229, 234, 0, 367, 372, - 518, 506, 513, 557, 547, 552, 0, 452, 457, 303, - 300, 673, 670, 667, 618, 608, 613, 0, 329, 334, - 0, 0, 0, 0, 0, 0, 353, 350, 0, 0, - 0, 318, 315, 0, 0, 705, 702, 0, 0, 0, - 0, 719, 716, 733, 0, 799, 796, 0, 0, 0, - 0, 841, 838, 55, 0, 54, 0, 581, 586, 0, - 663, 793, 0, 0, 218, 0, 0, 0, 0, 273, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 290, 0, 0, 0, 0, 238, 0, 233, 0, 371, - 0, 512, 0, 551, 504, 481, 482, 483, 466, 467, - 486, 487, 488, 489, 490, 502, 469, 470, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 503, - 463, 464, 465, 479, 480, 476, 477, 478, 475, 0, - 460, 468, 484, 485, 471, 472, 473, 474, 456, 302, - 695, 697, 0, 689, 690, 691, 692, 693, 694, 682, - 683, 687, 688, 684, 685, 686, 0, 674, 675, 678, - 679, 680, 681, 669, 0, 612, 0, 333, 360, 361, - 362, 363, 364, 365, 352, 325, 326, 327, 317, 0, - 0, 704, 726, 0, 729, 0, 718, 815, 0, 813, - 811, 805, 809, 810, 0, 802, 807, 808, 806, 798, - 847, 848, 849, 850, 840, 52, 57, 0, 585, 0, - 223, 225, 264, 265, 266, 263, 268, 270, 272, 287, - 288, 289, 286, 292, 294, 296, 298, 236, 374, 515, - 554, 462, 459, 0, 0, 0, 672, 677, 615, 336, - 712, 714, 728, 731, 0, 0, 0, 804, 801, 56, - 588, 647, 461, 0, 0, 699, 676, 0, 812, 0, - 803, 696, 698, 0, 814, 820, 0, 817, 0, 819, - 816, 830, 0, 0, 0, 835, 0, 822, 825, 826, - 827, 828, 829, 818, 0, 0, 0, 0, 0, 824, - 821, 0, 832, 833, 834, 0, 823, 831, 836 + 0, 0, 0, 0, 0, 0, 241, 216, 229, 0, + 231, 236, 0, 369, 374, 522, 510, 517, 561, 551, + 556, 0, 455, 460, 305, 302, 677, 674, 671, 622, + 612, 617, 0, 331, 336, 0, 0, 0, 0, 0, + 0, 355, 352, 0, 0, 0, 320, 317, 0, 0, + 709, 706, 0, 0, 0, 0, 723, 720, 737, 0, + 803, 800, 0, 0, 0, 0, 845, 842, 55, 0, + 54, 0, 585, 590, 0, 667, 797, 0, 0, 220, + 0, 0, 0, 0, 275, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 0, 292, 0, 0, 0, 0, + 240, 0, 235, 0, 373, 0, 516, 0, 555, 508, + 484, 485, 486, 469, 470, 489, 490, 491, 492, 493, + 506, 472, 473, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 507, 466, 467, 468, 482, + 483, 479, 480, 481, 478, 0, 463, 471, 487, 488, + 474, 475, 476, 477, 459, 304, 699, 701, 0, 693, + 694, 695, 696, 697, 698, 686, 687, 691, 692, 688, + 689, 690, 0, 678, 679, 682, 683, 684, 685, 673, + 0, 616, 0, 335, 362, 363, 364, 365, 366, 367, + 354, 327, 328, 329, 319, 0, 0, 708, 730, 0, + 733, 0, 722, 819, 0, 817, 815, 809, 813, 814, + 0, 806, 811, 812, 810, 802, 851, 852, 853, 854, + 844, 52, 57, 0, 589, 0, 225, 227, 266, 267, + 268, 265, 270, 272, 274, 289, 290, 291, 288, 294, + 296, 298, 300, 238, 376, 519, 558, 465, 462, 0, + 0, 0, 676, 681, 619, 338, 716, 718, 732, 735, + 0, 0, 0, 808, 805, 56, 592, 651, 464, 0, + 0, 703, 680, 0, 816, 0, 807, 700, 702, 0, + 818, 824, 0, 821, 0, 823, 820, 834, 0, 0, + 0, 839, 0, 826, 829, 830, 831, 832, 833, 822, + 0, 0, 0, 0, 0, 828, 825, 0, 836, 837, + 838, 0, 827, 835, 840 }; const short Dhcp4Parser::yypgoto_[] = { - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -52, -1001, -593, -1001, 161, - -1001, -1001, -1001, -1001, -1001, -1001, -637, -1001, -1001, -1001, - -67, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 398, 613, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -52, -1006, -598, -1006, 428, + -1006, -1006, -1006, -1006, -1006, -1006, -638, -1006, -1006, -1006, + -67, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 401, 616, -30, -28, 26, -54, -34, -27, 0, 16, 23, 39, - -1001, -1001, -1001, -1001, 44, -1001, -1001, 47, 51, 52, - 54, 55, 57, -1001, 412, 58, -1001, 59, -1001, 62, - 65, 69, -1001, 70, -1001, 72, -1001, -1001, -1001, -1001, - -1001, 36, -1001, -1001, 397, 605, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, 141, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, 315, -1001, 115, -1001, -708, 128, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -45, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, 109, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, 92, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, 106, -1001, -1001, -1001, 110, 602, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, 102, -1001, -1001, -1001, - -1001, -1001, -1001, -1000, -1001, -1001, -1001, 131, -1001, -1001, - -1001, 129, 620, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -993, -1001, -65, -1001, -53, -1001, 73, 75, 76, - 77, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 121, -1001, - -1001, -100, -62, -1001, -1001, -1001, -1001, -1001, 133, -1001, - -1001, -1001, 134, -1001, 603, -1001, -63, -1001, -1001, -1001, - -1001, -1001, -61, -1001, -1001, -1001, -1001, -1001, -26, -1001, - -1001, -1001, 135, -1001, -1001, -1001, 138, -1001, 604, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, 79, -1001, -1001, -1001, 82, 628, -1001, -1001, -49, - -1001, -10, -1001, -51, -1001, -1001, -1001, 120, -1001, -1001, - -1001, 136, -1001, 622, 3, -1001, 13, -1001, 29, -1001, - 379, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -986, -1001, - -1001, -1001, -1001, -1001, 139, -1001, -1001, -1001, -95, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 117, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, 104, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 411, 606, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, 444, - 607, -1001, -1001, -1001, -1001, -1001, -1001, 108, -1001, -1001, - -93, -1001, -1001, -1001, -1001, -1001, -1001, -113, -1001, -1001, - -132, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, -1001, - -1001, 107, -1001, -1001, -1001, -1001 + -1006, -1006, -1006, -1006, 44, -1006, -1006, 47, 51, 52, + 54, 55, 57, -1006, 414, 58, -1006, 59, -1006, 62, + 65, 69, 70, -1006, 72, -1006, 73, -1006, -1006, -1006, + -1006, -1006, 36, -1006, -1006, 405, 625, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, 148, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, 334, -1006, 129, -1006, -713, + 135, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -45, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, 109, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, 96, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, 110, -1006, -1006, -1006, 114, 610, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, 104, -1006, -1006, + -1006, -1006, -1006, -1006, -1005, -1006, -1006, -1006, 133, -1006, + -1006, -1006, 138, 626, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -998, -1006, -65, -1006, -53, -1006, 75, 76, + 77, 80, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 125, + -1006, -1006, -96, -62, -1006, -1006, -1006, -1006, -1006, 137, + -1006, -1006, -1006, 140, -1006, 611, -1006, -63, -1006, -1006, + -1006, -1006, -1006, -61, -1006, -1006, -1006, -1006, -1006, -26, + -1006, -1006, -1006, 139, -1006, -1006, -1006, 142, -1006, 612, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, 84, -1006, -1006, -1006, 85, 624, -1006, -1006, + -49, -1006, -10, -1006, -51, -1006, -1006, -1006, 131, -1006, + -1006, -1006, 134, -1006, 632, 3, -1006, 13, -1006, 29, + -1006, 378, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -995, + -1006, -1006, -1006, -1006, -1006, 143, -1006, -1006, -1006, -88, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + 116, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 117, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, 412, + 613, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + 461, 615, -1006, -1006, -1006, -1006, -1006, -1006, 107, -1006, + -1006, -99, -1006, -1006, -1006, -1006, -1006, -1006, -111, -1006, + -1006, -130, -1006, -1006, -1006, -1006, -1006, -1006, -1006, -1006, + -1006, -1006, 112, -1006, -1006, -1006, -1006 }; const short Dhcp4Parser::yydefgoto_[] = { - 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 36, 37, 38, 65, 739, - 82, 83, 39, 64, 79, 80, 760, 964, 1064, 1065, - 835, 41, 66, 85, 432, 86, 43, 67, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 459, 168, 169, 475, 170, 171, 172, 173, - 174, 175, 176, 465, 730, 177, 466, 178, 467, 179, - 180, 181, 493, 182, 494, 183, 184, 185, 186, 187, - 188, 189, 190, 436, 229, 230, 45, 68, 231, 503, - 232, 504, 763, 233, 505, 766, 234, 235, 236, 237, - 191, 445, 192, 437, 811, 812, 813, 977, 814, 978, - 193, 446, 194, 447, 861, 862, 863, 1004, 836, 837, - 838, 981, 1225, 839, 982, 840, 983, 841, 984, 842, - 843, 539, 844, 845, 846, 847, 848, 849, 850, 851, - 852, 853, 995, 1232, 854, 855, 997, 856, 998, 857, - 999, 858, 1000, 195, 483, 885, 886, 887, 888, 889, - 890, 891, 196, 489, 921, 922, 923, 924, 925, 197, - 486, 900, 901, 902, 1027, 59, 75, 382, 383, 384, - 553, 385, 554, 198, 487, 909, 910, 911, 912, 913, - 914, 915, 916, 199, 471, 865, 866, 867, 1007, 47, - 69, 276, 277, 278, 516, 279, 512, 280, 513, 281, - 514, 282, 517, 283, 520, 284, 519, 200, 201, 202, - 203, 479, 745, 289, 204, 476, 877, 878, 879, 1016, - 1139, 1140, 205, 472, 53, 72, 869, 870, 871, 1010, - 55, 73, 345, 346, 347, 348, 349, 350, 351, 538, - 352, 542, 353, 541, 354, 355, 543, 356, 206, 473, - 873, 874, 875, 1013, 57, 74, 367, 368, 369, 370, - 371, 547, 372, 373, 374, 375, 376, 291, 515, 966, - 967, 968, 1066, 49, 70, 304, 305, 306, 524, 207, - 477, 208, 478, 209, 485, 896, 897, 898, 1024, 51, - 71, 321, 322, 323, 210, 441, 211, 442, 212, 443, - 327, 534, 971, 1069, 328, 528, 329, 529, 330, 531, - 331, 530, 332, 533, 333, 532, 334, 527, 298, 521, - 972, 213, 484, 893, 894, 1021, 1166, 1167, 1168, 1169, - 1170, 1243, 1171, 1244, 1172, 214, 215, 490, 933, 934, - 935, 1043, 936, 1044, 216, 491, 943, 944, 945, 946, - 1048, 947, 948, 1050, 217, 492, 61, 76, 404, 405, - 406, 407, 559, 408, 409, 561, 410, 411, 412, 564, - 798, 413, 565, 414, 558, 415, 416, 417, 568, 418, - 569, 419, 570, 420, 571, 218, 435, 63, 77, 423, - 424, 425, 574, 426, 219, 498, 951, 952, 1054, 1204, - 1205, 1206, 1207, 1256, 1208, 1254, 1276, 1277, 1278, 1286, - 1287, 1288, 1294, 1289, 1290, 1291, 1292, 1298, 220, 499, - 958, 959, 960, 961, 962, 963 + -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 36, 37, 38, 65, 744, + 82, 83, 39, 64, 79, 80, 765, 969, 1069, 1070, + 840, 41, 66, 85, 435, 86, 43, 67, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 462, 169, 170, 479, 171, 172, 173, 174, + 175, 176, 177, 468, 735, 178, 469, 179, 470, 180, + 181, 182, 183, 497, 184, 498, 185, 186, 187, 188, + 189, 190, 191, 192, 439, 231, 232, 45, 68, 233, + 507, 234, 508, 768, 235, 509, 771, 236, 237, 238, + 239, 193, 448, 194, 440, 816, 817, 818, 982, 819, + 983, 195, 449, 196, 450, 866, 867, 868, 1009, 841, + 842, 843, 986, 1231, 844, 987, 845, 988, 846, 989, + 847, 848, 543, 849, 850, 851, 852, 853, 854, 855, + 856, 857, 858, 1000, 1238, 859, 860, 1002, 861, 1003, + 862, 1004, 863, 1005, 197, 487, 890, 891, 892, 893, + 894, 895, 896, 198, 493, 926, 927, 928, 929, 930, + 199, 490, 905, 906, 907, 1032, 59, 75, 385, 386, + 387, 557, 388, 558, 200, 491, 914, 915, 916, 917, + 918, 919, 920, 921, 201, 475, 870, 871, 872, 1012, + 47, 69, 279, 280, 281, 520, 282, 516, 283, 517, + 284, 518, 285, 521, 286, 524, 287, 523, 202, 203, + 204, 205, 483, 750, 292, 206, 480, 882, 883, 884, + 1021, 1145, 1146, 207, 476, 53, 72, 874, 875, 876, + 1015, 55, 73, 348, 349, 350, 351, 352, 353, 354, + 542, 355, 546, 356, 545, 357, 358, 547, 359, 208, + 477, 878, 879, 880, 1018, 57, 74, 370, 371, 372, + 373, 374, 551, 375, 376, 377, 378, 379, 294, 519, + 971, 972, 973, 1071, 49, 70, 307, 308, 309, 528, + 209, 481, 210, 482, 211, 489, 901, 902, 903, 1029, + 51, 71, 324, 325, 326, 212, 444, 213, 445, 214, + 446, 330, 538, 976, 1074, 331, 532, 332, 533, 333, + 535, 334, 534, 335, 537, 336, 536, 337, 531, 301, + 525, 977, 215, 488, 898, 899, 1026, 1172, 1173, 1174, + 1175, 1176, 1249, 1177, 1250, 1178, 216, 217, 494, 938, + 939, 940, 1048, 941, 1049, 218, 495, 948, 949, 950, + 951, 1053, 952, 953, 1055, 219, 496, 61, 76, 407, + 408, 409, 410, 563, 411, 412, 565, 413, 414, 415, + 568, 803, 416, 569, 417, 562, 418, 419, 420, 572, + 421, 573, 422, 574, 423, 575, 220, 438, 63, 77, + 426, 427, 428, 578, 429, 221, 502, 956, 957, 1059, + 1210, 1211, 1212, 1213, 1262, 1214, 1260, 1282, 1283, 1284, + 1292, 1293, 1294, 1300, 1295, 1296, 1297, 1298, 1304, 222, + 503, 963, 964, 965, 966, 967, 968 }; const short Dhcp4Parser::yytable_[] = { - 153, 228, 250, 300, 317, 301, 343, 363, 381, 401, - 335, 365, 78, 366, 859, 254, 1131, 302, 294, 238, - 292, 307, 319, 1132, 357, 377, 773, 402, 344, 364, - 1147, 738, 777, 796, 28, 255, 29, 337, 30, 251, - 31, 252, 256, 290, 303, 318, 379, 380, 379, 380, - 129, 130, 129, 130, 725, 726, 727, 728, 239, 293, - 308, 320, 81, 358, 378, 580, 403, 1019, 40, 257, - 1020, 124, 295, 42, 324, 93, 94, 95, 1222, 1223, - 1224, 433, 296, 428, 325, 258, 434, 953, 954, 955, - 956, 1022, 259, 729, 1023, 253, 928, 929, 297, 738, - 326, 44, 221, 222, 152, 275, 223, 46, 260, 224, - 225, 226, 227, 261, 129, 130, 262, 501, 48, 152, - 263, 264, 502, 265, 266, 50, 267, 268, 269, 52, - 1197, 270, 1198, 1199, 271, 510, 125, 54, 272, 273, - 511, 274, 285, 522, 286, 287, 288, 84, 523, 56, - 525, 58, 129, 130, 152, 526, 152, 129, 130, 93, - 94, 95, 96, 937, 938, 939, 309, 125, 741, 742, - 743, 744, 60, 310, 311, 312, 313, 314, 315, 62, - 316, 427, 299, 129, 130, 429, 880, 881, 882, 883, - 797, 884, 100, 101, 102, 430, 129, 130, 247, 917, - 918, 919, 248, 1055, 1279, 555, 1056, 1280, 87, 1281, - 556, 88, 1282, 1283, 1284, 1285, 431, 572, 940, 124, - 125, 337, 573, 89, 421, 422, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 129, 130, 576, 761, - 762, 1131, 438, 577, 32, 33, 34, 35, 1132, 1229, - 1230, 1231, 1150, 1151, 1152, 1147, 152, 764, 765, 809, - 810, 152, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 501, 152, 576, 124, - 125, 974, 510, 975, 979, 535, 1096, 976, 439, 980, - 152, 126, 127, 128, 336, 1001, 129, 130, 1001, 1036, - 1002, 131, 440, 1003, 1037, 444, 132, 133, 134, 135, - 136, 316, 969, 448, 449, 450, 137, 337, 359, 338, - 339, 360, 361, 362, 451, 452, 138, 453, 454, 139, - 152, 455, 129, 130, 1041, 1045, 140, 141, 1051, 1042, - 1046, 142, 572, 1052, 143, 1061, 536, 1053, 144, 337, - 1062, 338, 339, 129, 130, 1001, 340, 341, 342, 456, - 1237, 457, 458, 460, 129, 130, 578, 579, 145, 146, - 147, 148, 149, 150, 903, 904, 905, 906, 907, 908, - 815, 461, 151, 462, 816, 817, 818, 819, 820, 821, - 822, 823, 824, 825, 826, 827, 828, 829, 463, 464, - 152, 830, 831, 832, 833, 834, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 468, - 469, 470, 522, 1241, 153, 399, 400, 1238, 1242, 555, - 537, 474, 1257, 228, 1249, 337, 152, 1258, 525, 1299, - 545, 480, 481, 1260, 1300, 250, 482, 488, 300, 495, - 301, 238, 496, 497, 500, 506, 507, 152, 254, 317, - 508, 294, 302, 292, 509, 518, 307, 540, 152, 343, - 544, 546, 551, 548, 549, 363, 550, 319, 255, 365, - 552, 366, 251, 557, 252, 256, 290, 357, 560, 303, - 239, 344, 562, 377, 563, 401, 566, 364, 567, 575, - 318, 581, 293, 582, 583, 308, 584, 585, 588, 586, - 587, 589, 257, 402, 590, 295, 320, 591, 592, 593, - 594, 595, 596, 606, 612, 296, 358, 597, 258, 324, - 598, 599, 378, 604, 600, 259, 613, 601, 253, 325, - 602, 297, 609, 603, 605, 610, 614, 607, 275, 618, - 608, 260, 403, 611, 152, 326, 261, 619, 620, 262, - 615, 616, 617, 263, 264, 621, 265, 266, 622, 267, - 268, 269, 1261, 623, 270, 624, 625, 271, 626, 627, - 628, 272, 273, 629, 274, 285, 630, 286, 287, 288, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 631, 632, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 645, 646, 648, - 649, 650, 651, 652, 653, 654, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, 718, 153, 667, 228, - 669, 670, 671, 672, 673, 674, 675, 676, 678, 679, - 681, 805, 682, 680, 683, 686, 684, 238, 691, 692, - 687, 695, 91, 92, 93, 94, 95, 96, 696, 688, - 689, 694, 697, 698, 920, 930, 699, 401, 701, 700, - 702, 957, 705, 703, 706, 707, 708, 704, 710, 711, - 713, 719, 926, 931, 941, 402, 239, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 714, 715, 716, - 717, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 721, 240, 241, 242, 720, 125, 722, 723, 733, 734, - 724, 927, 932, 942, 403, 731, 732, 127, 735, 243, - 736, 129, 130, 244, 245, 246, 131, 737, 30, 740, - 746, 132, 133, 134, 747, 748, 247, 749, 750, 755, - 248, 137, 751, 752, 753, 754, 757, 758, 249, 756, - 759, 767, 768, 769, 770, 771, 772, 775, 774, 776, - 778, 779, 804, 780, 985, 860, 781, 799, 782, 783, - 784, 785, 786, 787, 788, 864, 789, 790, 791, 793, - 794, 795, 801, 802, 803, 868, 872, 876, 892, 895, - 899, 950, 965, 145, 146, 986, 987, 988, 989, 990, - 991, 992, 91, 92, 93, 94, 95, 96, 993, 994, - 996, 1006, 1063, 1005, 1009, 1008, 1011, 1012, 1014, 1015, - 1018, 1017, 1026, 792, 1025, 152, 1028, 1029, 1067, 1030, - 1031, 1032, 1033, 1034, 1035, 1038, 1039, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 1040, 1047, 1049, - 1057, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 1058, 1059, 1060, 1068, 125, 337, 1079, 1070, 1071, - 1072, 1073, 1075, 1076, 1077, 1078, 1089, 127, 1091, 1080, - 1092, 129, 130, 1081, 245, 1093, 131, 1082, 1083, 1084, - 1085, 132, 133, 134, 1094, 1185, 247, 1189, 1086, 1087, - 248, 1088, 1090, 1178, 1179, 1180, 1181, 1190, 249, 1182, - 250, 1183, 1186, 343, 1187, 1193, 363, 1192, 1195, 1104, - 365, 1133, 366, 254, 1153, 1194, 294, 317, 292, 1159, - 381, 357, 1108, 1134, 377, 344, 1210, 1142, 364, 1211, - 1212, 1130, 1161, 255, 920, 319, 1158, 251, 930, 252, - 256, 290, 1109, 145, 146, 1213, 1105, 1200, 1106, 1110, - 1141, 1154, 926, 1155, 957, 1160, 931, 293, 318, 300, - 358, 301, 941, 378, 1215, 1202, 1143, 257, 1216, 1201, - 295, 1162, 1219, 302, 320, 152, 1111, 307, 1220, 1144, - 296, 1239, 1240, 258, 1163, 1245, 1246, 324, 1247, 1145, - 259, 927, 1112, 253, 1164, 932, 297, 325, 1248, 1113, - 303, 942, 1107, 275, 1203, 1146, 260, 1156, 1255, 1263, - 1165, 261, 1129, 326, 262, 1114, 308, 1157, 263, 264, - 1115, 265, 266, 1116, 267, 268, 269, 1117, 1118, 270, - 1119, 1120, 271, 1121, 1122, 1123, 272, 273, 1124, 274, - 285, 1125, 286, 287, 288, 1126, 1127, 1264, 1128, 1135, - 1221, 1136, 1137, 1138, 1226, 1227, 1228, 1233, 1234, 1235, - 1267, 1269, 1275, 1273, 1295, 1236, 1296, 1250, 1251, 1297, - 1301, 1305, 806, 808, 647, 655, 1252, 800, 1259, 973, - 1074, 1097, 1268, 1265, 1303, 1271, 1272, 1274, 1149, 1095, - 1304, 1302, 1307, 1188, 1308, 1177, 1098, 1176, 1184, 1148, - 1099, 1262, 666, 1253, 1100, 1101, 1175, 1218, 1217, 685, - 1103, 1102, 1266, 668, 970, 1196, 690, 693, 677, 807, - 1174, 1173, 1191, 1209, 1270, 949, 1293, 1306, 1214, 0, - 0, 0, 0, 0, 1104, 0, 1133, 0, 709, 0, - 1153, 0, 0, 712, 0, 1159, 0, 1108, 1134, 0, - 1200, 0, 1142, 0, 0, 0, 1130, 0, 1161, 0, - 0, 0, 1158, 0, 0, 0, 0, 1109, 1202, 0, - 0, 1105, 1201, 1106, 1110, 1141, 0, 1154, 0, 1155, - 0, 1160, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1143, 0, 0, 0, 0, 0, 1162, 0, 0, - 0, 1111, 0, 0, 1144, 0, 0, 1203, 0, 0, - 1163, 0, 0, 0, 1145, 0, 0, 1112, 0, 0, - 1164, 0, 0, 0, 1113, 0, 0, 1107, 0, 0, - 1146, 0, 0, 1156, 0, 0, 1165, 1129, 0, 0, - 1114, 0, 0, 1157, 0, 1115, 0, 0, 1116, 0, - 0, 0, 1117, 1118, 0, 1119, 1120, 0, 1121, 1122, - 1123, 0, 0, 1124, 0, 0, 1125, 0, 0, 0, - 1126, 1127, 0, 1128, 1135, 0, 1136, 1137, 1138 + 154, 230, 252, 303, 320, 304, 346, 366, 384, 404, + 338, 368, 78, 369, 864, 256, 1137, 305, 297, 240, + 295, 310, 322, 1138, 360, 380, 1153, 405, 347, 367, + 778, 743, 801, 130, 131, 257, 782, 1024, 28, 253, + 1025, 254, 258, 293, 306, 321, 29, 40, 30, 42, + 31, 436, 382, 383, 81, 340, 437, 44, 241, 296, + 311, 323, 430, 361, 381, 432, 406, 382, 383, 259, + 130, 131, 298, 46, 327, 922, 923, 924, 93, 94, + 95, 505, 299, 441, 328, 260, 506, 958, 959, 960, + 961, 514, 261, 48, 1027, 255, 515, 1028, 300, 743, + 329, 50, 223, 224, 153, 278, 225, 52, 262, 226, + 227, 228, 229, 263, 526, 54, 264, 130, 131, 527, + 265, 266, 56, 267, 268, 153, 269, 270, 271, 1060, + 529, 272, 1061, 431, 273, 530, 339, 153, 274, 275, + 126, 276, 277, 58, 288, 289, 290, 559, 1203, 291, + 1204, 1205, 560, 1228, 1229, 1230, 130, 131, 1287, 130, + 131, 1288, 1289, 1290, 1291, 60, 942, 943, 944, 1285, + 312, 576, 1286, 84, 153, 125, 577, 313, 314, 315, + 316, 317, 318, 580, 319, 62, 505, 126, 581, 433, + 802, 979, 340, 434, 341, 342, 442, 130, 131, 343, + 344, 345, 302, 130, 131, 933, 934, 130, 131, 443, + 87, 766, 767, 88, 885, 886, 887, 888, 249, 889, + 447, 945, 250, 424, 425, 89, 769, 770, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 746, 747, + 748, 749, 1137, 908, 909, 910, 911, 912, 913, 1138, + 814, 815, 1153, 451, 580, 32, 33, 34, 35, 980, + 153, 319, 974, 153, 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, 514, + 984, 539, 125, 126, 981, 985, 1101, 93, 94, 95, + 96, 153, 452, 1006, 127, 128, 129, 153, 1007, 130, + 131, 153, 1006, 1041, 132, 453, 454, 1008, 1042, 133, + 134, 135, 136, 137, 455, 1235, 1236, 1237, 456, 138, + 100, 101, 102, 730, 731, 732, 733, 457, 1046, 139, + 1050, 1056, 140, 1047, 458, 1051, 1057, 576, 1066, 141, + 142, 1006, 1058, 1067, 143, 459, 1243, 144, 125, 126, + 340, 145, 340, 362, 341, 342, 363, 364, 365, 526, + 541, 460, 734, 461, 1244, 130, 131, 130, 131, 582, + 583, 146, 147, 148, 149, 150, 151, 463, 464, 1247, + 540, 1156, 1157, 1158, 1248, 152, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 559, + 549, 820, 465, 153, 1255, 821, 822, 823, 824, 825, + 826, 827, 828, 829, 830, 831, 832, 833, 834, 466, + 467, 471, 835, 836, 837, 838, 839, 1263, 154, 529, + 1305, 550, 1264, 472, 1266, 1306, 473, 230, 474, 478, + 584, 484, 485, 486, 492, 499, 500, 501, 504, 252, + 510, 511, 303, 512, 304, 240, 513, 340, 522, 544, + 548, 552, 256, 320, 553, 297, 305, 295, 554, 153, + 310, 153, 556, 346, 555, 561, 564, 566, 567, 366, + 570, 322, 257, 368, 571, 369, 253, 579, 254, 258, + 293, 360, 585, 306, 241, 347, 586, 380, 587, 404, + 588, 367, 589, 590, 321, 592, 296, 593, 591, 311, + 594, 595, 596, 597, 598, 604, 259, 405, 599, 298, + 323, 600, 601, 602, 603, 610, 616, 605, 606, 299, + 361, 607, 260, 327, 608, 609, 381, 611, 613, 261, + 617, 612, 255, 328, 618, 300, 130, 131, 614, 615, + 619, 623, 278, 620, 622, 262, 406, 624, 621, 329, + 263, 625, 626, 264, 627, 628, 629, 265, 266, 630, + 267, 268, 631, 269, 270, 271, 153, 1267, 272, 635, + 632, 273, 633, 634, 636, 274, 275, 637, 276, 277, + 638, 288, 289, 290, 639, 640, 291, 641, 642, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 643, 644, 645, 646, 647, 648, 402, 403, + 649, 650, 651, 653, 654, 655, 656, 657, 658, 659, + 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, + 672, 1011, 154, 674, 230, 675, 676, 677, 678, 679, + 153, 680, 681, 683, 684, 686, 810, 687, 688, 691, + 685, 696, 240, 697, 700, 689, 701, 91, 92, 93, + 94, 95, 96, 703, 706, 692, 693, 702, 694, 925, + 935, 707, 404, 704, 699, 705, 962, 710, 711, 712, + 713, 715, 708, 716, 709, 718, 719, 931, 936, 946, + 405, 241, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 720, 721, 722, 726, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 723, 242, 243, 244, + 724, 126, 725, 727, 728, 738, 932, 937, 947, 406, + 729, 736, 737, 128, 739, 245, 740, 130, 131, 246, + 247, 248, 132, 741, 742, 30, 745, 133, 134, 135, + 751, 752, 249, 753, 754, 760, 250, 138, 755, 756, + 757, 758, 759, 761, 251, 762, 763, 764, 772, 775, + 773, 774, 780, 776, 777, 779, 781, 783, 784, 804, + 785, 786, 787, 788, 809, 789, 790, 865, 791, 792, + 869, 793, 794, 795, 873, 796, 798, 877, 881, 799, + 800, 806, 807, 808, 897, 900, 904, 955, 970, 146, + 147, 990, 991, 992, 993, 994, 91, 92, 93, 94, + 95, 96, 995, 996, 997, 998, 999, 1001, 1068, 1014, + 1010, 1013, 1017, 1016, 1019, 1020, 1022, 1023, 1031, 1030, + 1034, 153, 1033, 1035, 1036, 1037, 1038, 1039, 1040, 1043, + 1044, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 1045, 1052, 1054, 1062, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 1063, 1064, 1065, 1075, + 126, 340, 1072, 1073, 1076, 1077, 1078, 1080, 1081, 1082, + 1083, 1094, 128, 1084, 1096, 1086, 130, 131, 1097, 247, + 1085, 132, 1087, 1088, 1089, 1090, 133, 134, 135, 1091, + 1098, 249, 1099, 1195, 1092, 250, 1093, 1095, 1184, 1185, + 1186, 1187, 1188, 251, 1189, 252, 1192, 1191, 346, 1193, + 1196, 366, 1198, 1199, 1109, 368, 1139, 369, 256, 1159, + 1200, 297, 320, 295, 1165, 384, 360, 1113, 1140, 380, + 347, 1201, 1148, 367, 1216, 1221, 1136, 1167, 257, 925, + 322, 1164, 253, 935, 254, 258, 293, 1114, 146, 147, + 1222, 1110, 1206, 1111, 1115, 1147, 1160, 931, 1161, 962, + 1166, 936, 296, 321, 303, 361, 304, 946, 381, 1217, + 1208, 1149, 259, 1218, 1207, 298, 1168, 1225, 305, 323, + 153, 1116, 310, 1245, 1150, 299, 1219, 1226, 260, 1169, + 1227, 1246, 327, 1251, 1151, 261, 932, 1117, 255, 1170, + 937, 300, 328, 1252, 1118, 306, 947, 1112, 278, 1209, + 1152, 262, 1162, 1253, 1254, 1171, 263, 1135, 329, 264, + 1119, 311, 1163, 265, 266, 1120, 267, 268, 1121, 269, + 270, 271, 1122, 1123, 272, 1124, 1125, 273, 1126, 1127, + 1128, 274, 275, 1129, 276, 277, 1130, 288, 289, 290, + 1131, 1132, 291, 1133, 1134, 1232, 1141, 1142, 1143, 1233, + 1234, 1144, 1239, 1240, 1241, 1261, 1269, 1270, 1273, 1242, + 1275, 1256, 1279, 1257, 1301, 1281, 1302, 1303, 1307, 1311, + 811, 652, 1258, 1265, 805, 797, 813, 1274, 1271, 1277, + 1278, 1280, 1079, 1155, 1309, 1308, 1310, 1313, 1314, 660, + 1102, 1100, 1194, 978, 1183, 1190, 1182, 1104, 1154, 1259, + 1103, 1268, 671, 673, 1106, 1105, 1223, 1224, 975, 1108, + 1107, 690, 1181, 1180, 1276, 1272, 1197, 1215, 695, 698, + 1179, 954, 682, 1202, 1299, 1312, 0, 0, 1220, 0, + 1109, 812, 1139, 0, 0, 0, 1159, 0, 0, 714, + 0, 1165, 0, 1113, 1140, 717, 1206, 0, 1148, 0, + 0, 0, 1136, 0, 1167, 0, 0, 0, 1164, 0, + 0, 0, 0, 1114, 1208, 0, 0, 1110, 1207, 1111, + 1115, 1147, 0, 1160, 0, 1161, 0, 1166, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1149, 0, 0, + 0, 0, 0, 1168, 0, 0, 0, 1116, 0, 0, + 1150, 0, 0, 1209, 0, 0, 1169, 0, 0, 0, + 1151, 0, 0, 1117, 0, 0, 1170, 0, 0, 0, + 1118, 0, 0, 1112, 0, 0, 1152, 0, 0, 1162, + 0, 0, 1171, 1135, 0, 0, 1119, 0, 0, 1163, + 0, 1120, 0, 0, 1121, 0, 0, 0, 1122, 1123, + 0, 1124, 1125, 0, 1126, 1127, 1128, 0, 0, 1129, + 0, 0, 1130, 0, 0, 0, 1131, 1132, 0, 1133, + 1134, 0, 1141, 1142, 1143, 0, 0, 1144 }; const short Dhcp4Parser::yycheck_[] = { 67, 68, 69, 70, 71, 70, 73, 74, 75, 76, - 72, 74, 64, 74, 722, 69, 1016, 70, 69, 68, - 69, 70, 71, 1016, 73, 74, 663, 76, 73, 74, - 1016, 624, 669, 18, 0, 69, 5, 94, 7, 69, - 9, 69, 69, 69, 70, 71, 140, 141, 140, 141, - 109, 110, 109, 110, 177, 178, 179, 180, 68, 69, - 70, 71, 213, 73, 74, 213, 76, 3, 7, 69, - 6, 92, 69, 7, 71, 32, 33, 34, 40, 41, - 42, 3, 69, 3, 71, 69, 8, 196, 197, 198, - 199, 3, 69, 216, 6, 69, 155, 156, 69, 692, - 71, 7, 15, 16, 213, 69, 19, 7, 69, 22, - 23, 24, 25, 69, 109, 110, 69, 3, 7, 213, - 69, 69, 8, 69, 69, 7, 69, 69, 69, 7, - 187, 69, 189, 190, 69, 3, 93, 7, 69, 69, - 8, 69, 69, 3, 69, 69, 69, 10, 8, 7, - 3, 7, 109, 110, 213, 8, 213, 109, 110, 32, - 33, 34, 35, 158, 159, 160, 123, 93, 115, 116, - 117, 118, 7, 130, 131, 132, 133, 134, 135, 7, - 137, 6, 108, 109, 110, 4, 130, 131, 132, 133, - 175, 135, 65, 66, 67, 8, 109, 110, 124, 151, - 152, 153, 128, 3, 3, 3, 6, 6, 11, 188, - 8, 14, 191, 192, 193, 194, 3, 3, 213, 92, - 93, 94, 8, 26, 12, 13, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 109, 110, 3, 17, - 18, 1241, 4, 8, 213, 214, 215, 216, 1241, 57, - 58, 59, 125, 126, 127, 1241, 213, 20, 21, 27, - 28, 213, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 3, 213, 3, 92, - 93, 8, 3, 8, 3, 8, 1004, 8, 4, 8, - 213, 104, 105, 106, 39, 3, 109, 110, 3, 3, - 8, 114, 4, 8, 8, 4, 119, 120, 121, 122, - 123, 137, 138, 4, 4, 4, 129, 94, 95, 96, - 97, 98, 99, 100, 4, 4, 139, 4, 4, 142, - 213, 4, 109, 110, 3, 3, 149, 150, 3, 8, - 8, 154, 3, 8, 157, 3, 3, 8, 161, 94, - 8, 96, 97, 109, 110, 3, 101, 102, 103, 4, - 8, 4, 4, 4, 109, 110, 428, 429, 181, 182, - 183, 184, 185, 186, 143, 144, 145, 146, 147, 148, - 39, 4, 195, 4, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 4, 4, - 213, 60, 61, 62, 63, 64, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 4, - 4, 4, 3, 3, 501, 181, 182, 8, 8, 3, - 8, 4, 3, 510, 8, 94, 213, 8, 3, 3, - 8, 4, 4, 8, 8, 522, 4, 4, 525, 4, - 525, 510, 4, 4, 4, 4, 4, 213, 522, 536, - 4, 522, 525, 522, 4, 4, 525, 4, 213, 546, - 4, 3, 8, 4, 4, 552, 4, 536, 522, 552, - 3, 552, 522, 4, 522, 522, 522, 546, 4, 525, - 510, 546, 4, 552, 4, 572, 4, 552, 4, 4, - 536, 4, 522, 4, 4, 525, 4, 216, 4, 216, - 216, 4, 522, 572, 4, 522, 536, 214, 4, 4, - 4, 214, 214, 4, 4, 522, 546, 214, 522, 536, - 214, 214, 552, 214, 216, 522, 4, 215, 522, 536, - 215, 522, 216, 215, 214, 216, 4, 214, 522, 4, - 214, 522, 572, 216, 213, 536, 522, 4, 4, 522, - 216, 216, 216, 522, 522, 214, 522, 522, 4, 522, - 522, 522, 1219, 4, 522, 4, 4, 522, 4, 216, - 216, 522, 522, 216, 522, 522, 4, 522, 522, 522, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 4, 4, 4, 4, 214, 4, 4, - 4, 4, 4, 4, 216, 216, 216, 4, 4, 4, - 4, 4, 216, 216, 214, 214, 4, 4, 4, 4, - 4, 4, 214, 4, 4, 4, 213, 714, 4, 716, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 713, 4, 214, 4, 4, 216, 716, 4, 4, - 216, 4, 30, 31, 32, 33, 34, 35, 4, 216, - 216, 216, 214, 4, 751, 752, 214, 754, 4, 214, - 4, 758, 4, 216, 4, 4, 4, 216, 4, 214, - 4, 213, 751, 752, 753, 754, 716, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 7, 7, 7, - 7, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 7, 89, 90, 91, 213, 93, 7, 5, 5, 5, - 213, 751, 752, 753, 754, 213, 213, 105, 5, 107, - 213, 109, 110, 111, 112, 113, 114, 5, 7, 213, - 5, 119, 120, 121, 5, 5, 124, 5, 7, 213, - 128, 129, 7, 7, 7, 7, 5, 7, 136, 213, - 5, 213, 213, 213, 5, 213, 213, 7, 213, 213, - 213, 213, 5, 213, 4, 7, 213, 176, 213, 213, - 213, 213, 213, 213, 213, 7, 213, 213, 213, 213, - 213, 213, 213, 213, 213, 7, 7, 7, 7, 7, - 7, 7, 7, 181, 182, 4, 4, 4, 4, 4, - 4, 4, 30, 31, 32, 33, 34, 35, 4, 4, - 4, 3, 213, 6, 3, 6, 6, 3, 6, 3, - 3, 6, 3, 692, 6, 213, 6, 3, 6, 4, - 4, 4, 4, 4, 4, 4, 4, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 4, 4, 4, - 4, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 4, 4, 4, 3, 93, 94, 214, 8, 6, - 4, 4, 4, 4, 4, 4, 4, 105, 4, 216, - 4, 109, 110, 214, 112, 4, 114, 216, 214, 214, - 214, 119, 120, 121, 4, 216, 124, 4, 214, 214, - 128, 214, 214, 214, 214, 214, 214, 4, 136, 214, - 1007, 214, 214, 1010, 214, 4, 1013, 216, 4, 1016, - 1013, 1016, 1013, 1007, 1021, 214, 1007, 1024, 1007, 1021, - 1027, 1010, 1016, 1016, 1013, 1010, 216, 1016, 1013, 216, - 216, 1016, 1021, 1007, 1041, 1024, 1021, 1007, 1045, 1007, - 1007, 1007, 1016, 181, 182, 216, 1016, 1054, 1016, 1016, - 1016, 1021, 1041, 1021, 1061, 1021, 1045, 1007, 1024, 1066, - 1010, 1066, 1051, 1013, 6, 1054, 1016, 1007, 3, 1054, - 1007, 1021, 4, 1066, 1024, 213, 1016, 1066, 213, 1016, - 1007, 8, 8, 1007, 1021, 4, 8, 1024, 3, 1016, - 1007, 1041, 1016, 1007, 1021, 1045, 1007, 1024, 8, 1016, - 1066, 1051, 1016, 1007, 1054, 1016, 1007, 1021, 4, 4, - 1021, 1007, 1016, 1024, 1007, 1016, 1066, 1021, 1007, 1007, - 1016, 1007, 1007, 1016, 1007, 1007, 1007, 1016, 1016, 1007, - 1016, 1016, 1007, 1016, 1016, 1016, 1007, 1007, 1016, 1007, - 1007, 1016, 1007, 1007, 1007, 1016, 1016, 4, 1016, 1016, - 213, 1016, 1016, 1016, 213, 213, 213, 213, 213, 213, - 4, 4, 7, 5, 4, 213, 4, 213, 213, 4, - 4, 4, 714, 716, 501, 510, 213, 705, 213, 804, - 979, 1006, 214, 216, 214, 213, 213, 213, 1019, 1001, - 214, 216, 213, 1041, 213, 1029, 1007, 1027, 1036, 1018, - 1009, 1241, 522, 1195, 1010, 1012, 1026, 1068, 1066, 546, - 1015, 1013, 1247, 525, 775, 1051, 552, 555, 536, 715, - 1024, 1022, 1045, 1055, 1257, 754, 1279, 1299, 1061, -1, - -1, -1, -1, -1, 1241, -1, 1241, -1, 572, -1, - 1247, -1, -1, 576, -1, 1247, -1, 1241, 1241, -1, - 1257, -1, 1241, -1, -1, -1, 1241, -1, 1247, -1, - -1, -1, 1247, -1, -1, -1, -1, 1241, 1257, -1, - -1, 1241, 1257, 1241, 1241, 1241, -1, 1247, -1, 1247, - -1, 1247, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1241, -1, -1, -1, -1, -1, 1247, -1, -1, - -1, 1241, -1, -1, 1241, -1, -1, 1257, -1, -1, - 1247, -1, -1, -1, 1241, -1, -1, 1241, -1, -1, - 1247, -1, -1, -1, 1241, -1, -1, 1241, -1, -1, - 1241, -1, -1, 1247, -1, -1, 1247, 1241, -1, -1, - 1241, -1, -1, 1247, -1, 1241, -1, -1, 1241, -1, - -1, -1, 1241, 1241, -1, 1241, 1241, -1, 1241, 1241, - 1241, -1, -1, 1241, -1, -1, 1241, -1, -1, -1, - 1241, 1241, -1, 1241, 1241, -1, 1241, 1241, 1241 + 72, 74, 64, 74, 727, 69, 1021, 70, 69, 68, + 69, 70, 71, 1021, 73, 74, 1021, 76, 73, 74, + 668, 629, 18, 110, 111, 69, 674, 3, 0, 69, + 6, 69, 69, 69, 70, 71, 5, 7, 7, 7, + 9, 3, 141, 142, 214, 95, 8, 7, 68, 69, + 70, 71, 6, 73, 74, 4, 76, 141, 142, 69, + 110, 111, 69, 7, 71, 152, 153, 154, 32, 33, + 34, 3, 69, 4, 71, 69, 8, 197, 198, 199, + 200, 3, 69, 7, 3, 69, 8, 6, 69, 697, + 71, 7, 15, 16, 214, 69, 19, 7, 69, 22, + 23, 24, 25, 69, 3, 7, 69, 110, 111, 8, + 69, 69, 7, 69, 69, 214, 69, 69, 69, 3, + 3, 69, 6, 3, 69, 8, 39, 214, 69, 69, + 94, 69, 69, 7, 69, 69, 69, 3, 188, 69, + 190, 191, 8, 40, 41, 42, 110, 111, 189, 110, + 111, 192, 193, 194, 195, 7, 159, 160, 161, 3, + 124, 3, 6, 10, 214, 93, 8, 131, 132, 133, + 134, 135, 136, 3, 138, 7, 3, 94, 8, 8, + 176, 8, 95, 3, 97, 98, 4, 110, 111, 102, + 103, 104, 109, 110, 111, 156, 157, 110, 111, 4, + 11, 17, 18, 14, 131, 132, 133, 134, 125, 136, + 4, 214, 129, 12, 13, 26, 20, 21, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 116, 117, + 118, 119, 1247, 144, 145, 146, 147, 148, 149, 1247, + 27, 28, 1247, 4, 3, 214, 215, 216, 217, 8, + 214, 138, 139, 214, 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, 3, + 3, 8, 93, 94, 8, 8, 1009, 32, 33, 34, + 35, 214, 4, 3, 105, 106, 107, 214, 8, 110, + 111, 214, 3, 3, 115, 4, 4, 8, 8, 120, + 121, 122, 123, 124, 4, 57, 58, 59, 4, 130, + 65, 66, 67, 178, 179, 180, 181, 4, 3, 140, + 3, 3, 143, 8, 4, 8, 8, 3, 3, 150, + 151, 3, 8, 8, 155, 4, 8, 158, 93, 94, + 95, 162, 95, 96, 97, 98, 99, 100, 101, 3, + 8, 4, 217, 4, 8, 110, 111, 110, 111, 431, + 432, 182, 183, 184, 185, 186, 187, 4, 4, 3, + 3, 126, 127, 128, 8, 196, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 3, + 8, 39, 4, 214, 8, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 4, + 4, 4, 60, 61, 62, 63, 64, 3, 505, 3, + 3, 3, 8, 4, 8, 8, 4, 514, 4, 4, + 214, 4, 4, 4, 4, 4, 4, 4, 4, 526, + 4, 4, 529, 4, 529, 514, 4, 95, 4, 4, + 4, 4, 526, 540, 4, 526, 529, 526, 4, 214, + 529, 214, 3, 550, 8, 4, 4, 4, 4, 556, + 4, 540, 526, 556, 4, 556, 526, 4, 526, 526, + 526, 550, 4, 529, 514, 550, 4, 556, 4, 576, + 4, 556, 217, 217, 540, 4, 526, 4, 217, 529, + 4, 215, 4, 4, 4, 217, 526, 576, 215, 526, + 540, 215, 215, 215, 215, 4, 4, 216, 216, 526, + 550, 216, 526, 540, 215, 215, 556, 215, 217, 526, + 4, 215, 526, 540, 4, 526, 110, 111, 217, 217, + 217, 4, 526, 217, 217, 526, 576, 4, 216, 540, + 526, 4, 215, 526, 4, 4, 4, 526, 526, 4, + 526, 526, 4, 526, 526, 526, 214, 1225, 526, 4, + 217, 526, 217, 217, 4, 526, 526, 4, 526, 526, + 4, 526, 526, 526, 4, 215, 526, 4, 4, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 4, 4, 4, 4, 217, 217, 182, 183, + 217, 4, 4, 4, 4, 4, 217, 217, 215, 215, + 4, 4, 4, 4, 4, 4, 215, 4, 4, 4, + 4, 3, 719, 4, 721, 4, 4, 4, 4, 4, + 214, 4, 4, 4, 4, 4, 718, 4, 4, 4, + 215, 4, 721, 4, 4, 217, 4, 30, 31, 32, + 33, 34, 35, 4, 4, 217, 217, 215, 217, 756, + 757, 4, 759, 215, 217, 215, 763, 4, 4, 4, + 4, 4, 217, 215, 217, 4, 7, 756, 757, 758, + 759, 721, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 7, 7, 7, 7, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 214, 90, 91, 92, + 214, 94, 214, 7, 5, 5, 756, 757, 758, 759, + 214, 214, 214, 106, 5, 108, 5, 110, 111, 112, + 113, 114, 115, 214, 5, 7, 214, 120, 121, 122, + 5, 5, 125, 5, 5, 214, 129, 130, 7, 7, + 7, 7, 7, 214, 137, 5, 7, 5, 214, 5, + 214, 214, 7, 214, 214, 214, 214, 214, 214, 177, + 214, 214, 214, 214, 5, 214, 214, 7, 214, 214, + 7, 214, 214, 214, 7, 214, 214, 7, 7, 214, + 214, 214, 214, 214, 7, 7, 7, 7, 7, 182, + 183, 4, 4, 4, 4, 4, 30, 31, 32, 33, + 34, 35, 4, 4, 4, 4, 4, 4, 214, 3, + 6, 6, 3, 6, 6, 3, 6, 3, 3, 6, + 3, 214, 6, 4, 4, 4, 4, 4, 4, 4, + 4, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 4, 4, 4, 4, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 4, 4, 4, 8, + 94, 95, 6, 3, 6, 4, 4, 4, 4, 4, + 4, 4, 106, 215, 4, 215, 110, 111, 4, 113, + 217, 115, 217, 215, 215, 215, 120, 121, 122, 215, + 4, 125, 4, 4, 215, 129, 215, 215, 215, 215, + 215, 215, 215, 137, 215, 1012, 215, 217, 1015, 215, + 4, 1018, 217, 4, 1021, 1018, 1021, 1018, 1012, 1026, + 215, 1012, 1029, 1012, 1026, 1032, 1015, 1021, 1021, 1018, + 1015, 4, 1021, 1018, 217, 6, 1021, 1026, 1012, 1046, + 1029, 1026, 1012, 1050, 1012, 1012, 1012, 1021, 182, 183, + 3, 1021, 1059, 1021, 1021, 1021, 1026, 1046, 1026, 1066, + 1026, 1050, 1012, 1029, 1071, 1015, 1071, 1056, 1018, 217, + 1059, 1021, 1012, 217, 1059, 1012, 1026, 4, 1071, 1029, + 214, 1021, 1071, 8, 1021, 1012, 217, 214, 1012, 1026, + 214, 8, 1029, 4, 1021, 1012, 1046, 1021, 1012, 1026, + 1050, 1012, 1029, 8, 1021, 1071, 1056, 1021, 1012, 1059, + 1021, 1012, 1026, 3, 8, 1026, 1012, 1021, 1029, 1012, + 1021, 1071, 1026, 1012, 1012, 1021, 1012, 1012, 1021, 1012, + 1012, 1012, 1021, 1021, 1012, 1021, 1021, 1012, 1021, 1021, + 1021, 1012, 1012, 1021, 1012, 1012, 1021, 1012, 1012, 1012, + 1021, 1021, 1012, 1021, 1021, 214, 1021, 1021, 1021, 214, + 214, 1021, 214, 214, 214, 4, 4, 4, 4, 214, + 4, 214, 5, 214, 4, 7, 4, 4, 4, 4, + 719, 505, 214, 214, 710, 697, 721, 215, 217, 214, + 214, 214, 984, 1024, 215, 217, 215, 214, 214, 514, + 1011, 1006, 1046, 809, 1034, 1041, 1032, 1014, 1023, 1201, + 1012, 1247, 526, 529, 1017, 1015, 1071, 1073, 780, 1020, + 1018, 550, 1031, 1029, 1263, 1253, 1050, 1060, 556, 559, + 1027, 759, 540, 1056, 1285, 1305, -1, -1, 1066, -1, + 1247, 720, 1247, -1, -1, -1, 1253, -1, -1, 576, + -1, 1253, -1, 1247, 1247, 580, 1263, -1, 1247, -1, + -1, -1, 1247, -1, 1253, -1, -1, -1, 1253, -1, + -1, -1, -1, 1247, 1263, -1, -1, 1247, 1263, 1247, + 1247, 1247, -1, 1253, -1, 1253, -1, 1253, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1247, -1, -1, + -1, -1, -1, 1253, -1, -1, -1, 1247, -1, -1, + 1247, -1, -1, 1263, -1, -1, 1253, -1, -1, -1, + 1247, -1, -1, 1247, -1, -1, 1253, -1, -1, -1, + 1247, -1, -1, 1247, -1, -1, 1247, -1, -1, 1253, + -1, -1, 1253, 1247, -1, -1, 1247, -1, -1, 1253, + -1, 1247, -1, -1, 1247, -1, -1, -1, 1247, 1247, + -1, 1247, 1247, -1, 1247, 1247, 1247, -1, -1, 1247, + -1, -1, 1247, -1, -1, -1, 1247, 1247, -1, 1247, + 1247, -1, 1247, 1247, 1247, -1, -1, 1247 }; const short Dhcp4Parser::yystos_[] = { - 0, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 0, 5, - 7, 9, 213, 214, 215, 216, 232, 233, 234, 239, - 7, 248, 7, 253, 7, 303, 7, 416, 7, 500, - 7, 516, 7, 451, 7, 457, 7, 481, 7, 392, - 7, 583, 7, 614, 240, 235, 249, 254, 304, 417, - 501, 517, 452, 458, 482, 393, 584, 615, 232, 241, - 242, 213, 237, 238, 10, 250, 252, 11, 14, 26, + 0, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 0, 5, + 7, 9, 214, 215, 216, 217, 233, 234, 235, 240, + 7, 249, 7, 254, 7, 305, 7, 418, 7, 502, + 7, 518, 7, 453, 7, 459, 7, 483, 7, 394, + 7, 585, 7, 616, 241, 236, 250, 255, 306, 419, + 503, 519, 454, 460, 484, 395, 586, 617, 233, 242, + 243, 214, 238, 239, 10, 251, 253, 11, 14, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 92, 93, 104, 105, 106, 109, - 110, 114, 119, 120, 121, 122, 123, 129, 139, 142, - 149, 150, 154, 157, 161, 181, 182, 183, 184, 185, - 186, 195, 213, 247, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 270, 271, - 273, 274, 275, 276, 277, 278, 279, 282, 284, 286, - 287, 288, 290, 292, 293, 294, 295, 296, 297, 298, - 299, 317, 319, 327, 329, 370, 379, 386, 400, 410, - 434, 435, 436, 437, 441, 449, 475, 506, 508, 510, - 521, 523, 525, 548, 562, 563, 571, 581, 612, 621, - 645, 15, 16, 19, 22, 23, 24, 25, 247, 301, - 302, 305, 307, 310, 313, 314, 315, 316, 506, 508, - 89, 90, 91, 107, 111, 112, 113, 124, 128, 136, - 247, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 271, 274, 275, 276, 277, 278, 279, 282, 284, - 286, 287, 288, 290, 292, 298, 418, 419, 420, 422, - 424, 426, 428, 430, 432, 434, 435, 436, 437, 440, - 475, 494, 506, 508, 510, 521, 523, 525, 545, 108, - 247, 430, 432, 475, 502, 503, 504, 506, 508, 123, - 130, 131, 132, 133, 134, 135, 137, 247, 475, 506, - 508, 518, 519, 520, 521, 523, 525, 527, 531, 533, - 535, 537, 539, 541, 543, 449, 39, 94, 96, 97, - 101, 102, 103, 247, 347, 459, 460, 461, 462, 463, - 464, 465, 467, 469, 471, 472, 474, 506, 508, 95, - 98, 99, 100, 247, 347, 463, 469, 483, 484, 485, - 486, 487, 489, 490, 491, 492, 493, 506, 508, 140, - 141, 247, 394, 395, 396, 398, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 181, - 182, 247, 506, 508, 585, 586, 587, 588, 590, 591, - 593, 594, 595, 598, 600, 602, 603, 604, 606, 608, - 610, 12, 13, 616, 617, 618, 620, 6, 3, 4, - 8, 3, 251, 3, 8, 613, 300, 320, 4, 4, - 4, 522, 524, 526, 4, 318, 328, 330, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 269, - 4, 4, 4, 4, 4, 280, 283, 285, 4, 4, - 4, 411, 450, 476, 4, 272, 442, 507, 509, 438, - 4, 4, 4, 371, 549, 511, 387, 401, 4, 380, - 564, 572, 582, 289, 291, 4, 4, 4, 622, 646, - 4, 3, 8, 306, 308, 311, 4, 4, 4, 4, - 3, 8, 423, 425, 427, 495, 421, 429, 4, 433, - 431, 546, 3, 8, 505, 3, 8, 544, 532, 534, - 538, 536, 542, 540, 528, 8, 3, 8, 466, 348, - 4, 470, 468, 473, 4, 8, 3, 488, 4, 4, - 4, 8, 3, 397, 399, 3, 8, 4, 601, 589, - 4, 592, 4, 4, 596, 599, 4, 4, 605, 607, - 609, 611, 3, 8, 619, 4, 3, 8, 232, 232, - 213, 4, 4, 4, 4, 216, 216, 216, 4, 4, - 4, 214, 4, 4, 4, 214, 214, 214, 214, 214, - 216, 215, 215, 215, 214, 214, 4, 214, 214, 216, - 216, 216, 4, 4, 4, 216, 216, 216, 4, 4, - 4, 214, 4, 4, 4, 4, 4, 216, 216, 216, - 4, 4, 4, 4, 4, 214, 4, 4, 4, 4, - 4, 4, 216, 216, 216, 4, 4, 256, 4, 4, - 4, 216, 216, 214, 214, 302, 4, 4, 4, 4, - 4, 4, 214, 4, 4, 4, 419, 4, 503, 4, - 4, 4, 4, 4, 4, 4, 4, 520, 4, 4, - 214, 4, 4, 4, 216, 461, 4, 216, 216, 216, - 485, 4, 4, 395, 216, 4, 4, 214, 4, 214, - 214, 4, 4, 216, 216, 4, 4, 4, 4, 586, - 4, 214, 617, 4, 7, 7, 7, 7, 213, 213, - 213, 7, 7, 5, 213, 177, 178, 179, 180, 216, - 281, 213, 213, 5, 5, 5, 213, 5, 234, 236, - 213, 115, 116, 117, 118, 439, 5, 5, 5, 5, - 7, 7, 7, 7, 7, 213, 213, 5, 7, 5, - 243, 17, 18, 309, 20, 21, 312, 213, 213, 213, - 5, 213, 213, 243, 213, 7, 213, 243, 213, 213, - 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, - 213, 213, 236, 213, 213, 213, 18, 175, 597, 176, - 281, 213, 213, 213, 5, 232, 255, 616, 301, 27, - 28, 321, 322, 323, 325, 39, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 60, 61, 62, 63, 64, 247, 335, 336, 337, 340, - 342, 344, 346, 347, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 361, 362, 364, 366, 368, 335, - 7, 331, 332, 333, 7, 412, 413, 414, 7, 453, - 454, 455, 7, 477, 478, 479, 7, 443, 444, 445, - 130, 131, 132, 133, 135, 372, 373, 374, 375, 376, - 377, 378, 7, 550, 551, 7, 512, 513, 514, 7, - 388, 389, 390, 143, 144, 145, 146, 147, 148, 402, - 403, 404, 405, 406, 407, 408, 409, 151, 152, 153, - 247, 381, 382, 383, 384, 385, 506, 508, 155, 156, - 247, 506, 508, 565, 566, 567, 569, 158, 159, 160, - 213, 506, 508, 573, 574, 575, 576, 578, 579, 585, - 7, 623, 624, 196, 197, 198, 199, 247, 647, 648, - 649, 650, 651, 652, 244, 7, 496, 497, 498, 138, - 527, 529, 547, 331, 8, 8, 8, 324, 326, 3, - 8, 338, 341, 343, 345, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 359, 4, 363, 365, 367, - 369, 3, 8, 8, 334, 6, 3, 415, 6, 3, - 456, 6, 3, 480, 6, 3, 446, 6, 3, 3, - 6, 552, 3, 6, 515, 6, 3, 391, 6, 3, - 4, 4, 4, 4, 4, 4, 3, 8, 4, 4, - 4, 3, 8, 568, 570, 3, 8, 4, 577, 4, - 580, 3, 8, 8, 625, 3, 6, 4, 4, 4, - 4, 3, 8, 213, 245, 246, 499, 6, 3, 530, - 8, 6, 4, 4, 322, 4, 4, 4, 4, 214, - 216, 214, 216, 214, 214, 214, 214, 214, 214, 4, - 214, 4, 4, 4, 4, 336, 335, 333, 418, 414, - 459, 455, 483, 479, 247, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 271, 274, 275, 276, 277, - 278, 279, 282, 284, 286, 287, 288, 290, 292, 298, - 347, 410, 428, 430, 432, 434, 435, 436, 437, 447, - 448, 475, 506, 508, 521, 523, 525, 545, 445, 373, - 125, 126, 127, 247, 257, 258, 259, 298, 347, 449, - 475, 506, 508, 521, 523, 525, 553, 554, 555, 556, - 557, 559, 561, 551, 518, 514, 394, 390, 214, 214, - 214, 214, 214, 214, 403, 216, 214, 214, 382, 4, - 4, 566, 216, 4, 214, 4, 574, 187, 189, 190, - 247, 347, 506, 508, 626, 627, 628, 629, 631, 624, - 216, 216, 216, 216, 648, 6, 3, 502, 498, 4, - 213, 213, 40, 41, 42, 339, 213, 213, 213, 57, - 58, 59, 360, 213, 213, 213, 213, 8, 8, 8, - 8, 3, 8, 558, 560, 4, 8, 3, 8, 8, - 213, 213, 213, 232, 632, 4, 630, 3, 8, 213, - 8, 243, 448, 4, 4, 216, 555, 4, 214, 4, - 627, 213, 213, 5, 213, 7, 633, 634, 635, 3, - 6, 188, 191, 192, 193, 194, 636, 637, 638, 640, - 641, 642, 643, 634, 639, 4, 4, 4, 644, 3, - 8, 4, 216, 214, 214, 4, 637, 213, 213 + 85, 86, 87, 88, 89, 93, 94, 105, 106, 107, + 110, 111, 115, 120, 121, 122, 123, 124, 130, 140, + 143, 150, 151, 155, 158, 162, 182, 183, 184, 185, + 186, 187, 196, 214, 248, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, + 272, 274, 275, 276, 277, 278, 279, 280, 283, 285, + 287, 288, 289, 290, 292, 294, 295, 296, 297, 298, + 299, 300, 301, 319, 321, 329, 331, 372, 381, 388, + 402, 412, 436, 437, 438, 439, 443, 451, 477, 508, + 510, 512, 523, 525, 527, 550, 564, 565, 573, 583, + 614, 623, 647, 15, 16, 19, 22, 23, 24, 25, + 248, 303, 304, 307, 309, 312, 315, 316, 317, 318, + 508, 510, 90, 91, 92, 108, 112, 113, 114, 125, + 129, 137, 248, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 272, 275, 276, 277, 278, 279, 280, + 283, 285, 287, 288, 289, 290, 292, 294, 300, 420, + 421, 422, 424, 426, 428, 430, 432, 434, 436, 437, + 438, 439, 442, 477, 496, 508, 510, 512, 523, 525, + 527, 547, 109, 248, 432, 434, 477, 504, 505, 506, + 508, 510, 124, 131, 132, 133, 134, 135, 136, 138, + 248, 477, 508, 510, 520, 521, 522, 523, 525, 527, + 529, 533, 535, 537, 539, 541, 543, 545, 451, 39, + 95, 97, 98, 102, 103, 104, 248, 349, 461, 462, + 463, 464, 465, 466, 467, 469, 471, 473, 474, 476, + 508, 510, 96, 99, 100, 101, 248, 349, 465, 471, + 485, 486, 487, 488, 489, 491, 492, 493, 494, 495, + 508, 510, 141, 142, 248, 396, 397, 398, 400, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 182, 183, 248, 508, 510, 587, 588, 589, + 590, 592, 593, 595, 596, 597, 600, 602, 604, 605, + 606, 608, 610, 612, 12, 13, 618, 619, 620, 622, + 6, 3, 4, 8, 3, 252, 3, 8, 615, 302, + 322, 4, 4, 4, 524, 526, 528, 4, 320, 330, + 332, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 270, 4, 4, 4, 4, 4, 281, 284, + 286, 4, 4, 4, 4, 413, 452, 478, 4, 273, + 444, 509, 511, 440, 4, 4, 4, 373, 551, 513, + 389, 403, 4, 382, 566, 574, 584, 291, 293, 4, + 4, 4, 624, 648, 4, 3, 8, 308, 310, 313, + 4, 4, 4, 4, 3, 8, 425, 427, 429, 497, + 423, 431, 4, 435, 433, 548, 3, 8, 507, 3, + 8, 546, 534, 536, 540, 538, 544, 542, 530, 8, + 3, 8, 468, 350, 4, 472, 470, 475, 4, 8, + 3, 490, 4, 4, 4, 8, 3, 399, 401, 3, + 8, 4, 603, 591, 4, 594, 4, 4, 598, 601, + 4, 4, 607, 609, 611, 613, 3, 8, 621, 4, + 3, 8, 233, 233, 214, 4, 4, 4, 4, 217, + 217, 217, 4, 4, 4, 215, 4, 4, 4, 215, + 215, 215, 215, 215, 217, 216, 216, 216, 215, 215, + 4, 215, 215, 217, 217, 217, 4, 4, 4, 217, + 217, 216, 217, 4, 4, 4, 215, 4, 4, 4, + 4, 4, 217, 217, 217, 4, 4, 4, 4, 4, + 215, 4, 4, 4, 4, 4, 4, 217, 217, 217, + 4, 4, 257, 4, 4, 4, 217, 217, 215, 215, + 304, 4, 4, 4, 4, 4, 4, 215, 4, 4, + 4, 421, 4, 505, 4, 4, 4, 4, 4, 4, + 4, 4, 522, 4, 4, 215, 4, 4, 4, 217, + 463, 4, 217, 217, 217, 487, 4, 4, 397, 217, + 4, 4, 215, 4, 215, 215, 4, 4, 217, 217, + 4, 4, 4, 4, 588, 4, 215, 619, 4, 7, + 7, 7, 7, 214, 214, 214, 7, 7, 5, 214, + 178, 179, 180, 181, 217, 282, 214, 214, 5, 5, + 5, 214, 5, 235, 237, 214, 116, 117, 118, 119, + 441, 5, 5, 5, 5, 7, 7, 7, 7, 7, + 214, 214, 5, 7, 5, 244, 17, 18, 311, 20, + 21, 314, 214, 214, 214, 5, 214, 214, 244, 214, + 7, 214, 244, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 237, 214, 214, + 214, 18, 176, 599, 177, 282, 214, 214, 214, 5, + 233, 256, 618, 303, 27, 28, 323, 324, 325, 327, + 39, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 60, 61, 62, 63, 64, + 248, 337, 338, 339, 342, 344, 346, 348, 349, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 363, + 364, 366, 368, 370, 337, 7, 333, 334, 335, 7, + 414, 415, 416, 7, 455, 456, 457, 7, 479, 480, + 481, 7, 445, 446, 447, 131, 132, 133, 134, 136, + 374, 375, 376, 377, 378, 379, 380, 7, 552, 553, + 7, 514, 515, 516, 7, 390, 391, 392, 144, 145, + 146, 147, 148, 149, 404, 405, 406, 407, 408, 409, + 410, 411, 152, 153, 154, 248, 383, 384, 385, 386, + 387, 508, 510, 156, 157, 248, 508, 510, 567, 568, + 569, 571, 159, 160, 161, 214, 508, 510, 575, 576, + 577, 578, 580, 581, 587, 7, 625, 626, 197, 198, + 199, 200, 248, 649, 650, 651, 652, 653, 654, 245, + 7, 498, 499, 500, 139, 529, 531, 549, 333, 8, + 8, 8, 326, 328, 3, 8, 340, 343, 345, 347, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 361, 4, 365, 367, 369, 371, 3, 8, 8, 336, + 6, 3, 417, 6, 3, 458, 6, 3, 482, 6, + 3, 448, 6, 3, 3, 6, 554, 3, 6, 517, + 6, 3, 393, 6, 3, 4, 4, 4, 4, 4, + 4, 3, 8, 4, 4, 4, 3, 8, 570, 572, + 3, 8, 4, 579, 4, 582, 3, 8, 8, 627, + 3, 6, 4, 4, 4, 4, 3, 8, 214, 246, + 247, 501, 6, 3, 532, 8, 6, 4, 4, 324, + 4, 4, 4, 4, 215, 217, 215, 217, 215, 215, + 215, 215, 215, 215, 4, 215, 4, 4, 4, 4, + 338, 337, 335, 420, 416, 461, 457, 485, 481, 248, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 272, 275, 276, 277, 278, 279, 280, 283, 285, 287, + 288, 289, 290, 292, 294, 300, 349, 412, 430, 432, + 434, 436, 437, 438, 439, 449, 450, 477, 508, 510, + 523, 525, 527, 547, 447, 375, 126, 127, 128, 248, + 258, 259, 260, 300, 349, 451, 477, 508, 510, 523, + 525, 527, 555, 556, 557, 558, 559, 561, 563, 553, + 520, 516, 396, 392, 215, 215, 215, 215, 215, 215, + 405, 217, 215, 215, 384, 4, 4, 568, 217, 4, + 215, 4, 576, 188, 190, 191, 248, 349, 508, 510, + 628, 629, 630, 631, 633, 626, 217, 217, 217, 217, + 650, 6, 3, 504, 500, 4, 214, 214, 40, 41, + 42, 341, 214, 214, 214, 57, 58, 59, 362, 214, + 214, 214, 214, 8, 8, 8, 8, 3, 8, 560, + 562, 4, 8, 3, 8, 8, 214, 214, 214, 233, + 634, 4, 632, 3, 8, 214, 8, 244, 450, 4, + 4, 217, 557, 4, 215, 4, 629, 214, 214, 5, + 214, 7, 635, 636, 637, 3, 6, 189, 192, 193, + 194, 195, 638, 639, 640, 642, 643, 644, 645, 636, + 641, 4, 4, 4, 646, 3, 8, 4, 217, 215, + 215, 4, 639, 214, 214 }; const short Dhcp4Parser::yyr1_[] = { - 0, 217, 219, 218, 220, 218, 221, 218, 222, 218, - 223, 218, 224, 218, 225, 218, 226, 218, 227, 218, - 228, 218, 229, 218, 230, 218, 231, 218, 232, 232, - 232, 232, 232, 232, 232, 233, 235, 234, 236, 237, - 237, 238, 238, 238, 240, 239, 241, 241, 242, 242, - 242, 244, 243, 245, 245, 246, 246, 246, 247, 249, - 248, 251, 250, 250, 252, 254, 253, 255, 255, 255, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 269, 268, 270, - 272, 271, 273, 274, 275, 276, 277, 278, 280, 279, - 281, 281, 281, 281, 281, 283, 282, 285, 284, 286, - 287, 289, 288, 291, 290, 292, 293, 294, 295, 296, - 297, 298, 300, 299, 301, 301, 301, 302, 302, 302, - 302, 302, 302, 302, 302, 302, 302, 304, 303, 306, - 305, 308, 307, 309, 309, 311, 310, 312, 312, 313, - 314, 315, 316, 318, 317, 320, 319, 321, 321, 321, - 322, 322, 324, 323, 326, 325, 328, 327, 330, 329, - 331, 331, 332, 332, 332, 334, 333, 335, 335, 335, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 338, 337, 339, 339, 339, 341, 340, 343, - 342, 345, 344, 346, 348, 347, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 359, 358, 360, 360, 360, - 361, 363, 362, 365, 364, 367, 366, 369, 368, 371, - 370, 372, 372, 372, 373, 373, 373, 373, 373, 374, - 375, 376, 377, 378, 380, 379, 381, 381, 381, 382, - 382, 382, 382, 382, 382, 383, 384, 385, 387, 386, - 388, 388, 389, 389, 389, 391, 390, 393, 392, 394, - 394, 394, 394, 395, 395, 397, 396, 399, 398, 401, - 400, 402, 402, 402, 403, 403, 403, 403, 403, 403, - 404, 405, 406, 407, 408, 409, 411, 410, 412, 412, - 413, 413, 413, 415, 414, 417, 416, 418, 418, 418, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 421, 420, 423, - 422, 425, 424, 427, 426, 429, 428, 431, 430, 433, - 432, 434, 435, 436, 438, 437, 439, 439, 439, 439, - 440, 442, 441, 443, 443, 444, 444, 444, 446, 445, - 447, 447, 447, 448, 448, 448, 448, 448, 448, 448, - 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, - 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, - 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, - 448, 448, 448, 448, 448, 450, 449, 452, 451, 453, - 453, 454, 454, 454, 456, 455, 458, 457, 459, 459, - 460, 460, 460, 461, 461, 461, 461, 461, 461, 461, - 461, 461, 461, 462, 463, 464, 466, 465, 468, 467, - 470, 469, 471, 473, 472, 474, 476, 475, 477, 477, - 478, 478, 478, 480, 479, 482, 481, 483, 483, 484, - 484, 484, 485, 485, 485, 485, 485, 485, 485, 485, - 485, 485, 486, 488, 487, 489, 490, 491, 492, 493, - 495, 494, 496, 496, 497, 497, 497, 499, 498, 501, - 500, 502, 502, 502, 503, 503, 503, 503, 503, 503, - 503, 505, 504, 507, 506, 509, 508, 511, 510, 512, - 512, 513, 513, 513, 515, 514, 517, 516, 518, 518, - 519, 519, 519, 520, 520, 520, 520, 520, 520, 520, - 520, 520, 520, 520, 520, 520, 520, 520, 522, 521, - 524, 523, 526, 525, 528, 527, 530, 529, 532, 531, - 534, 533, 536, 535, 538, 537, 540, 539, 542, 541, - 544, 543, 546, 545, 547, 547, 549, 548, 550, 550, - 550, 552, 551, 553, 553, 554, 554, 554, 555, 555, - 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, - 555, 555, 555, 555, 556, 558, 557, 560, 559, 561, - 562, 564, 563, 565, 565, 565, 566, 566, 566, 566, - 566, 568, 567, 570, 569, 572, 571, 573, 573, 573, - 574, 574, 574, 574, 574, 574, 575, 577, 576, 578, - 580, 579, 582, 581, 584, 583, 585, 585, 585, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 587, 589, 588, - 590, 592, 591, 593, 594, 596, 595, 597, 597, 599, - 598, 601, 600, 602, 603, 605, 604, 607, 606, 609, - 608, 611, 610, 613, 612, 615, 614, 616, 616, 616, - 617, 617, 619, 618, 620, 622, 621, 623, 623, 623, - 625, 624, 626, 626, 626, 627, 627, 627, 627, 627, - 627, 627, 628, 630, 629, 632, 631, 633, 633, 633, - 635, 634, 636, 636, 636, 637, 637, 637, 637, 637, - 639, 638, 640, 641, 642, 644, 643, 646, 645, 647, - 647, 647, 648, 648, 648, 648, 648, 649, 650, 651, - 652 + 0, 218, 220, 219, 221, 219, 222, 219, 223, 219, + 224, 219, 225, 219, 226, 219, 227, 219, 228, 219, + 229, 219, 230, 219, 231, 219, 232, 219, 233, 233, + 233, 233, 233, 233, 233, 234, 236, 235, 237, 238, + 238, 239, 239, 239, 241, 240, 242, 242, 243, 243, + 243, 245, 244, 246, 246, 247, 247, 247, 248, 250, + 249, 252, 251, 251, 253, 255, 254, 256, 256, 256, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 270, 269, + 271, 273, 272, 274, 275, 276, 277, 278, 279, 281, + 280, 282, 282, 282, 282, 282, 284, 283, 286, 285, + 287, 288, 289, 291, 290, 293, 292, 294, 295, 296, + 297, 298, 299, 300, 302, 301, 303, 303, 303, 304, + 304, 304, 304, 304, 304, 304, 304, 304, 304, 306, + 305, 308, 307, 310, 309, 311, 311, 313, 312, 314, + 314, 315, 316, 317, 318, 320, 319, 322, 321, 323, + 323, 323, 324, 324, 326, 325, 328, 327, 330, 329, + 332, 331, 333, 333, 334, 334, 334, 336, 335, 337, + 337, 337, 338, 338, 338, 338, 338, 338, 338, 338, + 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, + 338, 338, 338, 338, 340, 339, 341, 341, 341, 343, + 342, 345, 344, 347, 346, 348, 350, 349, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 361, 360, 362, + 362, 362, 363, 365, 364, 367, 366, 369, 368, 371, + 370, 373, 372, 374, 374, 374, 375, 375, 375, 375, + 375, 376, 377, 378, 379, 380, 382, 381, 383, 383, + 383, 384, 384, 384, 384, 384, 384, 385, 386, 387, + 389, 388, 390, 390, 391, 391, 391, 393, 392, 395, + 394, 396, 396, 396, 396, 397, 397, 399, 398, 401, + 400, 403, 402, 404, 404, 404, 405, 405, 405, 405, + 405, 405, 406, 407, 408, 409, 410, 411, 413, 412, + 414, 414, 415, 415, 415, 417, 416, 419, 418, 420, + 420, 420, 421, 421, 421, 421, 421, 421, 421, 421, + 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, + 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, + 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, + 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, + 423, 422, 425, 424, 427, 426, 429, 428, 431, 430, + 433, 432, 435, 434, 436, 437, 438, 440, 439, 441, + 441, 441, 441, 442, 444, 443, 445, 445, 446, 446, + 446, 448, 447, 449, 449, 449, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 452, + 451, 454, 453, 455, 455, 456, 456, 456, 458, 457, + 460, 459, 461, 461, 462, 462, 462, 463, 463, 463, + 463, 463, 463, 463, 463, 463, 463, 464, 465, 466, + 468, 467, 470, 469, 472, 471, 473, 475, 474, 476, + 478, 477, 479, 479, 480, 480, 480, 482, 481, 484, + 483, 485, 485, 486, 486, 486, 487, 487, 487, 487, + 487, 487, 487, 487, 487, 487, 488, 490, 489, 491, + 492, 493, 494, 495, 497, 496, 498, 498, 499, 499, + 499, 501, 500, 503, 502, 504, 504, 504, 505, 505, + 505, 505, 505, 505, 505, 507, 506, 509, 508, 511, + 510, 513, 512, 514, 514, 515, 515, 515, 517, 516, + 519, 518, 520, 520, 521, 521, 521, 522, 522, 522, + 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + 522, 522, 524, 523, 526, 525, 528, 527, 530, 529, + 532, 531, 534, 533, 536, 535, 538, 537, 540, 539, + 542, 541, 544, 543, 546, 545, 548, 547, 549, 549, + 551, 550, 552, 552, 552, 554, 553, 555, 555, 556, + 556, 556, 557, 557, 557, 557, 557, 557, 557, 557, + 557, 557, 557, 557, 557, 557, 557, 557, 558, 560, + 559, 562, 561, 563, 564, 566, 565, 567, 567, 567, + 568, 568, 568, 568, 568, 570, 569, 572, 571, 574, + 573, 575, 575, 575, 576, 576, 576, 576, 576, 576, + 577, 579, 578, 580, 582, 581, 584, 583, 586, 585, + 587, 587, 587, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 589, 591, 590, 592, 594, 593, 595, 596, 598, + 597, 599, 599, 601, 600, 603, 602, 604, 605, 607, + 606, 609, 608, 611, 610, 613, 612, 615, 614, 617, + 616, 618, 618, 618, 619, 619, 621, 620, 622, 624, + 623, 625, 625, 625, 627, 626, 628, 628, 628, 629, + 629, 629, 629, 629, 629, 629, 630, 632, 631, 634, + 633, 635, 635, 635, 637, 636, 638, 638, 638, 639, + 639, 639, 639, 639, 641, 640, 642, 643, 644, 646, + 645, 648, 647, 649, 649, 649, 650, 650, 650, 650, + 650, 651, 652, 653, 654 }; const signed char @@ -5940,79 +5952,79 @@ namespace isc { namespace dhcp { 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, 3, 3, 0, 4, 3, - 0, 4, 3, 3, 3, 3, 3, 3, 0, 4, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 3, - 3, 0, 4, 0, 4, 3, 3, 3, 3, 3, - 3, 3, 0, 6, 1, 3, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, - 4, 0, 4, 1, 1, 0, 4, 1, 1, 3, - 3, 3, 3, 0, 6, 0, 6, 1, 3, 2, - 1, 1, 0, 4, 0, 4, 0, 6, 0, 6, - 0, 1, 1, 3, 2, 0, 4, 1, 3, 2, - 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, 3, 3, 0, 4, + 3, 0, 4, 3, 3, 3, 3, 3, 3, 0, + 4, 1, 1, 1, 1, 1, 0, 4, 0, 4, + 3, 3, 3, 0, 4, 0, 4, 3, 3, 3, + 3, 3, 3, 3, 0, 6, 1, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 0, 4, 0, 4, 1, 1, 0, 4, 1, + 1, 3, 3, 3, 3, 0, 6, 0, 6, 1, + 3, 2, 1, 1, 0, 4, 0, 4, 0, 6, + 0, 6, 0, 1, 1, 3, 2, 0, 4, 1, + 3, 2, 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, 0, 4, 0, - 4, 0, 4, 3, 0, 4, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 0, 4, 1, 1, 1, - 3, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 6, 1, 3, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 6, 1, 3, 2, 1, - 1, 1, 1, 1, 1, 3, 3, 3, 0, 6, + 1, 1, 1, 1, 0, 4, 1, 1, 1, 0, + 4, 0, 4, 0, 4, 3, 0, 4, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 0, 4, 1, + 1, 1, 3, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 6, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 6, 1, 3, + 2, 1, 1, 1, 1, 1, 1, 3, 3, 3, + 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, + 4, 1, 3, 2, 1, 1, 1, 0, 4, 0, + 4, 0, 6, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 3, 3, 3, 3, 3, 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, 4, 1, - 3, 2, 1, 1, 1, 0, 4, 0, 4, 0, - 6, 1, 3, 2, 1, 1, 1, 1, 1, 1, - 3, 3, 3, 3, 3, 3, 0, 6, 0, 1, - 1, 3, 2, 0, 4, 0, 4, 1, 3, 2, + 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 3, 3, 3, 0, 4, 1, 1, 1, 1, - 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 3, 3, 3, 0, 4, 1, + 1, 1, 1, 3, 0, 6, 0, 1, 1, 3, + 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 6, 0, 4, 0, - 1, 1, 3, 2, 0, 4, 0, 4, 0, 1, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 0, 4, 0, 4, - 0, 4, 1, 0, 4, 3, 0, 6, 0, 1, - 1, 3, 2, 0, 4, 0, 4, 0, 1, 1, - 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 1, 1, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 6, 0, 4, 0, 1, 1, 3, 2, 0, 4, + 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 0, 4, 0, 4, 0, 4, 1, 0, 4, 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, - 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 0, 4, 0, 4, 0, 6, 0, - 1, 1, 3, 2, 0, 4, 0, 4, 0, 1, - 1, 3, 2, 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, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 6, 1, 1, 0, 6, 1, 3, - 2, 0, 4, 0, 1, 1, 3, 2, 1, 1, + 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, + 1, 3, 3, 3, 0, 6, 0, 1, 1, 3, + 2, 0, 4, 0, 4, 1, 3, 2, 1, 1, + 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, + 4, 0, 6, 0, 1, 1, 3, 2, 0, 4, + 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 3, - 3, 0, 6, 1, 3, 2, 1, 1, 1, 1, - 1, 0, 4, 0, 4, 0, 6, 1, 3, 2, - 1, 1, 1, 1, 1, 1, 3, 0, 4, 3, - 0, 4, 0, 6, 0, 4, 1, 3, 2, 1, + 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 6, 1, 1, + 0, 6, 1, 3, 2, 0, 4, 0, 1, 1, + 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 0, 4, 3, 3, 0, 6, 1, 3, 2, + 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, + 6, 1, 3, 2, 1, 1, 1, 1, 1, 1, + 3, 0, 4, 3, 0, 4, 0, 6, 0, 4, + 1, 3, 2, 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, 0, 4, - 3, 0, 4, 3, 3, 0, 4, 1, 1, 0, - 4, 0, 4, 3, 3, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 6, 0, 4, 1, 3, 2, - 1, 1, 0, 6, 3, 0, 6, 1, 3, 2, - 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, - 1, 1, 3, 0, 4, 0, 6, 1, 3, 2, - 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, - 0, 4, 3, 3, 3, 0, 4, 0, 6, 1, - 3, 2, 1, 1, 1, 1, 1, 3, 3, 3, - 3 + 1, 3, 0, 4, 3, 0, 4, 3, 3, 0, + 4, 1, 1, 0, 4, 0, 4, 3, 3, 0, + 4, 0, 4, 0, 4, 0, 4, 0, 6, 0, + 4, 1, 3, 2, 1, 1, 0, 6, 3, 0, + 6, 1, 3, 2, 0, 4, 1, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 3, 0, 4, 0, + 6, 1, 3, 2, 0, 4, 1, 3, 2, 1, + 1, 1, 1, 1, 0, 4, 3, 3, 3, 0, + 4, 0, 6, 1, 3, 2, 1, 1, 1, 1, + 1, 3, 3, 3, 3 }; @@ -6051,10 +6063,10 @@ namespace isc { namespace dhcp { "\"ddns-override-client-update\"", "\"ddns-replace-client-name\"", "\"ddns-generated-prefix\"", "\"ddns-qualifying-suffix\"", "\"ddns-update-on-renew\"", "\"ddns-use-conflict-resolution\"", - "\"store-extended-info\"", "\"subnet4\"", "\"4o6-interface\"", - "\"4o6-interface-id\"", "\"4o6-subnet\"", "\"option-def\"", - "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", "\"space\"", - "\"csv-format\"", "\"always-send\"", "\"never-send\"", + "\"ddns-ttl-percent\"", "\"store-extended-info\"", "\"subnet4\"", + "\"4o6-interface\"", "\"4o6-interface-id\"", "\"4o6-subnet\"", + "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", + "\"space\"", "\"csv-format\"", "\"always-send\"", "\"never-send\"", "\"record-types\"", "\"encapsulate\"", "\"array\"", "\"parked-packet-limit\"", "\"allocator\"", "\"shared-networks\"", "\"pools\"", "\"pool\"", "\"user-context\"", "\"comment\"", "\"subnet\"", @@ -6109,18 +6121,19 @@ namespace isc { namespace dhcp { "ddns_replace_client_name", "$@22", "ddns_replace_client_name_value", "ddns_generated_prefix", "$@23", "ddns_qualifying_suffix", "$@24", "ddns_update_on_renew", "ddns_use_conflict_resolution", - "hostname_char_set", "$@25", "hostname_char_replacement", "$@26", - "store_extended_info", "statistic_default_sample_count", - "statistic_default_sample_age", "early_global_reservations_lookup", - "ip_reservations_unique", "reservations_lookup_first", "offer_lifetime", - "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", - "service_sockets_require_all", "service_sockets_retry_wait_time", - "service_sockets_max_retries", "lease_database", "$@32", "sanity_checks", - "$@33", "sanity_checks_params", "sanity_checks_param", "lease_checks", - "$@34", "extended_info_checks", "$@35", "hosts_database", "$@36", + "ddns_ttl_percent", "hostname_char_set", "$@25", + "hostname_char_replacement", "$@26", "store_extended_info", + "statistic_default_sample_count", "statistic_default_sample_age", + "early_global_reservations_lookup", "ip_reservations_unique", + "reservations_lookup_first", "offer_lifetime", "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", "service_sockets_require_all", + "service_sockets_retry_wait_time", "service_sockets_max_retries", + "lease_database", "$@32", "sanity_checks", "$@33", + "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@34", + "extended_info_checks", "$@35", "hosts_database", "$@36", "hosts_databases", "$@37", "database_list", "not_empty_database_list", "database", "$@38", "database_map_params", "database_map_param", "database_type", "$@39", "db_type", "user", "$@40", "password", "$@41", @@ -6211,92 +6224,92 @@ namespace isc { namespace dhcp { const short Dhcp4Parser::yyrline_[] = { - 0, 306, 306, 306, 307, 307, 308, 308, 309, 309, - 310, 310, 311, 311, 312, 312, 313, 313, 314, 314, - 315, 315, 316, 316, 317, 317, 318, 318, 326, 327, - 328, 329, 330, 331, 332, 335, 340, 340, 351, 354, - 355, 358, 363, 369, 374, 374, 381, 382, 385, 389, - 393, 399, 399, 406, 407, 410, 414, 418, 428, 437, - 437, 452, 452, 466, 469, 475, 475, 484, 485, 486, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 561, 567, 573, 579, - 585, 591, 597, 603, 609, 615, 621, 627, 627, 636, - 642, 642, 651, 657, 663, 669, 675, 681, 687, 687, - 696, 699, 702, 705, 708, 714, 714, 723, 723, 732, - 738, 744, 744, 753, 753, 762, 768, 774, 780, 786, - 792, 798, 804, 804, 816, 817, 818, 823, 824, 825, - 826, 827, 828, 829, 830, 831, 832, 835, 835, 844, - 844, 855, 855, 863, 864, 867, 867, 875, 877, 881, - 887, 893, 899, 905, 905, 918, 918, 929, 930, 931, - 936, 937, 940, 940, 959, 959, 977, 977, 990, 990, - 1001, 1002, 1005, 1006, 1007, 1012, 1012, 1022, 1023, 1024, - 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, - 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, - 1049, 1050, 1053, 1053, 1061, 1062, 1063, 1066, 1066, 1075, - 1075, 1084, 1084, 1093, 1099, 1099, 1108, 1114, 1120, 1126, - 1132, 1138, 1144, 1150, 1156, 1162, 1162, 1170, 1171, 1172, - 1175, 1181, 1181, 1190, 1190, 1199, 1199, 1208, 1208, 1217, - 1217, 1228, 1229, 1230, 1235, 1236, 1237, 1238, 1239, 1242, - 1247, 1252, 1257, 1262, 1269, 1269, 1282, 1283, 1284, 1289, - 1290, 1291, 1292, 1293, 1294, 1297, 1303, 1309, 1315, 1315, - 1326, 1327, 1330, 1331, 1332, 1337, 1337, 1347, 1347, 1357, - 1358, 1359, 1362, 1365, 1366, 1369, 1369, 1378, 1378, 1387, - 1387, 1399, 1400, 1401, 1406, 1407, 1408, 1409, 1410, 1411, - 1414, 1420, 1426, 1432, 1438, 1444, 1453, 1453, 1467, 1468, - 1471, 1472, 1473, 1482, 1482, 1508, 1508, 1519, 1520, 1521, - 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, - 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, - 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, - 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, - 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1576, 1576, 1585, - 1585, 1594, 1594, 1603, 1603, 1612, 1612, 1621, 1621, 1630, - 1630, 1641, 1647, 1653, 1659, 1659, 1667, 1668, 1669, 1670, - 1673, 1681, 1681, 1693, 1694, 1698, 1699, 1700, 1705, 1705, - 1713, 1714, 1715, 1720, 1721, 1722, 1723, 1724, 1725, 1726, - 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, - 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, - 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, - 1757, 1758, 1759, 1760, 1761, 1768, 1768, 1782, 1782, 1791, - 1792, 1795, 1796, 1797, 1804, 1804, 1819, 1819, 1833, 1834, - 1837, 1838, 1839, 1844, 1845, 1846, 1847, 1848, 1849, 1850, - 1851, 1852, 1853, 1856, 1858, 1864, 1866, 1866, 1875, 1875, - 1884, 1884, 1893, 1895, 1895, 1904, 1914, 1914, 1927, 1928, - 1933, 1934, 1935, 1942, 1942, 1954, 1954, 1966, 1967, 1972, - 1973, 1974, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, - 1989, 1990, 1993, 1995, 1995, 2004, 2006, 2008, 2014, 2020, - 2029, 2029, 2042, 2043, 2046, 2047, 2048, 2053, 2053, 2063, - 2063, 2073, 2074, 2075, 2080, 2081, 2082, 2083, 2084, 2085, - 2086, 2089, 2089, 2098, 2098, 2123, 2123, 2153, 2153, 2164, - 2165, 2168, 2169, 2170, 2175, 2175, 2184, 2184, 2193, 2194, - 2197, 2198, 2199, 2205, 2206, 2207, 2208, 2209, 2210, 2211, - 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2222, 2222, - 2231, 2231, 2240, 2240, 2249, 2249, 2258, 2258, 2269, 2269, - 2278, 2278, 2287, 2287, 2296, 2296, 2305, 2305, 2314, 2314, - 2323, 2323, 2337, 2337, 2348, 2349, 2355, 2355, 2366, 2367, - 2368, 2373, 2373, 2383, 2384, 2387, 2388, 2389, 2394, 2395, - 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, - 2406, 2407, 2408, 2409, 2412, 2414, 2414, 2423, 2423, 2432, - 2440, 2448, 2448, 2459, 2460, 2461, 2466, 2467, 2468, 2469, - 2470, 2473, 2473, 2482, 2482, 2494, 2494, 2507, 2508, 2509, - 2514, 2515, 2516, 2517, 2518, 2519, 2522, 2528, 2528, 2537, - 2543, 2543, 2553, 2553, 2566, 2566, 2576, 2577, 2578, 2583, - 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, - 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2603, 2609, 2609, - 2618, 2624, 2624, 2633, 2639, 2645, 2645, 2654, 2655, 2658, - 2658, 2668, 2668, 2678, 2685, 2692, 2692, 2701, 2701, 2711, - 2711, 2721, 2721, 2733, 2733, 2745, 2745, 2755, 2756, 2757, - 2763, 2764, 2767, 2767, 2778, 2786, 2786, 2799, 2800, 2801, - 2807, 2807, 2815, 2816, 2817, 2822, 2823, 2824, 2825, 2826, - 2827, 2828, 2831, 2837, 2837, 2846, 2846, 2857, 2858, 2859, - 2864, 2864, 2872, 2873, 2874, 2879, 2880, 2881, 2882, 2883, - 2886, 2886, 2895, 2901, 2907, 2913, 2913, 2922, 2922, 2933, - 2934, 2935, 2940, 2941, 2942, 2943, 2944, 2947, 2953, 2959, - 2965 + 0, 307, 307, 307, 308, 308, 309, 309, 310, 310, + 311, 311, 312, 312, 313, 313, 314, 314, 315, 315, + 316, 316, 317, 317, 318, 318, 319, 319, 327, 328, + 329, 330, 331, 332, 333, 336, 341, 341, 352, 355, + 356, 359, 364, 370, 375, 375, 382, 383, 386, 390, + 394, 400, 400, 407, 408, 411, 415, 419, 429, 438, + 438, 453, 453, 467, 470, 476, 476, 485, 486, 487, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 563, 569, 575, + 581, 587, 593, 599, 605, 611, 617, 623, 629, 629, + 638, 644, 644, 653, 659, 665, 671, 677, 683, 689, + 689, 698, 701, 704, 707, 710, 716, 716, 725, 725, + 734, 740, 746, 752, 752, 761, 761, 770, 776, 782, + 788, 794, 800, 806, 812, 812, 824, 825, 826, 831, + 832, 833, 834, 835, 836, 837, 838, 839, 840, 843, + 843, 852, 852, 863, 863, 871, 872, 875, 875, 883, + 885, 889, 895, 901, 907, 913, 913, 926, 926, 937, + 938, 939, 944, 945, 948, 948, 967, 967, 985, 985, + 998, 998, 1009, 1010, 1013, 1014, 1015, 1020, 1020, 1030, + 1031, 1032, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, + 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, + 1055, 1056, 1057, 1058, 1061, 1061, 1069, 1070, 1071, 1074, + 1074, 1083, 1083, 1092, 1092, 1101, 1107, 1107, 1116, 1122, + 1128, 1134, 1140, 1146, 1152, 1158, 1164, 1170, 1170, 1178, + 1179, 1180, 1183, 1189, 1189, 1198, 1198, 1207, 1207, 1216, + 1216, 1225, 1225, 1236, 1237, 1238, 1243, 1244, 1245, 1246, + 1247, 1250, 1255, 1260, 1265, 1270, 1277, 1277, 1290, 1291, + 1292, 1297, 1298, 1299, 1300, 1301, 1302, 1305, 1311, 1317, + 1323, 1323, 1334, 1335, 1338, 1339, 1340, 1345, 1345, 1355, + 1355, 1365, 1366, 1367, 1370, 1373, 1374, 1377, 1377, 1386, + 1386, 1395, 1395, 1407, 1408, 1409, 1414, 1415, 1416, 1417, + 1418, 1419, 1422, 1428, 1434, 1440, 1446, 1452, 1461, 1461, + 1475, 1476, 1479, 1480, 1481, 1490, 1490, 1516, 1516, 1527, + 1528, 1529, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, + 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, + 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, + 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, + 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, + 1585, 1585, 1594, 1594, 1603, 1603, 1612, 1612, 1621, 1621, + 1630, 1630, 1639, 1639, 1650, 1656, 1662, 1668, 1668, 1676, + 1677, 1678, 1679, 1682, 1690, 1690, 1702, 1703, 1707, 1708, + 1709, 1714, 1714, 1722, 1723, 1724, 1729, 1730, 1731, 1732, + 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, + 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, + 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, + 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1778, + 1778, 1792, 1792, 1801, 1802, 1805, 1806, 1807, 1814, 1814, + 1829, 1829, 1843, 1844, 1847, 1848, 1849, 1854, 1855, 1856, + 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1866, 1868, 1874, + 1876, 1876, 1885, 1885, 1894, 1894, 1903, 1905, 1905, 1914, + 1924, 1924, 1937, 1938, 1943, 1944, 1945, 1952, 1952, 1964, + 1964, 1976, 1977, 1982, 1983, 1984, 1991, 1992, 1993, 1994, + 1995, 1996, 1997, 1998, 1999, 2000, 2003, 2005, 2005, 2014, + 2016, 2018, 2024, 2030, 2039, 2039, 2052, 2053, 2056, 2057, + 2058, 2063, 2063, 2073, 2073, 2083, 2084, 2085, 2090, 2091, + 2092, 2093, 2094, 2095, 2096, 2099, 2099, 2108, 2108, 2133, + 2133, 2163, 2163, 2174, 2175, 2178, 2179, 2180, 2185, 2185, + 2194, 2194, 2203, 2204, 2207, 2208, 2209, 2215, 2216, 2217, + 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, + 2228, 2229, 2232, 2232, 2241, 2241, 2250, 2250, 2259, 2259, + 2268, 2268, 2279, 2279, 2288, 2288, 2297, 2297, 2306, 2306, + 2315, 2315, 2324, 2324, 2333, 2333, 2347, 2347, 2358, 2359, + 2365, 2365, 2376, 2377, 2378, 2383, 2383, 2393, 2394, 2397, + 2398, 2399, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, + 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2422, 2424, + 2424, 2433, 2433, 2442, 2450, 2458, 2458, 2469, 2470, 2471, + 2476, 2477, 2478, 2479, 2480, 2483, 2483, 2492, 2492, 2504, + 2504, 2517, 2518, 2519, 2524, 2525, 2526, 2527, 2528, 2529, + 2532, 2538, 2538, 2547, 2553, 2553, 2563, 2563, 2576, 2576, + 2586, 2587, 2588, 2593, 2594, 2595, 2596, 2597, 2598, 2599, + 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, + 2610, 2613, 2619, 2619, 2628, 2634, 2634, 2643, 2649, 2655, + 2655, 2664, 2665, 2668, 2668, 2678, 2678, 2688, 2695, 2702, + 2702, 2711, 2711, 2721, 2721, 2731, 2731, 2743, 2743, 2755, + 2755, 2765, 2766, 2767, 2773, 2774, 2777, 2777, 2788, 2796, + 2796, 2809, 2810, 2811, 2817, 2817, 2825, 2826, 2827, 2832, + 2833, 2834, 2835, 2836, 2837, 2838, 2841, 2847, 2847, 2856, + 2856, 2867, 2868, 2869, 2874, 2874, 2882, 2883, 2884, 2889, + 2890, 2891, 2892, 2893, 2896, 2896, 2905, 2911, 2917, 2923, + 2923, 2932, 2932, 2943, 2944, 2945, 2950, 2951, 2952, 2953, + 2954, 2957, 2963, 2969, 2975 }; void @@ -6329,9 +6342,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 6333 "dhcp4_parser.cc" +#line 6346 "dhcp4_parser.cc" -#line 2971 "dhcp4_parser.yy" +#line 2981 "dhcp4_parser.yy" void diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index a91acc41c8..a5e8357ebc 100644 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.8.2. +// A Bison parser, made by GNU Bison 3.7.2. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ // GNU General Public License for more details. // You should have received a copy of the GNU General Public License -// along with this program. If not, see <https://www.gnu.org/licenses/>. +// along with this program. If not, see <http://www.gnu.org/licenses/>. // As a special exception, you may create a larger work that contains // part or all of the Bison parser skeleton and distribute that work @@ -104,9 +104,9 @@ using namespace std; #endif # include "location.hh" #include <typeinfo> -#ifndef PARSER4__ASSERT +#ifndef YY_ASSERT # include <cassert> -# define PARSER4__ASSERT assert +# define YY_ASSERT assert #endif @@ -128,23 +128,17 @@ using namespace std; /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YY_USE(E) ((void) (E)) +# define YYUSE(E) ((void) (E)) #else -# define YY_USE(E) /* empty */ +# define YYUSE(E) /* empty */ #endif +#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ -# if __GNUC__ * 100 + __GNUC_MINOR__ < 407 -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") -# else -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# endif # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else @@ -206,7 +200,7 @@ using namespace std; #line 14 "dhcp4_parser.yy" namespace isc { namespace dhcp { -#line 210 "dhcp4_parser.h" +#line 204 "dhcp4_parser.h" @@ -215,49 +209,44 @@ namespace isc { namespace dhcp { class Dhcp4Parser { public: -#ifdef PARSER4_STYPE -# ifdef __GNUC__ -# pragma GCC message "bison: do not #define PARSER4_STYPE in C++, use %define api.value.type" -# endif - typedef PARSER4_STYPE value_type; -#else +#ifndef PARSER4_STYPE /// A 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 value_type + class semantic_type { public: /// Type of *this. - typedef value_type self_type; + typedef semantic_type self_type; /// Empty construction. - value_type () YY_NOEXCEPT - : yyraw_ () + semantic_type () YY_NOEXCEPT + : yybuffer_ () , yytypeid_ (YY_NULLPTR) {} /// Construct and fill. template <typename T> - value_type (YY_RVREF (T) t) + semantic_type (YY_RVREF (T) t) : yytypeid_ (&typeid (T)) { - PARSER4__ASSERT (sizeof (T) <= size); + YY_ASSERT (sizeof (T) <= size); new (yyas_<T> ()) T (YY_MOVE (t)); } #if 201103L <= YY_CPLUSPLUS /// Non copyable. - value_type (const self_type&) = delete; + semantic_type (const self_type&) = delete; /// Non copyable. self_type& operator= (const self_type&) = delete; #endif /// Destruction, allowed only if empty. - ~value_type () YY_NOEXCEPT + ~semantic_type () YY_NOEXCEPT { - PARSER4__ASSERT (!yytypeid_); + YY_ASSERT (!yytypeid_); } # if 201103L <= YY_CPLUSPLUS @@ -266,8 +255,8 @@ namespace isc { namespace dhcp { T& emplace (U&&... u) { - PARSER4__ASSERT (!yytypeid_); - PARSER4__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_<T> ()) T (std::forward <U>(u)...); } @@ -277,8 +266,8 @@ namespace isc { namespace dhcp { T& emplace () { - PARSER4__ASSERT (!yytypeid_); - PARSER4__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_<T> ()) T (); } @@ -288,8 +277,8 @@ namespace isc { namespace dhcp { T& emplace (const T& t) { - PARSER4__ASSERT (!yytypeid_); - PARSER4__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_<T> ()) T (t); } @@ -318,9 +307,9 @@ namespace isc { namespace dhcp { T& as () YY_NOEXCEPT { - PARSER4__ASSERT (yytypeid_); - PARSER4__ASSERT (*yytypeid_ == typeid (T)); - PARSER4__ASSERT (sizeof (T) <= size); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == typeid (T)); + YY_ASSERT (sizeof (T) <= size); return *yyas_<T> (); } @@ -329,9 +318,9 @@ namespace isc { namespace dhcp { const T& as () const YY_NOEXCEPT { - PARSER4__ASSERT (yytypeid_); - PARSER4__ASSERT (*yytypeid_ == typeid (T)); - PARSER4__ASSERT (sizeof (T) <= size); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == typeid (T)); + YY_ASSERT (sizeof (T) <= size); return *yyas_<T> (); } @@ -347,8 +336,8 @@ namespace isc { namespace dhcp { void swap (self_type& that) YY_NOEXCEPT { - PARSER4__ASSERT (yytypeid_); - PARSER4__ASSERT (*yytypeid_ == *that.yytypeid_); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == *that.yytypeid_); std::swap (as<T> (), that.as<T> ()); } @@ -399,7 +388,7 @@ namespace isc { namespace dhcp { private: #if YY_CPLUSPLUS < 201103L /// Non copyable. - value_type (const self_type&); + semantic_type (const self_type&); /// Non copyable. self_type& operator= (const self_type&); #endif @@ -409,7 +398,7 @@ namespace isc { namespace dhcp { T* yyas_ () YY_NOEXCEPT { - void *yyp = yyraw_; + void *yyp = yybuffer_.yyraw; return static_cast<T*> (yyp); } @@ -418,7 +407,7 @@ namespace isc { namespace dhcp { const T* yyas_ () const YY_NOEXCEPT { - const void *yyp = yyraw_; + const void *yyp = yybuffer_.yyraw; return static_cast<const T*> (yyp); } @@ -456,19 +445,18 @@ namespace isc { namespace dhcp { union { /// Strongest alignment constraints. - long double yyalign_me_; + long double yyalign_me; /// A buffer large enough to store any of the semantic values. - char yyraw_[size]; - }; + char yyraw[size]; + } yybuffer_; /// Whether the content is built: if defined, the name of the stored type. const std::type_info *yytypeid_; }; +#else + typedef PARSER4_STYPE semantic_type; #endif - /// Backward compatibility (Bison 3.8). - typedef value_type semantic_type; - /// Symbol locations. typedef location location_type; @@ -583,143 +571,144 @@ namespace isc { namespace dhcp { TOKEN_DDNS_QUALIFYING_SUFFIX = 339, // "ddns-qualifying-suffix" TOKEN_DDNS_UPDATE_ON_RENEW = 340, // "ddns-update-on-renew" TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 341, // "ddns-use-conflict-resolution" - TOKEN_STORE_EXTENDED_INFO = 342, // "store-extended-info" - TOKEN_SUBNET4 = 343, // "subnet4" - TOKEN_SUBNET_4O6_INTERFACE = 344, // "4o6-interface" - TOKEN_SUBNET_4O6_INTERFACE_ID = 345, // "4o6-interface-id" - TOKEN_SUBNET_4O6_SUBNET = 346, // "4o6-subnet" - TOKEN_OPTION_DEF = 347, // "option-def" - TOKEN_OPTION_DATA = 348, // "option-data" - TOKEN_NAME = 349, // "name" - TOKEN_DATA = 350, // "data" - TOKEN_CODE = 351, // "code" - TOKEN_SPACE = 352, // "space" - TOKEN_CSV_FORMAT = 353, // "csv-format" - TOKEN_ALWAYS_SEND = 354, // "always-send" - TOKEN_NEVER_SEND = 355, // "never-send" - TOKEN_RECORD_TYPES = 356, // "record-types" - TOKEN_ENCAPSULATE = 357, // "encapsulate" - TOKEN_ARRAY = 358, // "array" - TOKEN_PARKED_PACKET_LIMIT = 359, // "parked-packet-limit" - TOKEN_ALLOCATOR = 360, // "allocator" - TOKEN_SHARED_NETWORKS = 361, // "shared-networks" - TOKEN_POOLS = 362, // "pools" - TOKEN_POOL = 363, // "pool" - TOKEN_USER_CONTEXT = 364, // "user-context" - TOKEN_COMMENT = 365, // "comment" - TOKEN_SUBNET = 366, // "subnet" - TOKEN_INTERFACE = 367, // "interface" - TOKEN_ID = 368, // "id" - TOKEN_RESERVATION_MODE = 369, // "reservation-mode" - TOKEN_DISABLED = 370, // "disabled" - TOKEN_OUT_OF_POOL = 371, // "out-of-pool" - TOKEN_GLOBAL = 372, // "global" - TOKEN_ALL = 373, // "all" - TOKEN_RESERVATIONS_GLOBAL = 374, // "reservations-global" - TOKEN_RESERVATIONS_IN_SUBNET = 375, // "reservations-in-subnet" - TOKEN_RESERVATIONS_OUT_OF_POOL = 376, // "reservations-out-of-pool" - TOKEN_HOST_RESERVATION_IDENTIFIERS = 377, // "host-reservation-identifiers" - TOKEN_CLIENT_CLASSES = 378, // "client-classes" - TOKEN_REQUIRE_CLIENT_CLASSES = 379, // "require-client-classes" - TOKEN_TEST = 380, // "test" - TOKEN_TEMPLATE_TEST = 381, // "template-test" - TOKEN_ONLY_IF_REQUIRED = 382, // "only-if-required" - TOKEN_CLIENT_CLASS = 383, // "client-class" - TOKEN_RESERVATIONS = 384, // "reservations" - TOKEN_DUID = 385, // "duid" - TOKEN_HW_ADDRESS = 386, // "hw-address" - TOKEN_CIRCUIT_ID = 387, // "circuit-id" - TOKEN_CLIENT_ID = 388, // "client-id" - TOKEN_HOSTNAME = 389, // "hostname" - TOKEN_FLEX_ID = 390, // "flex-id" - TOKEN_RELAY = 391, // "relay" - TOKEN_IP_ADDRESS = 392, // "ip-address" - TOKEN_IP_ADDRESSES = 393, // "ip-addresses" - TOKEN_HOOKS_LIBRARIES = 394, // "hooks-libraries" - TOKEN_LIBRARY = 395, // "library" - TOKEN_PARAMETERS = 396, // "parameters" - TOKEN_EXPIRED_LEASES_PROCESSING = 397, // "expired-leases-processing" - TOKEN_RECLAIM_TIMER_WAIT_TIME = 398, // "reclaim-timer-wait-time" - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 399, // "flush-reclaimed-timer-wait-time" - TOKEN_HOLD_RECLAIMED_TIME = 400, // "hold-reclaimed-time" - TOKEN_MAX_RECLAIM_LEASES = 401, // "max-reclaim-leases" - TOKEN_MAX_RECLAIM_TIME = 402, // "max-reclaim-time" - TOKEN_UNWARNED_RECLAIM_CYCLES = 403, // "unwarned-reclaim-cycles" - TOKEN_DHCP4O6_PORT = 404, // "dhcp4o6-port" - TOKEN_DHCP_MULTI_THREADING = 405, // "multi-threading" - TOKEN_ENABLE_MULTI_THREADING = 406, // "enable-multi-threading" - TOKEN_THREAD_POOL_SIZE = 407, // "thread-pool-size" - TOKEN_PACKET_QUEUE_SIZE = 408, // "packet-queue-size" - TOKEN_CONTROL_SOCKET = 409, // "control-socket" - TOKEN_SOCKET_TYPE = 410, // "socket-type" - TOKEN_SOCKET_NAME = 411, // "socket-name" - TOKEN_DHCP_QUEUE_CONTROL = 412, // "dhcp-queue-control" - TOKEN_ENABLE_QUEUE = 413, // "enable-queue" - TOKEN_QUEUE_TYPE = 414, // "queue-type" - TOKEN_CAPACITY = 415, // "capacity" - TOKEN_DHCP_DDNS = 416, // "dhcp-ddns" - TOKEN_ENABLE_UPDATES = 417, // "enable-updates" - TOKEN_QUALIFYING_SUFFIX = 418, // "qualifying-suffix" - TOKEN_SERVER_IP = 419, // "server-ip" - TOKEN_SERVER_PORT = 420, // "server-port" - TOKEN_SENDER_IP = 421, // "sender-ip" - TOKEN_SENDER_PORT = 422, // "sender-port" - TOKEN_MAX_QUEUE_SIZE = 423, // "max-queue-size" - TOKEN_NCR_PROTOCOL = 424, // "ncr-protocol" - TOKEN_NCR_FORMAT = 425, // "ncr-format" - TOKEN_OVERRIDE_NO_UPDATE = 426, // "override-no-update" - TOKEN_OVERRIDE_CLIENT_UPDATE = 427, // "override-client-update" - TOKEN_REPLACE_CLIENT_NAME = 428, // "replace-client-name" - TOKEN_GENERATED_PREFIX = 429, // "generated-prefix" - TOKEN_TCP = 430, // "tcp" - TOKEN_JSON = 431, // "JSON" - TOKEN_WHEN_PRESENT = 432, // "when-present" - TOKEN_NEVER = 433, // "never" - TOKEN_ALWAYS = 434, // "always" - TOKEN_WHEN_NOT_PRESENT = 435, // "when-not-present" - TOKEN_HOSTNAME_CHAR_SET = 436, // "hostname-char-set" - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 437, // "hostname-char-replacement" - TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 438, // "early-global-reservations-lookup" - TOKEN_IP_RESERVATIONS_UNIQUE = 439, // "ip-reservations-unique" - TOKEN_RESERVATIONS_LOOKUP_FIRST = 440, // "reservations-lookup-first" - TOKEN_LOGGERS = 441, // "loggers" - TOKEN_OUTPUT_OPTIONS = 442, // "output_options" - TOKEN_OUTPUT = 443, // "output" - TOKEN_DEBUGLEVEL = 444, // "debuglevel" - TOKEN_SEVERITY = 445, // "severity" - TOKEN_FLUSH = 446, // "flush" - TOKEN_MAXSIZE = 447, // "maxsize" - TOKEN_MAXVER = 448, // "maxver" - TOKEN_PATTERN = 449, // "pattern" - TOKEN_COMPATIBILITY = 450, // "compatibility" - TOKEN_LENIENT_OPTION_PARSING = 451, // "lenient-option-parsing" - TOKEN_IGNORE_DHCP_SERVER_ID = 452, // "ignore-dhcp-server-identifier" - TOKEN_IGNORE_RAI_LINK_SEL = 453, // "ignore-rai-link-selection" - TOKEN_EXCLUDE_FIRST_LAST_24 = 454, // "exclude-first-last-24" - TOKEN_TOPLEVEL_JSON = 455, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP4 = 456, // TOPLEVEL_DHCP4 - TOKEN_SUB_DHCP4 = 457, // SUB_DHCP4 - TOKEN_SUB_INTERFACES4 = 458, // SUB_INTERFACES4 - TOKEN_SUB_SUBNET4 = 459, // SUB_SUBNET4 - TOKEN_SUB_POOL4 = 460, // SUB_POOL4 - TOKEN_SUB_RESERVATION = 461, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 462, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 463, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 464, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 465, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 466, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 467, // SUB_CONFIG_CONTROL - TOKEN_STRING = 468, // "constant string" - TOKEN_INTEGER = 469, // "integer" - TOKEN_FLOAT = 470, // "floating point" - TOKEN_BOOLEAN = 471 // "boolean" + TOKEN_DDNS_TTL_PERCENT = 342, // "ddns-ttl-percent" + TOKEN_STORE_EXTENDED_INFO = 343, // "store-extended-info" + TOKEN_SUBNET4 = 344, // "subnet4" + TOKEN_SUBNET_4O6_INTERFACE = 345, // "4o6-interface" + TOKEN_SUBNET_4O6_INTERFACE_ID = 346, // "4o6-interface-id" + TOKEN_SUBNET_4O6_SUBNET = 347, // "4o6-subnet" + TOKEN_OPTION_DEF = 348, // "option-def" + TOKEN_OPTION_DATA = 349, // "option-data" + TOKEN_NAME = 350, // "name" + TOKEN_DATA = 351, // "data" + TOKEN_CODE = 352, // "code" + TOKEN_SPACE = 353, // "space" + TOKEN_CSV_FORMAT = 354, // "csv-format" + TOKEN_ALWAYS_SEND = 355, // "always-send" + TOKEN_NEVER_SEND = 356, // "never-send" + TOKEN_RECORD_TYPES = 357, // "record-types" + TOKEN_ENCAPSULATE = 358, // "encapsulate" + TOKEN_ARRAY = 359, // "array" + TOKEN_PARKED_PACKET_LIMIT = 360, // "parked-packet-limit" + TOKEN_ALLOCATOR = 361, // "allocator" + TOKEN_SHARED_NETWORKS = 362, // "shared-networks" + TOKEN_POOLS = 363, // "pools" + TOKEN_POOL = 364, // "pool" + TOKEN_USER_CONTEXT = 365, // "user-context" + TOKEN_COMMENT = 366, // "comment" + TOKEN_SUBNET = 367, // "subnet" + TOKEN_INTERFACE = 368, // "interface" + TOKEN_ID = 369, // "id" + TOKEN_RESERVATION_MODE = 370, // "reservation-mode" + TOKEN_DISABLED = 371, // "disabled" + TOKEN_OUT_OF_POOL = 372, // "out-of-pool" + TOKEN_GLOBAL = 373, // "global" + TOKEN_ALL = 374, // "all" + TOKEN_RESERVATIONS_GLOBAL = 375, // "reservations-global" + TOKEN_RESERVATIONS_IN_SUBNET = 376, // "reservations-in-subnet" + TOKEN_RESERVATIONS_OUT_OF_POOL = 377, // "reservations-out-of-pool" + TOKEN_HOST_RESERVATION_IDENTIFIERS = 378, // "host-reservation-identifiers" + TOKEN_CLIENT_CLASSES = 379, // "client-classes" + TOKEN_REQUIRE_CLIENT_CLASSES = 380, // "require-client-classes" + TOKEN_TEST = 381, // "test" + TOKEN_TEMPLATE_TEST = 382, // "template-test" + TOKEN_ONLY_IF_REQUIRED = 383, // "only-if-required" + TOKEN_CLIENT_CLASS = 384, // "client-class" + TOKEN_RESERVATIONS = 385, // "reservations" + TOKEN_DUID = 386, // "duid" + TOKEN_HW_ADDRESS = 387, // "hw-address" + TOKEN_CIRCUIT_ID = 388, // "circuit-id" + TOKEN_CLIENT_ID = 389, // "client-id" + TOKEN_HOSTNAME = 390, // "hostname" + TOKEN_FLEX_ID = 391, // "flex-id" + TOKEN_RELAY = 392, // "relay" + TOKEN_IP_ADDRESS = 393, // "ip-address" + TOKEN_IP_ADDRESSES = 394, // "ip-addresses" + TOKEN_HOOKS_LIBRARIES = 395, // "hooks-libraries" + TOKEN_LIBRARY = 396, // "library" + TOKEN_PARAMETERS = 397, // "parameters" + TOKEN_EXPIRED_LEASES_PROCESSING = 398, // "expired-leases-processing" + TOKEN_RECLAIM_TIMER_WAIT_TIME = 399, // "reclaim-timer-wait-time" + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 400, // "flush-reclaimed-timer-wait-time" + TOKEN_HOLD_RECLAIMED_TIME = 401, // "hold-reclaimed-time" + TOKEN_MAX_RECLAIM_LEASES = 402, // "max-reclaim-leases" + TOKEN_MAX_RECLAIM_TIME = 403, // "max-reclaim-time" + TOKEN_UNWARNED_RECLAIM_CYCLES = 404, // "unwarned-reclaim-cycles" + TOKEN_DHCP4O6_PORT = 405, // "dhcp4o6-port" + TOKEN_DHCP_MULTI_THREADING = 406, // "multi-threading" + TOKEN_ENABLE_MULTI_THREADING = 407, // "enable-multi-threading" + TOKEN_THREAD_POOL_SIZE = 408, // "thread-pool-size" + TOKEN_PACKET_QUEUE_SIZE = 409, // "packet-queue-size" + TOKEN_CONTROL_SOCKET = 410, // "control-socket" + TOKEN_SOCKET_TYPE = 411, // "socket-type" + TOKEN_SOCKET_NAME = 412, // "socket-name" + TOKEN_DHCP_QUEUE_CONTROL = 413, // "dhcp-queue-control" + TOKEN_ENABLE_QUEUE = 414, // "enable-queue" + TOKEN_QUEUE_TYPE = 415, // "queue-type" + TOKEN_CAPACITY = 416, // "capacity" + TOKEN_DHCP_DDNS = 417, // "dhcp-ddns" + TOKEN_ENABLE_UPDATES = 418, // "enable-updates" + TOKEN_QUALIFYING_SUFFIX = 419, // "qualifying-suffix" + TOKEN_SERVER_IP = 420, // "server-ip" + TOKEN_SERVER_PORT = 421, // "server-port" + TOKEN_SENDER_IP = 422, // "sender-ip" + TOKEN_SENDER_PORT = 423, // "sender-port" + TOKEN_MAX_QUEUE_SIZE = 424, // "max-queue-size" + TOKEN_NCR_PROTOCOL = 425, // "ncr-protocol" + TOKEN_NCR_FORMAT = 426, // "ncr-format" + TOKEN_OVERRIDE_NO_UPDATE = 427, // "override-no-update" + TOKEN_OVERRIDE_CLIENT_UPDATE = 428, // "override-client-update" + TOKEN_REPLACE_CLIENT_NAME = 429, // "replace-client-name" + TOKEN_GENERATED_PREFIX = 430, // "generated-prefix" + TOKEN_TCP = 431, // "tcp" + TOKEN_JSON = 432, // "JSON" + TOKEN_WHEN_PRESENT = 433, // "when-present" + TOKEN_NEVER = 434, // "never" + TOKEN_ALWAYS = 435, // "always" + TOKEN_WHEN_NOT_PRESENT = 436, // "when-not-present" + TOKEN_HOSTNAME_CHAR_SET = 437, // "hostname-char-set" + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 438, // "hostname-char-replacement" + TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 439, // "early-global-reservations-lookup" + TOKEN_IP_RESERVATIONS_UNIQUE = 440, // "ip-reservations-unique" + TOKEN_RESERVATIONS_LOOKUP_FIRST = 441, // "reservations-lookup-first" + TOKEN_LOGGERS = 442, // "loggers" + TOKEN_OUTPUT_OPTIONS = 443, // "output_options" + TOKEN_OUTPUT = 444, // "output" + TOKEN_DEBUGLEVEL = 445, // "debuglevel" + TOKEN_SEVERITY = 446, // "severity" + TOKEN_FLUSH = 447, // "flush" + TOKEN_MAXSIZE = 448, // "maxsize" + TOKEN_MAXVER = 449, // "maxver" + TOKEN_PATTERN = 450, // "pattern" + TOKEN_COMPATIBILITY = 451, // "compatibility" + TOKEN_LENIENT_OPTION_PARSING = 452, // "lenient-option-parsing" + TOKEN_IGNORE_DHCP_SERVER_ID = 453, // "ignore-dhcp-server-identifier" + TOKEN_IGNORE_RAI_LINK_SEL = 454, // "ignore-rai-link-selection" + TOKEN_EXCLUDE_FIRST_LAST_24 = 455, // "exclude-first-last-24" + TOKEN_TOPLEVEL_JSON = 456, // TOPLEVEL_JSON + TOKEN_TOPLEVEL_DHCP4 = 457, // TOPLEVEL_DHCP4 + TOKEN_SUB_DHCP4 = 458, // SUB_DHCP4 + TOKEN_SUB_INTERFACES4 = 459, // SUB_INTERFACES4 + TOKEN_SUB_SUBNET4 = 460, // SUB_SUBNET4 + TOKEN_SUB_POOL4 = 461, // SUB_POOL4 + TOKEN_SUB_RESERVATION = 462, // SUB_RESERVATION + TOKEN_SUB_OPTION_DEFS = 463, // SUB_OPTION_DEFS + TOKEN_SUB_OPTION_DEF = 464, // SUB_OPTION_DEF + TOKEN_SUB_OPTION_DATA = 465, // SUB_OPTION_DATA + TOKEN_SUB_HOOKS_LIBRARY = 466, // SUB_HOOKS_LIBRARY + TOKEN_SUB_DHCP_DDNS = 467, // SUB_DHCP_DDNS + TOKEN_SUB_CONFIG_CONTROL = 468, // SUB_CONFIG_CONTROL + TOKEN_STRING = 469, // "constant string" + TOKEN_INTEGER = 470, // "integer" + TOKEN_FLOAT = 471, // "floating point" + TOKEN_BOOLEAN = 472 // "boolean" }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; }; /// Token kind, as returned by yylex. - typedef token::token_kind_type token_kind_type; + typedef token::yytokentype token_kind_type; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type token_type; @@ -729,7 +718,7 @@ namespace isc { namespace dhcp { { enum symbol_kind_type { - YYNTOKENS = 217, ///< Number of tokens. + YYNTOKENS = 218, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -818,572 +807,574 @@ namespace isc { namespace dhcp { S_DDNS_QUALIFYING_SUFFIX = 84, // "ddns-qualifying-suffix" S_DDNS_UPDATE_ON_RENEW = 85, // "ddns-update-on-renew" S_DDNS_USE_CONFLICT_RESOLUTION = 86, // "ddns-use-conflict-resolution" - S_STORE_EXTENDED_INFO = 87, // "store-extended-info" - S_SUBNET4 = 88, // "subnet4" - S_SUBNET_4O6_INTERFACE = 89, // "4o6-interface" - S_SUBNET_4O6_INTERFACE_ID = 90, // "4o6-interface-id" - S_SUBNET_4O6_SUBNET = 91, // "4o6-subnet" - S_OPTION_DEF = 92, // "option-def" - S_OPTION_DATA = 93, // "option-data" - S_NAME = 94, // "name" - S_DATA = 95, // "data" - S_CODE = 96, // "code" - S_SPACE = 97, // "space" - S_CSV_FORMAT = 98, // "csv-format" - S_ALWAYS_SEND = 99, // "always-send" - S_NEVER_SEND = 100, // "never-send" - S_RECORD_TYPES = 101, // "record-types" - S_ENCAPSULATE = 102, // "encapsulate" - S_ARRAY = 103, // "array" - S_PARKED_PACKET_LIMIT = 104, // "parked-packet-limit" - S_ALLOCATOR = 105, // "allocator" - S_SHARED_NETWORKS = 106, // "shared-networks" - S_POOLS = 107, // "pools" - S_POOL = 108, // "pool" - S_USER_CONTEXT = 109, // "user-context" - S_COMMENT = 110, // "comment" - S_SUBNET = 111, // "subnet" - S_INTERFACE = 112, // "interface" - S_ID = 113, // "id" - S_RESERVATION_MODE = 114, // "reservation-mode" - S_DISABLED = 115, // "disabled" - S_OUT_OF_POOL = 116, // "out-of-pool" - S_GLOBAL = 117, // "global" - S_ALL = 118, // "all" - S_RESERVATIONS_GLOBAL = 119, // "reservations-global" - S_RESERVATIONS_IN_SUBNET = 120, // "reservations-in-subnet" - S_RESERVATIONS_OUT_OF_POOL = 121, // "reservations-out-of-pool" - S_HOST_RESERVATION_IDENTIFIERS = 122, // "host-reservation-identifiers" - S_CLIENT_CLASSES = 123, // "client-classes" - S_REQUIRE_CLIENT_CLASSES = 124, // "require-client-classes" - S_TEST = 125, // "test" - S_TEMPLATE_TEST = 126, // "template-test" - S_ONLY_IF_REQUIRED = 127, // "only-if-required" - S_CLIENT_CLASS = 128, // "client-class" - S_RESERVATIONS = 129, // "reservations" - S_DUID = 130, // "duid" - S_HW_ADDRESS = 131, // "hw-address" - S_CIRCUIT_ID = 132, // "circuit-id" - S_CLIENT_ID = 133, // "client-id" - S_HOSTNAME = 134, // "hostname" - S_FLEX_ID = 135, // "flex-id" - S_RELAY = 136, // "relay" - S_IP_ADDRESS = 137, // "ip-address" - S_IP_ADDRESSES = 138, // "ip-addresses" - S_HOOKS_LIBRARIES = 139, // "hooks-libraries" - S_LIBRARY = 140, // "library" - S_PARAMETERS = 141, // "parameters" - S_EXPIRED_LEASES_PROCESSING = 142, // "expired-leases-processing" - S_RECLAIM_TIMER_WAIT_TIME = 143, // "reclaim-timer-wait-time" - S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 144, // "flush-reclaimed-timer-wait-time" - S_HOLD_RECLAIMED_TIME = 145, // "hold-reclaimed-time" - S_MAX_RECLAIM_LEASES = 146, // "max-reclaim-leases" - S_MAX_RECLAIM_TIME = 147, // "max-reclaim-time" - S_UNWARNED_RECLAIM_CYCLES = 148, // "unwarned-reclaim-cycles" - S_DHCP4O6_PORT = 149, // "dhcp4o6-port" - S_DHCP_MULTI_THREADING = 150, // "multi-threading" - S_ENABLE_MULTI_THREADING = 151, // "enable-multi-threading" - S_THREAD_POOL_SIZE = 152, // "thread-pool-size" - S_PACKET_QUEUE_SIZE = 153, // "packet-queue-size" - S_CONTROL_SOCKET = 154, // "control-socket" - S_SOCKET_TYPE = 155, // "socket-type" - S_SOCKET_NAME = 156, // "socket-name" - S_DHCP_QUEUE_CONTROL = 157, // "dhcp-queue-control" - S_ENABLE_QUEUE = 158, // "enable-queue" - S_QUEUE_TYPE = 159, // "queue-type" - S_CAPACITY = 160, // "capacity" - S_DHCP_DDNS = 161, // "dhcp-ddns" - S_ENABLE_UPDATES = 162, // "enable-updates" - S_QUALIFYING_SUFFIX = 163, // "qualifying-suffix" - S_SERVER_IP = 164, // "server-ip" - S_SERVER_PORT = 165, // "server-port" - S_SENDER_IP = 166, // "sender-ip" - S_SENDER_PORT = 167, // "sender-port" - S_MAX_QUEUE_SIZE = 168, // "max-queue-size" - S_NCR_PROTOCOL = 169, // "ncr-protocol" - S_NCR_FORMAT = 170, // "ncr-format" - S_OVERRIDE_NO_UPDATE = 171, // "override-no-update" - S_OVERRIDE_CLIENT_UPDATE = 172, // "override-client-update" - S_REPLACE_CLIENT_NAME = 173, // "replace-client-name" - S_GENERATED_PREFIX = 174, // "generated-prefix" - S_TCP = 175, // "tcp" - S_JSON = 176, // "JSON" - S_WHEN_PRESENT = 177, // "when-present" - S_NEVER = 178, // "never" - S_ALWAYS = 179, // "always" - S_WHEN_NOT_PRESENT = 180, // "when-not-present" - S_HOSTNAME_CHAR_SET = 181, // "hostname-char-set" - S_HOSTNAME_CHAR_REPLACEMENT = 182, // "hostname-char-replacement" - S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 183, // "early-global-reservations-lookup" - S_IP_RESERVATIONS_UNIQUE = 184, // "ip-reservations-unique" - S_RESERVATIONS_LOOKUP_FIRST = 185, // "reservations-lookup-first" - S_LOGGERS = 186, // "loggers" - S_OUTPUT_OPTIONS = 187, // "output_options" - S_OUTPUT = 188, // "output" - S_DEBUGLEVEL = 189, // "debuglevel" - S_SEVERITY = 190, // "severity" - S_FLUSH = 191, // "flush" - S_MAXSIZE = 192, // "maxsize" - S_MAXVER = 193, // "maxver" - S_PATTERN = 194, // "pattern" - S_COMPATIBILITY = 195, // "compatibility" - S_LENIENT_OPTION_PARSING = 196, // "lenient-option-parsing" - S_IGNORE_DHCP_SERVER_ID = 197, // "ignore-dhcp-server-identifier" - S_IGNORE_RAI_LINK_SEL = 198, // "ignore-rai-link-selection" - S_EXCLUDE_FIRST_LAST_24 = 199, // "exclude-first-last-24" - S_TOPLEVEL_JSON = 200, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP4 = 201, // TOPLEVEL_DHCP4 - S_SUB_DHCP4 = 202, // SUB_DHCP4 - S_SUB_INTERFACES4 = 203, // SUB_INTERFACES4 - S_SUB_SUBNET4 = 204, // SUB_SUBNET4 - S_SUB_POOL4 = 205, // SUB_POOL4 - S_SUB_RESERVATION = 206, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 207, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 208, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 209, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 210, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 211, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 212, // SUB_CONFIG_CONTROL - S_STRING = 213, // "constant string" - S_INTEGER = 214, // "integer" - S_FLOAT = 215, // "floating point" - S_BOOLEAN = 216, // "boolean" - S_YYACCEPT = 217, // $accept - S_start = 218, // start - S_219_1 = 219, // $@1 - S_220_2 = 220, // $@2 - S_221_3 = 221, // $@3 - S_222_4 = 222, // $@4 - S_223_5 = 223, // $@5 - S_224_6 = 224, // $@6 - S_225_7 = 225, // $@7 - S_226_8 = 226, // $@8 - S_227_9 = 227, // $@9 - S_228_10 = 228, // $@10 - S_229_11 = 229, // $@11 - S_230_12 = 230, // $@12 - S_231_13 = 231, // $@13 - S_value = 232, // value - S_sub_json = 233, // sub_json - S_map2 = 234, // map2 - S_235_14 = 235, // $@14 - S_map_value = 236, // map_value - S_map_content = 237, // map_content - S_not_empty_map = 238, // not_empty_map - S_list_generic = 239, // list_generic - S_240_15 = 240, // $@15 - S_list_content = 241, // list_content - S_not_empty_list = 242, // not_empty_list - S_list_strings = 243, // list_strings - S_244_16 = 244, // $@16 - S_list_strings_content = 245, // list_strings_content - S_not_empty_list_strings = 246, // not_empty_list_strings - S_unknown_map_entry = 247, // unknown_map_entry - S_syntax_map = 248, // syntax_map - S_249_17 = 249, // $@17 - S_global_object = 250, // global_object - S_251_18 = 251, // $@18 - S_global_object_comma = 252, // global_object_comma - S_sub_dhcp4 = 253, // sub_dhcp4 - S_254_19 = 254, // $@19 - S_global_params = 255, // global_params - S_global_param = 256, // global_param - S_valid_lifetime = 257, // valid_lifetime - S_min_valid_lifetime = 258, // min_valid_lifetime - S_max_valid_lifetime = 259, // max_valid_lifetime - S_renew_timer = 260, // renew_timer - S_rebind_timer = 261, // rebind_timer - S_calculate_tee_times = 262, // calculate_tee_times - S_t1_percent = 263, // t1_percent - S_t2_percent = 264, // t2_percent - S_cache_threshold = 265, // cache_threshold - S_cache_max_age = 266, // cache_max_age - S_decline_probation_period = 267, // decline_probation_period - S_server_tag = 268, // server_tag - S_269_20 = 269, // $@20 - S_parked_packet_limit = 270, // parked_packet_limit - S_allocator = 271, // allocator - S_272_21 = 272, // $@21 - S_echo_client_id = 273, // echo_client_id - S_match_client_id = 274, // match_client_id - S_authoritative = 275, // authoritative - S_ddns_send_updates = 276, // ddns_send_updates - S_ddns_override_no_update = 277, // ddns_override_no_update - S_ddns_override_client_update = 278, // ddns_override_client_update - S_ddns_replace_client_name = 279, // ddns_replace_client_name - S_280_22 = 280, // $@22 - S_ddns_replace_client_name_value = 281, // ddns_replace_client_name_value - S_ddns_generated_prefix = 282, // ddns_generated_prefix - S_283_23 = 283, // $@23 - S_ddns_qualifying_suffix = 284, // ddns_qualifying_suffix - S_285_24 = 285, // $@24 - S_ddns_update_on_renew = 286, // ddns_update_on_renew - S_ddns_use_conflict_resolution = 287, // ddns_use_conflict_resolution - S_hostname_char_set = 288, // hostname_char_set - S_289_25 = 289, // $@25 - S_hostname_char_replacement = 290, // hostname_char_replacement - S_291_26 = 291, // $@26 - S_store_extended_info = 292, // store_extended_info - S_statistic_default_sample_count = 293, // statistic_default_sample_count - S_statistic_default_sample_age = 294, // statistic_default_sample_age - S_early_global_reservations_lookup = 295, // early_global_reservations_lookup - S_ip_reservations_unique = 296, // ip_reservations_unique - S_reservations_lookup_first = 297, // reservations_lookup_first - S_offer_lifetime = 298, // offer_lifetime - S_interfaces_config = 299, // interfaces_config - S_300_27 = 300, // $@27 - S_interfaces_config_params = 301, // interfaces_config_params - S_interfaces_config_param = 302, // interfaces_config_param - S_sub_interfaces4 = 303, // sub_interfaces4 - S_304_28 = 304, // $@28 - S_interfaces_list = 305, // interfaces_list - S_306_29 = 306, // $@29 - S_dhcp_socket_type = 307, // dhcp_socket_type - S_308_30 = 308, // $@30 - S_socket_type = 309, // socket_type - S_outbound_interface = 310, // outbound_interface - S_311_31 = 311, // $@31 - S_outbound_interface_value = 312, // outbound_interface_value - S_re_detect = 313, // re_detect - S_service_sockets_require_all = 314, // service_sockets_require_all - S_service_sockets_retry_wait_time = 315, // service_sockets_retry_wait_time - S_service_sockets_max_retries = 316, // service_sockets_max_retries - S_lease_database = 317, // lease_database - S_318_32 = 318, // $@32 - S_sanity_checks = 319, // sanity_checks - S_320_33 = 320, // $@33 - S_sanity_checks_params = 321, // sanity_checks_params - S_sanity_checks_param = 322, // sanity_checks_param - S_lease_checks = 323, // lease_checks - S_324_34 = 324, // $@34 - S_extended_info_checks = 325, // extended_info_checks - S_326_35 = 326, // $@35 - S_hosts_database = 327, // hosts_database - S_328_36 = 328, // $@36 - S_hosts_databases = 329, // hosts_databases - S_330_37 = 330, // $@37 - S_database_list = 331, // database_list - S_not_empty_database_list = 332, // not_empty_database_list - S_database = 333, // database - S_334_38 = 334, // $@38 - S_database_map_params = 335, // database_map_params - S_database_map_param = 336, // database_map_param - S_database_type = 337, // database_type - S_338_39 = 338, // $@39 - S_db_type = 339, // db_type - S_user = 340, // user - S_341_40 = 341, // $@40 - S_password = 342, // password - S_343_41 = 343, // $@41 - S_host = 344, // host - S_345_42 = 345, // $@42 - S_port = 346, // port - S_name = 347, // name - S_348_43 = 348, // $@43 - S_persist = 349, // persist - S_lfc_interval = 350, // lfc_interval - S_readonly = 351, // readonly - S_connect_timeout = 352, // connect_timeout - S_read_timeout = 353, // read_timeout - S_write_timeout = 354, // write_timeout - S_tcp_user_timeout = 355, // tcp_user_timeout - S_max_reconnect_tries = 356, // max_reconnect_tries - S_reconnect_wait_time = 357, // reconnect_wait_time - S_on_fail = 358, // on_fail - S_359_44 = 359, // $@44 - S_on_fail_mode = 360, // on_fail_mode - S_max_row_errors = 361, // max_row_errors - S_trust_anchor = 362, // trust_anchor - S_363_45 = 363, // $@45 - S_cert_file = 364, // cert_file - S_365_46 = 365, // $@46 - S_key_file = 366, // key_file - S_367_47 = 367, // $@47 - S_cipher_list = 368, // cipher_list - S_369_48 = 369, // $@48 - S_host_reservation_identifiers = 370, // host_reservation_identifiers - S_371_49 = 371, // $@49 - S_host_reservation_identifiers_list = 372, // host_reservation_identifiers_list - S_host_reservation_identifier = 373, // host_reservation_identifier - S_duid_id = 374, // duid_id - S_hw_address_id = 375, // hw_address_id - S_circuit_id = 376, // circuit_id - S_client_id = 377, // client_id - S_flex_id = 378, // flex_id - S_dhcp_multi_threading = 379, // dhcp_multi_threading - S_380_50 = 380, // $@50 - S_multi_threading_params = 381, // multi_threading_params - S_multi_threading_param = 382, // multi_threading_param - S_enable_multi_threading = 383, // enable_multi_threading - S_thread_pool_size = 384, // thread_pool_size - S_packet_queue_size = 385, // packet_queue_size - S_hooks_libraries = 386, // hooks_libraries - S_387_51 = 387, // $@51 - S_hooks_libraries_list = 388, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 389, // not_empty_hooks_libraries_list - S_hooks_library = 390, // hooks_library - S_391_52 = 391, // $@52 - S_sub_hooks_library = 392, // sub_hooks_library - S_393_53 = 393, // $@53 - S_hooks_params = 394, // hooks_params - S_hooks_param = 395, // hooks_param - S_library = 396, // library - S_397_54 = 397, // $@54 - S_parameters = 398, // parameters - S_399_55 = 399, // $@55 - S_expired_leases_processing = 400, // expired_leases_processing - S_401_56 = 401, // $@56 - S_expired_leases_params = 402, // expired_leases_params - S_expired_leases_param = 403, // expired_leases_param - S_reclaim_timer_wait_time = 404, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 405, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 406, // hold_reclaimed_time - S_max_reclaim_leases = 407, // max_reclaim_leases - S_max_reclaim_time = 408, // max_reclaim_time - S_unwarned_reclaim_cycles = 409, // unwarned_reclaim_cycles - S_subnet4_list = 410, // subnet4_list - S_411_57 = 411, // $@57 - S_subnet4_list_content = 412, // subnet4_list_content - S_not_empty_subnet4_list = 413, // not_empty_subnet4_list - S_subnet4 = 414, // subnet4 - S_415_58 = 415, // $@58 - S_sub_subnet4 = 416, // sub_subnet4 - S_417_59 = 417, // $@59 - S_subnet4_params = 418, // subnet4_params - S_subnet4_param = 419, // subnet4_param - S_subnet = 420, // subnet - S_421_60 = 421, // $@60 - S_subnet_4o6_interface = 422, // subnet_4o6_interface - S_423_61 = 423, // $@61 - S_subnet_4o6_interface_id = 424, // subnet_4o6_interface_id - S_425_62 = 425, // $@62 - S_subnet_4o6_subnet = 426, // subnet_4o6_subnet - S_427_63 = 427, // $@63 - S_interface = 428, // interface - S_429_64 = 429, // $@64 - S_client_class = 430, // client_class - S_431_65 = 431, // $@65 - S_require_client_classes = 432, // require_client_classes - S_433_66 = 433, // $@66 - S_reservations_global = 434, // reservations_global - S_reservations_in_subnet = 435, // reservations_in_subnet - S_reservations_out_of_pool = 436, // reservations_out_of_pool - S_reservation_mode = 437, // reservation_mode - S_438_67 = 438, // $@67 - S_hr_mode = 439, // hr_mode - S_id = 440, // id - S_shared_networks = 441, // shared_networks - S_442_68 = 442, // $@68 - S_shared_networks_content = 443, // shared_networks_content - S_shared_networks_list = 444, // shared_networks_list - S_shared_network = 445, // shared_network - S_446_69 = 446, // $@69 - S_shared_network_params = 447, // shared_network_params - S_shared_network_param = 448, // shared_network_param - S_option_def_list = 449, // option_def_list - S_450_70 = 450, // $@70 - S_sub_option_def_list = 451, // sub_option_def_list - S_452_71 = 452, // $@71 - S_option_def_list_content = 453, // option_def_list_content - S_not_empty_option_def_list = 454, // not_empty_option_def_list - S_option_def_entry = 455, // option_def_entry - S_456_72 = 456, // $@72 - S_sub_option_def = 457, // sub_option_def - S_458_73 = 458, // $@73 - S_option_def_params = 459, // option_def_params - S_not_empty_option_def_params = 460, // not_empty_option_def_params - S_option_def_param = 461, // option_def_param - S_option_def_name = 462, // option_def_name - S_code = 463, // code - S_option_def_code = 464, // option_def_code - S_option_def_type = 465, // option_def_type - S_466_74 = 466, // $@74 - S_option_def_record_types = 467, // option_def_record_types - S_468_75 = 468, // $@75 - S_space = 469, // space - S_470_76 = 470, // $@76 - S_option_def_space = 471, // option_def_space - S_option_def_encapsulate = 472, // option_def_encapsulate - S_473_77 = 473, // $@77 - S_option_def_array = 474, // option_def_array - S_option_data_list = 475, // option_data_list - S_476_78 = 476, // $@78 - S_option_data_list_content = 477, // option_data_list_content - S_not_empty_option_data_list = 478, // not_empty_option_data_list - S_option_data_entry = 479, // option_data_entry - S_480_79 = 480, // $@79 - S_sub_option_data = 481, // sub_option_data - S_482_80 = 482, // $@80 - S_option_data_params = 483, // option_data_params - S_not_empty_option_data_params = 484, // not_empty_option_data_params - S_option_data_param = 485, // option_data_param - S_option_data_name = 486, // option_data_name - S_option_data_data = 487, // option_data_data - S_488_81 = 488, // $@81 - S_option_data_code = 489, // option_data_code - S_option_data_space = 490, // option_data_space - S_option_data_csv_format = 491, // option_data_csv_format - S_option_data_always_send = 492, // option_data_always_send - S_option_data_never_send = 493, // option_data_never_send - S_pools_list = 494, // pools_list - S_495_82 = 495, // $@82 - S_pools_list_content = 496, // pools_list_content - S_not_empty_pools_list = 497, // not_empty_pools_list - S_pool_list_entry = 498, // pool_list_entry - S_499_83 = 499, // $@83 - S_sub_pool4 = 500, // sub_pool4 - S_501_84 = 501, // $@84 - S_pool_params = 502, // pool_params - S_pool_param = 503, // pool_param - S_pool_entry = 504, // pool_entry - S_505_85 = 505, // $@85 - S_user_context = 506, // user_context - S_507_86 = 507, // $@86 - S_comment = 508, // comment - S_509_87 = 509, // $@87 - S_reservations = 510, // reservations - S_511_88 = 511, // $@88 - S_reservations_list = 512, // reservations_list - S_not_empty_reservations_list = 513, // not_empty_reservations_list - S_reservation = 514, // reservation - S_515_89 = 515, // $@89 - S_sub_reservation = 516, // sub_reservation - S_517_90 = 517, // $@90 - S_reservation_params = 518, // reservation_params - S_not_empty_reservation_params = 519, // not_empty_reservation_params - S_reservation_param = 520, // reservation_param - S_next_server = 521, // next_server - S_522_91 = 522, // $@91 - S_server_hostname = 523, // server_hostname - S_524_92 = 524, // $@92 - S_boot_file_name = 525, // boot_file_name - S_526_93 = 526, // $@93 - S_ip_address = 527, // ip_address - S_528_94 = 528, // $@94 - S_ip_addresses = 529, // ip_addresses - S_530_95 = 530, // $@95 - S_duid = 531, // duid - S_532_96 = 532, // $@96 - S_hw_address = 533, // hw_address - S_534_97 = 534, // $@97 - S_client_id_value = 535, // client_id_value - S_536_98 = 536, // $@98 - S_circuit_id_value = 537, // circuit_id_value - S_538_99 = 538, // $@99 - S_flex_id_value = 539, // flex_id_value - S_540_100 = 540, // $@100 - S_hostname = 541, // hostname - S_542_101 = 542, // $@101 - S_reservation_client_classes = 543, // reservation_client_classes - S_544_102 = 544, // $@102 - S_relay = 545, // relay - S_546_103 = 546, // $@103 - S_relay_map = 547, // relay_map - S_client_classes = 548, // client_classes - S_549_104 = 549, // $@104 - S_client_classes_list = 550, // client_classes_list - S_client_class_entry = 551, // client_class_entry - S_552_105 = 552, // $@105 - S_client_class_params = 553, // client_class_params - S_not_empty_client_class_params = 554, // not_empty_client_class_params - S_client_class_param = 555, // client_class_param - S_client_class_name = 556, // client_class_name - S_client_class_test = 557, // client_class_test - S_558_106 = 558, // $@106 - S_client_class_template_test = 559, // client_class_template_test - S_560_107 = 560, // $@107 - S_only_if_required = 561, // only_if_required - S_dhcp4o6_port = 562, // dhcp4o6_port - S_control_socket = 563, // control_socket - S_564_108 = 564, // $@108 - S_control_socket_params = 565, // control_socket_params - S_control_socket_param = 566, // control_socket_param - S_control_socket_type = 567, // control_socket_type - S_568_109 = 568, // $@109 - S_control_socket_name = 569, // control_socket_name - S_570_110 = 570, // $@110 - S_dhcp_queue_control = 571, // dhcp_queue_control - S_572_111 = 572, // $@111 - S_queue_control_params = 573, // queue_control_params - S_queue_control_param = 574, // queue_control_param - S_enable_queue = 575, // enable_queue - S_queue_type = 576, // queue_type - S_577_112 = 577, // $@112 - S_capacity = 578, // capacity - S_arbitrary_map_entry = 579, // arbitrary_map_entry - S_580_113 = 580, // $@113 - S_dhcp_ddns = 581, // dhcp_ddns - S_582_114 = 582, // $@114 - S_sub_dhcp_ddns = 583, // sub_dhcp_ddns - S_584_115 = 584, // $@115 - S_dhcp_ddns_params = 585, // dhcp_ddns_params - S_dhcp_ddns_param = 586, // dhcp_ddns_param - S_enable_updates = 587, // enable_updates - S_server_ip = 588, // server_ip - S_589_116 = 589, // $@116 - S_server_port = 590, // server_port - S_sender_ip = 591, // sender_ip - S_592_117 = 592, // $@117 - S_sender_port = 593, // sender_port - S_max_queue_size = 594, // max_queue_size - S_ncr_protocol = 595, // ncr_protocol - S_596_118 = 596, // $@118 - S_ncr_protocol_value = 597, // ncr_protocol_value - S_ncr_format = 598, // ncr_format - S_599_119 = 599, // $@119 - S_dep_qualifying_suffix = 600, // dep_qualifying_suffix - S_601_120 = 601, // $@120 - S_dep_override_no_update = 602, // dep_override_no_update - S_dep_override_client_update = 603, // dep_override_client_update - S_dep_replace_client_name = 604, // dep_replace_client_name - S_605_121 = 605, // $@121 - S_dep_generated_prefix = 606, // dep_generated_prefix - S_607_122 = 607, // $@122 - S_dep_hostname_char_set = 608, // dep_hostname_char_set - S_609_123 = 609, // $@123 - S_dep_hostname_char_replacement = 610, // dep_hostname_char_replacement - S_611_124 = 611, // $@124 - S_config_control = 612, // config_control - S_613_125 = 613, // $@125 - S_sub_config_control = 614, // sub_config_control - S_615_126 = 615, // $@126 - S_config_control_params = 616, // config_control_params - S_config_control_param = 617, // config_control_param - S_config_databases = 618, // config_databases - S_619_127 = 619, // $@127 - S_config_fetch_wait_time = 620, // config_fetch_wait_time - S_loggers = 621, // loggers - S_622_128 = 622, // $@128 - S_loggers_entries = 623, // loggers_entries - S_logger_entry = 624, // logger_entry - S_625_129 = 625, // $@129 - S_logger_params = 626, // logger_params - S_logger_param = 627, // logger_param - S_debuglevel = 628, // debuglevel - S_severity = 629, // severity - S_630_130 = 630, // $@130 - S_output_options_list = 631, // output_options_list - S_632_131 = 632, // $@131 - S_output_options_list_content = 633, // output_options_list_content - S_output_entry = 634, // output_entry - S_635_132 = 635, // $@132 - S_output_params_list = 636, // output_params_list - S_output_params = 637, // output_params - S_output = 638, // output - S_639_133 = 639, // $@133 - S_flush = 640, // flush - S_maxsize = 641, // maxsize - S_maxver = 642, // maxver - S_pattern = 643, // pattern - S_644_134 = 644, // $@134 - S_compatibility = 645, // compatibility - S_646_135 = 646, // $@135 - S_compatibility_params = 647, // compatibility_params - S_compatibility_param = 648, // compatibility_param - S_lenient_option_parsing = 649, // lenient_option_parsing - S_ignore_dhcp_server_identifier = 650, // ignore_dhcp_server_identifier - S_ignore_rai_link_selection = 651, // ignore_rai_link_selection - S_exclude_first_last_24 = 652 // exclude_first_last_24 + S_DDNS_TTL_PERCENT = 87, // "ddns-ttl-percent" + S_STORE_EXTENDED_INFO = 88, // "store-extended-info" + S_SUBNET4 = 89, // "subnet4" + S_SUBNET_4O6_INTERFACE = 90, // "4o6-interface" + S_SUBNET_4O6_INTERFACE_ID = 91, // "4o6-interface-id" + S_SUBNET_4O6_SUBNET = 92, // "4o6-subnet" + S_OPTION_DEF = 93, // "option-def" + S_OPTION_DATA = 94, // "option-data" + S_NAME = 95, // "name" + S_DATA = 96, // "data" + S_CODE = 97, // "code" + S_SPACE = 98, // "space" + S_CSV_FORMAT = 99, // "csv-format" + S_ALWAYS_SEND = 100, // "always-send" + S_NEVER_SEND = 101, // "never-send" + S_RECORD_TYPES = 102, // "record-types" + S_ENCAPSULATE = 103, // "encapsulate" + S_ARRAY = 104, // "array" + S_PARKED_PACKET_LIMIT = 105, // "parked-packet-limit" + S_ALLOCATOR = 106, // "allocator" + S_SHARED_NETWORKS = 107, // "shared-networks" + S_POOLS = 108, // "pools" + S_POOL = 109, // "pool" + S_USER_CONTEXT = 110, // "user-context" + S_COMMENT = 111, // "comment" + S_SUBNET = 112, // "subnet" + S_INTERFACE = 113, // "interface" + S_ID = 114, // "id" + S_RESERVATION_MODE = 115, // "reservation-mode" + S_DISABLED = 116, // "disabled" + S_OUT_OF_POOL = 117, // "out-of-pool" + S_GLOBAL = 118, // "global" + S_ALL = 119, // "all" + S_RESERVATIONS_GLOBAL = 120, // "reservations-global" + S_RESERVATIONS_IN_SUBNET = 121, // "reservations-in-subnet" + S_RESERVATIONS_OUT_OF_POOL = 122, // "reservations-out-of-pool" + S_HOST_RESERVATION_IDENTIFIERS = 123, // "host-reservation-identifiers" + S_CLIENT_CLASSES = 124, // "client-classes" + S_REQUIRE_CLIENT_CLASSES = 125, // "require-client-classes" + S_TEST = 126, // "test" + S_TEMPLATE_TEST = 127, // "template-test" + S_ONLY_IF_REQUIRED = 128, // "only-if-required" + S_CLIENT_CLASS = 129, // "client-class" + S_RESERVATIONS = 130, // "reservations" + S_DUID = 131, // "duid" + S_HW_ADDRESS = 132, // "hw-address" + S_CIRCUIT_ID = 133, // "circuit-id" + S_CLIENT_ID = 134, // "client-id" + S_HOSTNAME = 135, // "hostname" + S_FLEX_ID = 136, // "flex-id" + S_RELAY = 137, // "relay" + S_IP_ADDRESS = 138, // "ip-address" + S_IP_ADDRESSES = 139, // "ip-addresses" + S_HOOKS_LIBRARIES = 140, // "hooks-libraries" + S_LIBRARY = 141, // "library" + S_PARAMETERS = 142, // "parameters" + S_EXPIRED_LEASES_PROCESSING = 143, // "expired-leases-processing" + S_RECLAIM_TIMER_WAIT_TIME = 144, // "reclaim-timer-wait-time" + S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 145, // "flush-reclaimed-timer-wait-time" + S_HOLD_RECLAIMED_TIME = 146, // "hold-reclaimed-time" + S_MAX_RECLAIM_LEASES = 147, // "max-reclaim-leases" + S_MAX_RECLAIM_TIME = 148, // "max-reclaim-time" + S_UNWARNED_RECLAIM_CYCLES = 149, // "unwarned-reclaim-cycles" + S_DHCP4O6_PORT = 150, // "dhcp4o6-port" + S_DHCP_MULTI_THREADING = 151, // "multi-threading" + S_ENABLE_MULTI_THREADING = 152, // "enable-multi-threading" + S_THREAD_POOL_SIZE = 153, // "thread-pool-size" + S_PACKET_QUEUE_SIZE = 154, // "packet-queue-size" + S_CONTROL_SOCKET = 155, // "control-socket" + S_SOCKET_TYPE = 156, // "socket-type" + S_SOCKET_NAME = 157, // "socket-name" + S_DHCP_QUEUE_CONTROL = 158, // "dhcp-queue-control" + S_ENABLE_QUEUE = 159, // "enable-queue" + S_QUEUE_TYPE = 160, // "queue-type" + S_CAPACITY = 161, // "capacity" + S_DHCP_DDNS = 162, // "dhcp-ddns" + S_ENABLE_UPDATES = 163, // "enable-updates" + S_QUALIFYING_SUFFIX = 164, // "qualifying-suffix" + S_SERVER_IP = 165, // "server-ip" + S_SERVER_PORT = 166, // "server-port" + S_SENDER_IP = 167, // "sender-ip" + S_SENDER_PORT = 168, // "sender-port" + S_MAX_QUEUE_SIZE = 169, // "max-queue-size" + S_NCR_PROTOCOL = 170, // "ncr-protocol" + S_NCR_FORMAT = 171, // "ncr-format" + S_OVERRIDE_NO_UPDATE = 172, // "override-no-update" + S_OVERRIDE_CLIENT_UPDATE = 173, // "override-client-update" + S_REPLACE_CLIENT_NAME = 174, // "replace-client-name" + S_GENERATED_PREFIX = 175, // "generated-prefix" + S_TCP = 176, // "tcp" + S_JSON = 177, // "JSON" + S_WHEN_PRESENT = 178, // "when-present" + S_NEVER = 179, // "never" + S_ALWAYS = 180, // "always" + S_WHEN_NOT_PRESENT = 181, // "when-not-present" + S_HOSTNAME_CHAR_SET = 182, // "hostname-char-set" + S_HOSTNAME_CHAR_REPLACEMENT = 183, // "hostname-char-replacement" + S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 184, // "early-global-reservations-lookup" + S_IP_RESERVATIONS_UNIQUE = 185, // "ip-reservations-unique" + S_RESERVATIONS_LOOKUP_FIRST = 186, // "reservations-lookup-first" + S_LOGGERS = 187, // "loggers" + S_OUTPUT_OPTIONS = 188, // "output_options" + S_OUTPUT = 189, // "output" + S_DEBUGLEVEL = 190, // "debuglevel" + S_SEVERITY = 191, // "severity" + S_FLUSH = 192, // "flush" + S_MAXSIZE = 193, // "maxsize" + S_MAXVER = 194, // "maxver" + S_PATTERN = 195, // "pattern" + S_COMPATIBILITY = 196, // "compatibility" + S_LENIENT_OPTION_PARSING = 197, // "lenient-option-parsing" + S_IGNORE_DHCP_SERVER_ID = 198, // "ignore-dhcp-server-identifier" + S_IGNORE_RAI_LINK_SEL = 199, // "ignore-rai-link-selection" + S_EXCLUDE_FIRST_LAST_24 = 200, // "exclude-first-last-24" + S_TOPLEVEL_JSON = 201, // TOPLEVEL_JSON + S_TOPLEVEL_DHCP4 = 202, // TOPLEVEL_DHCP4 + S_SUB_DHCP4 = 203, // SUB_DHCP4 + S_SUB_INTERFACES4 = 204, // SUB_INTERFACES4 + S_SUB_SUBNET4 = 205, // SUB_SUBNET4 + S_SUB_POOL4 = 206, // SUB_POOL4 + S_SUB_RESERVATION = 207, // SUB_RESERVATION + S_SUB_OPTION_DEFS = 208, // SUB_OPTION_DEFS + S_SUB_OPTION_DEF = 209, // SUB_OPTION_DEF + S_SUB_OPTION_DATA = 210, // SUB_OPTION_DATA + S_SUB_HOOKS_LIBRARY = 211, // SUB_HOOKS_LIBRARY + S_SUB_DHCP_DDNS = 212, // SUB_DHCP_DDNS + S_SUB_CONFIG_CONTROL = 213, // SUB_CONFIG_CONTROL + S_STRING = 214, // "constant string" + S_INTEGER = 215, // "integer" + S_FLOAT = 216, // "floating point" + S_BOOLEAN = 217, // "boolean" + S_YYACCEPT = 218, // $accept + S_start = 219, // start + S_220_1 = 220, // $@1 + S_221_2 = 221, // $@2 + S_222_3 = 222, // $@3 + S_223_4 = 223, // $@4 + S_224_5 = 224, // $@5 + S_225_6 = 225, // $@6 + S_226_7 = 226, // $@7 + S_227_8 = 227, // $@8 + S_228_9 = 228, // $@9 + S_229_10 = 229, // $@10 + S_230_11 = 230, // $@11 + S_231_12 = 231, // $@12 + S_232_13 = 232, // $@13 + S_value = 233, // value + S_sub_json = 234, // sub_json + S_map2 = 235, // map2 + S_236_14 = 236, // $@14 + S_map_value = 237, // map_value + S_map_content = 238, // map_content + S_not_empty_map = 239, // not_empty_map + S_list_generic = 240, // list_generic + S_241_15 = 241, // $@15 + S_list_content = 242, // list_content + S_not_empty_list = 243, // not_empty_list + S_list_strings = 244, // list_strings + S_245_16 = 245, // $@16 + S_list_strings_content = 246, // list_strings_content + S_not_empty_list_strings = 247, // not_empty_list_strings + S_unknown_map_entry = 248, // unknown_map_entry + S_syntax_map = 249, // syntax_map + S_250_17 = 250, // $@17 + S_global_object = 251, // global_object + S_252_18 = 252, // $@18 + S_global_object_comma = 253, // global_object_comma + S_sub_dhcp4 = 254, // sub_dhcp4 + S_255_19 = 255, // $@19 + S_global_params = 256, // global_params + S_global_param = 257, // global_param + S_valid_lifetime = 258, // valid_lifetime + S_min_valid_lifetime = 259, // min_valid_lifetime + S_max_valid_lifetime = 260, // max_valid_lifetime + S_renew_timer = 261, // renew_timer + S_rebind_timer = 262, // rebind_timer + S_calculate_tee_times = 263, // calculate_tee_times + S_t1_percent = 264, // t1_percent + S_t2_percent = 265, // t2_percent + S_cache_threshold = 266, // cache_threshold + S_cache_max_age = 267, // cache_max_age + S_decline_probation_period = 268, // decline_probation_period + S_server_tag = 269, // server_tag + S_270_20 = 270, // $@20 + S_parked_packet_limit = 271, // parked_packet_limit + S_allocator = 272, // allocator + S_273_21 = 273, // $@21 + S_echo_client_id = 274, // echo_client_id + S_match_client_id = 275, // match_client_id + S_authoritative = 276, // authoritative + S_ddns_send_updates = 277, // ddns_send_updates + S_ddns_override_no_update = 278, // ddns_override_no_update + S_ddns_override_client_update = 279, // ddns_override_client_update + S_ddns_replace_client_name = 280, // ddns_replace_client_name + S_281_22 = 281, // $@22 + S_ddns_replace_client_name_value = 282, // ddns_replace_client_name_value + S_ddns_generated_prefix = 283, // ddns_generated_prefix + S_284_23 = 284, // $@23 + S_ddns_qualifying_suffix = 285, // ddns_qualifying_suffix + S_286_24 = 286, // $@24 + S_ddns_update_on_renew = 287, // ddns_update_on_renew + S_ddns_use_conflict_resolution = 288, // ddns_use_conflict_resolution + S_ddns_ttl_percent = 289, // ddns_ttl_percent + S_hostname_char_set = 290, // hostname_char_set + S_291_25 = 291, // $@25 + S_hostname_char_replacement = 292, // hostname_char_replacement + S_293_26 = 293, // $@26 + S_store_extended_info = 294, // store_extended_info + S_statistic_default_sample_count = 295, // statistic_default_sample_count + S_statistic_default_sample_age = 296, // statistic_default_sample_age + S_early_global_reservations_lookup = 297, // early_global_reservations_lookup + S_ip_reservations_unique = 298, // ip_reservations_unique + S_reservations_lookup_first = 299, // reservations_lookup_first + S_offer_lifetime = 300, // offer_lifetime + S_interfaces_config = 301, // interfaces_config + S_302_27 = 302, // $@27 + S_interfaces_config_params = 303, // interfaces_config_params + S_interfaces_config_param = 304, // interfaces_config_param + S_sub_interfaces4 = 305, // sub_interfaces4 + S_306_28 = 306, // $@28 + S_interfaces_list = 307, // interfaces_list + S_308_29 = 308, // $@29 + S_dhcp_socket_type = 309, // dhcp_socket_type + S_310_30 = 310, // $@30 + S_socket_type = 311, // socket_type + S_outbound_interface = 312, // outbound_interface + S_313_31 = 313, // $@31 + S_outbound_interface_value = 314, // outbound_interface_value + S_re_detect = 315, // re_detect + S_service_sockets_require_all = 316, // service_sockets_require_all + S_service_sockets_retry_wait_time = 317, // service_sockets_retry_wait_time + S_service_sockets_max_retries = 318, // service_sockets_max_retries + S_lease_database = 319, // lease_database + S_320_32 = 320, // $@32 + S_sanity_checks = 321, // sanity_checks + S_322_33 = 322, // $@33 + S_sanity_checks_params = 323, // sanity_checks_params + S_sanity_checks_param = 324, // sanity_checks_param + S_lease_checks = 325, // lease_checks + S_326_34 = 326, // $@34 + S_extended_info_checks = 327, // extended_info_checks + S_328_35 = 328, // $@35 + S_hosts_database = 329, // hosts_database + S_330_36 = 330, // $@36 + S_hosts_databases = 331, // hosts_databases + S_332_37 = 332, // $@37 + S_database_list = 333, // database_list + S_not_empty_database_list = 334, // not_empty_database_list + S_database = 335, // database + S_336_38 = 336, // $@38 + S_database_map_params = 337, // database_map_params + S_database_map_param = 338, // database_map_param + S_database_type = 339, // database_type + S_340_39 = 340, // $@39 + S_db_type = 341, // db_type + S_user = 342, // user + S_343_40 = 343, // $@40 + S_password = 344, // password + S_345_41 = 345, // $@41 + S_host = 346, // host + S_347_42 = 347, // $@42 + S_port = 348, // port + S_name = 349, // name + S_350_43 = 350, // $@43 + S_persist = 351, // persist + S_lfc_interval = 352, // lfc_interval + S_readonly = 353, // readonly + S_connect_timeout = 354, // connect_timeout + S_read_timeout = 355, // read_timeout + S_write_timeout = 356, // write_timeout + S_tcp_user_timeout = 357, // tcp_user_timeout + S_max_reconnect_tries = 358, // max_reconnect_tries + S_reconnect_wait_time = 359, // reconnect_wait_time + S_on_fail = 360, // on_fail + S_361_44 = 361, // $@44 + S_on_fail_mode = 362, // on_fail_mode + S_max_row_errors = 363, // max_row_errors + S_trust_anchor = 364, // trust_anchor + S_365_45 = 365, // $@45 + S_cert_file = 366, // cert_file + S_367_46 = 367, // $@46 + S_key_file = 368, // key_file + S_369_47 = 369, // $@47 + S_cipher_list = 370, // cipher_list + S_371_48 = 371, // $@48 + S_host_reservation_identifiers = 372, // host_reservation_identifiers + S_373_49 = 373, // $@49 + S_host_reservation_identifiers_list = 374, // host_reservation_identifiers_list + S_host_reservation_identifier = 375, // host_reservation_identifier + S_duid_id = 376, // duid_id + S_hw_address_id = 377, // hw_address_id + S_circuit_id = 378, // circuit_id + S_client_id = 379, // client_id + S_flex_id = 380, // flex_id + S_dhcp_multi_threading = 381, // dhcp_multi_threading + S_382_50 = 382, // $@50 + S_multi_threading_params = 383, // multi_threading_params + S_multi_threading_param = 384, // multi_threading_param + S_enable_multi_threading = 385, // enable_multi_threading + S_thread_pool_size = 386, // thread_pool_size + S_packet_queue_size = 387, // packet_queue_size + S_hooks_libraries = 388, // hooks_libraries + S_389_51 = 389, // $@51 + S_hooks_libraries_list = 390, // hooks_libraries_list + S_not_empty_hooks_libraries_list = 391, // not_empty_hooks_libraries_list + S_hooks_library = 392, // hooks_library + S_393_52 = 393, // $@52 + S_sub_hooks_library = 394, // sub_hooks_library + S_395_53 = 395, // $@53 + S_hooks_params = 396, // hooks_params + S_hooks_param = 397, // hooks_param + S_library = 398, // library + S_399_54 = 399, // $@54 + S_parameters = 400, // parameters + S_401_55 = 401, // $@55 + S_expired_leases_processing = 402, // expired_leases_processing + S_403_56 = 403, // $@56 + S_expired_leases_params = 404, // expired_leases_params + S_expired_leases_param = 405, // expired_leases_param + S_reclaim_timer_wait_time = 406, // reclaim_timer_wait_time + S_flush_reclaimed_timer_wait_time = 407, // flush_reclaimed_timer_wait_time + S_hold_reclaimed_time = 408, // hold_reclaimed_time + S_max_reclaim_leases = 409, // max_reclaim_leases + S_max_reclaim_time = 410, // max_reclaim_time + S_unwarned_reclaim_cycles = 411, // unwarned_reclaim_cycles + S_subnet4_list = 412, // subnet4_list + S_413_57 = 413, // $@57 + S_subnet4_list_content = 414, // subnet4_list_content + S_not_empty_subnet4_list = 415, // not_empty_subnet4_list + S_subnet4 = 416, // subnet4 + S_417_58 = 417, // $@58 + S_sub_subnet4 = 418, // sub_subnet4 + S_419_59 = 419, // $@59 + S_subnet4_params = 420, // subnet4_params + S_subnet4_param = 421, // subnet4_param + S_subnet = 422, // subnet + S_423_60 = 423, // $@60 + S_subnet_4o6_interface = 424, // subnet_4o6_interface + S_425_61 = 425, // $@61 + S_subnet_4o6_interface_id = 426, // subnet_4o6_interface_id + S_427_62 = 427, // $@62 + S_subnet_4o6_subnet = 428, // subnet_4o6_subnet + S_429_63 = 429, // $@63 + S_interface = 430, // interface + S_431_64 = 431, // $@64 + S_client_class = 432, // client_class + S_433_65 = 433, // $@65 + S_require_client_classes = 434, // require_client_classes + S_435_66 = 435, // $@66 + S_reservations_global = 436, // reservations_global + S_reservations_in_subnet = 437, // reservations_in_subnet + S_reservations_out_of_pool = 438, // reservations_out_of_pool + S_reservation_mode = 439, // reservation_mode + S_440_67 = 440, // $@67 + S_hr_mode = 441, // hr_mode + S_id = 442, // id + S_shared_networks = 443, // shared_networks + S_444_68 = 444, // $@68 + S_shared_networks_content = 445, // shared_networks_content + S_shared_networks_list = 446, // shared_networks_list + S_shared_network = 447, // shared_network + S_448_69 = 448, // $@69 + S_shared_network_params = 449, // shared_network_params + S_shared_network_param = 450, // shared_network_param + S_option_def_list = 451, // option_def_list + S_452_70 = 452, // $@70 + S_sub_option_def_list = 453, // sub_option_def_list + S_454_71 = 454, // $@71 + S_option_def_list_content = 455, // option_def_list_content + S_not_empty_option_def_list = 456, // not_empty_option_def_list + S_option_def_entry = 457, // option_def_entry + S_458_72 = 458, // $@72 + S_sub_option_def = 459, // sub_option_def + S_460_73 = 460, // $@73 + S_option_def_params = 461, // option_def_params + S_not_empty_option_def_params = 462, // not_empty_option_def_params + S_option_def_param = 463, // option_def_param + S_option_def_name = 464, // option_def_name + S_code = 465, // code + S_option_def_code = 466, // option_def_code + S_option_def_type = 467, // option_def_type + S_468_74 = 468, // $@74 + S_option_def_record_types = 469, // option_def_record_types + S_470_75 = 470, // $@75 + S_space = 471, // space + S_472_76 = 472, // $@76 + S_option_def_space = 473, // option_def_space + S_option_def_encapsulate = 474, // option_def_encapsulate + S_475_77 = 475, // $@77 + S_option_def_array = 476, // option_def_array + S_option_data_list = 477, // option_data_list + S_478_78 = 478, // $@78 + S_option_data_list_content = 479, // option_data_list_content + S_not_empty_option_data_list = 480, // not_empty_option_data_list + S_option_data_entry = 481, // option_data_entry + S_482_79 = 482, // $@79 + S_sub_option_data = 483, // sub_option_data + S_484_80 = 484, // $@80 + S_option_data_params = 485, // option_data_params + S_not_empty_option_data_params = 486, // not_empty_option_data_params + S_option_data_param = 487, // option_data_param + S_option_data_name = 488, // option_data_name + S_option_data_data = 489, // option_data_data + S_490_81 = 490, // $@81 + S_option_data_code = 491, // option_data_code + S_option_data_space = 492, // option_data_space + S_option_data_csv_format = 493, // option_data_csv_format + S_option_data_always_send = 494, // option_data_always_send + S_option_data_never_send = 495, // option_data_never_send + S_pools_list = 496, // pools_list + S_497_82 = 497, // $@82 + S_pools_list_content = 498, // pools_list_content + S_not_empty_pools_list = 499, // not_empty_pools_list + S_pool_list_entry = 500, // pool_list_entry + S_501_83 = 501, // $@83 + S_sub_pool4 = 502, // sub_pool4 + S_503_84 = 503, // $@84 + S_pool_params = 504, // pool_params + S_pool_param = 505, // pool_param + S_pool_entry = 506, // pool_entry + S_507_85 = 507, // $@85 + S_user_context = 508, // user_context + S_509_86 = 509, // $@86 + S_comment = 510, // comment + S_511_87 = 511, // $@87 + S_reservations = 512, // reservations + S_513_88 = 513, // $@88 + S_reservations_list = 514, // reservations_list + S_not_empty_reservations_list = 515, // not_empty_reservations_list + S_reservation = 516, // reservation + S_517_89 = 517, // $@89 + S_sub_reservation = 518, // sub_reservation + S_519_90 = 519, // $@90 + S_reservation_params = 520, // reservation_params + S_not_empty_reservation_params = 521, // not_empty_reservation_params + S_reservation_param = 522, // reservation_param + S_next_server = 523, // next_server + S_524_91 = 524, // $@91 + S_server_hostname = 525, // server_hostname + S_526_92 = 526, // $@92 + S_boot_file_name = 527, // boot_file_name + S_528_93 = 528, // $@93 + S_ip_address = 529, // ip_address + S_530_94 = 530, // $@94 + S_ip_addresses = 531, // ip_addresses + S_532_95 = 532, // $@95 + S_duid = 533, // duid + S_534_96 = 534, // $@96 + S_hw_address = 535, // hw_address + S_536_97 = 536, // $@97 + S_client_id_value = 537, // client_id_value + S_538_98 = 538, // $@98 + S_circuit_id_value = 539, // circuit_id_value + S_540_99 = 540, // $@99 + S_flex_id_value = 541, // flex_id_value + S_542_100 = 542, // $@100 + S_hostname = 543, // hostname + S_544_101 = 544, // $@101 + S_reservation_client_classes = 545, // reservation_client_classes + S_546_102 = 546, // $@102 + S_relay = 547, // relay + S_548_103 = 548, // $@103 + S_relay_map = 549, // relay_map + S_client_classes = 550, // client_classes + S_551_104 = 551, // $@104 + S_client_classes_list = 552, // client_classes_list + S_client_class_entry = 553, // client_class_entry + S_554_105 = 554, // $@105 + S_client_class_params = 555, // client_class_params + S_not_empty_client_class_params = 556, // not_empty_client_class_params + S_client_class_param = 557, // client_class_param + S_client_class_name = 558, // client_class_name + S_client_class_test = 559, // client_class_test + S_560_106 = 560, // $@106 + S_client_class_template_test = 561, // client_class_template_test + S_562_107 = 562, // $@107 + S_only_if_required = 563, // only_if_required + S_dhcp4o6_port = 564, // dhcp4o6_port + S_control_socket = 565, // control_socket + S_566_108 = 566, // $@108 + S_control_socket_params = 567, // control_socket_params + S_control_socket_param = 568, // control_socket_param + S_control_socket_type = 569, // control_socket_type + S_570_109 = 570, // $@109 + S_control_socket_name = 571, // control_socket_name + S_572_110 = 572, // $@110 + S_dhcp_queue_control = 573, // dhcp_queue_control + S_574_111 = 574, // $@111 + S_queue_control_params = 575, // queue_control_params + S_queue_control_param = 576, // queue_control_param + S_enable_queue = 577, // enable_queue + S_queue_type = 578, // queue_type + S_579_112 = 579, // $@112 + S_capacity = 580, // capacity + S_arbitrary_map_entry = 581, // arbitrary_map_entry + S_582_113 = 582, // $@113 + S_dhcp_ddns = 583, // dhcp_ddns + S_584_114 = 584, // $@114 + S_sub_dhcp_ddns = 585, // sub_dhcp_ddns + S_586_115 = 586, // $@115 + S_dhcp_ddns_params = 587, // dhcp_ddns_params + S_dhcp_ddns_param = 588, // dhcp_ddns_param + S_enable_updates = 589, // enable_updates + S_server_ip = 590, // server_ip + S_591_116 = 591, // $@116 + S_server_port = 592, // server_port + S_sender_ip = 593, // sender_ip + S_594_117 = 594, // $@117 + S_sender_port = 595, // sender_port + S_max_queue_size = 596, // max_queue_size + S_ncr_protocol = 597, // ncr_protocol + S_598_118 = 598, // $@118 + S_ncr_protocol_value = 599, // ncr_protocol_value + S_ncr_format = 600, // ncr_format + S_601_119 = 601, // $@119 + S_dep_qualifying_suffix = 602, // dep_qualifying_suffix + S_603_120 = 603, // $@120 + S_dep_override_no_update = 604, // dep_override_no_update + S_dep_override_client_update = 605, // dep_override_client_update + S_dep_replace_client_name = 606, // dep_replace_client_name + S_607_121 = 607, // $@121 + S_dep_generated_prefix = 608, // dep_generated_prefix + S_609_122 = 609, // $@122 + S_dep_hostname_char_set = 610, // dep_hostname_char_set + S_611_123 = 611, // $@123 + S_dep_hostname_char_replacement = 612, // dep_hostname_char_replacement + S_613_124 = 613, // $@124 + S_config_control = 614, // config_control + S_615_125 = 615, // $@125 + S_sub_config_control = 616, // sub_config_control + S_617_126 = 617, // $@126 + S_config_control_params = 618, // config_control_params + S_config_control_param = 619, // config_control_param + S_config_databases = 620, // config_databases + S_621_127 = 621, // $@127 + S_config_fetch_wait_time = 622, // config_fetch_wait_time + S_loggers = 623, // loggers + S_624_128 = 624, // $@128 + S_loggers_entries = 625, // loggers_entries + S_logger_entry = 626, // logger_entry + S_627_129 = 627, // $@129 + S_logger_params = 628, // logger_params + S_logger_param = 629, // logger_param + S_debuglevel = 630, // debuglevel + S_severity = 631, // severity + S_632_130 = 632, // $@130 + S_output_options_list = 633, // output_options_list + S_634_131 = 634, // $@131 + S_output_options_list_content = 635, // output_options_list_content + S_output_entry = 636, // output_entry + S_637_132 = 637, // $@132 + S_output_params_list = 638, // output_params_list + S_output_params = 639, // output_params + S_output = 640, // output + S_641_133 = 641, // $@133 + S_flush = 642, // flush + S_maxsize = 643, // maxsize + S_maxver = 644, // maxver + S_pattern = 645, // pattern + S_646_134 = 646, // $@134 + S_compatibility = 647, // compatibility + S_648_135 = 648, // $@135 + S_compatibility_params = 649, // compatibility_params + S_compatibility_param = 650, // compatibility_param + S_lenient_option_parsing = 651, // lenient_option_parsing + S_ignore_dhcp_server_identifier = 652, // ignore_dhcp_server_identifier + S_ignore_rai_link_selection = 653, // ignore_rai_link_selection + S_exclude_first_last_24 = 654 // exclude_first_last_24 }; }; @@ -1406,7 +1397,7 @@ namespace isc { namespace dhcp { typedef Base super_type; /// Default constructor. - basic_symbol () YY_NOEXCEPT + basic_symbol () : value () , location () {} @@ -1458,7 +1449,7 @@ namespace isc { namespace dhcp { /// Copy constructor. basic_symbol (const basic_symbol& that); - /// Constructors for typed symbols. + /// Constructor for valueless symbols, and symbols from each type. #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, location_type&& l) : Base (t) @@ -1470,7 +1461,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) : Base (t) @@ -1484,7 +1474,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) : Base (t) @@ -1498,7 +1487,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) : Base (t) @@ -1512,7 +1500,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) : Base (t) @@ -1526,7 +1513,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) : Base (t) @@ -1547,10 +1533,8 @@ namespace isc { namespace dhcp { clear (); } - - /// Destroy contents, and record that is empty. - void clear () YY_NOEXCEPT + void clear () { // User destructor. symbol_kind_type yykind = this->kind (); @@ -1616,7 +1600,7 @@ switch (yykind) void move (basic_symbol& s); /// The semantic value. - value_type value; + semantic_type value; /// The location. location_type location; @@ -1631,27 +1615,25 @@ switch (yykind) /// Type access provider for token (enum) based symbols. struct by_kind { - /// The symbol kind as needed by the constructor. - typedef token_kind_type kind_type; - /// Default constructor. - by_kind () YY_NOEXCEPT; + by_kind (); #if 201103L <= YY_CPLUSPLUS /// Move constructor. - by_kind (by_kind&& that) YY_NOEXCEPT; + by_kind (by_kind&& that); #endif /// Copy constructor. - by_kind (const by_kind& that) YY_NOEXCEPT; - - /// Constructor from (external) token numbers. - by_kind (kind_type t) YY_NOEXCEPT; + by_kind (const by_kind& that); + /// The symbol kind as needed by the constructor. + typedef token_kind_type kind_type; + /// Constructor from (external) token numbers. + by_kind (kind_type t); /// Record that this symbol is empty. - void clear () YY_NOEXCEPT; + void clear (); /// Steal the symbol kind from \a that. void move (by_kind& that); @@ -1678,70 +1660,74 @@ switch (yykind) typedef basic_symbol<by_kind> super_type; /// Empty symbol. - symbol_type () YY_NOEXCEPT {} + 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_kind_type (tok), std::move (l)) + : super_type(token_type (tok), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER4_error || tok == token::TOKEN_PARSER4_UNDEF || 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_SERVICE_SOCKETS_REQUIRE_ALL || tok == token::TOKEN_SERVICE_SOCKETS_RETRY_WAIT_TIME || tok == token::TOKEN_SERVICE_SOCKETS_MAX_RETRIES || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_EXTENDED_INFO_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_OFFER_LFT || 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_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_READ_TIMEOUT || tok == token::TOKEN_WRITE_TIMEOUT || tok == token::TOKEN_TCP_USER_TIMEOUT || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_ON_FAIL || tok == token::TOKEN_STOP_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_CONTINUE || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_TRUST_ANCHOR || tok == token::TOKEN_CERT_FILE || tok == token::TOKEN_KEY_FILE || tok == token::TOKEN_CIPHER_LIST || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_DDNS_TTL_PERCENT || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_NEVER_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_PARKED_PACKET_LIMIT || tok == token::TOKEN_ALLOCATOR || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_TEMPLATE_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_RESERVATIONS_LOOKUP_FIRST || 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_COMPATIBILITY || tok == token::TOKEN_LENIENT_OPTION_PARSING || tok == token::TOKEN_IGNORE_DHCP_SERVER_ID || tok == token::TOKEN_IGNORE_RAI_LINK_SEL || tok == token::TOKEN_EXCLUDE_FIRST_LAST_24 || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); + } #else symbol_type (int tok, const location_type& l) - : super_type (token_kind_type (tok), l) -#endif + : super_type(token_type (tok), l) { -#if !defined _MSC_VER || defined __clang__ - PARSER4__ASSERT (tok == token::TOKEN_END - || (token::TOKEN_PARSER4_error <= tok && tok <= token::TOKEN_SUB_CONFIG_CONTROL)); -#endif + YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER4_error || tok == token::TOKEN_PARSER4_UNDEF || 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_SERVICE_SOCKETS_REQUIRE_ALL || tok == token::TOKEN_SERVICE_SOCKETS_RETRY_WAIT_TIME || tok == token::TOKEN_SERVICE_SOCKETS_MAX_RETRIES || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_EXTENDED_INFO_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_OFFER_LFT || 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_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_READ_TIMEOUT || tok == token::TOKEN_WRITE_TIMEOUT || tok == token::TOKEN_TCP_USER_TIMEOUT || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_ON_FAIL || tok == token::TOKEN_STOP_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_CONTINUE || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_TRUST_ANCHOR || tok == token::TOKEN_CERT_FILE || tok == token::TOKEN_KEY_FILE || tok == token::TOKEN_CIPHER_LIST || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_DDNS_TTL_PERCENT || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_NEVER_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_PARKED_PACKET_LIMIT || tok == token::TOKEN_ALLOCATOR || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_TEMPLATE_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_RESERVATIONS_LOOKUP_FIRST || 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_COMPATIBILITY || tok == token::TOKEN_LENIENT_OPTION_PARSING || tok == token::TOKEN_IGNORE_DHCP_SERVER_ID || tok == token::TOKEN_IGNORE_RAI_LINK_SEL || tok == token::TOKEN_EXCLUDE_FIRST_LAST_24 || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, bool v, location_type l) - : super_type (token_kind_type (tok), std::move (v), std::move (l)) + : super_type(token_type (tok), std::move (v), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_BOOLEAN); + } #else symbol_type (int tok, const bool& v, const location_type& l) - : super_type (token_kind_type (tok), v, l) -#endif + : super_type(token_type (tok), v, l) { -#if !defined _MSC_VER || defined __clang__ - PARSER4__ASSERT (tok == token::TOKEN_BOOLEAN); -#endif + YY_ASSERT (tok == token::TOKEN_BOOLEAN); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, double v, location_type l) - : super_type (token_kind_type (tok), std::move (v), std::move (l)) + : super_type(token_type (tok), std::move (v), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_FLOAT); + } #else symbol_type (int tok, const double& v, const location_type& l) - : super_type (token_kind_type (tok), v, l) -#endif + : super_type(token_type (tok), v, l) { -#if !defined _MSC_VER || defined __clang__ - PARSER4__ASSERT (tok == token::TOKEN_FLOAT); -#endif + YY_ASSERT (tok == token::TOKEN_FLOAT); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, int64_t v, location_type l) - : super_type (token_kind_type (tok), std::move (v), std::move (l)) + : super_type(token_type (tok), std::move (v), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_INTEGER); + } #else symbol_type (int tok, const int64_t& v, const location_type& l) - : super_type (token_kind_type (tok), v, l) -#endif + : super_type(token_type (tok), v, l) { -#if !defined _MSC_VER || defined __clang__ - PARSER4__ASSERT (tok == token::TOKEN_INTEGER); -#endif + YY_ASSERT (tok == token::TOKEN_INTEGER); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, std::string v, location_type l) - : super_type (token_kind_type (tok), std::move (v), std::move (l)) + : super_type(token_type (tok), std::move (v), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_STRING); + } #else symbol_type (int tok, const std::string& v, const location_type& l) - : super_type (token_kind_type (tok), v, l) -#endif + : super_type(token_type (tok), v, l) { -#if !defined _MSC_VER || defined __clang__ - PARSER4__ASSERT (tok == token::TOKEN_STRING); -#endif + YY_ASSERT (tok == token::TOKEN_STRING); } +#endif }; /// Build a parser object. @@ -1789,7 +1775,7 @@ switch (yykind) /// YYSYMBOL. No bounds checking. static std::string symbol_name (symbol_kind_type yysymbol); - // Implementation of make_symbol for each token kind. + // Implementation of make_symbol for each symbol type. #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -3098,6 +3084,21 @@ switch (yykind) #if 201103L <= YY_CPLUSPLUS static symbol_type + make_DDNS_TTL_PERCENT (location_type l) + { + return symbol_type (token::TOKEN_DDNS_TTL_PERCENT, std::move (l)); + } +#else + static + symbol_type + make_DDNS_TTL_PERCENT (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_TTL_PERCENT, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type make_STORE_EXTENDED_INFO (location_type l) { return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, std::move (l)); @@ -5051,9 +5052,9 @@ switch (yykind) { public: context (const Dhcp4Parser& yyparser, const symbol_type& yyla); - const symbol_type& lookahead () const YY_NOEXCEPT { return yyla_; } - symbol_kind_type token () const YY_NOEXCEPT { return yyla_.kind (); } - const location_type& location () const YY_NOEXCEPT { return yyla_.location; } + const symbol_type& lookahead () const { return yyla_; } + symbol_kind_type token () const { return yyla_.kind (); } + const location_type& location () const { return yyla_.location; } /// Put in YYARG at most YYARGN of the expected tokens, and return the /// number of tokens stored in YYARG. If YYARG is null, return the @@ -5091,19 +5092,19 @@ switch (yykind) /// 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) YY_NOEXCEPT; + 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) YY_NOEXCEPT; + static bool yy_table_value_is_error_ (int yyvalue); static const short yypact_ninf_; static const signed char yytable_ninf_; /// Convert a scanner token kind \a t to a symbol kind. /// In theory \a t should be a token_kind_type, but character literals - /// are valid, yet not members of the token_kind_type enum. - static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT; + /// are valid, yet not members of the token_type enum. + static symbol_kind_type yytranslate_ (int t); /// Convert the symbol name \a n to a form suitable for a diagnostic. static std::string yytnamerr_ (const char *yystr); @@ -5135,14 +5136,14 @@ switch (yykind) static const short yycheck_[]; - // YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of - // state STATE-NUM. + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. static const short yystos_[]; - // YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. static const short yyr1_[]; - // YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. + // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. static const signed char yyr2_[]; @@ -5241,7 +5242,7 @@ switch (yykind) typedef typename S::size_type size_type; typedef typename std::ptrdiff_t index_type; - stack (size_type n = 200) YY_NOEXCEPT + stack (size_type n = 200) : seq_ (n) {} @@ -5320,7 +5321,7 @@ switch (yykind) class slice { public: - slice (const stack& stack, index_type range) YY_NOEXCEPT + slice (const stack& stack, index_type range) : stack_ (stack) , range_ (range) {} @@ -5370,13 +5371,13 @@ switch (yykind) 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) YY_NOEXCEPT; + void yypop_ (int n = 1); /// Constants. enum { - yylast_ = 1318, ///< Last index in yytable_. - yynnts_ = 436, ///< Number of nonterminal symbols. + yylast_ = 1327, ///< Last index in yytable_. + yynnts_ = 437, ///< Number of nonterminal symbols. yyfinal_ = 28 ///< Termination state number. }; @@ -5388,7 +5389,7 @@ switch (yykind) inline Dhcp4Parser::symbol_kind_type - Dhcp4Parser::yytranslate_ (int t) YY_NOEXCEPT + Dhcp4Parser::yytranslate_ (int t) { // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to // TOKEN-NUM as returned by yylex. @@ -5443,15 +5444,15 @@ switch (yykind) 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216 + 215, 216, 217 }; // Last valid token kind. - const int code_max = 471; + const int code_max = 472; if (t <= 0) return symbol_kind::S_YYEOF; else if (t <= code_max) - return static_cast <symbol_kind_type> (translate_table[t]); + return YY_CAST (symbol_kind_type, translate_table[t]); else return symbol_kind::S_YYUNDEF; } @@ -5501,7 +5502,6 @@ switch (yykind) - template <typename Base> Dhcp4Parser::symbol_kind_type Dhcp4Parser::basic_symbol<Base>::type_get () const YY_NOEXCEPT @@ -5509,7 +5509,6 @@ switch (yykind) return this->kind (); } - template <typename Base> bool Dhcp4Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT @@ -5561,13 +5560,13 @@ switch (yykind) // by_kind. inline - Dhcp4Parser::by_kind::by_kind () YY_NOEXCEPT + Dhcp4Parser::by_kind::by_kind () : kind_ (symbol_kind::S_YYEMPTY) {} #if 201103L <= YY_CPLUSPLUS inline - Dhcp4Parser::by_kind::by_kind (by_kind&& that) YY_NOEXCEPT + Dhcp4Parser::by_kind::by_kind (by_kind&& that) : kind_ (that.kind_) { that.clear (); @@ -5575,20 +5574,18 @@ switch (yykind) #endif inline - Dhcp4Parser::by_kind::by_kind (const by_kind& that) YY_NOEXCEPT + Dhcp4Parser::by_kind::by_kind (const by_kind& that) : kind_ (that.kind_) {} inline - Dhcp4Parser::by_kind::by_kind (token_kind_type t) YY_NOEXCEPT + Dhcp4Parser::by_kind::by_kind (token_kind_type t) : kind_ (yytranslate_ (t)) {} - - inline void - Dhcp4Parser::by_kind::clear () YY_NOEXCEPT + Dhcp4Parser::by_kind::clear () { kind_ = symbol_kind::S_YYEMPTY; } @@ -5608,7 +5605,6 @@ switch (yykind) return kind_; } - inline Dhcp4Parser::symbol_kind_type Dhcp4Parser::by_kind::type_get () const YY_NOEXCEPT @@ -5616,10 +5612,9 @@ switch (yykind) return this->kind (); } - #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 5623 "dhcp4_parser.h" +#line 5618 "dhcp4_parser.h" diff --git a/src/bin/dhcp4/dhcp4_parser.yy b/src/bin/dhcp4/dhcp4_parser.yy index 4a866bc2b7..265a31ad7c 100644 --- a/src/bin/dhcp4/dhcp4_parser.yy +++ b/src/bin/dhcp4/dhcp4_parser.yy @@ -132,6 +132,7 @@ using namespace std; DDNS_QUALIFYING_SUFFIX "ddns-qualifying-suffix" DDNS_UPDATE_ON_RENEW "ddns-update-on-renew" DDNS_USE_CONFLICT_RESOLUTION "ddns-use-conflict-resolution" + DDNS_TTL_PERCENT "ddns-ttl-percent" STORE_EXTENDED_INFO "store-extended-info" SUBNET4 "subnet4" SUBNET_4O6_INTERFACE "4o6-interface" @@ -544,6 +545,7 @@ global_param: valid_lifetime | ddns_qualifying_suffix | ddns_update_on_renew | ddns_use_conflict_resolution + | ddns_ttl_percent | store_extended_info | statistic_default_sample_count | statistic_default_sample_age @@ -741,6 +743,12 @@ ddns_use_conflict_resolution: DDNS_USE_CONFLICT_RESOLUTION COLON BOOLEAN { ctx.stack_.back()->set("ddns-use-conflict-resolution", b); }; +ddns_ttl_percent: DDNS_TTL_PERCENT COLON FLOAT { + ctx.unique("ddns-ttl-percent", ctx.loc2pos(@1)); + ElementPtr ttl(new DoubleElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("ddns-ttl-percent", ttl); +}; + hostname_char_set: HOSTNAME_CHAR_SET { ctx.unique("hostname-char-set", ctx.loc2pos(@1)); ctx.enter(ctx.NO_KEYWORD); @@ -1565,6 +1573,7 @@ subnet4_param: valid_lifetime | ddns_qualifying_suffix | ddns_update_on_renew | ddns_use_conflict_resolution + | ddns_ttl_percent | hostname_char_set | hostname_char_replacement | store_extended_info @@ -1753,6 +1762,7 @@ shared_network_param: name | ddns_qualifying_suffix | ddns_update_on_renew | ddns_use_conflict_resolution + | ddns_ttl_percent | hostname_char_set | hostname_char_replacement | store_extended_info diff --git a/src/bin/dhcp4/json_config_parser.cc b/src/bin/dhcp4/json_config_parser.cc index 3508de36a8..98dd3f379d 100644 --- a/src/bin/dhcp4/json_config_parser.cc +++ b/src/bin/dhcp4/json_config_parser.cc @@ -687,6 +687,7 @@ processDhcp4Config(isc::data::ConstElementPtr config_set) { (config_pair.first == "ddns-qualifying-suffix") || (config_pair.first == "ddns-update-on-renew") || (config_pair.first == "ddns-use-conflict-resolution") || + (config_pair.first == "ddns-ttl-percent") || (config_pair.first == "store-extended-info") || (config_pair.first == "statistic-default-sample-count") || (config_pair.first == "statistic-default-sample-age") || diff --git a/src/bin/dhcp4/location.hh b/src/bin/dhcp4/location.hh index 3ed7545dc9..874f94b29a 100644 --- a/src/bin/dhcp4/location.hh +++ b/src/bin/dhcp4/location.hh @@ -1,9 +1,8 @@ -// Generated 202303240901 -// A Bison parser, made by GNU Bison 3.8.2. +// A Bison parser, made by GNU Bison 3.7.2. // Locations for Bison parsers in C++ -// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -16,7 +15,7 @@ // GNU General Public License for more details. // You should have received a copy of the GNU General Public License -// along with this program. If not, see <https://www.gnu.org/licenses/>. +// along with this program. If not, see <http://www.gnu.org/licenses/>. // As a special exception, you may create a larger work that contains // part or all of the Bison parser skeleton and distribute that work diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index 1cd9d8bae9..f864e3ef7e 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -1,6 +1,6 @@ -#line 1 "dhcp6_lexer.cc" +#line 2 "dhcp6_lexer.cc" -#line 3 "dhcp6_lexer.cc" +#line 4 "dhcp6_lexer.cc" #define YY_INT_ALIGNED short int @@ -700,7 +700,11 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; +<<<<<<< HEAD static const flex_int16_t yy_accept[2190] = +======= +static const flex_int16_t yy_accept[2196] = +>>>>>>> [#225] Added ddsn-ttl-percent parameter { 0, 222, 222, 0, 0, 0, 0, 0, 0, 0, 0, 230, 228, 10, 11, 228, 1, 222, 219, 222, 222, @@ -754,13 +758,17 @@ static const flex_int16_t yy_accept[2190] = 0, 0, 0, 0, 0, 226, 223, 0, 0, 0, 0, 29, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, 0, 0, +<<<<<<< HEAD 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, +======= + 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -772,10 +780,15 @@ static const flex_int16_t yy_accept[2190] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +<<<<<<< HEAD 0, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, +======= + 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, + 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 57, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, 57, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, @@ -787,10 +800,17 @@ static const flex_int16_t yy_accept[2190] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +<<<<<<< HEAD 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, +======= + 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, @@ -802,14 +822,22 @@ static const flex_int16_t yy_accept[2190] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +<<<<<<< HEAD 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 145, 0, 0, 0, 0, 0, 0, 0, 149, 56, 0, 0, 0, 0, 0, 0, +======= + 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 176, 145, 0, 0, 0, 0, + 0, 0, 0, 149, 56, 0, 0, 0, 0, 0, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +<<<<<<< HEAD 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -821,6 +849,19 @@ static const flex_int16_t yy_accept[2190] = 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, 0, 0, 0, 0, 0, 0, 0, 104, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 165, 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, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 0, 60, 0, 113, 0, 0, 0, 162, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, @@ -829,9 +870,15 @@ static const flex_int16_t yy_accept[2190] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +<<<<<<< HEAD 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, +======= + 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -842,6 +889,7 @@ static const flex_int16_t yy_accept[2190] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 0, 0, +<<<<<<< HEAD 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -849,10 +897,20 @@ static const flex_int16_t yy_accept[2190] = 40, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 111, 0, 0, 106, 0, 0, 0, 0, 0, +======= + 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 164, 181, + 0, 40, 0, 173, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 0, 0, 0, 107, 0, 0, 0, 0, 0, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 175, 0, 0, 58, 0, 115, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 141, 142, 0, 0, 0, 0, 0, 0, 0, +<<<<<<< HEAD 0, 0, 0, 110, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -876,12 +934,41 @@ static const flex_int16_t yy_accept[2190] = 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 120, 0, 0, 0, 144, 0, 0, 0, 208, 0, 0, 0, 0, +======= + 0, 0, 0, 111, 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, 170, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 108, 130, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 0, 17, 0, 15, + 0, 0, 199, 198, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, + 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 192, 0, 0, 201, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 124, 0, 161, 0, + 46, 0, 0, 64, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, + 0, 92, 0, 0, 126, 66, 87, 0, 0, 169, + 0, 0, 0, 0, 160, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 76, 0, 120, + 0, 0, 0, 144, 0, 0, 0, 208, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 118, 0, 0, 0, 0, 184, 0, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +<<<<<<< HEAD 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 158, 0, 0, 0, 67, 0, 0, 0, 154, 51, 0, 0, 0, @@ -912,12 +999,60 @@ static const flex_int16_t yy_accept[2190] = 25, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 0, 0, 13, 0, 0, 0, 0, +======= + 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, + 158, 0, 0, 0, 67, 0, 0, 0, 154, 51, + 0, 0, 0, 197, 38, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, + + 0, 0, 0, 48, 0, 0, 18, 0, 0, 0, + 75, 0, 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 83, 0, 143, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, + 174, 0, 0, 0, 50, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 106, 0, 71, 0, + 0, 0, 0, 36, 0, 52, 0, 0, 0, 0, + 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 190, 0, 0, 0, 0, 159, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 127, 0, 0, 0, 0, 0, 72, 0, 0, + 0, 0, 68, 195, 0, 0, 0, 0, 0, 0, + 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 25, 39, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 196, 0, + 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, +>>>>>>> [#225] Added ddsn-ttl-percent parameter + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 200, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +<<<<<<< HEAD 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 85, 0, 84, 0, 21, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, +======= + 189, 0, 85, 0, 84, 0, 21, 0, 80, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, + 0, 188, 0, 0, 0, 0, 0, 74, 0, 0, + + 90, 0, 69, 0, 23, 0, 133, 0, 0, 0, + 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, + 0, 0, 0, 101, 0, 0, 0, 0, 0, 47, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, + 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 188, 0, 0, 0, 0, 0, 74, 0, 0, 90, 0, 69, 0, 23, 0, @@ -928,6 +1063,7 @@ static const flex_int16_t yy_accept[2190] = 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +<<<<<<< HEAD 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 100, 0, 0, 0, 0, 194, 0, 0, 0, 0, 206, 209, 82, @@ -942,6 +1078,22 @@ static const flex_int16_t yy_accept[2190] = 0, 0, 0, 0, 44, 42, 0, 0, 0, 102, 0, 0, 139, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 187, 43, 205, 0 +======= + 53, 0, 0, 100, 0, 0, 0, 0, 194, 0, + 0, 0, 0, 206, 209, 82, 81, 22, 0, 138, + + 155, 134, 0, 0, 0, 0, 0, 0, 0, 0, + 96, 0, 0, 0, 0, 0, 0, 0, 0, 186, + 0, 0, 0, 0, 0, 0, 191, 0, 98, 0, + 88, 0, 0, 0, 0, 0, 0, 135, 0, 0, + 0, 0, 0, 0, 0, 185, 0, 0, 26, 207, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, + 44, 42, 0, 0, 0, 102, 0, 0, 139, 0, + 94, 0, 0, 0, 0, 0, 0, 0, 0, 93, + 0, 187, 43, 205, 0 + +>>>>>>> [#225] Added ddsn-ttl-percent parameter } ; static const YY_CHAR yy_ec[256] = @@ -988,6 +1140,7 @@ static const YY_CHAR yy_meta[74] = 1, 1, 1 } ; +<<<<<<< HEAD static const flex_int16_t yy_base[2198] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, @@ -1249,12 +1402,277 @@ static const flex_int16_t yy_def[2198] = 2189, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2197, 45, 2195, 45, 45, 45, 45, +======= +static const flex_int16_t yy_base[2204] = + { 0, + 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, + 2586, 2587, 34, 2582, 145, 0, 207, 2587, 214, 221, + 13, 228, 2587, 2562, 118, 25, 2, 6, 2587, 2587, + 73, 11, 17, 2587, 2587, 2587, 104, 2570, 2523, 0, + 2560, 108, 2577, 24, 256, 2587, 67, 2526, 2546, 84, + 75, 2546, 88, 226, 91, 89, 284, 196, 206, 219, + 208, 235, 241, 60, 277, 2526, 279, 291, 253, 293, + 316, 2509, 282, 317, 356, 325, 2528, 305, 0, 378, + 385, 406, 415, 422, 2587, 0, 2587, 429, 436, 218, + 219, 287, 333, 354, 342, 2587, 2525, 2566, 2587, 382, + + 2587, 428, 346, 2523, 2564, 356, 10, 336, 409, 186, + 417, 314, 319, 2563, 0, 489, 416, 2505, 409, 2504, + 2505, 2511, 409, 2497, 2498, 2503, 412, 2513, 2496, 2505, + 2495, 415, 416, 290, 2498, 2496, 425, 2485, 2543, 412, + 2488, 2541, 2481, 440, 2502, 2502, 2496, 440, 2489, 2487, + 2488, 2480, 2485, 2479, 435, 2490, 467, 2475, 2474, 2488, + 462, 2526, 2473, 437, 2485, 446, 2473, 497, 2474, 483, + 2486, 2483, 2484, 472, 2482, 2517, 2516, 486, 464, 2463, + 2467, 483, 2463, 2455, 2472, 2464, 2466, 0, 487, 498, + 484, 505, 500, 503, 2462, 2587, 525, 2457, 2587, 516, + + 501, 2587, 2511, 535, 2510, 536, 2509, 532, 2508, 2587, + 2587, 578, 513, 542, 2467, 2459, 2463, 2464, 2444, 2455, + 2457, 2456, 509, 517, 2494, 2458, 2439, 2436, 2444, 2450, + 2438, 2452, 2448, 2439, 2448, 2448, 2443, 2435, 2437, 2440, + 2420, 2424, 2437, 2439, 2436, 2428, 2418, 2421, 2435, 2587, + 2421, 2429, 80, 2467, 2413, 2422, 2464, 2411, 2421, 2461, + 555, 2420, 2459, 2404, 2406, 2417, 2455, 547, 2459, 2413, + 2393, 2408, 570, 2398, 2404, 531, 2395, 2393, 529, 2393, + 2399, 2390, 2389, 2402, 2395, 2385, 2396, 2400, 2399, 2393, + 550, 2400, 2395, 2387, 2377, 2392, 2387, 2391, 2372, 2388, + + 2374, 2380, 2387, 2369, 537, 2374, 2371, 2370, 289, 2369, + 2364, 2378, 2377, 582, 2376, 2379, 2361, 2369, 2357, 562, + 2587, 2587, 584, 2587, 2587, 2355, 192, 2402, 586, 2413, + 2587, 579, 2587, 2412, 2587, 2406, 633, 2587, 2368, 538, + 2345, 2364, 2347, 2364, 2400, 2360, 2350, 2402, 2357, 2360, + 2351, 2354, 2340, 2351, 572, 2390, 2348, 2345, 2346, 604, + 2350, 2390, 2325, 2337, 2332, 2329, 2325, 2327, 2330, 2377, + 2334, 2323, 2339, 2373, 2319, 612, 2332, 2332, 2315, 2316, + 2329, 2327, 2325, 2325, 2324, 2319, 2326, 2321, 2306, 576, + 2315, 2318, 2313, 574, 2312, 2308, 2358, 569, 581, 2587, + + 2317, 2351, 2301, 2300, 2293, 2295, 2307, 2298, 2305, 2286, + 2303, 2295, 2291, 2296, 611, 2343, 2296, 612, 2293, 2296, + 2296, 2294, 573, 2284, 2296, 604, 2271, 2272, 2293, 2284, + 2274, 2271, 2285, 614, 2271, 2283, 2282, 2281, 2276, 2318, + 2278, 2277, 2276, 2275, 2258, 2266, 2316, 2275, 2314, 2254, + 2312, 2254, 634, 2267, 2265, 2587, 2587, 2265, 629, 2307, + 2306, 2587, 2305, 2587, 638, 686, 2264, 641, 2303, 2297, + 2250, 2252, 2254, 2241, 2238, 2587, 2243, 2236, 2248, 2251, + 2238, 2237, 2587, 2247, 626, 2238, 2235, 2247, 625, 2232, + 2234, 2587, 2279, 2239, 2224, 2226, 2237, 2235, 2235, 2229, + + 709, 2236, 2224, 2217, 2268, 2587, 2215, 2231, 2265, 2269, + 2225, 2219, 2221, 2222, 2206, 2215, 2257, 2208, 2207, 2202, + 2201, 2203, 2199, 2195, 635, 2214, 2188, 2195, 2200, 2193, + 2209, 2243, 2247, 2587, 2192, 2188, 2244, 2195, 2194, 2188, + 2195, 2180, 2190, 2178, 2192, 2192, 2180, 2176, 2181, 2177, + 2172, 2587, 2229, 2587, 2171, 2170, 2163, 2180, 2219, 2218, + 2163, 2162, 2167, 2176, 2170, 2164, 2173, 710, 2210, 2172, + 2156, 2151, 2147, 2153, 344, 2167, 2160, 2164, 2147, 2205, + 2146, 2146, 2197, 2142, 2143, 2142, 2140, 2157, 2587, 2153, + 2587, 2190, 2587, 2141, 2587, 2151, 2187, 2186, 2146, 2189, + + 2587, 2587, 2587, 539, 659, 2129, 712, 2587, 659, 2147, + 2127, 2137, 2179, 2178, 2123, 2133, 2175, 2120, 2127, 2120, + 2128, 2131, 2113, 2113, 2128, 2127, 2111, 591, 2125, 2124, + 2108, 2123, 2105, 2152, 2119, 2116, 2156, 2100, 2102, 2114, + 2114, 2112, 2112, 2587, 2097, 2094, 2152, 2107, 2099, 2105, + 2096, 2104, 2587, 2089, 2100, 2104, 2086, 2098, 2090, 605, + 2081, 2080, 2074, 2079, 2076, 2091, 2090, 2091, 2070, 2080, + 2086, 2129, 2084, 2083, 2075, 2066, 2587, 2067, 2069, 2587, + 2071, 2076, 2115, 2114, 16, 2075, 2112, 2057, 2110, 2057, + 2060, 2058, 2060, 2051, 2587, 2065, 2051, 719, 2043, 2047, + + 2063, 2060, 2055, 2051, 2096, 2048, 2055, 2093, 2587, 2039, + 2037, 2051, 2050, 2053, 2087, 2086, 2033, 2084, 2044, 2028, + 2081, 2080, 2587, 2025, 2039, 2034, 690, 93, 350, 366, + 425, 487, 623, 623, 638, 649, 642, 2587, 2587, 682, + 699, 667, 664, 683, 678, 673, 669, 683, 684, 694, + 737, 697, 697, 739, 740, 694, 690, 695, 705, 710, + 696, 699, 702, 711, 711, 695, 752, 714, 706, 716, + 756, 719, 713, 713, 715, 719, 725, 765, 728, 772, + 730, 731, 2587, 734, 729, 720, 735, 740, 737, 734, + 741, 740, 728, 742, 740, 748, 784, 746, 791, 792, + + 736, 749, 735, 745, 792, 750, 800, 2587, 801, 757, + 755, 757, 753, 747, 807, 803, 766, 755, 2587, 757, + 768, 757, 770, 760, 773, 817, 776, 761, 820, 763, + 778, 2587, 772, 766, 777, 762, 773, 786, 777, 766, + 772, 827, 791, 775, 775, 788, 832, 833, 780, 798, + 793, 798, 795, 839, 781, 793, 794, 801, 792, 789, + 2587, 855, 812, 813, 801, 815, 805, 808, 819, 810, + 816, 817, 861, 837, 811, 825, 807, 814, 828, 873, + 830, 827, 825, 2587, 829, 824, 839, 836, 822, 824, + 843, 840, 841, 829, 836, 837, 846, 885, 851, 887, + + 849, 839, 853, 839, 838, 844, 900, 847, 842, 843, + 849, 865, 848, 902, 857, 904, 2587, 868, 868, 861, + 872, 870, 915, 857, 859, 874, 875, 863, 861, 923, + 880, 866, 872, 870, 2587, 2587, 886, 885, 886, 891, + 879, 889, 891, 2587, 2587, 891, 893, 880, 898, 885, + 2587, 883, 901, 888, 888, 939, 886, 890, 908, 949, + 2587, 910, 951, 2587, 896, 910, 910, 955, 903, 902, + 906, 900, 916, 961, 914, 904, 905, 901, 911, 915, + 926, 927, 922, 924, 917, 919, 915, 932, 922, 937, + 920, 979, 936, 941, 918, 941, 927, 926, 2587, 933, + + 935, 984, 985, 937, 950, 988, 935, 950, 944, 969, + 977, 999, 947, 996, 958, 998, 2587, 1004, 947, 966, + 956, 955, 950, 951, 963, 958, 954, 972, 958, 959, + 969, 978, 1014, 965, 963, 981, 974, 969, 1022, 1028, + 985, 976, 2587, 990, 981, 989, 991, 976, 992, 982, + 994, 991, 989, 1036, 1002, 986, 987, 2587, 1003, 1006, + 989, 991, 1049, 992, 1011, 2587, 1010, 1013, 1000, 995, + 1013, 1001, 1054, 1012, 1008, 1005, 1058, 1007, 1060, 1022, + 1008, 1026, 1025, 1011, 1026, 1018, 1014, 1032, 1031, 1018, + 1035, 2587, 1019, 2587, 1028, 1075, 1028, 2587, 1036, 1039, + + 1032, 1086, 1033, 2587, 1036, 1041, 1085, 1036, 1037, 1049, + 1043, 1044, 1042, 1053, 1098, 1042, 1043, 1101, 1102, 1046, + 1058, 1051, 2587, 1047, 1056, 1054, 1105, 1047, 1068, 1054, + 1055, 1056, 1057, 1063, 1071, 1062, 1076, 1077, 1078, 1094, + 1099, 2587, 1081, 1086, 1069, 1069, 2587, 1070, 1072, 1083, + 1073, 1093, 1092, 1083, 1094, 1137, 1079, 1099, 1092, 1096, + 1100, 1083, 1100, 1101, 1092, 1147, 1094, 1098, 2587, 1145, + 1096, 1114, 1096, 1096, 1117, 1114, 1154, 1103, 1121, 1109, + 1123, 1109, 1117, 1126, 1106, 1121, 1128, 1170, 1171, 2587, + 1124, 1173, 1174, 1116, 1126, 1136, 1120, 1140, 1123, 1125, + + 1125, 1132, 1141, 1129, 1136, 1131, 1138, 1150, 1191, 1138, + 1137, 1154, 1195, 1145, 1149, 1147, 1145, 1140, 1201, 1152, + 1149, 1204, 1154, 1206, 1202, 1208, 1161, 2587, 1150, 1167, + 1160, 1151, 1170, 1164, 1159, 1169, 1171, 1167, 1179, 2587, + 1163, 1159, 2587, 2587, 1165, 1225, 1184, 1165, 1184, 1185, + 1187, 1226, 1179, 1233, 1234, 1187, 1192, 1186, 1184, 1195, + 1177, 1182, 1188, 1222, 1213, 1245, 1200, 1200, 1204, 1249, + 1192, 1192, 1195, 1212, 1207, 1211, 1206, 2587, 1203, 1199, + 1216, 1196, 1217, 1207, 1206, 1259, 1212, 2587, 1226, 1224, + 1227, 1211, 1220, 1225, 1230, 1216, 1276, 1229, 1234, 1221, + + 1235, 1233, 1225, 1231, 1227, 1245, 1246, 1247, 2587, 2587, + 1245, 2587, 1247, 2587, 1232, 1243, 1234, 1253, 1246, 1244, + 1296, 1253, 1250, 1294, 1258, 1247, 1254, 1259, 1256, 1262, + 2587, 1255, 1247, 1308, 2587, 1309, 1256, 1263, 1307, 1269, + 2587, 1270, 1258, 2587, 1268, 2587, 1259, 2587, 1259, 1260, + 1263, 1277, 1282, 1265, 1276, 1325, 1282, 1283, 1323, 1279, + 1330, 1326, 1332, 2587, 1283, 1280, 1335, 1336, 1293, 1294, + 1296, 2587, 2587, 1288, 1283, 1337, 1286, 1302, 1286, 1298, + 1287, 1318, 1349, 2587, 1306, 1297, 1308, 2587, 1353, 1290, + 1301, 1316, 1352, 1304, 1315, 1303, 1317, 1318, 1315, 1359, + + 1322, 1324, 1313, 1323, 1329, 1317, 1317, 1372, 1368, 1369, + 1375, 1333, 2587, 1335, 1334, 1336, 1328, 1331, 1340, 1341, + 1338, 1328, 1331, 1331, 1390, 1337, 1392, 1339, 1394, 1337, + 1342, 1398, 2587, 1356, 1335, 1350, 1343, 1346, 1359, 1362, + 1361, 1359, 1408, 1362, 2587, 2587, 1358, 1368, 1353, 1409, + 1356, 1416, 1372, 1358, 1419, 1420, 1421, 1365, 1375, 1424, + 1381, 2587, 1373, 1374, 1376, 1429, 1372, 2587, 1389, 2587, + 1388, 1378, 2587, 2587, 1391, 1374, 1394, 1395, 1381, 1383, + 1442, 1392, 1444, 1393, 1387, 1426, 2587, 1448, 1398, 1445, + 2587, 1393, 1452, 1402, 1396, 1393, 1396, 1398, 1394, 1416, + + 1455, 1408, 1420, 1423, 1420, 1412, 1415, 1408, 1468, 1416, + 2587, 1414, 1413, 2587, 1415, 1474, 1427, 1418, 1472, 1434, + 1434, 1437, 1437, 1434, 1478, 1440, 2587, 1432, 2587, 1433, + 2587, 1443, 1435, 2587, 1484, 1446, 1447, 1444, 1488, 1436, + 1451, 1491, 1453, 1445, 2587, 1442, 1442, 1448, 1447, 1445, + 1499, 2587, 1461, 1461, 2587, 2587, 2587, 1502, 1449, 2587, + 1466, 1451, 1452, 1458, 2587, 1467, 1514, 1462, 1454, 1460, + 1470, 1482, 1475, 1481, 1471, 1526, 1479, 2587, 1488, 2587, + 1485, 1530, 1505, 2587, 1489, 1474, 1534, 2587, 1535, 1492, + 1497, 1479, 1539, 1540, 1536, 1500, 1497, 1493, 1486, 1493, + + 1542, 1500, 1501, 2587, 1491, 1507, 1505, 1554, 2587, 1492, + 1551, 1515, 1516, 1512, 1556, 1504, 1509, 1507, 1566, 1522, + 1510, 1569, 1565, 1520, 1572, 1533, 1522, 1516, 1576, 1518, + 1527, 1520, 1534, 1537, 1582, 1524, 1541, 1537, 1535, 1528, + 1543, 1527, 1585, 1586, 1587, 1588, 1551, 1544, 1543, 1543, + 1538, 2587, 1546, 1552, 1543, 1544, 1543, 1545, 1600, 1546, + 2587, 1542, 1560, 1609, 2587, 1579, 1611, 1564, 2587, 2587, + 1555, 1566, 1615, 2587, 2587, 1561, 1566, 1564, 1614, 1572, + 1577, 1563, 1566, 1583, 1572, 1570, 1570, 1572, 2587, 1630, + 1576, 1585, 1628, 1571, 1577, 1637, 1586, 1596, 1597, 2587, + + 1642, 1595, 1639, 2587, 1590, 1598, 2587, 1589, 1604, 1592, + 2587, 1602, 1603, 1604, 1653, 1611, 2587, 1650, 1616, 1592, + 1610, 1611, 1612, 1621, 1603, 1609, 1611, 1623, 1622, 1613, + 1663, 1615, 1611, 1612, 1613, 1668, 1674, 1624, 1676, 1629, + 1619, 1635, 1628, 2587, 1681, 2587, 1630, 1683, 1625, 2587, + 1628, 1638, 1682, 1630, 1645, 1632, 1691, 1648, 1634, 1641, + 1641, 1652, 1653, 2587, 1647, 1642, 1656, 1642, 1702, 1655, + 2587, 1699, 1650, 1647, 2587, 1661, 1648, 1669, 1665, 1667, + 1712, 1665, 1662, 1670, 1664, 2587, 1717, 1658, 1660, 1676, + 1669, 1670, 1660, 1676, 1677, 1671, 1687, 1677, 1729, 1689, + + 1673, 1682, 1728, 1686, 1735, 1684, 2587, 1678, 2587, 1685, + 1739, 1740, 1737, 2587, 1699, 2587, 1739, 1701, 1702, 1687, + 1688, 1696, 1750, 2587, 1698, 1747, 1748, 1703, 1698, 1716, + 1713, 1704, 1717, 1712, 2587, 1709, 1714, 1712, 1764, 1765, + 1713, 1710, 1724, 1711, 2587, 1726, 1727, 1728, 1729, 2587, + 1719, 1731, 1776, 1729, 1734, 1779, 1721, 1729, 1723, 1731, + 1744, 2587, 1745, 1726, 1727, 1734, 1736, 2587, 1750, 1747, + 1787, 1748, 2587, 2587, 1752, 1737, 1737, 1752, 1745, 1744, + 1755, 1742, 2587, 1758, 1746, 1749, 1805, 1745, 1764, 1755, + 1767, 1760, 1759, 1768, 1770, 1774, 2587, 2587, 1767, 1758, + + 1758, 1818, 1761, 1820, 1762, 1822, 1780, 1824, 2587, 1766, + 1826, 2587, 1822, 1784, 1781, 1786, 1773, 1781, 1792, 1779, + 1790, 1776, 1774, 1782, 1781, 1786, 1778, 1843, 1796, 1797, + 1787, 1804, 1803, 1844, 1788, 1807, 1808, 2587, 1813, 1806, + 1855, 1812, 1799, 1814, 1859, 1816, 1819, 1806, 1815, 1816, + 2587, 1865, 2587, 1818, 2587, 1827, 2587, 1868, 2587, 1810, + 1870, 1817, 1872, 1815, 1874, 1822, 1871, 1872, 1834, 1874, + 1820, 1824, 1842, 1883, 1842, 2587, 1833, 1823, 1882, 1848, + 1841, 1837, 1891, 1834, 1836, 1835, 1842, 2587, 1838, 1897, + 1841, 2587, 1846, 1856, 1841, 1849, 1851, 2587, 1852, 1846, + + 2587, 1858, 2587, 1854, 2587, 1864, 2587, 1865, 1865, 1856, + 1912, 1856, 1866, 1851, 1864, 2587, 1866, 1874, 1919, 1860, + 1862, 1859, 1883, 2587, 1870, 1877, 1878, 1881, 1870, 2587, + 1924, 1871, 1879, 1888, 1887, 1890, 1891, 1892, 1885, 1880, + 1881, 1881, 1893, 1888, 2587, 1899, 1887, 1940, 1891, 1903, + 1948, 2587, 1894, 1906, 1951, 1900, 1902, 1900, 1901, 1956, + 1909, 1896, 1911, 1916, 1961, 1962, 1963, 1964, 1965, 1922, + 1967, 1968, 1969, 1913, 1917, 1913, 1929, 1912, 1924, 1918, + 2587, 1934, 1978, 2587, 1935, 1920, 1938, 1929, 2587, 1930, + 1944, 1940, 1933, 2587, 2587, 2587, 2587, 2587, 1987, 2587, + + 2587, 2587, 1930, 1938, 1933, 1986, 1952, 1949, 1994, 1955, + 2587, 1996, 1938, 1998, 1941, 1954, 1953, 1954, 1944, 2587, + 1945, 2005, 1958, 1967, 1960, 2004, 2587, 1951, 2587, 1963, + 2587, 2007, 2013, 1955, 1971, 2016, 2017, 2587, 1974, 1968, + 1961, 1981, 1978, 1970, 1974, 2587, 2021, 1970, 2587, 2587, + 1970, 1978, 2025, 1985, 1978, 2033, 1981, 1981, 1977, 1979, + 2038, 2039, 1981, 1997, 1982, 2587, 2043, 1990, 1997, 2046, + 2587, 2587, 1999, 2048, 1996, 2587, 2000, 1999, 2587, 2000, + 2587, 1994, 1994, 2011, 2012, 2057, 2003, 2059, 2060, 2587, + 2061, 2587, 2587, 2587, 2587, 2067, 2070, 2073, 2074, 2076, + + 2079, 2082, 2085 + } ; + +static const flex_int16_t yy_def[2204] = + { 0, + 2196, 2196, 2197, 2197, 2196, 2196, 2196, 2196, 2196, 2196, + 2195, 2195, 2195, 2195, 2195, 2198, 2195, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2199, + 2195, 2195, 2195, 2200, 15, 2195, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2201, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2198, 2195, + 2195, 2195, 2195, 2195, 2195, 2202, 2195, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2199, 2195, 2200, + + 2195, 2195, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2203, 45, 2201, 45, 45, 45, 45, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, +<<<<<<< HEAD 45, 45, 45, 45, 45, 45, 45, 2196, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 45, 45, 2189, 45, @@ -1263,6 +1681,16 @@ static const flex_int16_t yy_def[2198] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, +======= + 45, 45, 45, 45, 45, 45, 45, 2202, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 45, 45, 2195, 45, + + 45, 2195, 45, 45, 45, 45, 45, 45, 2203, 2195, + 2195, 116, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2195, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -1270,21 +1698,32 @@ static const flex_int16_t yy_def[2198] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, +<<<<<<< HEAD 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 45, 45, 45, 45, 2189, 45, 2189, 45, 2189, 45, 116, 2189, 45, 45, +======= + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 45, 45, 45, 45, + 2195, 45, 2195, 45, 2195, 45, 116, 2195, 45, 45, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, +<<<<<<< HEAD 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, +======= + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2195, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, +<<<<<<< HEAD 45, 45, 45, 45, 45, 2189, 2189, 2189, 45, 45, 45, 2189, 45, 2189, 45, 116, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, 45, 45, 45, 45, @@ -1317,10 +1756,45 @@ static const flex_int16_t yy_def[2198] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, 2189, 45, +======= + 45, 45, 45, 45, 45, 2195, 2195, 2195, 45, 45, + 45, 2195, 45, 2195, 45, 116, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2195, 45, 45, 45, 45, + 45, 45, 2195, 45, 45, 45, 45, 45, 45, 45, + 45, 2195, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 2195, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2195, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2195, 45, 2195, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2195, 45, + 2195, 45, 2195, 45, 2195, 45, 45, 45, 2195, 45, + + 2195, 2195, 2195, 45, 45, 45, 45, 2195, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2195, 45, 45, 45, 45, 45, 45, + 45, 45, 2195, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2195, 45, 45, 2195, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2195, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 2195, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2195, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2195, 2195, 45, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, +<<<<<<< HEAD 45, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -1366,10 +1840,58 @@ static const flex_int16_t yy_def[2198] = 45, 45, 45, 45, 45, 45, 45, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, 45, +======= + 45, 45, 2195, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2195, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2195, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2195, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2195, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2195, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2195, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2195, 2195, 45, 45, 45, 45, + 45, 45, 45, 2195, 2195, 45, 45, 45, 45, 45, + 2195, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2195, 45, 45, 2195, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2195, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2195, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2195, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2195, 45, 45, + 45, 45, 45, 45, 45, 2195, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2195, 45, 2195, 45, 45, 45, 2195, 45, 45, + + 45, 45, 45, 2195, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2195, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2195, 45, 45, 45, 45, 2195, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2195, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2195, +>>>>>>> [#225] Added ddsn-ttl-percent parameter + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, +<<<<<<< HEAD 45, 45, 45, 45, 45, 45, 45, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, 45, 45, 2189, 2189, 45, 45, 45, 45, 45, 45, @@ -1410,12 +1932,58 @@ static const flex_int16_t yy_def[2198] = 45, 45, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, 45, 2189, 45, 45, 45, 2189, 45, 45, 45, 2189, 45, 45, 45, 45, +======= + 45, 45, 45, 45, 45, 45, 45, 2195, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2195, + 45, 45, 2195, 2195, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2195, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2195, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 2195, 2195, + 45, 2195, 45, 2195, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2195, 45, 45, 45, 2195, 45, 45, 45, 45, 45, + 2195, 45, 45, 2195, 45, 2195, 45, 2195, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2195, 45, 45, 45, 45, 45, 45, + 45, 2195, 2195, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2195, 45, 45, 45, 2195, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2195, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2195, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2195, 2195, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2195, 45, 45, 45, 45, 45, 2195, 45, 2195, + 45, 45, 2195, 2195, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2195, 45, 45, 45, + 2195, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2195, 45, 45, 2195, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2195, 45, 2195, 45, + 2195, 45, 45, 2195, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2195, 45, 45, 45, 45, 45, + 45, 2195, 45, 45, 2195, 2195, 2195, 45, 45, 2195, + 45, 45, 45, 45, 2195, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2195, 45, 2195, + 45, 45, 45, 2195, 45, 45, 45, 2195, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 2195, 45, 45, 45, 45, 2195, 45, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, 45, 45, 45, 45, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, +<<<<<<< HEAD 45, 45, 45, 45, 45, 45, 45, 45, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 2189, 45, 45, 45, 2189, 45, 45, 45, 2189, 2189, 45, 45, 45, @@ -1446,12 +2014,60 @@ static const flex_int16_t yy_def[2198] = 2189, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, 45, 45, 2189, 45, 45, 45, 45, +======= + 45, 2195, 45, 45, 45, 45, 45, 45, 45, 45, + 2195, 45, 45, 45, 2195, 45, 45, 45, 2195, 2195, + 45, 45, 45, 2195, 2195, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2195, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2195, + + 45, 45, 45, 2195, 45, 45, 2195, 45, 45, 45, + 2195, 45, 45, 45, 45, 45, 2195, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2195, 45, 2195, 45, 45, 45, 2195, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2195, 45, 45, 45, 45, 45, 45, + 2195, 45, 45, 45, 2195, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2195, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 2195, 45, 2195, 45, + 45, 45, 45, 2195, 45, 2195, 45, 45, 45, 45, + 45, 45, 45, 2195, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2195, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2195, 45, 45, 45, 45, 2195, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2195, 45, 45, 45, 45, 45, 2195, 45, 45, + 45, 45, 2195, 2195, 45, 45, 45, 45, 45, 45, + 45, 45, 2195, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2195, 2195, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 2195, 45, + 45, 2195, 45, 45, 45, 45, 45, 45, 45, 45, +>>>>>>> [#225] Added ddsn-ttl-percent parameter + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2195, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, +<<<<<<< HEAD 45, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, 45, 2189, 45, 2189, 45, 2189, 45, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, +======= + 2195, 45, 2195, 45, 2195, 45, 2195, 45, 2195, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2195, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2195, 45, 45, + 45, 2195, 45, 45, 45, 45, 45, 2195, 45, 45, + + 2195, 45, 2195, 45, 2195, 45, 2195, 45, 45, 45, + 45, 45, 45, 45, 45, 2195, 45, 45, 45, 45, + 45, 45, 45, 2195, 45, 45, 45, 45, 45, 2195, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2195, 45, 45, 45, 45, 45, + 45, 2195, 45, 45, 45, 45, 45, 45, 45, 45, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, 45, 45, 45, 2189, 45, 45, 45, 45, 45, 2189, 45, 45, 2189, 45, 2189, 45, 2189, 45, @@ -1462,6 +2078,7 @@ static const flex_int16_t yy_def[2198] = 45, 45, 45, 45, 45, 45, 45, 45, 2189, 45, 45, 45, 45, 45, 45, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, +<<<<<<< HEAD 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2189, 45, 45, 2189, 45, 45, 45, 45, 2189, 45, 45, 45, 45, 2189, 2189, 2189, @@ -1477,15 +2094,40 @@ static const flex_int16_t yy_def[2198] = 45, 45, 2189, 45, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 2189, 45, 2189, 2189, 2189, 0, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189 +======= + 2195, 45, 45, 2195, 45, 45, 45, 45, 2195, 45, + 45, 45, 45, 2195, 2195, 2195, 2195, 2195, 45, 2195, + + 2195, 2195, 45, 45, 45, 45, 45, 45, 45, 45, + 2195, 45, 45, 45, 45, 45, 45, 45, 45, 2195, + 45, 45, 45, 45, 45, 45, 2195, 45, 2195, 45, + 2195, 45, 45, 45, 45, 45, 45, 2195, 45, 45, + 45, 45, 45, 45, 45, 2195, 45, 45, 2195, 2195, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2195, 45, 45, 45, 45, + 2195, 2195, 45, 45, 45, 2195, 45, 45, 2195, 45, + 2195, 45, 45, 45, 45, 45, 45, 45, 45, 2195, + 45, 2195, 2195, 2195, 0, 2195, 2195, 2195, 2195, 2195, +>>>>>>> [#225] Added ddsn-ttl-percent parameter + 2195, 2195, 2195 } ; +<<<<<<< HEAD static const flex_int16_t yy_nxt[2655] = { 0, 2189, 13, 14, 13, 2189, 15, 16, 2189, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 85, 819, 37, 14, 37, 86, 25, 26, 38, 101, 2189, 27, 37, 14, 37, 42, 28, 42, 38, 91, +======= +static const flex_int16_t yy_nxt[2661] = + { 0, + 2195, 13, 14, 13, 2195, 15, 16, 2195, 17, 18, + 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, + 85, 819, 37, 14, 37, 86, 25, 26, 38, 101, + 2195, 27, 37, 14, 37, 42, 28, 42, 38, 91, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 92, 29, 201, 30, 13, 14, 13, 90, 91, 25, 31, 92, 13, 14, 13, 13, 14, 13, 32, 40, 820, 13, 14, 13, 33, 40, 102, 91, 92, 201, @@ -1497,7 +2139,11 @@ static const flex_int16_t yy_nxt[2655] = 107, 42, 41, 29, 109, 30, 112, 113, 93, 137, 41, 25, 31, 103, 138, 381, 88, 139, 88, 106, 32, 89, 89, 89, 89, 89, 33, 109, 107, 112, +<<<<<<< HEAD 864, 113, 382, 34, 35, 44, 44, 44, 45, 45, +======= + 863, 113, 382, 34, 35, 44, 44, 44, 45, 45, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 45, 48, 49, 50, 45, 51, 52, 53, 45, 45, 45, @@ -1524,18 +2170,30 @@ static const flex_int16_t yy_nxt[2655] = 152, 161, 169, 189, 162, 163, 170, 187, 208, 171, 176, 177, 203, 112, 207, 164, 172, 173, 165, 191, 110, 174, 175, 184, 190, 197, 200, 101, 185, 192, +<<<<<<< HEAD 111, 84, 84, 84, 84, 84, 80, 865, 81, 81, 81, 81, 81, 178, 82, 179, 718, 194, 180, 181, 193, 82, 200, 197, 88, 866, 88, 250, 182, 89, +======= + 111, 84, 84, 84, 84, 84, 80, 864, 81, 81, + + 81, 81, 81, 178, 82, 179, 718, 194, 180, 181, + 193, 82, 200, 197, 88, 865, 88, 250, 182, 89, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 89, 89, 89, 89, 102, 183, 80, 82, 83, 83, 83, 83, 83, 100, 82, 84, 84, 84, 84, 84, 100, 82, 89, 89, 89, 89, 89, 204, 82, 89, 89, 89, 89, 89, 206, 197, 216, 222, 228, 229, 235, 251, 236, 238, 82, 217, 223, 224, 230, 218, 100, 82, 213, 204, 100, 204, 239, 270, 100, 237, +<<<<<<< HEAD 240, 245, 206, 214, 246, 255, 100, 260, 247, 867, 100, 285, 100, 100, 211, 286, 281, 868, 256, 282, +======= + 240, 245, 206, 214, 246, 255, 100, 260, 247, 866, + 100, 285, 100, 100, 211, 286, 281, 867, 256, 282, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 283, 268, 212, 212, 212, 212, 212, 288, 261, 275, 322, 212, 212, 212, 212, 212, 212, 304, 338, 205, @@ -1553,6 +2211,7 @@ static const flex_int16_t yy_nxt[2655] = 490, 392, 507, 337, 337, 337, 337, 337, 337, 536, 405, 334, 563, 457, 530, 461, 523, 524, 525, 595, 531, 463, 526, 537, 596, 450, 466, 466, 466, 466, +<<<<<<< HEAD 466, 763, 794, 795, 764, 466, 466, 466, 466, 466, 466, 556, 566, 575, 600, 557, 567, 576, 869, 604, 508, 605, 870, 631, 553, 509, 600, 622, 466, 466, @@ -1571,6 +2230,26 @@ static const flex_int16_t yy_nxt[2655] = 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 941, 942, 940, 943, 944, 945, 946, 947, 948, +======= + 466, 764, 795, 796, 765, 466, 466, 466, 466, 466, + 466, 556, 566, 575, 600, 557, 567, 576, 868, 604, + 508, 605, 869, 632, 553, 509, 600, 622, 466, 466, + 466, 466, 466, 466, 668, 623, 633, 624, 625, 626, + 627, 628, 600, 741, 669, 861, 604, 870, 605, 45, + + 45, 45, 45, 45, 607, 871, 872, 862, 45, 45, + 45, 45, 45, 45, 644, 709, 744, 739, 873, 645, + 710, 741, 743, 745, 832, 874, 875, 876, 877, 833, + 878, 45, 45, 45, 45, 45, 45, 879, 880, 881, + 882, 883, 884, 885, 886, 887, 873, 888, 874, 889, + 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, + 900, 901, 902, 903, 904, 905, 906, 907, 834, 908, + 909, 912, 913, 914, 910, 915, 916, 917, 911, 918, + 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, + 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, + + 939, 940, 942, 943, 941, 944, 945, 946, 947, 948, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 949, 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, @@ -1583,7 +2262,11 @@ static const flex_int16_t yy_nxt[2655] = 1011, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, +<<<<<<< HEAD 1059, 1060, 1061, 1062, 1058, 1063, 1064, 1065, 1066, 1067, +======= + 1058, 1060, 1061, 1062, 1063, 1059, 1064, 1065, 1066, 1067, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1086, 1087, 1088, 1085, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, @@ -1597,26 +2280,43 @@ static const flex_int16_t yy_nxt[2655] = 1158, 1159, 1160, 1161, 1162, 1163, 1141, 1164, 1165, 1140, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, +<<<<<<< HEAD 1186, 1187, 1188, 1189, 1192, 1193, 1194, 1195, 1190, 1196, +======= + 1186, 1187, 1188, 1189, 1190, 1193, 1194, 1195, 1196, 1191, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1217, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, +<<<<<<< HEAD 1247, 1191, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, +======= + 1247, 1248, 1192, 1249, 1250, 1251, 1252, 1253, 1254, 1255, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1266, 1265, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1264, 1265, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, +<<<<<<< HEAD 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1313, 1315, 1316, 1317, 1312, 1318, 1319, 1320, 1321, 1322, 1323, 1324, +======= + 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1314, + 1316, 1317, 1318, 1313, 1319, 1320, 1321, 1322, 1323, 1324, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 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, +<<<<<<< HEAD 1355, 1356, 1314, 1357, 1358, 1359, 1360, 1361, 1362, 1363, +======= + 1355, 1356, 1357, 1315, 1358, 1359, 1360, 1361, 1362, 1363, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 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, @@ -1628,6 +2328,7 @@ static const flex_int16_t yy_nxt[2655] = 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, 1461, +<<<<<<< HEAD 1462, 1463, 1464, 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, 1492, 1493, @@ -1644,10 +2345,29 @@ static const flex_int16_t yy_nxt[2655] = 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1581, 1604, 1605, 1606, 1607, 1608, 1609, +======= + 1462, 1463, 1464, 1465, 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, 1493, + 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, + 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, + 1514, 1486, 1515, 1516, 1517, 1518, 1466, 1519, 1520, 1521, + 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, + + 1532, 1533, 1492, 1534, 1535, 1536, 1537, 1539, 1540, 1541, + 1542, 1543, 1544, 1545, 1538, 1546, 1547, 1548, 1549, 1550, + 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, + 1561, 1562, 1563, 1564, 1565, 1567, 1568, 1570, 1569, 1566, + 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, + 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, + 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, + 1601, 1602, 1603, 1604, 1605, 1583, 1606, 1607, 1608, 1609, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 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, +<<<<<<< HEAD 1640, 1641, 1642, 1643, 1644, 1645, 1649, 1646, 1650, 1651, 1647, 1652, 1653, 1648, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, @@ -1655,14 +2375,29 @@ static const flex_int16_t yy_nxt[2655] = 1681, 1682, 1683, 1684, 1685, 1675, 1686, 1687, 1688, 1689, 1663, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, +======= + 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1652, + 1649, 1653, 1654, 1650, 1655, 1656, 1651, 1657, 1658, 1659, + 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, + 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1679, 1680, + 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1678, 1689, + 1690, 1691, 1692, 1666, 1693, 1694, 1695, 1696, 1697, 1698, + 1699, 1700, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, +<<<<<<< HEAD 1750, 1751, 1752, 1753, 1754, 1697, 1755, 1756, 1757, 1758, 1759, 1761, 1762, 1763, 1764, 1760, 1765, 1766, 1767, 1741, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, +======= + 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1701, + 1759, 1760, 1761, 1762, 1763, 1764, 1766, 1767, 1768, 1769, + 1765, 1770, 1771, 1745, 1772, 1773, 1774, 1775, 1776, 1777, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, @@ -1672,8 +2407,13 @@ static const flex_int16_t yy_nxt[2655] = 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, +<<<<<<< HEAD 1858, 1859, 1860, 1861, 1862, 1863, 1865, 1866, 1867, 1868, 1864, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, +======= + 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, + 1868, 1869, 1871, 1872, 1873, 1874, 1870, 1875, 1876, 1877, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, @@ -1683,8 +2423,13 @@ static const flex_int16_t yy_nxt[2655] = 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, +<<<<<<< HEAD 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1967, 1968, 1966, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, +======= + 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, + 1968, 1969, 1970, 1971, 1973, 1974, 1972, 1975, 1976, 1977, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, @@ -1704,6 +2449,7 @@ static const flex_int16_t yy_nxt[2655] = 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, +<<<<<<< HEAD 2148, 2150, 2149, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, @@ -1777,6 +2523,81 @@ static const flex_int16_t yy_nxt[2655] = } ; static const flex_int16_t yy_chk[2655] = +======= + 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2156, 2155, 2157, + 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, + 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, + 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, + 2188, 2189, 2190, 2191, 2192, 2193, 2194, 12, 12, 12, + 36, 36, 36, 79, 98, 79, 100, 100, 100, 114, + 114, 114, 188, 860, 188, 209, 209, 209, 859, 858, + 857, 856, 855, 854, 853, 852, 851, 850, 849, 848, + + 847, 846, 845, 844, 843, 842, 841, 840, 839, 838, + 837, 836, 835, 831, 830, 829, 828, 827, 826, 825, + 824, 823, 822, 821, 818, 817, 816, 815, 814, 813, + 812, 811, 810, 809, 808, 807, 806, 805, 804, 803, + 802, 801, 800, 799, 798, 797, 794, 793, 792, 791, + 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, + 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, + 770, 769, 768, 767, 766, 763, 762, 761, 760, 759, + 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, + 748, 747, 746, 742, 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, 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, + 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, + 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, + 647, 646, 643, 642, 641, 640, 639, 638, 637, 636, + 635, 634, 631, 630, 629, 621, 620, 619, 618, 617, + + 616, 615, 614, 613, 612, 611, 610, 609, 608, 606, + 603, 602, 601, 599, 598, 597, 594, 593, 592, 591, + 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, + 580, 579, 578, 577, 574, 573, 572, 571, 570, 569, + 568, 565, 564, 561, 560, 559, 558, 555, 554, 551, + 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, + 540, 539, 538, 534, 533, 532, 529, 528, 527, 522, + 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, + 511, 510, 505, 504, 503, 502, 501, 500, 499, 498, + 497, 496, 495, 494, 493, 492, 491, 488, 487, 486, + + 485, 482, 481, 480, 479, 478, 477, 476, 475, 474, + 473, 472, 471, 470, 469, 467, 465, 464, 462, 460, + 458, 455, 454, 453, 452, 451, 449, 448, 447, 446, + 444, 443, 442, 439, 438, 437, 436, 435, 434, 433, + 432, 431, 430, 429, 428, 427, 424, 423, 422, 421, + 420, 419, 418, 417, 416, 415, 414, 411, 410, 407, + 406, 403, 402, 401, 400, 398, 397, 396, 395, 394, + 393, 389, 388, 387, 386, 385, 384, 383, 380, 379, + 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, + 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, + + 358, 357, 356, 355, 354, 348, 347, 346, 345, 344, + 343, 342, 341, 210, 335, 333, 331, 328, 326, 319, + 318, 317, 316, 315, 313, 312, 308, 307, 306, 303, + 302, 301, 297, 287, 284, 280, 279, 274, 273, 272, + 269, 267, 266, 265, 264, 263, 262, 259, 258, 257, + 254, 253, 252, 249, 248, 244, 243, 234, 233, 232, + 231, 227, 226, 225, 221, 220, 219, 215, 210, 199, + 198, 196, 195, 186, 166, 143, 108, 105, 104, 43, + 99, 97, 96, 87, 43, 2195, 11, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, + + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195 + } ; + +static const flex_int16_t yy_chk[2661] = +>>>>>>> [#225] Added ddsn-ttl-percent parameter { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1849,6 +2670,7 @@ static const flex_int16_t yy_chk[2655] = 360, 261, 376, 212, 212, 212, 212, 212, 212, 398, 273, 314, 423, 323, 394, 329, 390, 390, 390, 453, 394, 332, 390, 399, 453, 314, 337, 337, 337, 337, +<<<<<<< HEAD 337, 627, 659, 659, 627, 337, 337, 337, 337, 337, 337, 418, 426, 434, 459, 418, 426, 434, 734, 465, 376, 465, 735, 489, 415, 376, 468, 485, 337, 337, @@ -1867,6 +2689,26 @@ static const flex_int16_t yy_chk[2655] = 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 803, 806, 808, 809, 810, 811, 812, +======= + 337, 628, 660, 660, 628, 337, 337, 337, 337, 337, + 337, 418, 426, 434, 459, 418, 426, 434, 733, 465, + 376, 465, 734, 489, 415, 376, 468, 485, 337, 337, + 337, 337, 337, 337, 525, 485, 489, 485, 485, 485, + 485, 485, 459, 605, 525, 727, 465, 735, 465, 466, + + 466, 466, 466, 466, 468, 736, 737, 727, 466, 466, + 466, 466, 466, 466, 501, 568, 609, 607, 740, 501, + 568, 605, 607, 609, 698, 741, 742, 743, 744, 698, + 745, 466, 466, 466, 466, 466, 466, 746, 747, 748, + 749, 750, 751, 752, 753, 753, 740, 753, 741, 754, + 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 770, 771, 772, 698, 773, + 774, 775, 776, 777, 774, 778, 779, 780, 774, 781, + 782, 784, 785, 786, 787, 788, 789, 790, 791, 792, + 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, + + 803, 804, 805, 806, 804, 807, 809, 810, 811, 812, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 813, 814, 815, 816, 817, 818, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, @@ -1878,9 +2720,15 @@ static const flex_int16_t yy_chk[2655] = 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 874, 903, 904, 905, 906, 907, 908, 909, 910, 911, +<<<<<<< HEAD 912, 913, 914, 915, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 922, 927, 928, 929, 930, 931, 932, 933, 936, 937, 938, 939, 940, 941, 942, 945, +======= + 912, 913, 914, 915, 916, 918, 919, 920, 921, 922, + 923, 924, 925, 926, 927, 923, 928, 929, 930, 931, + 932, 933, 934, 937, 938, 939, 940, 941, 942, 943, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 946, 947, 948, 949, 950, 952, 953, 954, 955, 956, 953, 957, 958, 959, 960, 962, 963, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, @@ -1891,15 +2739,22 @@ static const flex_int16_t yy_chk[2655] = 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1011, 1035, 1036, 1010, +<<<<<<< HEAD 1037, 1038, 1039, 1040, 1041, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1066, 1067, 1062, 1068, +======= + 1037, 1038, 1039, 1040, 1041, 1042, 1044, 1045, 1046, 1047, + 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, + 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1067, 1068, 1063, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1093, 1095, 1096, 1097, 1099, 1100, 1101, 1088, 1102, 1103, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, +<<<<<<< HEAD 1122, 1062, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1143, 1141, 1144, 1145, 1146, 1148, 1149, 1150, 1151, 1152, 1153, @@ -1908,15 +2763,30 @@ static const flex_int16_t yy_chk[2655] = 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1190, 1191, 1192, 1193, 1194, 1195, 1191, 1196, 1197, 1198, 1199, 1200, 1201, 1202, +======= + 1122, 1124, 1063, 1125, 1126, 1127, 1128, 1129, 1130, 1131, + 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1143, + 1141, 1144, 1145, 1146, 1148, 1149, 1150, 1151, 1152, 1153, + 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, + 1164, 1165, 1166, 1167, 1168, 1170, 1140, 1141, 1171, 1172, + 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, + 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1191, 1192, 1193, + 1194, 1195, 1196, 1192, 1197, 1198, 1199, 1200, 1201, 1202, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 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, 1229, 1230, 1231, 1232, 1233, +<<<<<<< HEAD 1234, 1235, 1192, 1236, 1237, 1238, 1239, 1241, 1242, 1245, +======= + 1234, 1235, 1236, 1193, 1237, 1238, 1239, 1241, 1242, 1245, +>>>>>>> [#225] Added ddsn-ttl-percent parameter 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, +<<<<<<< HEAD 1288, 1264, 1289, 1290, 1291, 1292, 1293, 1265, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1310, 1312, 1314, 1315, 1316, 1317, 1318, 1319, @@ -2070,6 +2940,161 @@ static const flex_int16_t yy_chk[2655] = 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189 +======= + 1287, 1264, 1289, 1290, 1291, 1292, 1293, 1265, 1294, 1295, + 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, + 1306, 1307, 1308, 1311, 1313, 1315, 1316, 1317, 1318, 1319, + + 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, + 1330, 1332, 1333, 1334, 1336, 1337, 1338, 1339, 1340, 1342, + 1343, 1345, 1347, 1349, 1350, 1351, 1352, 1353, 1354, 1355, + 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1365, 1366, + 1367, 1368, 1369, 1370, 1371, 1374, 1375, 1376, 1377, 1378, + 1379, 1380, 1381, 1382, 1383, 1385, 1386, 1387, 1389, 1390, + 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, + 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, + 1411, 1382, 1412, 1414, 1415, 1416, 1359, 1417, 1418, 1419, + 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, + + 1430, 1431, 1389, 1432, 1434, 1435, 1436, 1437, 1438, 1439, + 1440, 1441, 1442, 1443, 1436, 1444, 1447, 1448, 1449, 1450, + 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, + 1461, 1463, 1464, 1465, 1466, 1467, 1469, 1471, 1469, 1466, + 1472, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, + 1484, 1485, 1486, 1488, 1489, 1490, 1492, 1493, 1494, 1495, + 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, + 1506, 1507, 1508, 1509, 1510, 1486, 1512, 1513, 1515, 1516, + 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, + 1528, 1530, 1532, 1533, 1535, 1536, 1537, 1538, 1539, 1540, + + 1541, 1542, 1543, 1544, 1546, 1547, 1548, 1549, 1550, 1551, + 1553, 1554, 1558, 1559, 1561, 1562, 1563, 1564, 1566, 1567, + 1566, 1568, 1569, 1566, 1570, 1571, 1566, 1572, 1573, 1574, + 1575, 1576, 1577, 1579, 1581, 1582, 1583, 1585, 1586, 1587, + 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, + 1599, 1600, 1601, 1602, 1603, 1605, 1606, 1607, 1596, 1608, + 1610, 1611, 1612, 1583, 1613, 1614, 1615, 1616, 1617, 1618, + 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, 1653, 1654, 1655, 1656, 1657, 1658, + 1659, 1660, 1662, 1663, 1664, 1666, 1667, 1668, 1671, 1672, + 1673, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1619, + 1684, 1685, 1686, 1687, 1688, 1690, 1691, 1692, 1693, 1694, + 1690, 1695, 1696, 1666, 1697, 1698, 1699, 1701, 1702, 1703, + 1705, 1706, 1708, 1709, 1710, 1712, 1713, 1714, 1715, 1716, + 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, + 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, + 1738, 1739, 1740, 1741, 1742, 1743, 1745, 1747, 1748, 1749, + 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, + + 1761, 1762, 1763, 1765, 1766, 1767, 1768, 1769, 1770, 1772, + 1773, 1774, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, + 1784, 1785, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, + 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, + 1805, 1806, 1808, 1810, 1811, 1812, 1806, 1813, 1815, 1817, + 1818, 1819, 1820, 1821, 1822, 1823, 1825, 1826, 1827, 1828, + 1829, 1830, 1831, 1832, 1833, 1834, 1836, 1837, 1838, 1839, + 1840, 1841, 1842, 1843, 1844, 1846, 1847, 1848, 1849, 1851, + 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, + 1863, 1864, 1865, 1866, 1867, 1869, 1870, 1871, 1872, 1875, + + 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1884, 1885, 1886, + 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, + 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, + 1910, 1911, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, + 1921, 1922, 1923, 1924, 1925, 1926, 1924, 1927, 1928, 1929, + 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1939, 1940, + 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, + 1952, 1954, 1956, 1958, 1960, 1961, 1962, 1963, 1964, 1965, + 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, + 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, + + 1987, 1989, 1990, 1991, 1993, 1994, 1995, 1996, 1997, 1999, + 2000, 2002, 2004, 2006, 2008, 2009, 2010, 2011, 2012, 2013, + 2014, 2015, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2025, + 2026, 2027, 2028, 2029, 2031, 2032, 2033, 2034, 2035, 2036, + 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2046, 2047, + 2048, 2049, 2050, 2051, 2053, 2054, 2055, 2056, 2057, 2058, + 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, + 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, + 2079, 2080, 2082, 2083, 2085, 2086, 2087, 2088, 2090, 2091, + 2092, 2093, 2099, 2103, 2104, 2105, 2106, 2107, 2108, 2109, + + 2110, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2121, + 2122, 2123, 2124, 2125, 2126, 2128, 2130, 2132, 2133, 2134, + 2135, 2136, 2137, 2139, 2140, 2141, 2142, 2143, 2142, 2144, + 2145, 2147, 2148, 2151, 2152, 2153, 2154, 2155, 2156, 2157, + 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2167, 2168, + 2169, 2170, 2173, 2174, 2175, 2177, 2178, 2180, 2182, 2183, + 2184, 2185, 2186, 2187, 2188, 2189, 2191, 2196, 2196, 2196, + 2197, 2197, 2197, 2198, 2199, 2198, 2200, 2200, 2200, 2201, + 2201, 2201, 2202, 726, 2202, 2203, 2203, 2203, 725, 724, + 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, + + 712, 711, 710, 708, 707, 706, 705, 704, 703, 702, + 701, 700, 699, 697, 696, 694, 693, 692, 691, 690, + 689, 688, 687, 686, 684, 683, 682, 681, 679, 678, + 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, + 666, 665, 664, 663, 662, 661, 659, 658, 657, 656, + 655, 654, 652, 651, 650, 649, 648, 647, 646, 645, + 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, + 633, 632, 631, 630, 629, 627, 626, 625, 624, 623, + 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, + 612, 611, 610, 606, 600, 599, 598, 597, 596, 594, + + 592, 590, 588, 587, 586, 585, 584, 583, 582, 581, + 580, 579, 578, 577, 576, 574, 573, 572, 571, 570, + 569, 567, 566, 565, 564, 563, 562, 561, 560, 559, + 558, 557, 556, 555, 553, 551, 550, 549, 548, 547, + 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, + 536, 535, 533, 532, 531, 530, 529, 528, 527, 526, + 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, + 514, 513, 512, 511, 510, 509, 508, 507, 505, 504, + 503, 502, 500, 499, 498, 497, 496, 495, 494, 493, + 491, 490, 488, 487, 486, 484, 482, 481, 480, 479, + + 478, 477, 475, 474, 473, 472, 471, 470, 469, 467, + 463, 461, 460, 458, 455, 454, 452, 451, 450, 449, + 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, + 438, 437, 436, 435, 433, 432, 431, 430, 429, 428, + 427, 425, 424, 422, 421, 420, 419, 417, 416, 414, + 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, + 403, 402, 401, 397, 396, 395, 393, 392, 391, 389, + 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, + 378, 377, 375, 374, 373, 372, 371, 370, 369, 368, + 367, 366, 365, 364, 363, 362, 361, 359, 358, 357, + + 356, 354, 353, 352, 351, 350, 349, 348, 347, 346, + 345, 344, 343, 342, 341, 339, 336, 334, 330, 328, + 326, 319, 318, 317, 316, 315, 313, 312, 311, 310, + 308, 307, 306, 304, 303, 302, 301, 300, 299, 298, + 297, 296, 295, 294, 293, 292, 290, 289, 288, 287, + 286, 285, 284, 283, 282, 281, 280, 278, 277, 275, + 274, 272, 271, 270, 269, 267, 266, 265, 264, 263, + 262, 260, 259, 258, 257, 256, 255, 254, 252, 251, + 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, + 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, + + 229, 228, 227, 226, 225, 222, 221, 220, 219, 218, + 217, 216, 215, 209, 207, 205, 203, 198, 195, 187, + 186, 185, 184, 183, 181, 180, 177, 176, 175, 173, + 172, 171, 169, 167, 165, 163, 162, 160, 159, 158, + 156, 154, 153, 152, 151, 150, 149, 147, 146, 145, + 143, 142, 141, 139, 138, 136, 135, 131, 130, 129, + 128, 126, 125, 124, 122, 121, 120, 118, 114, 105, + 104, 98, 97, 77, 72, 66, 52, 49, 48, 43, + 41, 39, 38, 24, 14, 11, 2195, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, + + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, + 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195 +>>>>>>> [#225] Added ddsn-ttl-percent parameter } ; static yy_state_type yy_last_accepting_state; @@ -2091,6 +3116,7 @@ static const flex_int16_t yy_rule_linenum[229] = 870, 882, 894, 906, 918, 930, 941, 952, 961, 970, 979, 990, 1001, 1010, 1019, 1030, 1041, 1052, 1063, 1074, +<<<<<<< HEAD 1085, 1096, 1108, 1118, 1129, 1138, 1147, 1162, 1178, 1187, 1196, 1205, 1214, 1223, 1232, 1241, 1250, 1259, 1268, 1277, 1301, 1325, 1334, 1344, 1354, 1363, 1373, 1384, 1393, 1402, @@ -2105,6 +3131,22 @@ static const flex_int16_t yy_rule_linenum[229] = 2074, 2083, 2092, 2101, 2110, 2119, 2128, 2137, 2146, 2155, 2256, 2272, 2321, 2329, 2344, 2345, 2346, 2347, 2348, 2349, 2351, 2369, 2382, 2387, 2391, 2393, 2395, 2397 +======= + 1085, 1096, 1107, 1118, 1128, 1139, 1148, 1157, 1172, 1188, + 1197, 1206, 1215, 1224, 1233, 1242, 1251, 1260, 1269, 1278, + 1302, 1326, 1335, 1345, 1355, 1364, 1374, 1385, 1394, 1403, + 1412, 1421, 1430, 1441, 1452, 1463, 1473, 1482, 1491, 1500, + 1511, 1522, 1533, 1544, 1555, 1564, 1573, 1582, 1591, 1600, + 1609, 1618, 1627, 1636, 1646, 1658, 1671, 1680, 1689, 1698, + 1708, 1718, 1727, 1738, 1748, 1757, 1767, 1777, 1786, 1795, + 1804, 1813, 1823, 1832, 1841, 1850, 1859, 1868, 1877, 1886, + 1895, 1904, 1913, 1922, 1931, 1940, 1949, 1958, 1967, 1976, + 1985, 1994, 2003, 2012, 2021, 2030, 2039, 2048, 2057, 2066, + + 2075, 2084, 2093, 2102, 2111, 2120, 2129, 2138, 2147, 2156, + 2257, 2273, 2322, 2330, 2345, 2346, 2347, 2348, 2349, 2350, + 2352, 2370, 2383, 2388, 2392, 2394, 2396, 2398 +>>>>>>> [#225] Added ddsn-ttl-percent parameter } ; /* The intent behind this definition is that it'll catch @@ -2158,7 +3200,11 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) +<<<<<<< HEAD #line 2161 "dhcp6_lexer.cc" +======= +#line 2166 "dhcp6_lexer.cc" +>>>>>>> [#225] Added ddsn-ttl-percent parameter /* 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 @@ -2184,8 +3230,13 @@ using namespace isc::dhcp; by moving it ahead by yyleng bytes. yyleng specifies the length of the currently matched token. */ #define YY_USER_ACTION driver.loc_.columns(yyleng); +<<<<<<< HEAD #line 2187 "dhcp6_lexer.cc" #line 2188 "dhcp6_lexer.cc" +======= +#line 2192 "dhcp6_lexer.cc" +#line 2193 "dhcp6_lexer.cc" +>>>>>>> [#225] Added ddsn-ttl-percent parameter #define INITIAL 0 #define COMMENT 1 @@ -2515,7 +3566,11 @@ YY_DECL } +<<<<<<< HEAD #line 2518 "dhcp6_lexer.cc" +======= +#line 2523 "dhcp6_lexer.cc" +>>>>>>> [#225] Added ddsn-ttl-percent parameter while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2544,13 +3599,21 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; +<<<<<<< HEAD if ( yy_current_state >= 2190 ) +======= + if ( yy_current_state >= 2196 ) +>>>>>>> [#225] Added ddsn-ttl-percent parameter yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } +<<<<<<< HEAD while ( yy_current_state != 2189 ); +======= + while ( yy_current_state != 2195 ); +>>>>>>> [#225] Added ddsn-ttl-percent parameter yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -3869,14 +4932,15 @@ YY_RULE_SETUP YY_BREAK case 103: YY_RULE_SETUP -#line 1108 "dhcp6_lexer.ll" +#line 1107 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DDNS_TTL_PERCENT(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("ddns_ttl-percent", driver.loc_); } } YY_BREAK @@ -3886,6 +4950,19 @@ YY_RULE_SETUP { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_); + } +} + YY_BREAK +case 105: +YY_RULE_SETUP +#line 1128 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_STORE_EXTENDED_INFO(driver.loc_); @@ -3894,9 +4971,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 106: YY_RULE_SETUP -#line 1129 "dhcp6_lexer.ll" +#line 1139 "dhcp6_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3906,9 +4983,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 107: YY_RULE_SETUP -#line 1138 "dhcp6_lexer.ll" +#line 1148 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3918,9 +4995,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 108: YY_RULE_SETUP -#line 1147 "dhcp6_lexer.ll" +#line 1157 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3936,9 +5013,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 1162 "dhcp6_lexer.ll" +#line 1172 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3955,9 +5032,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 110: YY_RULE_SETUP -#line 1178 "dhcp6_lexer.ll" +#line 1188 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3967,9 +5044,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 111: YY_RULE_SETUP -#line 1187 "dhcp6_lexer.ll" +#line 1197 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3979,9 +5056,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 112: YY_RULE_SETUP -#line 1196 "dhcp6_lexer.ll" +#line 1206 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4005,7 +5082,11 @@ YY_RULE_SETUP YY_BREAK case 113: YY_RULE_SETUP +<<<<<<< HEAD #line 1214 "dhcp6_lexer.ll" +======= +#line 1215 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4017,7 +5098,11 @@ YY_RULE_SETUP YY_BREAK case 114: YY_RULE_SETUP +<<<<<<< HEAD #line 1223 "dhcp6_lexer.ll" +======= +#line 1224 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4029,7 +5114,11 @@ YY_RULE_SETUP YY_BREAK case 115: YY_RULE_SETUP +<<<<<<< HEAD #line 1232 "dhcp6_lexer.ll" +======= +#line 1233 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4041,7 +5130,11 @@ YY_RULE_SETUP YY_BREAK case 116: YY_RULE_SETUP +<<<<<<< HEAD #line 1241 "dhcp6_lexer.ll" +======= +#line 1242 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4053,7 +5146,11 @@ YY_RULE_SETUP YY_BREAK case 117: YY_RULE_SETUP +<<<<<<< HEAD #line 1250 "dhcp6_lexer.ll" +======= +#line 1251 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4065,7 +5162,11 @@ YY_RULE_SETUP YY_BREAK case 118: YY_RULE_SETUP +<<<<<<< HEAD #line 1259 "dhcp6_lexer.ll" +======= +#line 1260 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4077,7 +5178,11 @@ YY_RULE_SETUP YY_BREAK case 119: YY_RULE_SETUP +<<<<<<< HEAD #line 1268 "dhcp6_lexer.ll" +======= +#line 1269 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::POOLS: @@ -4089,7 +5194,11 @@ YY_RULE_SETUP YY_BREAK case 120: YY_RULE_SETUP +<<<<<<< HEAD #line 1277 "dhcp6_lexer.ll" +======= +#line 1278 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4116,7 +5225,11 @@ YY_RULE_SETUP YY_BREAK case 121: YY_RULE_SETUP +<<<<<<< HEAD #line 1301 "dhcp6_lexer.ll" +======= +#line 1302 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4143,7 +5256,11 @@ YY_RULE_SETUP YY_BREAK case 122: YY_RULE_SETUP +<<<<<<< HEAD #line 1325 "dhcp6_lexer.ll" +======= +#line 1326 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4155,7 +5272,11 @@ YY_RULE_SETUP YY_BREAK case 123: YY_RULE_SETUP +<<<<<<< HEAD #line 1334 "dhcp6_lexer.ll" +======= +#line 1335 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4168,7 +5289,11 @@ YY_RULE_SETUP YY_BREAK case 124: YY_RULE_SETUP +<<<<<<< HEAD #line 1344 "dhcp6_lexer.ll" +======= +#line 1345 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4181,7 +5306,11 @@ YY_RULE_SETUP YY_BREAK case 125: YY_RULE_SETUP +<<<<<<< HEAD #line 1354 "dhcp6_lexer.ll" +======= +#line 1355 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4193,7 +5322,11 @@ YY_RULE_SETUP YY_BREAK case 126: YY_RULE_SETUP +<<<<<<< HEAD #line 1363 "dhcp6_lexer.ll" +======= +#line 1364 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4206,7 +5339,11 @@ YY_RULE_SETUP YY_BREAK case 127: YY_RULE_SETUP +<<<<<<< HEAD #line 1373 "dhcp6_lexer.ll" +======= +#line 1374 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4220,7 +5357,11 @@ YY_RULE_SETUP YY_BREAK case 128: YY_RULE_SETUP +<<<<<<< HEAD #line 1384 "dhcp6_lexer.ll" +======= +#line 1385 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -4232,7 +5373,11 @@ YY_RULE_SETUP YY_BREAK case 129: YY_RULE_SETUP +<<<<<<< HEAD #line 1393 "dhcp6_lexer.ll" +======= +#line 1394 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -4244,7 +5389,11 @@ YY_RULE_SETUP YY_BREAK case 130: YY_RULE_SETUP +<<<<<<< HEAD #line 1402 "dhcp6_lexer.ll" +======= +#line 1403 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -4256,7 +5405,11 @@ YY_RULE_SETUP YY_BREAK case 131: YY_RULE_SETUP +<<<<<<< HEAD #line 1411 "dhcp6_lexer.ll" +======= +#line 1412 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -4268,7 +5421,11 @@ YY_RULE_SETUP YY_BREAK case 132: YY_RULE_SETUP +<<<<<<< HEAD #line 1420 "dhcp6_lexer.ll" +======= +#line 1421 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -4280,7 +5437,11 @@ YY_RULE_SETUP YY_BREAK case 133: YY_RULE_SETUP +<<<<<<< HEAD #line 1429 "dhcp6_lexer.ll" +======= +#line 1430 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4294,7 +5455,11 @@ YY_RULE_SETUP YY_BREAK case 134: YY_RULE_SETUP +<<<<<<< HEAD #line 1440 "dhcp6_lexer.ll" +======= +#line 1441 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4308,7 +5473,11 @@ YY_RULE_SETUP YY_BREAK case 135: YY_RULE_SETUP +<<<<<<< HEAD #line 1451 "dhcp6_lexer.ll" +======= +#line 1452 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4322,7 +5491,11 @@ YY_RULE_SETUP YY_BREAK case 136: YY_RULE_SETUP +<<<<<<< HEAD #line 1462 "dhcp6_lexer.ll" +======= +#line 1463 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4335,7 +5508,11 @@ YY_RULE_SETUP YY_BREAK case 137: YY_RULE_SETUP +<<<<<<< HEAD #line 1472 "dhcp6_lexer.ll" +======= +#line 1473 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4347,7 +5524,11 @@ YY_RULE_SETUP YY_BREAK case 138: YY_RULE_SETUP +<<<<<<< HEAD #line 1481 "dhcp6_lexer.ll" +======= +#line 1482 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4359,7 +5540,11 @@ YY_RULE_SETUP YY_BREAK case 139: YY_RULE_SETUP +<<<<<<< HEAD #line 1490 "dhcp6_lexer.ll" +======= +#line 1491 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4371,7 +5556,11 @@ YY_RULE_SETUP YY_BREAK case 140: YY_RULE_SETUP +<<<<<<< HEAD #line 1499 "dhcp6_lexer.ll" +======= +#line 1500 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4385,7 +5574,11 @@ YY_RULE_SETUP YY_BREAK case 141: YY_RULE_SETUP +<<<<<<< HEAD #line 1510 "dhcp6_lexer.ll" +======= +#line 1511 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4399,7 +5592,11 @@ YY_RULE_SETUP YY_BREAK case 142: YY_RULE_SETUP +<<<<<<< HEAD #line 1521 "dhcp6_lexer.ll" +======= +#line 1522 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4413,7 +5610,11 @@ YY_RULE_SETUP YY_BREAK case 143: YY_RULE_SETUP +<<<<<<< HEAD #line 1532 "dhcp6_lexer.ll" +======= +#line 1533 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4427,7 +5628,11 @@ YY_RULE_SETUP YY_BREAK case 144: YY_RULE_SETUP +<<<<<<< HEAD #line 1543 "dhcp6_lexer.ll" +======= +#line 1544 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4441,7 +5646,11 @@ YY_RULE_SETUP YY_BREAK case 145: YY_RULE_SETUP +<<<<<<< HEAD #line 1554 "dhcp6_lexer.ll" +======= +#line 1555 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4453,7 +5662,11 @@ YY_RULE_SETUP YY_BREAK case 146: YY_RULE_SETUP +<<<<<<< HEAD #line 1563 "dhcp6_lexer.ll" +======= +#line 1564 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4465,7 +5678,11 @@ YY_RULE_SETUP YY_BREAK case 147: YY_RULE_SETUP +<<<<<<< HEAD #line 1572 "dhcp6_lexer.ll" +======= +#line 1573 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4477,7 +5694,11 @@ YY_RULE_SETUP YY_BREAK case 148: YY_RULE_SETUP +<<<<<<< HEAD #line 1581 "dhcp6_lexer.ll" +======= +#line 1582 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4489,7 +5710,11 @@ YY_RULE_SETUP YY_BREAK case 149: YY_RULE_SETUP +<<<<<<< HEAD #line 1590 "dhcp6_lexer.ll" +======= +#line 1591 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4501,7 +5726,11 @@ YY_RULE_SETUP YY_BREAK case 150: YY_RULE_SETUP +<<<<<<< HEAD #line 1599 "dhcp6_lexer.ll" +======= +#line 1600 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4513,7 +5742,11 @@ YY_RULE_SETUP YY_BREAK case 151: YY_RULE_SETUP +<<<<<<< HEAD #line 1608 "dhcp6_lexer.ll" +======= +#line 1609 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4525,7 +5758,11 @@ YY_RULE_SETUP YY_BREAK case 152: YY_RULE_SETUP +<<<<<<< HEAD #line 1617 "dhcp6_lexer.ll" +======= +#line 1618 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4537,7 +5774,11 @@ YY_RULE_SETUP YY_BREAK case 153: YY_RULE_SETUP +<<<<<<< HEAD #line 1626 "dhcp6_lexer.ll" +======= +#line 1627 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4549,7 +5790,11 @@ YY_RULE_SETUP YY_BREAK case 154: YY_RULE_SETUP +<<<<<<< HEAD #line 1635 "dhcp6_lexer.ll" +======= +#line 1636 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4562,7 +5807,11 @@ YY_RULE_SETUP YY_BREAK case 155: YY_RULE_SETUP +<<<<<<< HEAD #line 1645 "dhcp6_lexer.ll" +======= +#line 1646 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4577,7 +5826,11 @@ YY_RULE_SETUP YY_BREAK case 156: YY_RULE_SETUP +<<<<<<< HEAD #line 1657 "dhcp6_lexer.ll" +======= +#line 1658 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4593,7 +5846,11 @@ YY_RULE_SETUP YY_BREAK case 157: YY_RULE_SETUP +<<<<<<< HEAD #line 1670 "dhcp6_lexer.ll" +======= +#line 1671 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4605,7 +5862,11 @@ YY_RULE_SETUP YY_BREAK case 158: YY_RULE_SETUP +<<<<<<< HEAD #line 1679 "dhcp6_lexer.ll" +======= +#line 1680 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4617,7 +5878,11 @@ YY_RULE_SETUP YY_BREAK case 159: YY_RULE_SETUP +<<<<<<< HEAD #line 1688 "dhcp6_lexer.ll" +======= +#line 1689 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4629,7 +5894,11 @@ YY_RULE_SETUP YY_BREAK case 160: YY_RULE_SETUP +<<<<<<< HEAD #line 1697 "dhcp6_lexer.ll" +======= +#line 1698 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4642,7 +5911,11 @@ YY_RULE_SETUP YY_BREAK case 161: YY_RULE_SETUP +<<<<<<< HEAD #line 1707 "dhcp6_lexer.ll" +======= +#line 1708 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4655,7 +5928,11 @@ YY_RULE_SETUP YY_BREAK case 162: YY_RULE_SETUP +<<<<<<< HEAD #line 1717 "dhcp6_lexer.ll" +======= +#line 1718 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4667,7 +5944,11 @@ YY_RULE_SETUP YY_BREAK case 163: YY_RULE_SETUP +<<<<<<< HEAD #line 1726 "dhcp6_lexer.ll" +======= +#line 1727 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -4681,7 +5962,11 @@ YY_RULE_SETUP YY_BREAK case 164: YY_RULE_SETUP +<<<<<<< HEAD #line 1737 "dhcp6_lexer.ll" +======= +#line 1738 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4694,7 +5979,11 @@ YY_RULE_SETUP YY_BREAK case 165: YY_RULE_SETUP +<<<<<<< HEAD #line 1747 "dhcp6_lexer.ll" +======= +#line 1748 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4706,7 +5995,11 @@ YY_RULE_SETUP YY_BREAK case 166: YY_RULE_SETUP +<<<<<<< HEAD #line 1756 "dhcp6_lexer.ll" +======= +#line 1757 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4719,7 +6012,11 @@ YY_RULE_SETUP YY_BREAK case 167: YY_RULE_SETUP +<<<<<<< HEAD #line 1766 "dhcp6_lexer.ll" +======= +#line 1767 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4732,7 +6029,11 @@ YY_RULE_SETUP YY_BREAK case 168: YY_RULE_SETUP +<<<<<<< HEAD #line 1776 "dhcp6_lexer.ll" +======= +#line 1777 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4744,7 +6045,11 @@ YY_RULE_SETUP YY_BREAK case 169: YY_RULE_SETUP +<<<<<<< HEAD #line 1785 "dhcp6_lexer.ll" +======= +#line 1786 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4756,7 +6061,11 @@ YY_RULE_SETUP YY_BREAK case 170: YY_RULE_SETUP +<<<<<<< HEAD #line 1794 "dhcp6_lexer.ll" +======= +#line 1795 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4768,7 +6077,11 @@ YY_RULE_SETUP YY_BREAK case 171: YY_RULE_SETUP +<<<<<<< HEAD #line 1803 "dhcp6_lexer.ll" +======= +#line 1804 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4780,7 +6093,11 @@ YY_RULE_SETUP YY_BREAK case 172: YY_RULE_SETUP +<<<<<<< HEAD #line 1812 "dhcp6_lexer.ll" +======= +#line 1813 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4793,7 +6110,11 @@ YY_RULE_SETUP YY_BREAK case 173: YY_RULE_SETUP +<<<<<<< HEAD #line 1822 "dhcp6_lexer.ll" +======= +#line 1823 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RELAY: @@ -4805,7 +6126,11 @@ YY_RULE_SETUP YY_BREAK case 174: YY_RULE_SETUP +<<<<<<< HEAD #line 1831 "dhcp6_lexer.ll" +======= +#line 1832 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4817,7 +6142,11 @@ YY_RULE_SETUP YY_BREAK case 175: YY_RULE_SETUP +<<<<<<< HEAD #line 1840 "dhcp6_lexer.ll" +======= +#line 1841 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4829,7 +6158,11 @@ YY_RULE_SETUP YY_BREAK case 176: YY_RULE_SETUP +<<<<<<< HEAD #line 1849 "dhcp6_lexer.ll" +======= +#line 1850 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4841,7 +6174,11 @@ YY_RULE_SETUP YY_BREAK case 177: YY_RULE_SETUP +<<<<<<< HEAD #line 1858 "dhcp6_lexer.ll" +======= +#line 1859 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4853,7 +6190,11 @@ YY_RULE_SETUP YY_BREAK case 178: YY_RULE_SETUP +<<<<<<< HEAD #line 1867 "dhcp6_lexer.ll" +======= +#line 1868 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4865,7 +6206,11 @@ YY_RULE_SETUP YY_BREAK case 179: YY_RULE_SETUP +<<<<<<< HEAD #line 1876 "dhcp6_lexer.ll" +======= +#line 1877 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4877,7 +6222,11 @@ YY_RULE_SETUP YY_BREAK case 180: YY_RULE_SETUP +<<<<<<< HEAD #line 1885 "dhcp6_lexer.ll" +======= +#line 1886 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4889,7 +6238,11 @@ YY_RULE_SETUP YY_BREAK case 181: YY_RULE_SETUP +<<<<<<< HEAD #line 1894 "dhcp6_lexer.ll" +======= +#line 1895 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4901,7 +6254,11 @@ YY_RULE_SETUP YY_BREAK case 182: YY_RULE_SETUP +<<<<<<< HEAD #line 1903 "dhcp6_lexer.ll" +======= +#line 1904 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4913,7 +6270,11 @@ YY_RULE_SETUP YY_BREAK case 183: YY_RULE_SETUP +<<<<<<< HEAD #line 1912 "dhcp6_lexer.ll" +======= +#line 1913 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4925,7 +6286,11 @@ YY_RULE_SETUP YY_BREAK case 184: YY_RULE_SETUP +<<<<<<< HEAD #line 1921 "dhcp6_lexer.ll" +======= +#line 1922 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4937,7 +6302,11 @@ YY_RULE_SETUP YY_BREAK case 185: YY_RULE_SETUP +<<<<<<< HEAD #line 1930 "dhcp6_lexer.ll" +======= +#line 1931 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4949,7 +6318,11 @@ YY_RULE_SETUP YY_BREAK case 186: YY_RULE_SETUP +<<<<<<< HEAD #line 1939 "dhcp6_lexer.ll" +======= +#line 1940 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4961,7 +6334,11 @@ YY_RULE_SETUP YY_BREAK case 187: YY_RULE_SETUP +<<<<<<< HEAD #line 1948 "dhcp6_lexer.ll" +======= +#line 1949 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4973,7 +6350,11 @@ YY_RULE_SETUP YY_BREAK case 188: YY_RULE_SETUP +<<<<<<< HEAD #line 1957 "dhcp6_lexer.ll" +======= +#line 1958 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4985,7 +6366,11 @@ YY_RULE_SETUP YY_BREAK case 189: YY_RULE_SETUP +<<<<<<< HEAD #line 1966 "dhcp6_lexer.ll" +======= +#line 1967 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4997,7 +6382,11 @@ YY_RULE_SETUP YY_BREAK case 190: YY_RULE_SETUP +<<<<<<< HEAD #line 1975 "dhcp6_lexer.ll" +======= +#line 1976 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5009,7 +6398,11 @@ YY_RULE_SETUP YY_BREAK case 191: YY_RULE_SETUP +<<<<<<< HEAD #line 1984 "dhcp6_lexer.ll" +======= +#line 1985 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5021,7 +6414,11 @@ YY_RULE_SETUP YY_BREAK case 192: YY_RULE_SETUP +<<<<<<< HEAD #line 1993 "dhcp6_lexer.ll" +======= +#line 1994 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5033,7 +6430,11 @@ YY_RULE_SETUP YY_BREAK case 193: YY_RULE_SETUP +<<<<<<< HEAD #line 2002 "dhcp6_lexer.ll" +======= +#line 2003 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5045,7 +6446,11 @@ YY_RULE_SETUP YY_BREAK case 194: YY_RULE_SETUP +<<<<<<< HEAD #line 2011 "dhcp6_lexer.ll" +======= +#line 2012 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -5057,7 +6462,11 @@ YY_RULE_SETUP YY_BREAK case 195: YY_RULE_SETUP +<<<<<<< HEAD #line 2020 "dhcp6_lexer.ll" +======= +#line 2021 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -5069,7 +6478,11 @@ YY_RULE_SETUP YY_BREAK case 196: YY_RULE_SETUP +<<<<<<< HEAD #line 2029 "dhcp6_lexer.ll" +======= +#line 2030 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -5081,7 +6494,11 @@ YY_RULE_SETUP YY_BREAK case 197: YY_RULE_SETUP +<<<<<<< HEAD #line 2038 "dhcp6_lexer.ll" +======= +#line 2039 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5093,7 +6510,11 @@ YY_RULE_SETUP YY_BREAK case 198: YY_RULE_SETUP +<<<<<<< HEAD #line 2047 "dhcp6_lexer.ll" +======= +#line 2048 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5105,7 +6526,11 @@ YY_RULE_SETUP YY_BREAK case 199: YY_RULE_SETUP +<<<<<<< HEAD #line 2056 "dhcp6_lexer.ll" +======= +#line 2057 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5117,7 +6542,11 @@ YY_RULE_SETUP YY_BREAK case 200: YY_RULE_SETUP +<<<<<<< HEAD #line 2065 "dhcp6_lexer.ll" +======= +#line 2066 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5129,7 +6558,11 @@ YY_RULE_SETUP YY_BREAK case 201: YY_RULE_SETUP +<<<<<<< HEAD #line 2074 "dhcp6_lexer.ll" +======= +#line 2075 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5141,7 +6574,11 @@ YY_RULE_SETUP YY_BREAK case 202: YY_RULE_SETUP +<<<<<<< HEAD #line 2083 "dhcp6_lexer.ll" +======= +#line 2084 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5153,7 +6590,11 @@ YY_RULE_SETUP YY_BREAK case 203: YY_RULE_SETUP +<<<<<<< HEAD #line 2092 "dhcp6_lexer.ll" +======= +#line 2093 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5165,7 +6606,11 @@ YY_RULE_SETUP YY_BREAK case 204: YY_RULE_SETUP +<<<<<<< HEAD #line 2101 "dhcp6_lexer.ll" +======= +#line 2102 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5177,7 +6622,11 @@ YY_RULE_SETUP YY_BREAK case 205: YY_RULE_SETUP +<<<<<<< HEAD #line 2110 "dhcp6_lexer.ll" +======= +#line 2111 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5189,7 +6638,11 @@ YY_RULE_SETUP YY_BREAK case 206: YY_RULE_SETUP +<<<<<<< HEAD #line 2119 "dhcp6_lexer.ll" +======= +#line 2120 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5201,7 +6654,11 @@ YY_RULE_SETUP YY_BREAK case 207: YY_RULE_SETUP +<<<<<<< HEAD #line 2128 "dhcp6_lexer.ll" +======= +#line 2129 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5213,7 +6670,11 @@ YY_RULE_SETUP YY_BREAK case 208: YY_RULE_SETUP +<<<<<<< HEAD #line 2137 "dhcp6_lexer.ll" +======= +#line 2138 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5225,7 +6686,11 @@ YY_RULE_SETUP YY_BREAK case 209: YY_RULE_SETUP +<<<<<<< HEAD #line 2146 "dhcp6_lexer.ll" +======= +#line 2147 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { switch(driver.ctx_) { case isc::dhcp::Parser6Context::COMPATIBILITY: @@ -5237,7 +6702,11 @@ YY_RULE_SETUP YY_BREAK case 210: YY_RULE_SETUP +<<<<<<< HEAD #line 2155 "dhcp6_lexer.ll" +======= +#line 2156 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { /* 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. @@ -5342,7 +6811,11 @@ YY_RULE_SETUP case 211: /* rule 211 can match eol */ YY_RULE_SETUP +<<<<<<< HEAD #line 2256 "dhcp6_lexer.ll" +======= +#line 2257 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -5362,7 +6835,11 @@ YY_RULE_SETUP case 212: /* rule 212 can match eol */ YY_RULE_SETUP +<<<<<<< HEAD #line 2272 "dhcp6_lexer.ll" +======= +#line 2273 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -5414,7 +6891,11 @@ YY_RULE_SETUP YY_BREAK case 213: YY_RULE_SETUP +<<<<<<< HEAD #line 2321 "dhcp6_lexer.ll" +======= +#line 2322 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -5425,7 +6906,11 @@ YY_RULE_SETUP YY_BREAK case 214: YY_RULE_SETUP +<<<<<<< HEAD #line 2329 "dhcp6_lexer.ll" +======= +#line 2330 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5443,37 +6928,65 @@ YY_RULE_SETUP YY_BREAK case 215: YY_RULE_SETUP +<<<<<<< HEAD #line 2344 "dhcp6_lexer.ll" +======= +#line 2345 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK case 216: YY_RULE_SETUP +<<<<<<< HEAD #line 2345 "dhcp6_lexer.ll" +======= +#line 2346 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK case 217: YY_RULE_SETUP +<<<<<<< HEAD #line 2346 "dhcp6_lexer.ll" +======= +#line 2347 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK case 218: YY_RULE_SETUP +<<<<<<< HEAD #line 2347 "dhcp6_lexer.ll" +======= +#line 2348 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK case 219: YY_RULE_SETUP +<<<<<<< HEAD #line 2348 "dhcp6_lexer.ll" +======= +#line 2349 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } YY_BREAK case 220: YY_RULE_SETUP +<<<<<<< HEAD #line 2349 "dhcp6_lexer.ll" +======= +#line 2350 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } YY_BREAK case 221: YY_RULE_SETUP +<<<<<<< HEAD #line 2351 "dhcp6_lexer.ll" +======= +#line 2352 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { /* An integer was found. */ std::string tmp(yytext); @@ -5494,7 +7007,11 @@ YY_RULE_SETUP YY_BREAK case 222: YY_RULE_SETUP +<<<<<<< HEAD #line 2369 "dhcp6_lexer.ll" +======= +#line 2370 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { /* A floating point was found. */ std::string tmp(yytext); @@ -5510,7 +7027,11 @@ YY_RULE_SETUP YY_BREAK case 223: YY_RULE_SETUP +<<<<<<< HEAD #line 2382 "dhcp6_lexer.ll" +======= +#line 2383 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); @@ -5518,33 +7039,57 @@ YY_RULE_SETUP YY_BREAK case 224: YY_RULE_SETUP +<<<<<<< HEAD #line 2387 "dhcp6_lexer.ll" +======= +#line 2388 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK case 225: YY_RULE_SETUP +<<<<<<< HEAD #line 2391 "dhcp6_lexer.ll" +======= +#line 2392 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK case 226: YY_RULE_SETUP +<<<<<<< HEAD #line 2393 "dhcp6_lexer.ll" +======= +#line 2394 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK case 227: YY_RULE_SETUP +<<<<<<< HEAD #line 2395 "dhcp6_lexer.ll" +======= +#line 2396 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK case 228: YY_RULE_SETUP +<<<<<<< HEAD #line 2397 "dhcp6_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): #line 2399 "dhcp6_lexer.ll" +======= +#line 2398 "dhcp6_lexer.ll" +driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); + YY_BREAK +case YY_STATE_EOF(INITIAL): +#line 2400 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -5570,10 +7115,17 @@ case YY_STATE_EOF(INITIAL): YY_BREAK case 229: YY_RULE_SETUP +<<<<<<< HEAD #line 2422 "dhcp6_lexer.ll" ECHO; YY_BREAK #line 5576 "dhcp6_lexer.cc" +======= +#line 2423 "dhcp6_lexer.ll" +ECHO; + YY_BREAK +#line 5583 "dhcp6_lexer.cc" +>>>>>>> [#225] Added ddsn-ttl-percent parameter case YY_END_OF_BUFFER: { @@ -5892,7 +7444,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; +<<<<<<< HEAD if ( yy_current_state >= 2190 ) +======= + if ( yy_current_state >= 2196 ) +>>>>>>> [#225] Added ddsn-ttl-percent parameter yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5925,11 +7481,19 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; +<<<<<<< HEAD if ( yy_current_state >= 2190 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 2189); +======= + if ( yy_current_state >= 2196 ) + yy_c = yy_meta[yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + yy_is_jam = (yy_current_state == 2195); +>>>>>>> [#225] Added ddsn-ttl-percent parameter return yy_is_jam ? 0 : yy_current_state; } @@ -6678,7 +8242,11 @@ void yyfree (void * ptr ) /* %ok-for-header */ +<<<<<<< HEAD #line 2422 "dhcp6_lexer.ll" +======= +#line 2423 "dhcp6_lexer.ll" +>>>>>>> [#225] Added ddsn-ttl-percent parameter using namespace isc::dhcp; diff --git a/src/bin/dhcp6/dhcp6_lexer.ll b/src/bin/dhcp6/dhcp6_lexer.ll index d9064e5d84..d9821fa7b1 100644 --- a/src/bin/dhcp6/dhcp6_lexer.ll +++ b/src/bin/dhcp6/dhcp6_lexer.ll @@ -1103,6 +1103,16 @@ ControlCharacterFill [^"\\]|\\["\\/bfnrtu] } } +\"ddns-ttl-percent\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_DDNS_TTL_PERCENT(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("ddns_ttl-percent", driver.loc_); + } +} \"subnet6\" { switch(driver.ctx_) { diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index aad89b24fa..d43f73ee31 100644 --- a/src/bin/dhcp6/dhcp6_parser.cc +++ b/src/bin/dhcp6/dhcp6_parser.cc @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.8.2. +// A Bison parser, made by GNU Bison 3.7.2. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ // GNU General Public License for more details. // You should have received a copy of the GNU General Public License -// along with this program. If not, see <https://www.gnu.org/licenses/>. +// along with this program. If not, see <http://www.gnu.org/licenses/>. // As a special exception, you may create a larger work that contains // part or all of the Bison parser skeleton and distribute that work @@ -125,7 +125,7 @@ #else // !PARSER6_DEBUG # define YYCDEBUG if (false) std::cerr -# define YY_SYMBOL_PRINT(Title, Symbol) YY_USE (Symbol) +# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol) # define YY_REDUCE_PRINT(Rule) static_cast<void> (0) # define YY_STACK_PRINT() static_cast<void> (0) @@ -160,9 +160,9 @@ namespace isc { namespace dhcp { Dhcp6Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW {} - /*---------. - | symbol. | - `---------*/ + /*---------------. + | symbol kinds. | + `---------------*/ @@ -386,7 +386,7 @@ namespace isc { namespace dhcp { Dhcp6Parser::yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const { std::ostream& yyoutput = yyo; - YY_USE (yyoutput); + YYUSE (yyoutput); if (yysym.empty ()) yyo << "empty symbol"; else @@ -398,73 +398,73 @@ namespace isc { namespace dhcp { switch (yykind) { case symbol_kind::S_STRING: // "constant string" -#line 301 "dhcp6_parser.yy" +#line 302 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 404 "dhcp6_parser.cc" break; case symbol_kind::S_INTEGER: // "integer" -#line 301 "dhcp6_parser.yy" +#line 302 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 410 "dhcp6_parser.cc" break; case symbol_kind::S_FLOAT: // "floating point" -#line 301 "dhcp6_parser.yy" +#line 302 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 416 "dhcp6_parser.cc" break; case symbol_kind::S_BOOLEAN: // "boolean" -#line 301 "dhcp6_parser.yy" +#line 302 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 422 "dhcp6_parser.cc" break; case symbol_kind::S_value: // value -#line 301 "dhcp6_parser.yy" +#line 302 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 428 "dhcp6_parser.cc" break; case symbol_kind::S_map_value: // map_value -#line 301 "dhcp6_parser.yy" +#line 302 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 434 "dhcp6_parser.cc" break; case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 301 "dhcp6_parser.yy" +#line 302 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 440 "dhcp6_parser.cc" break; case symbol_kind::S_db_type: // db_type -#line 301 "dhcp6_parser.yy" +#line 302 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 446 "dhcp6_parser.cc" break; case symbol_kind::S_on_fail_mode: // on_fail_mode -#line 301 "dhcp6_parser.yy" +#line 302 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 452 "dhcp6_parser.cc" break; case symbol_kind::S_hr_mode: // hr_mode -#line 301 "dhcp6_parser.yy" +#line 302 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 458 "dhcp6_parser.cc" break; case symbol_kind::S_duid_type: // duid_type -#line 301 "dhcp6_parser.yy" +#line 302 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 464 "dhcp6_parser.cc" break; case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 301 "dhcp6_parser.yy" +#line 302 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 470 "dhcp6_parser.cc" break; @@ -497,7 +497,7 @@ namespace isc { namespace dhcp { } void - Dhcp6Parser::yypop_ (int n) YY_NOEXCEPT + Dhcp6Parser::yypop_ (int n) { yystack_.pop (n); } @@ -540,13 +540,13 @@ namespace isc { namespace dhcp { } bool - Dhcp6Parser::yy_pact_value_is_default_ (int yyvalue) YY_NOEXCEPT + Dhcp6Parser::yy_pact_value_is_default_ (int yyvalue) { return yyvalue == yypact_ninf_; } bool - Dhcp6Parser::yy_table_value_is_error_ (int yyvalue) YY_NOEXCEPT + Dhcp6Parser::yy_table_value_is_error_ (int yyvalue) { return yyvalue == yytable_ninf_; } @@ -744,133 +744,133 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: // $@1: %empty -#line 310 "dhcp6_parser.yy" +#line 311 "dhcp6_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 750 "dhcp6_parser.cc" break; case 4: // $@2: %empty -#line 311 "dhcp6_parser.yy" +#line 312 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 756 "dhcp6_parser.cc" break; case 6: // $@3: %empty -#line 312 "dhcp6_parser.yy" +#line 313 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP6; } #line 762 "dhcp6_parser.cc" break; case 8: // $@4: %empty -#line 313 "dhcp6_parser.yy" +#line 314 "dhcp6_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 768 "dhcp6_parser.cc" break; case 10: // $@5: %empty -#line 314 "dhcp6_parser.yy" +#line 315 "dhcp6_parser.yy" { ctx.ctx_ = ctx.SUBNET6; } #line 774 "dhcp6_parser.cc" break; case 12: // $@6: %empty -#line 315 "dhcp6_parser.yy" +#line 316 "dhcp6_parser.yy" { ctx.ctx_ = ctx.POOLS; } #line 780 "dhcp6_parser.cc" break; case 14: // $@7: %empty -#line 316 "dhcp6_parser.yy" +#line 317 "dhcp6_parser.yy" { ctx.ctx_ = ctx.PD_POOLS; } #line 786 "dhcp6_parser.cc" break; case 16: // $@8: %empty -#line 317 "dhcp6_parser.yy" +#line 318 "dhcp6_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } #line 792 "dhcp6_parser.cc" break; case 18: // $@9: %empty -#line 318 "dhcp6_parser.yy" +#line 319 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP6; } #line 798 "dhcp6_parser.cc" break; case 20: // $@10: %empty -#line 319 "dhcp6_parser.yy" +#line 320 "dhcp6_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } #line 804 "dhcp6_parser.cc" break; case 22: // $@11: %empty -#line 320 "dhcp6_parser.yy" +#line 321 "dhcp6_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } #line 810 "dhcp6_parser.cc" break; case 24: // $@12: %empty -#line 321 "dhcp6_parser.yy" +#line 322 "dhcp6_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 816 "dhcp6_parser.cc" break; case 26: // $@13: %empty -#line 322 "dhcp6_parser.yy" +#line 323 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } #line 822 "dhcp6_parser.cc" break; case 28: // $@14: %empty -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 828 "dhcp6_parser.cc" break; case 30: // value: "integer" -#line 331 "dhcp6_parser.yy" +#line 332 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 834 "dhcp6_parser.cc" break; case 31: // value: "floating point" -#line 332 "dhcp6_parser.yy" +#line 333 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 840 "dhcp6_parser.cc" break; case 32: // value: "boolean" -#line 333 "dhcp6_parser.yy" +#line 334 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 846 "dhcp6_parser.cc" break; case 33: // value: "constant string" -#line 334 "dhcp6_parser.yy" +#line 335 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 852 "dhcp6_parser.cc" break; case 34: // value: "null" -#line 335 "dhcp6_parser.yy" +#line 336 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 858 "dhcp6_parser.cc" break; case 35: // value: map2 -#line 336 "dhcp6_parser.yy" +#line 337 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 864 "dhcp6_parser.cc" break; case 36: // value: list_generic -#line 337 "dhcp6_parser.yy" +#line 338 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 870 "dhcp6_parser.cc" break; case 37: // sub_json: value -#line 340 "dhcp6_parser.yy" +#line 341 "dhcp6_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); @@ -879,7 +879,7 @@ namespace isc { namespace dhcp { break; case 38: // $@15: %empty -#line 345 "dhcp6_parser.yy" +#line 346 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -890,7 +890,7 @@ namespace isc { namespace dhcp { break; case 39: // map2: "{" $@15 map_content "}" -#line 350 "dhcp6_parser.yy" +#line 351 "dhcp6_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -900,13 +900,13 @@ namespace isc { namespace dhcp { break; case 40: // map_value: map2 -#line 356 "dhcp6_parser.yy" +#line 357 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 906 "dhcp6_parser.cc" break; case 43: // not_empty_map: "constant string" ":" value -#line 363 "dhcp6_parser.yy" +#line 364 "dhcp6_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); @@ -916,7 +916,7 @@ namespace isc { namespace dhcp { break; case 44: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 368 "dhcp6_parser.yy" +#line 369 "dhcp6_parser.yy" { // map consisting of a shorter map followed by // comma and string:value @@ -927,7 +927,7 @@ namespace isc { namespace dhcp { break; case 45: // not_empty_map: not_empty_map "," -#line 374 "dhcp6_parser.yy" +#line 375 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -935,7 +935,7 @@ namespace isc { namespace dhcp { break; case 46: // $@16: %empty -#line 379 "dhcp6_parser.yy" +#line 380 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -944,7 +944,7 @@ namespace isc { namespace dhcp { break; case 47: // list_generic: "[" $@16 list_content "]" -#line 382 "dhcp6_parser.yy" +#line 383 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here } @@ -952,7 +952,7 @@ namespace isc { namespace dhcp { break; case 50: // not_empty_list: value -#line 390 "dhcp6_parser.yy" +#line 391 "dhcp6_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -961,7 +961,7 @@ namespace isc { namespace dhcp { break; case 51: // not_empty_list: not_empty_list "," value -#line 394 "dhcp6_parser.yy" +#line 395 "dhcp6_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -970,7 +970,7 @@ namespace isc { namespace dhcp { break; case 52: // not_empty_list: not_empty_list "," -#line 398 "dhcp6_parser.yy" +#line 399 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -978,7 +978,7 @@ namespace isc { namespace dhcp { break; case 53: // $@17: %empty -#line 404 "dhcp6_parser.yy" +#line 405 "dhcp6_parser.yy" { // List parsing about to start } @@ -986,7 +986,7 @@ namespace isc { namespace dhcp { break; case 54: // list_strings: "[" $@17 list_strings_content "]" -#line 406 "dhcp6_parser.yy" +#line 407 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -995,7 +995,7 @@ namespace isc { namespace dhcp { break; case 57: // not_empty_list_strings: "constant string" -#line 415 "dhcp6_parser.yy" +#line 416 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1004,7 +1004,7 @@ namespace isc { namespace dhcp { break; case 58: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 419 "dhcp6_parser.yy" +#line 420 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1013,7 +1013,7 @@ namespace isc { namespace dhcp { break; case 59: // not_empty_list_strings: not_empty_list_strings "," -#line 423 "dhcp6_parser.yy" +#line 424 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1021,7 +1021,7 @@ namespace isc { namespace dhcp { break; case 60: // unknown_map_entry: "constant string" ":" -#line 433 "dhcp6_parser.yy" +#line 434 "dhcp6_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); @@ -1032,7 +1032,7 @@ namespace isc { namespace dhcp { break; case 61: // $@18: %empty -#line 442 "dhcp6_parser.yy" +#line 443 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1043,7 +1043,7 @@ namespace isc { namespace dhcp { break; case 62: // syntax_map: "{" $@18 global_object "}" -#line 447 "dhcp6_parser.yy" +#line 448 "dhcp6_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1056,7 +1056,7 @@ namespace isc { namespace dhcp { break; case 63: // $@19: %empty -#line 457 "dhcp6_parser.yy" +#line 458 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1071,7 +1071,7 @@ namespace isc { namespace dhcp { break; case 64: // global_object: "Dhcp6" $@19 ":" "{" global_params "}" -#line 466 "dhcp6_parser.yy" +#line 467 "dhcp6_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); @@ -1081,7 +1081,7 @@ namespace isc { namespace dhcp { break; case 66: // global_object_comma: global_object "," -#line 474 "dhcp6_parser.yy" +#line 475 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1089,7 +1089,7 @@ namespace isc { namespace dhcp { break; case 67: // $@20: %empty -#line 480 "dhcp6_parser.yy" +#line 481 "dhcp6_parser.yy" { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1099,7 +1099,7 @@ namespace isc { namespace dhcp { break; case 68: // sub_dhcp6: "{" $@20 global_params "}" -#line 484 "dhcp6_parser.yy" +#line 485 "dhcp6_parser.yy" { // No global parameter is required // parsing completed @@ -1108,15 +1108,15 @@ namespace isc { namespace dhcp { break; case 71: // global_params: global_params "," -#line 491 "dhcp6_parser.yy" +#line 492 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } #line 1116 "dhcp6_parser.cc" break; - case 139: // $@21: %empty -#line 567 "dhcp6_parser.yy" + case 140: // $@21: %empty +#line 569 "dhcp6_parser.yy" { ctx.unique("data-directory", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1124,8 +1124,8 @@ namespace isc { namespace dhcp { #line 1125 "dhcp6_parser.cc" break; - case 140: // data_directory: "data-directory" $@21 ":" "constant string" -#line 570 "dhcp6_parser.yy" + case 141: // data_directory: "data-directory" $@21 ":" "constant string" +#line 572 "dhcp6_parser.yy" { ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data-directory", datadir); @@ -1134,8 +1134,8 @@ namespace isc { namespace dhcp { #line 1135 "dhcp6_parser.cc" break; - case 141: // preferred_lifetime: "preferred-lifetime" ":" "integer" -#line 576 "dhcp6_parser.yy" + case 142: // preferred_lifetime: "preferred-lifetime" ":" "integer" +#line 578 "dhcp6_parser.yy" { ctx.unique("preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1144,8 +1144,8 @@ namespace isc { namespace dhcp { #line 1145 "dhcp6_parser.cc" break; - case 142: // min_preferred_lifetime: "min-preferred-lifetime" ":" "integer" -#line 582 "dhcp6_parser.yy" + case 143: // min_preferred_lifetime: "min-preferred-lifetime" ":" "integer" +#line 584 "dhcp6_parser.yy" { ctx.unique("min-preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1154,8 +1154,8 @@ namespace isc { namespace dhcp { #line 1155 "dhcp6_parser.cc" break; - case 143: // max_preferred_lifetime: "max-preferred-lifetime" ":" "integer" -#line 588 "dhcp6_parser.yy" + case 144: // max_preferred_lifetime: "max-preferred-lifetime" ":" "integer" +#line 590 "dhcp6_parser.yy" { ctx.unique("max-preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1164,8 +1164,8 @@ namespace isc { namespace dhcp { #line 1165 "dhcp6_parser.cc" break; - case 144: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 594 "dhcp6_parser.yy" + case 145: // valid_lifetime: "valid-lifetime" ":" "integer" +#line 596 "dhcp6_parser.yy" { ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1174,8 +1174,8 @@ namespace isc { namespace dhcp { #line 1175 "dhcp6_parser.cc" break; - case 145: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 600 "dhcp6_parser.yy" + case 146: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" +#line 602 "dhcp6_parser.yy" { ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1184,8 +1184,8 @@ namespace isc { namespace dhcp { #line 1185 "dhcp6_parser.cc" break; - case 146: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 606 "dhcp6_parser.yy" + case 147: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" +#line 608 "dhcp6_parser.yy" { ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1194,8 +1194,8 @@ namespace isc { namespace dhcp { #line 1195 "dhcp6_parser.cc" break; - case 147: // renew_timer: "renew-timer" ":" "integer" -#line 612 "dhcp6_parser.yy" + case 148: // renew_timer: "renew-timer" ":" "integer" +#line 614 "dhcp6_parser.yy" { ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1204,8 +1204,8 @@ namespace isc { namespace dhcp { #line 1205 "dhcp6_parser.cc" break; - case 148: // rebind_timer: "rebind-timer" ":" "integer" -#line 618 "dhcp6_parser.yy" + case 149: // rebind_timer: "rebind-timer" ":" "integer" +#line 620 "dhcp6_parser.yy" { ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1214,8 +1214,8 @@ namespace isc { namespace dhcp { #line 1215 "dhcp6_parser.cc" break; - case 149: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 624 "dhcp6_parser.yy" + case 150: // calculate_tee_times: "calculate-tee-times" ":" "boolean" +#line 626 "dhcp6_parser.yy" { ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location)); ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1224,8 +1224,8 @@ namespace isc { namespace dhcp { #line 1225 "dhcp6_parser.cc" break; - case 150: // t1_percent: "t1-percent" ":" "floating point" -#line 630 "dhcp6_parser.yy" + case 151: // t1_percent: "t1-percent" ":" "floating point" +#line 632 "dhcp6_parser.yy" { ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1234,8 +1234,8 @@ namespace isc { namespace dhcp { #line 1235 "dhcp6_parser.cc" break; - case 151: // t2_percent: "t2-percent" ":" "floating point" -#line 636 "dhcp6_parser.yy" + case 152: // t2_percent: "t2-percent" ":" "floating point" +#line 638 "dhcp6_parser.yy" { ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1244,8 +1244,8 @@ namespace isc { namespace dhcp { #line 1245 "dhcp6_parser.cc" break; - case 152: // cache_threshold: "cache-threshold" ":" "floating point" -#line 642 "dhcp6_parser.yy" + case 153: // cache_threshold: "cache-threshold" ":" "floating point" +#line 644 "dhcp6_parser.yy" { ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location)); ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1254,8 +1254,8 @@ namespace isc { namespace dhcp { #line 1255 "dhcp6_parser.cc" break; - case 153: // cache_max_age: "cache-max-age" ":" "integer" -#line 648 "dhcp6_parser.yy" + case 154: // cache_max_age: "cache-max-age" ":" "integer" +#line 650 "dhcp6_parser.yy" { ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location)); ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1264,8 +1264,8 @@ namespace isc { namespace dhcp { #line 1265 "dhcp6_parser.cc" break; - case 154: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 654 "dhcp6_parser.yy" + case 155: // decline_probation_period: "decline-probation-period" ":" "integer" +#line 656 "dhcp6_parser.yy" { ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location)); ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1274,8 +1274,8 @@ namespace isc { namespace dhcp { #line 1275 "dhcp6_parser.cc" break; - case 155: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 660 "dhcp6_parser.yy" + case 156: // ddns_send_updates: "ddns-send-updates" ":" "boolean" +#line 662 "dhcp6_parser.yy" { ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1284,8 +1284,8 @@ namespace isc { namespace dhcp { #line 1285 "dhcp6_parser.cc" break; - case 156: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 666 "dhcp6_parser.yy" + case 157: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" +#line 668 "dhcp6_parser.yy" { ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1294,8 +1294,8 @@ namespace isc { namespace dhcp { #line 1295 "dhcp6_parser.cc" break; - case 157: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 672 "dhcp6_parser.yy" + case 158: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" +#line 674 "dhcp6_parser.yy" { ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1304,8 +1304,8 @@ namespace isc { namespace dhcp { #line 1305 "dhcp6_parser.cc" break; - case 158: // $@22: %empty -#line 678 "dhcp6_parser.yy" + case 159: // $@22: %empty +#line 680 "dhcp6_parser.yy" { ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); @@ -1313,8 +1313,8 @@ namespace isc { namespace dhcp { #line 1314 "dhcp6_parser.cc" break; - case 159: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value -#line 681 "dhcp6_parser.yy" + case 160: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value +#line 683 "dhcp6_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1322,40 +1322,40 @@ namespace isc { namespace dhcp { #line 1323 "dhcp6_parser.cc" break; - case 160: // ddns_replace_client_name_value: "when-present" -#line 687 "dhcp6_parser.yy" + case 161: // ddns_replace_client_name_value: "when-present" +#line 689 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } #line 1331 "dhcp6_parser.cc" break; - case 161: // ddns_replace_client_name_value: "never" -#line 690 "dhcp6_parser.yy" + case 162: // ddns_replace_client_name_value: "never" +#line 692 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } #line 1339 "dhcp6_parser.cc" break; - case 162: // ddns_replace_client_name_value: "always" -#line 693 "dhcp6_parser.yy" + case 163: // ddns_replace_client_name_value: "always" +#line 695 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } #line 1347 "dhcp6_parser.cc" break; - case 163: // ddns_replace_client_name_value: "when-not-present" -#line 696 "dhcp6_parser.yy" + case 164: // ddns_replace_client_name_value: "when-not-present" +#line 698 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } #line 1355 "dhcp6_parser.cc" break; - case 164: // ddns_replace_client_name_value: "boolean" -#line 699 "dhcp6_parser.yy" + case 165: // ddns_replace_client_name_value: "boolean" +#line 701 "dhcp6_parser.yy" { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); @@ -1363,8 +1363,8 @@ namespace isc { namespace dhcp { #line 1364 "dhcp6_parser.cc" break; - case 165: // $@23: %empty -#line 705 "dhcp6_parser.yy" + case 166: // $@23: %empty +#line 707 "dhcp6_parser.yy" { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1372,8 +1372,8 @@ namespace isc { namespace dhcp { #line 1373 "dhcp6_parser.cc" break; - case 166: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" -#line 708 "dhcp6_parser.yy" + case 167: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" +#line 710 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-generated-prefix", s); @@ -1382,8 +1382,8 @@ namespace isc { namespace dhcp { #line 1383 "dhcp6_parser.cc" break; - case 167: // $@24: %empty -#line 714 "dhcp6_parser.yy" + case 168: // $@24: %empty +#line 716 "dhcp6_parser.yy" { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1391,8 +1391,8 @@ namespace isc { namespace dhcp { #line 1392 "dhcp6_parser.cc" break; - case 168: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" -#line 717 "dhcp6_parser.yy" + case 169: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" +#line 719 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-qualifying-suffix", s); @@ -1401,8 +1401,8 @@ namespace isc { namespace dhcp { #line 1402 "dhcp6_parser.cc" break; - case 169: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 723 "dhcp6_parser.yy" + case 170: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" +#line 725 "dhcp6_parser.yy" { ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1411,8 +1411,8 @@ namespace isc { namespace dhcp { #line 1412 "dhcp6_parser.cc" break; - case 170: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" -#line 729 "dhcp6_parser.yy" + case 171: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" +#line 731 "dhcp6_parser.yy" { ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1421,173 +1421,183 @@ namespace isc { namespace dhcp { #line 1422 "dhcp6_parser.cc" break; - case 171: // $@25: %empty -#line 735 "dhcp6_parser.yy" + case 172: // ddns_ttl_percent: "ddns-ttl-percent" ":" "floating point" +#line 737 "dhcp6_parser.yy" + { + ctx.unique("ddns-ttl-percent", ctx.loc2pos(yystack_[2].location)); + ElementPtr ttl(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-ttl-percent", ttl); +} +#line 1432 "dhcp6_parser.cc" + break; + + case 173: // $@25: %empty +#line 743 "dhcp6_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1431 "dhcp6_parser.cc" +#line 1441 "dhcp6_parser.cc" break; - case 172: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string" -#line 738 "dhcp6_parser.yy" + case 174: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string" +#line 746 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 1441 "dhcp6_parser.cc" +#line 1451 "dhcp6_parser.cc" break; - case 173: // $@26: %empty -#line 744 "dhcp6_parser.yy" + case 175: // $@26: %empty +#line 752 "dhcp6_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1450 "dhcp6_parser.cc" +#line 1460 "dhcp6_parser.cc" break; - case 174: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string" -#line 747 "dhcp6_parser.yy" + case 176: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string" +#line 755 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 1460 "dhcp6_parser.cc" +#line 1470 "dhcp6_parser.cc" break; - case 175: // store_extended_info: "store-extended-info" ":" "boolean" -#line 753 "dhcp6_parser.yy" + case 177: // store_extended_info: "store-extended-info" ":" "boolean" +#line 761 "dhcp6_parser.yy" { ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("store-extended-info", b); } -#line 1470 "dhcp6_parser.cc" +#line 1480 "dhcp6_parser.cc" break; - case 176: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 759 "dhcp6_parser.yy" + case 178: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" +#line 767 "dhcp6_parser.yy" { ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location)); ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("statistic-default-sample-count", count); } -#line 1480 "dhcp6_parser.cc" +#line 1490 "dhcp6_parser.cc" break; - case 177: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 765 "dhcp6_parser.yy" + case 179: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" +#line 773 "dhcp6_parser.yy" { ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location)); ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("statistic-default-sample-age", age); } -#line 1490 "dhcp6_parser.cc" +#line 1500 "dhcp6_parser.cc" break; - case 178: // $@27: %empty -#line 771 "dhcp6_parser.yy" + case 180: // $@27: %empty +#line 779 "dhcp6_parser.yy" { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1499 "dhcp6_parser.cc" +#line 1509 "dhcp6_parser.cc" break; - case 179: // server_tag: "server-tag" $@27 ":" "constant string" -#line 774 "dhcp6_parser.yy" + case 181: // server_tag: "server-tag" $@27 ":" "constant string" +#line 782 "dhcp6_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); ctx.leave(); } -#line 1509 "dhcp6_parser.cc" +#line 1519 "dhcp6_parser.cc" break; - case 180: // parked_packet_limit: "parked-packet-limit" ":" "integer" -#line 780 "dhcp6_parser.yy" + case 182: // parked_packet_limit: "parked-packet-limit" ":" "integer" +#line 788 "dhcp6_parser.yy" { ctx.unique("parked-packet-limit", ctx.loc2pos(yystack_[2].location)); ElementPtr ppl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("parked-packet-limit", ppl); } -#line 1519 "dhcp6_parser.cc" +#line 1529 "dhcp6_parser.cc" break; - case 181: // $@28: %empty -#line 786 "dhcp6_parser.yy" + case 183: // $@28: %empty +#line 794 "dhcp6_parser.yy" { ctx.unique("allocator", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1528 "dhcp6_parser.cc" +#line 1538 "dhcp6_parser.cc" break; - case 182: // allocator: "allocator" $@28 ":" "constant string" -#line 789 "dhcp6_parser.yy" + case 184: // allocator: "allocator" $@28 ":" "constant string" +#line 797 "dhcp6_parser.yy" { ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("allocator", al); ctx.leave(); } -#line 1538 "dhcp6_parser.cc" +#line 1548 "dhcp6_parser.cc" break; - case 183: // $@29: %empty -#line 795 "dhcp6_parser.yy" + case 185: // $@29: %empty +#line 803 "dhcp6_parser.yy" { ctx.unique("pd-allocator", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1547 "dhcp6_parser.cc" +#line 1557 "dhcp6_parser.cc" break; - case 184: // pd_allocator: "pd-allocator" $@29 ":" "constant string" -#line 798 "dhcp6_parser.yy" + case 186: // pd_allocator: "pd-allocator" $@29 ":" "constant string" +#line 806 "dhcp6_parser.yy" { ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pd-allocator", al); ctx.leave(); } -#line 1557 "dhcp6_parser.cc" +#line 1567 "dhcp6_parser.cc" break; - case 185: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean" -#line 804 "dhcp6_parser.yy" + case 187: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean" +#line 812 "dhcp6_parser.yy" { ctx.unique("early-global-reservations-lookup", ctx.loc2pos(yystack_[2].location)); ElementPtr early(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("early-global-reservations-lookup", early); } -#line 1567 "dhcp6_parser.cc" +#line 1577 "dhcp6_parser.cc" break; - case 186: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 810 "dhcp6_parser.yy" + case 188: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" +#line 818 "dhcp6_parser.yy" { ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location)); ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-reservations-unique", unique); } -#line 1577 "dhcp6_parser.cc" +#line 1587 "dhcp6_parser.cc" break; - case 187: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean" -#line 816 "dhcp6_parser.yy" + case 189: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean" +#line 824 "dhcp6_parser.yy" { ctx.unique("reservations-lookup-first", ctx.loc2pos(yystack_[2].location)); ElementPtr first(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-lookup-first", first); } -#line 1587 "dhcp6_parser.cc" +#line 1597 "dhcp6_parser.cc" break; - case 188: // $@30: %empty -#line 822 "dhcp6_parser.yy" + case 190: // $@30: %empty +#line 830 "dhcp6_parser.yy" { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1595,48 +1605,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1599 "dhcp6_parser.cc" +#line 1609 "dhcp6_parser.cc" break; - case 189: // interfaces_config: "interfaces-config" $@30 ":" "{" interfaces_config_params "}" -#line 828 "dhcp6_parser.yy" + case 191: // interfaces_config: "interfaces-config" $@30 ":" "{" interfaces_config_params "}" +#line 836 "dhcp6_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1609 "dhcp6_parser.cc" +#line 1619 "dhcp6_parser.cc" break; - case 190: // $@31: %empty -#line 834 "dhcp6_parser.yy" + case 192: // $@31: %empty +#line 842 "dhcp6_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1619 "dhcp6_parser.cc" +#line 1629 "dhcp6_parser.cc" break; - case 191: // sub_interfaces6: "{" $@31 interfaces_config_params "}" -#line 838 "dhcp6_parser.yy" + case 193: // sub_interfaces6: "{" $@31 interfaces_config_params "}" +#line 846 "dhcp6_parser.yy" { // No interfaces config param is required // parsing completed } -#line 1628 "dhcp6_parser.cc" +#line 1638 "dhcp6_parser.cc" break; - case 194: // interfaces_config_params: interfaces_config_params "," -#line 845 "dhcp6_parser.yy" + case 196: // interfaces_config_params: interfaces_config_params "," +#line 853 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1636 "dhcp6_parser.cc" +#line 1646 "dhcp6_parser.cc" break; - case 203: // $@32: %empty -#line 860 "dhcp6_parser.yy" + case 205: // $@32: %empty +#line 868 "dhcp6_parser.yy" { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1644,60 +1654,60 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1648 "dhcp6_parser.cc" +#line 1658 "dhcp6_parser.cc" break; - case 204: // interfaces_list: "interfaces" $@32 ":" list_strings -#line 866 "dhcp6_parser.yy" + case 206: // interfaces_list: "interfaces" $@32 ":" list_strings +#line 874 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1657 "dhcp6_parser.cc" +#line 1667 "dhcp6_parser.cc" break; - case 205: // re_detect: "re-detect" ":" "boolean" -#line 871 "dhcp6_parser.yy" + case 207: // re_detect: "re-detect" ":" "boolean" +#line 879 "dhcp6_parser.yy" { ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("re-detect", b); } -#line 1667 "dhcp6_parser.cc" +#line 1677 "dhcp6_parser.cc" break; - case 206: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean" -#line 877 "dhcp6_parser.yy" + case 208: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean" +#line 885 "dhcp6_parser.yy" { ctx.unique("service-sockets-require-all", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("service-sockets-require-all", b); } -#line 1677 "dhcp6_parser.cc" +#line 1687 "dhcp6_parser.cc" break; - case 207: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer" -#line 883 "dhcp6_parser.yy" + case 209: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer" +#line 891 "dhcp6_parser.yy" { ctx.unique("service-sockets-retry-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("service-sockets-retry-wait-time", n); } -#line 1687 "dhcp6_parser.cc" +#line 1697 "dhcp6_parser.cc" break; - case 208: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer" -#line 889 "dhcp6_parser.yy" + case 210: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer" +#line 897 "dhcp6_parser.yy" { ctx.unique("service-sockets-max-retries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("service-sockets-max-retries", n); } -#line 1697 "dhcp6_parser.cc" +#line 1707 "dhcp6_parser.cc" break; - case 209: // $@33: %empty -#line 895 "dhcp6_parser.yy" + case 211: // $@33: %empty +#line 903 "dhcp6_parser.yy" { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1705,22 +1715,22 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1709 "dhcp6_parser.cc" +#line 1719 "dhcp6_parser.cc" break; - case 210: // lease_database: "lease-database" $@33 ":" "{" database_map_params "}" -#line 901 "dhcp6_parser.yy" + case 212: // lease_database: "lease-database" $@33 ":" "{" database_map_params "}" +#line 909 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1720 "dhcp6_parser.cc" +#line 1730 "dhcp6_parser.cc" break; - case 211: // $@34: %empty -#line 908 "dhcp6_parser.yy" + case 213: // $@34: %empty +#line 916 "dhcp6_parser.yy" { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1728,22 +1738,22 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1732 "dhcp6_parser.cc" +#line 1742 "dhcp6_parser.cc" break; - case 212: // hosts_database: "hosts-database" $@34 ":" "{" database_map_params "}" -#line 914 "dhcp6_parser.yy" + case 214: // hosts_database: "hosts-database" $@34 ":" "{" database_map_params "}" +#line 922 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1743 "dhcp6_parser.cc" +#line 1753 "dhcp6_parser.cc" break; - case 213: // $@35: %empty -#line 921 "dhcp6_parser.yy" + case 215: // $@35: %empty +#line 929 "dhcp6_parser.yy" { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1751,390 +1761,390 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1755 "dhcp6_parser.cc" +#line 1765 "dhcp6_parser.cc" break; - case 214: // hosts_databases: "hosts-databases" $@35 ":" "[" database_list "]" -#line 927 "dhcp6_parser.yy" + case 216: // hosts_databases: "hosts-databases" $@35 ":" "[" database_list "]" +#line 935 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1764 "dhcp6_parser.cc" +#line 1774 "dhcp6_parser.cc" break; - case 219: // not_empty_database_list: not_empty_database_list "," -#line 938 "dhcp6_parser.yy" + case 221: // not_empty_database_list: not_empty_database_list "," +#line 946 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1772 "dhcp6_parser.cc" +#line 1782 "dhcp6_parser.cc" break; - case 220: // $@36: %empty -#line 943 "dhcp6_parser.yy" + case 222: // $@36: %empty +#line 951 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1782 "dhcp6_parser.cc" +#line 1792 "dhcp6_parser.cc" break; - case 221: // database: "{" $@36 database_map_params "}" -#line 947 "dhcp6_parser.yy" + case 223: // database: "{" $@36 database_map_params "}" +#line 955 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1792 "dhcp6_parser.cc" +#line 1802 "dhcp6_parser.cc" break; - case 224: // database_map_params: database_map_params "," -#line 955 "dhcp6_parser.yy" + case 226: // database_map_params: database_map_params "," +#line 963 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 1800 "dhcp6_parser.cc" +#line 1810 "dhcp6_parser.cc" break; - case 247: // $@37: %empty -#line 984 "dhcp6_parser.yy" + case 249: // $@37: %empty +#line 992 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_TYPE); } -#line 1809 "dhcp6_parser.cc" +#line 1819 "dhcp6_parser.cc" break; - case 248: // database_type: "type" $@37 ":" db_type -#line 987 "dhcp6_parser.yy" + case 250: // database_type: "type" $@37 ":" db_type +#line 995 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1818 "dhcp6_parser.cc" +#line 1828 "dhcp6_parser.cc" break; - case 249: // db_type: "memfile" -#line 992 "dhcp6_parser.yy" + case 251: // db_type: "memfile" +#line 1000 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1824 "dhcp6_parser.cc" +#line 1834 "dhcp6_parser.cc" break; - case 250: // db_type: "mysql" -#line 993 "dhcp6_parser.yy" + case 252: // db_type: "mysql" +#line 1001 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1830 "dhcp6_parser.cc" +#line 1840 "dhcp6_parser.cc" break; - case 251: // db_type: "postgresql" -#line 994 "dhcp6_parser.yy" + case 253: // db_type: "postgresql" +#line 1002 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1836 "dhcp6_parser.cc" +#line 1846 "dhcp6_parser.cc" break; - case 252: // $@38: %empty -#line 997 "dhcp6_parser.yy" + case 254: // $@38: %empty +#line 1005 "dhcp6_parser.yy" { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1845 "dhcp6_parser.cc" +#line 1855 "dhcp6_parser.cc" break; - case 253: // user: "user" $@38 ":" "constant string" -#line 1000 "dhcp6_parser.yy" + case 255: // user: "user" $@38 ":" "constant string" +#line 1008 "dhcp6_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); ctx.leave(); } -#line 1855 "dhcp6_parser.cc" +#line 1865 "dhcp6_parser.cc" break; - case 254: // $@39: %empty -#line 1006 "dhcp6_parser.yy" + case 256: // $@39: %empty +#line 1014 "dhcp6_parser.yy" { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1864 "dhcp6_parser.cc" +#line 1874 "dhcp6_parser.cc" break; - case 255: // password: "password" $@39 ":" "constant string" -#line 1009 "dhcp6_parser.yy" + case 257: // password: "password" $@39 ":" "constant string" +#line 1017 "dhcp6_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); ctx.leave(); } -#line 1874 "dhcp6_parser.cc" +#line 1884 "dhcp6_parser.cc" break; - case 256: // $@40: %empty -#line 1015 "dhcp6_parser.yy" + case 258: // $@40: %empty +#line 1023 "dhcp6_parser.yy" { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1883 "dhcp6_parser.cc" +#line 1893 "dhcp6_parser.cc" break; - case 257: // host: "host" $@40 ":" "constant string" -#line 1018 "dhcp6_parser.yy" + case 259: // host: "host" $@40 ":" "constant string" +#line 1026 "dhcp6_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); ctx.leave(); } -#line 1893 "dhcp6_parser.cc" +#line 1903 "dhcp6_parser.cc" break; - case 258: // port: "port" ":" "integer" -#line 1024 "dhcp6_parser.yy" + case 260: // port: "port" ":" "integer" +#line 1032 "dhcp6_parser.yy" { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", p); } -#line 1903 "dhcp6_parser.cc" +#line 1913 "dhcp6_parser.cc" break; - case 259: // $@41: %empty -#line 1030 "dhcp6_parser.yy" + case 261: // $@41: %empty +#line 1038 "dhcp6_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1912 "dhcp6_parser.cc" +#line 1922 "dhcp6_parser.cc" break; - case 260: // name: "name" $@41 ":" "constant string" -#line 1033 "dhcp6_parser.yy" + case 262: // name: "name" $@41 ":" "constant string" +#line 1041 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1922 "dhcp6_parser.cc" +#line 1932 "dhcp6_parser.cc" break; - case 261: // persist: "persist" ":" "boolean" -#line 1039 "dhcp6_parser.yy" + case 263: // persist: "persist" ":" "boolean" +#line 1047 "dhcp6_parser.yy" { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); } -#line 1932 "dhcp6_parser.cc" +#line 1942 "dhcp6_parser.cc" break; - case 262: // lfc_interval: "lfc-interval" ":" "integer" -#line 1045 "dhcp6_parser.yy" + case 264: // lfc_interval: "lfc-interval" ":" "integer" +#line 1053 "dhcp6_parser.yy" { ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); } -#line 1942 "dhcp6_parser.cc" +#line 1952 "dhcp6_parser.cc" break; - case 263: // readonly: "readonly" ":" "boolean" -#line 1051 "dhcp6_parser.yy" + case 265: // readonly: "readonly" ":" "boolean" +#line 1059 "dhcp6_parser.yy" { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); } -#line 1952 "dhcp6_parser.cc" +#line 1962 "dhcp6_parser.cc" break; - case 264: // connect_timeout: "connect-timeout" ":" "integer" -#line 1057 "dhcp6_parser.yy" + case 266: // connect_timeout: "connect-timeout" ":" "integer" +#line 1065 "dhcp6_parser.yy" { ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("connect-timeout", n); } -#line 1962 "dhcp6_parser.cc" +#line 1972 "dhcp6_parser.cc" break; - case 265: // read_timeout: "read-timeout" ":" "integer" -#line 1063 "dhcp6_parser.yy" + case 267: // read_timeout: "read-timeout" ":" "integer" +#line 1071 "dhcp6_parser.yy" { ctx.unique("read-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("read-timeout", n); } -#line 1972 "dhcp6_parser.cc" +#line 1982 "dhcp6_parser.cc" break; - case 266: // write_timeout: "write-timeout" ":" "integer" -#line 1069 "dhcp6_parser.yy" + case 268: // write_timeout: "write-timeout" ":" "integer" +#line 1077 "dhcp6_parser.yy" { ctx.unique("write-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("write-timeout", n); } -#line 1982 "dhcp6_parser.cc" +#line 1992 "dhcp6_parser.cc" break; - case 267: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" -#line 1075 "dhcp6_parser.yy" + case 269: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" +#line 1083 "dhcp6_parser.yy" { ctx.unique("tcp-user-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-user-timeout", n); } -#line 1992 "dhcp6_parser.cc" +#line 2002 "dhcp6_parser.cc" break; - case 268: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 1082 "dhcp6_parser.yy" + case 270: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" +#line 1090 "dhcp6_parser.yy" { ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 2002 "dhcp6_parser.cc" +#line 2012 "dhcp6_parser.cc" break; - case 269: // $@42: %empty -#line 1088 "dhcp6_parser.yy" + case 271: // $@42: %empty +#line 1096 "dhcp6_parser.yy" { ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_ON_FAIL); } -#line 2011 "dhcp6_parser.cc" +#line 2021 "dhcp6_parser.cc" break; - case 270: // on_fail: "on-fail" $@42 ":" on_fail_mode -#line 1091 "dhcp6_parser.yy" + case 272: // on_fail: "on-fail" $@42 ":" on_fail_mode +#line 1099 "dhcp6_parser.yy" { ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2020 "dhcp6_parser.cc" +#line 2030 "dhcp6_parser.cc" break; - case 271: // on_fail_mode: "stop-retry-exit" -#line 1096 "dhcp6_parser.yy" + case 273: // on_fail_mode: "stop-retry-exit" +#line 1104 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); } -#line 2026 "dhcp6_parser.cc" +#line 2036 "dhcp6_parser.cc" break; - case 272: // on_fail_mode: "serve-retry-exit" -#line 1097 "dhcp6_parser.yy" + case 274: // on_fail_mode: "serve-retry-exit" +#line 1105 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); } -#line 2032 "dhcp6_parser.cc" +#line 2042 "dhcp6_parser.cc" break; - case 273: // on_fail_mode: "serve-retry-continue" -#line 1098 "dhcp6_parser.yy" + case 275: // on_fail_mode: "serve-retry-continue" +#line 1106 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); } -#line 2038 "dhcp6_parser.cc" +#line 2048 "dhcp6_parser.cc" break; - case 274: // max_row_errors: "max-row-errors" ":" "integer" -#line 1101 "dhcp6_parser.yy" + case 276: // max_row_errors: "max-row-errors" ":" "integer" +#line 1109 "dhcp6_parser.yy" { ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-row-errors", n); } -#line 2048 "dhcp6_parser.cc" +#line 2058 "dhcp6_parser.cc" break; - case 275: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 1107 "dhcp6_parser.yy" + case 277: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" +#line 1115 "dhcp6_parser.yy" { ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 2058 "dhcp6_parser.cc" +#line 2068 "dhcp6_parser.cc" break; - case 276: // $@43: %empty -#line 1113 "dhcp6_parser.yy" + case 278: // $@43: %empty +#line 1121 "dhcp6_parser.yy" { ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2067 "dhcp6_parser.cc" +#line 2077 "dhcp6_parser.cc" break; - case 277: // trust_anchor: "trust-anchor" $@43 ":" "constant string" -#line 1116 "dhcp6_parser.yy" + case 279: // trust_anchor: "trust-anchor" $@43 ":" "constant string" +#line 1124 "dhcp6_parser.yy" { ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("trust-anchor", ca); ctx.leave(); } -#line 2077 "dhcp6_parser.cc" +#line 2087 "dhcp6_parser.cc" break; - case 278: // $@44: %empty -#line 1122 "dhcp6_parser.yy" + case 280: // $@44: %empty +#line 1130 "dhcp6_parser.yy" { ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2086 "dhcp6_parser.cc" +#line 2096 "dhcp6_parser.cc" break; - case 279: // cert_file: "cert-file" $@44 ":" "constant string" -#line 1125 "dhcp6_parser.yy" + case 281: // cert_file: "cert-file" $@44 ":" "constant string" +#line 1133 "dhcp6_parser.yy" { ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-file", cert); ctx.leave(); } -#line 2096 "dhcp6_parser.cc" +#line 2106 "dhcp6_parser.cc" break; - case 280: // $@45: %empty -#line 1131 "dhcp6_parser.yy" + case 282: // $@45: %empty +#line 1139 "dhcp6_parser.yy" { ctx.unique("key-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2105 "dhcp6_parser.cc" +#line 2115 "dhcp6_parser.cc" break; - case 281: // key_file: "key-file" $@45 ":" "constant string" -#line 1134 "dhcp6_parser.yy" + case 283: // key_file: "key-file" $@45 ":" "constant string" +#line 1142 "dhcp6_parser.yy" { ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("key-file", key); ctx.leave(); } -#line 2115 "dhcp6_parser.cc" +#line 2125 "dhcp6_parser.cc" break; - case 282: // $@46: %empty -#line 1140 "dhcp6_parser.yy" + case 284: // $@46: %empty +#line 1148 "dhcp6_parser.yy" { ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2124 "dhcp6_parser.cc" +#line 2134 "dhcp6_parser.cc" break; - case 283: // cipher_list: "cipher-list" $@46 ":" "constant string" -#line 1143 "dhcp6_parser.yy" + case 285: // cipher_list: "cipher-list" $@46 ":" "constant string" +#line 1151 "dhcp6_parser.yy" { ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cipher-list", cl); ctx.leave(); } -#line 2134 "dhcp6_parser.cc" +#line 2144 "dhcp6_parser.cc" break; - case 284: // $@47: %empty -#line 1149 "dhcp6_parser.yy" + case 286: // $@47: %empty +#line 1157 "dhcp6_parser.yy" { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2142,37 +2152,37 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 2146 "dhcp6_parser.cc" +#line 2156 "dhcp6_parser.cc" break; - case 285: // sanity_checks: "sanity-checks" $@47 ":" "{" sanity_checks_params "}" -#line 1155 "dhcp6_parser.yy" + case 287: // sanity_checks: "sanity-checks" $@47 ":" "{" sanity_checks_params "}" +#line 1163 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2155 "dhcp6_parser.cc" +#line 2165 "dhcp6_parser.cc" break; - case 288: // sanity_checks_params: sanity_checks_params "," -#line 1162 "dhcp6_parser.yy" + case 290: // sanity_checks_params: sanity_checks_params "," +#line 1170 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2163 "dhcp6_parser.cc" +#line 2173 "dhcp6_parser.cc" break; - case 291: // $@48: %empty -#line 1171 "dhcp6_parser.yy" + case 293: // $@48: %empty +#line 1179 "dhcp6_parser.yy" { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2172 "dhcp6_parser.cc" +#line 2182 "dhcp6_parser.cc" break; - case 292: // lease_checks: "lease-checks" $@48 ":" "constant string" -#line 1174 "dhcp6_parser.yy" + case 294: // lease_checks: "lease-checks" $@48 ":" "constant string" +#line 1182 "dhcp6_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -2188,20 +2198,20 @@ namespace isc { namespace dhcp { ", supported values are: none, warn, fix, fix-del, del"); } } -#line 2192 "dhcp6_parser.cc" +#line 2202 "dhcp6_parser.cc" break; - case 293: // $@49: %empty -#line 1190 "dhcp6_parser.yy" + case 295: // $@49: %empty +#line 1198 "dhcp6_parser.yy" { ctx.unique("extended-info-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2201 "dhcp6_parser.cc" +#line 2211 "dhcp6_parser.cc" break; - case 294: // extended_info_checks: "extended-info-checks" $@49 ":" "constant string" -#line 1193 "dhcp6_parser.yy" + case 296: // extended_info_checks: "extended-info-checks" $@49 ":" "constant string" +#line 1201 "dhcp6_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -2216,11 +2226,11 @@ namespace isc { namespace dhcp { ", supported values are: none, fix, strict, pedantic"); } } -#line 2220 "dhcp6_parser.cc" +#line 2230 "dhcp6_parser.cc" break; - case 295: // $@50: %empty -#line 1208 "dhcp6_parser.yy" + case 297: // $@50: %empty +#line 1216 "dhcp6_parser.yy" { ctx.unique("mac-sources", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2228,46 +2238,46 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.MAC_SOURCES); } -#line 2232 "dhcp6_parser.cc" +#line 2242 "dhcp6_parser.cc" break; - case 296: // mac_sources: "mac-sources" $@50 ":" "[" mac_sources_list "]" -#line 1214 "dhcp6_parser.yy" + case 298: // mac_sources: "mac-sources" $@50 ":" "[" mac_sources_list "]" +#line 1222 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2241 "dhcp6_parser.cc" +#line 2251 "dhcp6_parser.cc" break; - case 299: // mac_sources_list: mac_sources_list "," -#line 1221 "dhcp6_parser.yy" + case 301: // mac_sources_list: mac_sources_list "," +#line 1229 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2249 "dhcp6_parser.cc" +#line 2259 "dhcp6_parser.cc" break; - case 302: // duid_id: "duid" -#line 1230 "dhcp6_parser.yy" + case 304: // duid_id: "duid" +#line 1238 "dhcp6_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2258 "dhcp6_parser.cc" +#line 2268 "dhcp6_parser.cc" break; - case 303: // string_id: "constant string" -#line 1235 "dhcp6_parser.yy" + case 305: // string_id: "constant string" +#line 1243 "dhcp6_parser.yy" { ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2267 "dhcp6_parser.cc" +#line 2277 "dhcp6_parser.cc" break; - case 304: // $@51: %empty -#line 1240 "dhcp6_parser.yy" + case 306: // $@51: %empty +#line 1248 "dhcp6_parser.yy" { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2275,46 +2285,46 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 2279 "dhcp6_parser.cc" +#line 2289 "dhcp6_parser.cc" break; - case 305: // host_reservation_identifiers: "host-reservation-identifiers" $@51 ":" "[" host_reservation_identifiers_list "]" -#line 1246 "dhcp6_parser.yy" + case 307: // host_reservation_identifiers: "host-reservation-identifiers" $@51 ":" "[" host_reservation_identifiers_list "]" +#line 1254 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2288 "dhcp6_parser.cc" +#line 2298 "dhcp6_parser.cc" break; - case 308: // host_reservation_identifiers_list: host_reservation_identifiers_list "," -#line 1253 "dhcp6_parser.yy" + case 310: // host_reservation_identifiers_list: host_reservation_identifiers_list "," +#line 1261 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2296 "dhcp6_parser.cc" +#line 2306 "dhcp6_parser.cc" break; - case 312: // hw_address_id: "hw-address" -#line 1263 "dhcp6_parser.yy" + case 314: // hw_address_id: "hw-address" +#line 1271 "dhcp6_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 2305 "dhcp6_parser.cc" +#line 2315 "dhcp6_parser.cc" break; - case 313: // flex_id: "flex-id" -#line 1268 "dhcp6_parser.yy" + case 315: // flex_id: "flex-id" +#line 1276 "dhcp6_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 2314 "dhcp6_parser.cc" +#line 2324 "dhcp6_parser.cc" break; - case 314: // $@52: %empty -#line 1275 "dhcp6_parser.yy" + case 316: // $@52: %empty +#line 1283 "dhcp6_parser.yy" { ctx.unique("relay-supplied-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2322,20 +2332,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2326 "dhcp6_parser.cc" +#line 2336 "dhcp6_parser.cc" break; - case 315: // relay_supplied_options: "relay-supplied-options" $@52 ":" "[" list_content "]" -#line 1281 "dhcp6_parser.yy" + case 317: // relay_supplied_options: "relay-supplied-options" $@52 ":" "[" list_content "]" +#line 1289 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2335 "dhcp6_parser.cc" +#line 2345 "dhcp6_parser.cc" break; - case 316: // $@53: %empty -#line 1288 "dhcp6_parser.yy" + case 318: // $@53: %empty +#line 1296 "dhcp6_parser.yy" { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2343,60 +2353,60 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(mt); ctx.enter(ctx.DHCP_MULTI_THREADING); } -#line 2347 "dhcp6_parser.cc" +#line 2357 "dhcp6_parser.cc" break; - case 317: // dhcp_multi_threading: "multi-threading" $@53 ":" "{" multi_threading_params "}" -#line 1294 "dhcp6_parser.yy" + case 319: // dhcp_multi_threading: "multi-threading" $@53 ":" "{" multi_threading_params "}" +#line 1302 "dhcp6_parser.yy" { // The enable parameter is required. ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 2358 "dhcp6_parser.cc" +#line 2368 "dhcp6_parser.cc" break; - case 320: // multi_threading_params: multi_threading_params "," -#line 1303 "dhcp6_parser.yy" + case 322: // multi_threading_params: multi_threading_params "," +#line 1311 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2366 "dhcp6_parser.cc" +#line 2376 "dhcp6_parser.cc" break; - case 327: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1316 "dhcp6_parser.yy" + case 329: // enable_multi_threading: "enable-multi-threading" ":" "boolean" +#line 1324 "dhcp6_parser.yy" { ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-multi-threading", b); } -#line 2376 "dhcp6_parser.cc" +#line 2386 "dhcp6_parser.cc" break; - case 328: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1322 "dhcp6_parser.yy" + case 330: // thread_pool_size: "thread-pool-size" ":" "integer" +#line 1330 "dhcp6_parser.yy" { ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("thread-pool-size", prf); } -#line 2386 "dhcp6_parser.cc" +#line 2396 "dhcp6_parser.cc" break; - case 329: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1328 "dhcp6_parser.yy" + case 331: // packet_queue_size: "packet-queue-size" ":" "integer" +#line 1336 "dhcp6_parser.yy" { ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("packet-queue-size", prf); } -#line 2396 "dhcp6_parser.cc" +#line 2406 "dhcp6_parser.cc" break; - case 330: // $@54: %empty -#line 1334 "dhcp6_parser.yy" + case 332: // $@54: %empty +#line 1342 "dhcp6_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2404,113 +2414,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2408 "dhcp6_parser.cc" +#line 2418 "dhcp6_parser.cc" break; - case 331: // hooks_libraries: "hooks-libraries" $@54 ":" "[" hooks_libraries_list "]" -#line 1340 "dhcp6_parser.yy" + case 333: // hooks_libraries: "hooks-libraries" $@54 ":" "[" hooks_libraries_list "]" +#line 1348 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2417 "dhcp6_parser.cc" +#line 2427 "dhcp6_parser.cc" break; - case 336: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," -#line 1351 "dhcp6_parser.yy" + case 338: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," +#line 1359 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2425 "dhcp6_parser.cc" +#line 2435 "dhcp6_parser.cc" break; - case 337: // $@55: %empty -#line 1356 "dhcp6_parser.yy" + case 339: // $@55: %empty +#line 1364 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2435 "dhcp6_parser.cc" +#line 2445 "dhcp6_parser.cc" break; - case 338: // hooks_library: "{" $@55 hooks_params "}" -#line 1360 "dhcp6_parser.yy" + case 340: // hooks_library: "{" $@55 hooks_params "}" +#line 1368 "dhcp6_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2445 "dhcp6_parser.cc" +#line 2455 "dhcp6_parser.cc" break; - case 339: // $@56: %empty -#line 1366 "dhcp6_parser.yy" + case 341: // $@56: %empty +#line 1374 "dhcp6_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2455 "dhcp6_parser.cc" +#line 2465 "dhcp6_parser.cc" break; - case 340: // sub_hooks_library: "{" $@56 hooks_params "}" -#line 1370 "dhcp6_parser.yy" + case 342: // sub_hooks_library: "{" $@56 hooks_params "}" +#line 1378 "dhcp6_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2465 "dhcp6_parser.cc" +#line 2475 "dhcp6_parser.cc" break; - case 343: // hooks_params: hooks_params "," -#line 1378 "dhcp6_parser.yy" + case 345: // hooks_params: hooks_params "," +#line 1386 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2473 "dhcp6_parser.cc" +#line 2483 "dhcp6_parser.cc" break; - case 347: // $@57: %empty -#line 1388 "dhcp6_parser.yy" + case 349: // $@57: %empty +#line 1396 "dhcp6_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2482 "dhcp6_parser.cc" +#line 2492 "dhcp6_parser.cc" break; - case 348: // library: "library" $@57 ":" "constant string" -#line 1391 "dhcp6_parser.yy" + case 350: // library: "library" $@57 ":" "constant string" +#line 1399 "dhcp6_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 2492 "dhcp6_parser.cc" +#line 2502 "dhcp6_parser.cc" break; - case 349: // $@58: %empty -#line 1397 "dhcp6_parser.yy" + case 351: // $@58: %empty +#line 1405 "dhcp6_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2501 "dhcp6_parser.cc" +#line 2511 "dhcp6_parser.cc" break; - case 350: // parameters: "parameters" $@58 ":" map_value -#line 1400 "dhcp6_parser.yy" + case 352: // parameters: "parameters" $@58 ":" map_value +#line 1408 "dhcp6_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2510 "dhcp6_parser.cc" +#line 2520 "dhcp6_parser.cc" break; - case 351: // $@59: %empty -#line 1406 "dhcp6_parser.yy" + case 353: // $@59: %empty +#line 1414 "dhcp6_parser.yy" { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2518,89 +2528,89 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2522 "dhcp6_parser.cc" +#line 2532 "dhcp6_parser.cc" break; - case 352: // expired_leases_processing: "expired-leases-processing" $@59 ":" "{" expired_leases_params "}" -#line 1412 "dhcp6_parser.yy" + case 354: // expired_leases_processing: "expired-leases-processing" $@59 ":" "{" expired_leases_params "}" +#line 1420 "dhcp6_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2532 "dhcp6_parser.cc" +#line 2542 "dhcp6_parser.cc" break; - case 355: // expired_leases_params: expired_leases_params "," -#line 1420 "dhcp6_parser.yy" + case 357: // expired_leases_params: expired_leases_params "," +#line 1428 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2540 "dhcp6_parser.cc" +#line 2550 "dhcp6_parser.cc" break; - case 362: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1433 "dhcp6_parser.yy" + case 364: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" +#line 1441 "dhcp6_parser.yy" { ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 2550 "dhcp6_parser.cc" +#line 2560 "dhcp6_parser.cc" break; - case 363: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1439 "dhcp6_parser.yy" + case 365: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" +#line 1447 "dhcp6_parser.yy" { ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 2560 "dhcp6_parser.cc" +#line 2570 "dhcp6_parser.cc" break; - case 364: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1445 "dhcp6_parser.yy" + case 366: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" +#line 1453 "dhcp6_parser.yy" { ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2570 "dhcp6_parser.cc" +#line 2580 "dhcp6_parser.cc" break; - case 365: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1451 "dhcp6_parser.yy" + case 367: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" +#line 1459 "dhcp6_parser.yy" { ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2580 "dhcp6_parser.cc" +#line 2590 "dhcp6_parser.cc" break; - case 366: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1457 "dhcp6_parser.yy" + case 368: // max_reclaim_time: "max-reclaim-time" ":" "integer" +#line 1465 "dhcp6_parser.yy" { ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2590 "dhcp6_parser.cc" +#line 2600 "dhcp6_parser.cc" break; - case 367: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1463 "dhcp6_parser.yy" + case 369: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" +#line 1471 "dhcp6_parser.yy" { ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2600 "dhcp6_parser.cc" +#line 2610 "dhcp6_parser.cc" break; - case 368: // $@60: %empty -#line 1472 "dhcp6_parser.yy" + case 370: // $@60: %empty +#line 1480 "dhcp6_parser.yy" { ctx.unique("subnet6", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2608,38 +2618,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET6); } -#line 2612 "dhcp6_parser.cc" +#line 2622 "dhcp6_parser.cc" break; - case 369: // subnet6_list: "subnet6" $@60 ":" "[" subnet6_list_content "]" -#line 1478 "dhcp6_parser.yy" + case 371: // subnet6_list: "subnet6" $@60 ":" "[" subnet6_list_content "]" +#line 1486 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2621 "dhcp6_parser.cc" +#line 2631 "dhcp6_parser.cc" break; - case 374: // not_empty_subnet6_list: not_empty_subnet6_list "," -#line 1492 "dhcp6_parser.yy" + case 376: // not_empty_subnet6_list: not_empty_subnet6_list "," +#line 1500 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2629 "dhcp6_parser.cc" +#line 2639 "dhcp6_parser.cc" break; - case 375: // $@61: %empty -#line 1501 "dhcp6_parser.yy" + case 377: // $@61: %empty +#line 1509 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2639 "dhcp6_parser.cc" +#line 2649 "dhcp6_parser.cc" break; - case 376: // subnet6: "{" $@61 subnet6_params "}" -#line 1505 "dhcp6_parser.yy" + case 378: // subnet6: "{" $@61 subnet6_params "}" +#line 1513 "dhcp6_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -2661,115 +2671,115 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2665 "dhcp6_parser.cc" +#line 2675 "dhcp6_parser.cc" break; - case 377: // $@62: %empty -#line 1527 "dhcp6_parser.yy" + case 379: // $@62: %empty +#line 1535 "dhcp6_parser.yy" { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2675 "dhcp6_parser.cc" +#line 2685 "dhcp6_parser.cc" break; - case 378: // sub_subnet6: "{" $@62 subnet6_params "}" -#line 1531 "dhcp6_parser.yy" + case 380: // sub_subnet6: "{" $@62 subnet6_params "}" +#line 1539 "dhcp6_parser.yy" { // The subnet subnet6 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2685 "dhcp6_parser.cc" +#line 2695 "dhcp6_parser.cc" break; - case 381: // subnet6_params: subnet6_params "," -#line 1540 "dhcp6_parser.yy" + case 383: // subnet6_params: subnet6_params "," +#line 1548 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2693 "dhcp6_parser.cc" +#line 2703 "dhcp6_parser.cc" break; - case 427: // $@63: %empty -#line 1593 "dhcp6_parser.yy" + case 430: // $@63: %empty +#line 1602 "dhcp6_parser.yy" { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2702 "dhcp6_parser.cc" +#line 2712 "dhcp6_parser.cc" break; - case 428: // subnet: "subnet" $@63 ":" "constant string" -#line 1596 "dhcp6_parser.yy" + case 431: // subnet: "subnet" $@63 ":" "constant string" +#line 1605 "dhcp6_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2712 "dhcp6_parser.cc" +#line 2722 "dhcp6_parser.cc" break; - case 429: // $@64: %empty -#line 1602 "dhcp6_parser.yy" + case 432: // $@64: %empty +#line 1611 "dhcp6_parser.yy" { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2721 "dhcp6_parser.cc" +#line 2731 "dhcp6_parser.cc" break; - case 430: // interface: "interface" $@64 ":" "constant string" -#line 1605 "dhcp6_parser.yy" + case 433: // interface: "interface" $@64 ":" "constant string" +#line 1614 "dhcp6_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2731 "dhcp6_parser.cc" +#line 2741 "dhcp6_parser.cc" break; - case 431: // $@65: %empty -#line 1611 "dhcp6_parser.yy" + case 434: // $@65: %empty +#line 1620 "dhcp6_parser.yy" { ctx.unique("interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2740 "dhcp6_parser.cc" +#line 2750 "dhcp6_parser.cc" break; - case 432: // interface_id: "interface-id" $@65 ":" "constant string" -#line 1614 "dhcp6_parser.yy" + case 435: // interface_id: "interface-id" $@65 ":" "constant string" +#line 1623 "dhcp6_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface-id", iface); ctx.leave(); } -#line 2750 "dhcp6_parser.cc" +#line 2760 "dhcp6_parser.cc" break; - case 433: // $@66: %empty -#line 1620 "dhcp6_parser.yy" + case 436: // $@66: %empty +#line 1629 "dhcp6_parser.yy" { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2759 "dhcp6_parser.cc" +#line 2769 "dhcp6_parser.cc" break; - case 434: // client_class: "client-class" $@66 ":" "constant string" -#line 1623 "dhcp6_parser.yy" + case 437: // client_class: "client-class" $@66 ":" "constant string" +#line 1632 "dhcp6_parser.yy" { ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 2769 "dhcp6_parser.cc" +#line 2779 "dhcp6_parser.cc" break; - case 435: // $@67: %empty -#line 1629 "dhcp6_parser.yy" + case 438: // $@67: %empty +#line 1638 "dhcp6_parser.yy" { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2777,112 +2787,112 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2781 "dhcp6_parser.cc" +#line 2791 "dhcp6_parser.cc" break; - case 436: // require_client_classes: "require-client-classes" $@67 ":" list_strings -#line 1635 "dhcp6_parser.yy" + case 439: // require_client_classes: "require-client-classes" $@67 ":" list_strings +#line 1644 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2790 "dhcp6_parser.cc" +#line 2800 "dhcp6_parser.cc" break; - case 437: // reservations_global: "reservations-global" ":" "boolean" -#line 1640 "dhcp6_parser.yy" + case 440: // reservations_global: "reservations-global" ":" "boolean" +#line 1649 "dhcp6_parser.yy" { ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-global", b); } -#line 2800 "dhcp6_parser.cc" +#line 2810 "dhcp6_parser.cc" break; - case 438: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" -#line 1646 "dhcp6_parser.yy" + case 441: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" +#line 1655 "dhcp6_parser.yy" { ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-in-subnet", b); } -#line 2810 "dhcp6_parser.cc" +#line 2820 "dhcp6_parser.cc" break; - case 439: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" -#line 1652 "dhcp6_parser.yy" + case 442: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" +#line 1661 "dhcp6_parser.yy" { ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-out-of-pool", b); } -#line 2820 "dhcp6_parser.cc" +#line 2830 "dhcp6_parser.cc" break; - case 440: // $@68: %empty -#line 1658 "dhcp6_parser.yy" + case 443: // $@68: %empty +#line 1667 "dhcp6_parser.yy" { ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.RESERVATION_MODE); } -#line 2829 "dhcp6_parser.cc" +#line 2839 "dhcp6_parser.cc" break; - case 441: // reservation_mode: "reservation-mode" $@68 ":" hr_mode -#line 1661 "dhcp6_parser.yy" + case 444: // reservation_mode: "reservation-mode" $@68 ":" hr_mode +#line 1670 "dhcp6_parser.yy" { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2838 "dhcp6_parser.cc" +#line 2848 "dhcp6_parser.cc" break; - case 442: // hr_mode: "disabled" -#line 1666 "dhcp6_parser.yy" + case 445: // hr_mode: "disabled" +#line 1675 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2844 "dhcp6_parser.cc" +#line 2854 "dhcp6_parser.cc" break; - case 443: // hr_mode: "out-of-pool" -#line 1667 "dhcp6_parser.yy" + case 446: // hr_mode: "out-of-pool" +#line 1676 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2850 "dhcp6_parser.cc" +#line 2860 "dhcp6_parser.cc" break; - case 444: // hr_mode: "global" -#line 1668 "dhcp6_parser.yy" + case 447: // hr_mode: "global" +#line 1677 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2856 "dhcp6_parser.cc" +#line 2866 "dhcp6_parser.cc" break; - case 445: // hr_mode: "all" -#line 1669 "dhcp6_parser.yy" + case 448: // hr_mode: "all" +#line 1678 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2862 "dhcp6_parser.cc" +#line 2872 "dhcp6_parser.cc" break; - case 446: // id: "id" ":" "integer" -#line 1672 "dhcp6_parser.yy" + case 449: // id: "id" ":" "integer" +#line 1681 "dhcp6_parser.yy" { ctx.unique("id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2872 "dhcp6_parser.cc" +#line 2882 "dhcp6_parser.cc" break; - case 447: // rapid_commit: "rapid-commit" ":" "boolean" -#line 1678 "dhcp6_parser.yy" + case 450: // rapid_commit: "rapid-commit" ":" "boolean" +#line 1687 "dhcp6_parser.yy" { ctx.unique("rapid-commit", ctx.loc2pos(yystack_[2].location)); ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } -#line 2882 "dhcp6_parser.cc" +#line 2892 "dhcp6_parser.cc" break; - case 448: // $@69: %empty -#line 1686 "dhcp6_parser.yy" + case 451: // $@69: %empty +#line 1695 "dhcp6_parser.yy" { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2890,54 +2900,54 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2894 "dhcp6_parser.cc" +#line 2904 "dhcp6_parser.cc" break; - case 449: // shared_networks: "shared-networks" $@69 ":" "[" shared_networks_content "]" -#line 1692 "dhcp6_parser.yy" + case 452: // shared_networks: "shared-networks" $@69 ":" "[" shared_networks_content "]" +#line 1701 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2903 "dhcp6_parser.cc" +#line 2913 "dhcp6_parser.cc" break; - case 454: // shared_networks_list: shared_networks_list "," -#line 1705 "dhcp6_parser.yy" + case 457: // shared_networks_list: shared_networks_list "," +#line 1714 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2911 "dhcp6_parser.cc" +#line 2921 "dhcp6_parser.cc" break; - case 455: // $@70: %empty -#line 1710 "dhcp6_parser.yy" + case 458: // $@70: %empty +#line 1719 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2921 "dhcp6_parser.cc" +#line 2931 "dhcp6_parser.cc" break; - case 456: // shared_network: "{" $@70 shared_network_params "}" -#line 1714 "dhcp6_parser.yy" + case 459: // shared_network: "{" $@70 shared_network_params "}" +#line 1723 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 2929 "dhcp6_parser.cc" +#line 2939 "dhcp6_parser.cc" break; - case 459: // shared_network_params: shared_network_params "," -#line 1720 "dhcp6_parser.yy" + case 462: // shared_network_params: shared_network_params "," +#line 1729 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2937 "dhcp6_parser.cc" +#line 2947 "dhcp6_parser.cc" break; - case 502: // $@71: %empty -#line 1773 "dhcp6_parser.yy" + case 506: // $@71: %empty +#line 1783 "dhcp6_parser.yy" { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2945,55 +2955,55 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2949 "dhcp6_parser.cc" +#line 2959 "dhcp6_parser.cc" break; - case 503: // option_def_list: "option-def" $@71 ":" "[" option_def_list_content "]" -#line 1779 "dhcp6_parser.yy" + case 507: // option_def_list: "option-def" $@71 ":" "[" option_def_list_content "]" +#line 1789 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2958 "dhcp6_parser.cc" +#line 2968 "dhcp6_parser.cc" break; - case 504: // $@72: %empty -#line 1787 "dhcp6_parser.yy" + case 508: // $@72: %empty +#line 1797 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2967 "dhcp6_parser.cc" +#line 2977 "dhcp6_parser.cc" break; - case 505: // sub_option_def_list: "{" $@72 option_def_list "}" -#line 1790 "dhcp6_parser.yy" + case 509: // sub_option_def_list: "{" $@72 option_def_list "}" +#line 1800 "dhcp6_parser.yy" { // parsing completed } -#line 2975 "dhcp6_parser.cc" +#line 2985 "dhcp6_parser.cc" break; - case 510: // not_empty_option_def_list: not_empty_option_def_list "," -#line 1802 "dhcp6_parser.yy" + case 514: // not_empty_option_def_list: not_empty_option_def_list "," +#line 1812 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2983 "dhcp6_parser.cc" +#line 2993 "dhcp6_parser.cc" break; - case 511: // $@73: %empty -#line 1809 "dhcp6_parser.yy" + case 515: // $@73: %empty +#line 1819 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2993 "dhcp6_parser.cc" +#line 3003 "dhcp6_parser.cc" break; - case 512: // option_def_entry: "{" $@73 option_def_params "}" -#line 1813 "dhcp6_parser.yy" + case 516: // option_def_entry: "{" $@73 option_def_params "}" +#line 1823 "dhcp6_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3001,21 +3011,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3005 "dhcp6_parser.cc" +#line 3015 "dhcp6_parser.cc" break; - case 513: // $@74: %empty -#line 1824 "dhcp6_parser.yy" + case 517: // $@74: %empty +#line 1834 "dhcp6_parser.yy" { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3015 "dhcp6_parser.cc" +#line 3025 "dhcp6_parser.cc" break; - case 514: // sub_option_def: "{" $@74 option_def_params "}" -#line 1828 "dhcp6_parser.yy" + case 518: // sub_option_def: "{" $@74 option_def_params "}" +#line 1838 "dhcp6_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3023,115 +3033,115 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3027 "dhcp6_parser.cc" +#line 3037 "dhcp6_parser.cc" break; - case 519: // not_empty_option_def_params: not_empty_option_def_params "," -#line 1844 "dhcp6_parser.yy" + case 523: // not_empty_option_def_params: not_empty_option_def_params "," +#line 1854 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3035 "dhcp6_parser.cc" +#line 3045 "dhcp6_parser.cc" break; - case 531: // code: "code" ":" "integer" -#line 1863 "dhcp6_parser.yy" + case 535: // code: "code" ":" "integer" +#line 1873 "dhcp6_parser.yy" { ctx.unique("code", ctx.loc2pos(yystack_[2].location)); ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 3045 "dhcp6_parser.cc" +#line 3055 "dhcp6_parser.cc" break; - case 533: // $@75: %empty -#line 1871 "dhcp6_parser.yy" + case 537: // $@75: %empty +#line 1881 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3054 "dhcp6_parser.cc" +#line 3064 "dhcp6_parser.cc" break; - case 534: // option_def_type: "type" $@75 ":" "constant string" -#line 1874 "dhcp6_parser.yy" + case 538: // option_def_type: "type" $@75 ":" "constant string" +#line 1884 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 3064 "dhcp6_parser.cc" +#line 3074 "dhcp6_parser.cc" break; - case 535: // $@76: %empty -#line 1880 "dhcp6_parser.yy" + case 539: // $@76: %empty +#line 1890 "dhcp6_parser.yy" { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3073 "dhcp6_parser.cc" +#line 3083 "dhcp6_parser.cc" break; - case 536: // option_def_record_types: "record-types" $@76 ":" "constant string" -#line 1883 "dhcp6_parser.yy" + case 540: // option_def_record_types: "record-types" $@76 ":" "constant string" +#line 1893 "dhcp6_parser.yy" { ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } -#line 3083 "dhcp6_parser.cc" +#line 3093 "dhcp6_parser.cc" break; - case 537: // $@77: %empty -#line 1889 "dhcp6_parser.yy" + case 541: // $@77: %empty +#line 1899 "dhcp6_parser.yy" { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3092 "dhcp6_parser.cc" +#line 3102 "dhcp6_parser.cc" break; - case 538: // space: "space" $@77 ":" "constant string" -#line 1892 "dhcp6_parser.yy" + case 542: // space: "space" $@77 ":" "constant string" +#line 1902 "dhcp6_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 3102 "dhcp6_parser.cc" +#line 3112 "dhcp6_parser.cc" break; - case 540: // $@78: %empty -#line 1900 "dhcp6_parser.yy" + case 544: // $@78: %empty +#line 1910 "dhcp6_parser.yy" { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3111 "dhcp6_parser.cc" +#line 3121 "dhcp6_parser.cc" break; - case 541: // option_def_encapsulate: "encapsulate" $@78 ":" "constant string" -#line 1903 "dhcp6_parser.yy" + case 545: // option_def_encapsulate: "encapsulate" $@78 ":" "constant string" +#line 1913 "dhcp6_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 3121 "dhcp6_parser.cc" +#line 3131 "dhcp6_parser.cc" break; - case 542: // option_def_array: "array" ":" "boolean" -#line 1909 "dhcp6_parser.yy" + case 546: // option_def_array: "array" ":" "boolean" +#line 1919 "dhcp6_parser.yy" { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 3131 "dhcp6_parser.cc" +#line 3141 "dhcp6_parser.cc" break; - case 543: // $@79: %empty -#line 1919 "dhcp6_parser.yy" + case 547: // $@79: %empty +#line 1929 "dhcp6_parser.yy" { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3139,123 +3149,123 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 3143 "dhcp6_parser.cc" +#line 3153 "dhcp6_parser.cc" break; - case 544: // option_data_list: "option-data" $@79 ":" "[" option_data_list_content "]" -#line 1925 "dhcp6_parser.yy" + case 548: // option_data_list: "option-data" $@79 ":" "[" option_data_list_content "]" +#line 1935 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3152 "dhcp6_parser.cc" +#line 3162 "dhcp6_parser.cc" break; - case 549: // not_empty_option_data_list: not_empty_option_data_list "," -#line 1940 "dhcp6_parser.yy" + case 553: // not_empty_option_data_list: not_empty_option_data_list "," +#line 1950 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3160 "dhcp6_parser.cc" +#line 3170 "dhcp6_parser.cc" break; - case 550: // $@80: %empty -#line 1947 "dhcp6_parser.yy" + case 554: // $@80: %empty +#line 1957 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3170 "dhcp6_parser.cc" +#line 3180 "dhcp6_parser.cc" break; - case 551: // option_data_entry: "{" $@80 option_data_params "}" -#line 1951 "dhcp6_parser.yy" + case 555: // option_data_entry: "{" $@80 option_data_params "}" +#line 1961 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 3179 "dhcp6_parser.cc" +#line 3189 "dhcp6_parser.cc" break; - case 552: // $@81: %empty -#line 1959 "dhcp6_parser.yy" + case 556: // $@81: %empty +#line 1969 "dhcp6_parser.yy" { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3189 "dhcp6_parser.cc" +#line 3199 "dhcp6_parser.cc" break; - case 553: // sub_option_data: "{" $@81 option_data_params "}" -#line 1963 "dhcp6_parser.yy" + case 557: // sub_option_data: "{" $@81 option_data_params "}" +#line 1973 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed } -#line 3198 "dhcp6_parser.cc" +#line 3208 "dhcp6_parser.cc" break; - case 558: // not_empty_option_data_params: not_empty_option_data_params "," -#line 1979 "dhcp6_parser.yy" + case 562: // not_empty_option_data_params: not_empty_option_data_params "," +#line 1989 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3206 "dhcp6_parser.cc" +#line 3216 "dhcp6_parser.cc" break; - case 570: // $@82: %empty -#line 2000 "dhcp6_parser.yy" + case 574: // $@82: %empty +#line 2010 "dhcp6_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3215 "dhcp6_parser.cc" +#line 3225 "dhcp6_parser.cc" break; - case 571: // option_data_data: "data" $@82 ":" "constant string" -#line 2003 "dhcp6_parser.yy" + case 575: // option_data_data: "data" $@82 ":" "constant string" +#line 2013 "dhcp6_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 3225 "dhcp6_parser.cc" +#line 3235 "dhcp6_parser.cc" break; - case 574: // option_data_csv_format: "csv-format" ":" "boolean" -#line 2013 "dhcp6_parser.yy" + case 578: // option_data_csv_format: "csv-format" ":" "boolean" +#line 2023 "dhcp6_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", csv); } -#line 3235 "dhcp6_parser.cc" +#line 3245 "dhcp6_parser.cc" break; - case 575: // option_data_always_send: "always-send" ":" "boolean" -#line 2019 "dhcp6_parser.yy" + case 579: // option_data_always_send: "always-send" ":" "boolean" +#line 2029 "dhcp6_parser.yy" { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 3245 "dhcp6_parser.cc" +#line 3255 "dhcp6_parser.cc" break; - case 576: // option_data_never_send: "never-send" ":" "boolean" -#line 2025 "dhcp6_parser.yy" + case 580: // option_data_never_send: "never-send" ":" "boolean" +#line 2035 "dhcp6_parser.yy" { ctx.unique("never-send", ctx.loc2pos(yystack_[2].location)); ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("never-send", cancel); } -#line 3255 "dhcp6_parser.cc" +#line 3265 "dhcp6_parser.cc" break; - case 577: // $@83: %empty -#line 2034 "dhcp6_parser.yy" + case 581: // $@83: %empty +#line 2044 "dhcp6_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3263,103 +3273,103 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 3267 "dhcp6_parser.cc" +#line 3277 "dhcp6_parser.cc" break; - case 578: // pools_list: "pools" $@83 ":" "[" pools_list_content "]" -#line 2040 "dhcp6_parser.yy" + case 582: // pools_list: "pools" $@83 ":" "[" pools_list_content "]" +#line 2050 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3276 "dhcp6_parser.cc" +#line 3286 "dhcp6_parser.cc" break; - case 583: // not_empty_pools_list: not_empty_pools_list "," -#line 2053 "dhcp6_parser.yy" + case 587: // not_empty_pools_list: not_empty_pools_list "," +#line 2063 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3284 "dhcp6_parser.cc" +#line 3294 "dhcp6_parser.cc" break; - case 584: // $@84: %empty -#line 2058 "dhcp6_parser.yy" + case 588: // $@84: %empty +#line 2068 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3294 "dhcp6_parser.cc" +#line 3304 "dhcp6_parser.cc" break; - case 585: // pool_list_entry: "{" $@84 pool_params "}" -#line 2062 "dhcp6_parser.yy" + case 589: // pool_list_entry: "{" $@84 pool_params "}" +#line 2072 "dhcp6_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3304 "dhcp6_parser.cc" +#line 3314 "dhcp6_parser.cc" break; - case 586: // $@85: %empty -#line 2068 "dhcp6_parser.yy" + case 590: // $@85: %empty +#line 2078 "dhcp6_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3314 "dhcp6_parser.cc" +#line 3324 "dhcp6_parser.cc" break; - case 587: // sub_pool6: "{" $@85 pool_params "}" -#line 2072 "dhcp6_parser.yy" + case 591: // sub_pool6: "{" $@85 pool_params "}" +#line 2082 "dhcp6_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3324 "dhcp6_parser.cc" +#line 3334 "dhcp6_parser.cc" break; - case 590: // pool_params: pool_params "," -#line 2080 "dhcp6_parser.yy" + case 594: // pool_params: pool_params "," +#line 2090 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3332 "dhcp6_parser.cc" +#line 3342 "dhcp6_parser.cc" break; - case 598: // $@86: %empty -#line 2094 "dhcp6_parser.yy" + case 602: // $@86: %empty +#line 2104 "dhcp6_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3341 "dhcp6_parser.cc" +#line 3351 "dhcp6_parser.cc" break; - case 599: // pool_entry: "pool" $@86 ":" "constant string" -#line 2097 "dhcp6_parser.yy" + case 603: // pool_entry: "pool" $@86 ":" "constant string" +#line 2107 "dhcp6_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 3351 "dhcp6_parser.cc" +#line 3361 "dhcp6_parser.cc" break; - case 600: // $@87: %empty -#line 2103 "dhcp6_parser.yy" + case 604: // $@87: %empty +#line 2113 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3359 "dhcp6_parser.cc" +#line 3369 "dhcp6_parser.cc" break; - case 601: // user_context: "user-context" $@87 ":" map_value -#line 2105 "dhcp6_parser.yy" + case 605: // user_context: "user-context" $@87 ":" map_value +#line 2115 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3382,19 +3392,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3386 "dhcp6_parser.cc" +#line 3396 "dhcp6_parser.cc" break; - case 602: // $@88: %empty -#line 2128 "dhcp6_parser.yy" + case 606: // $@88: %empty +#line 2138 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3394 "dhcp6_parser.cc" +#line 3404 "dhcp6_parser.cc" break; - case 603: // comment: "comment" $@88 ":" "constant string" -#line 2130 "dhcp6_parser.yy" + case 607: // comment: "comment" $@88 ":" "constant string" +#line 2140 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3419,11 +3429,11 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3423 "dhcp6_parser.cc" +#line 3433 "dhcp6_parser.cc" break; - case 604: // $@89: %empty -#line 2158 "dhcp6_parser.yy" + case 608: // $@89: %empty +#line 2168 "dhcp6_parser.yy" { ctx.unique("pd-pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3431,38 +3441,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.PD_POOLS); } -#line 3435 "dhcp6_parser.cc" +#line 3445 "dhcp6_parser.cc" break; - case 605: // pd_pools_list: "pd-pools" $@89 ":" "[" pd_pools_list_content "]" -#line 2164 "dhcp6_parser.yy" + case 609: // pd_pools_list: "pd-pools" $@89 ":" "[" pd_pools_list_content "]" +#line 2174 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3444 "dhcp6_parser.cc" +#line 3454 "dhcp6_parser.cc" break; - case 610: // not_empty_pd_pools_list: not_empty_pd_pools_list "," -#line 2177 "dhcp6_parser.yy" + case 614: // not_empty_pd_pools_list: not_empty_pd_pools_list "," +#line 2187 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3452 "dhcp6_parser.cc" +#line 3462 "dhcp6_parser.cc" break; - case 611: // $@90: %empty -#line 2182 "dhcp6_parser.yy" + case 615: // $@90: %empty +#line 2192 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3462 "dhcp6_parser.cc" +#line 3472 "dhcp6_parser.cc" break; - case 612: // pd_pool_entry: "{" $@90 pd_pool_params "}" -#line 2186 "dhcp6_parser.yy" + case 616: // pd_pool_entry: "{" $@90 pd_pool_params "}" +#line 2196 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3470,21 +3480,21 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3474 "dhcp6_parser.cc" +#line 3484 "dhcp6_parser.cc" break; - case 613: // $@91: %empty -#line 2194 "dhcp6_parser.yy" + case 617: // $@91: %empty +#line 2204 "dhcp6_parser.yy" { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3484 "dhcp6_parser.cc" +#line 3494 "dhcp6_parser.cc" break; - case 614: // sub_pd_pool: "{" $@91 pd_pool_params "}" -#line 2198 "dhcp6_parser.yy" + case 618: // sub_pd_pool: "{" $@91 pd_pool_params "}" +#line 2208 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3492,87 +3502,87 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3496 "dhcp6_parser.cc" +#line 3506 "dhcp6_parser.cc" break; - case 617: // pd_pool_params: pd_pool_params "," -#line 2208 "dhcp6_parser.yy" + case 621: // pd_pool_params: pd_pool_params "," +#line 2218 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3504 "dhcp6_parser.cc" +#line 3514 "dhcp6_parser.cc" break; - case 629: // $@92: %empty -#line 2226 "dhcp6_parser.yy" + case 633: // $@92: %empty +#line 2236 "dhcp6_parser.yy" { ctx.unique("prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3513 "dhcp6_parser.cc" +#line 3523 "dhcp6_parser.cc" break; - case 630: // pd_prefix: "prefix" $@92 ":" "constant string" -#line 2229 "dhcp6_parser.yy" + case 634: // pd_prefix: "prefix" $@92 ":" "constant string" +#line 2239 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } -#line 3523 "dhcp6_parser.cc" +#line 3533 "dhcp6_parser.cc" break; - case 631: // pd_prefix_len: "prefix-len" ":" "integer" -#line 2235 "dhcp6_parser.yy" + case 635: // pd_prefix_len: "prefix-len" ":" "integer" +#line 2245 "dhcp6_parser.yy" { ctx.unique("prefix-len", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 3533 "dhcp6_parser.cc" +#line 3543 "dhcp6_parser.cc" break; - case 632: // $@93: %empty -#line 2241 "dhcp6_parser.yy" + case 636: // $@93: %empty +#line 2251 "dhcp6_parser.yy" { ctx.unique("excluded-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3542 "dhcp6_parser.cc" +#line 3552 "dhcp6_parser.cc" break; - case 633: // excluded_prefix: "excluded-prefix" $@93 ":" "constant string" -#line 2244 "dhcp6_parser.yy" + case 637: // excluded_prefix: "excluded-prefix" $@93 ":" "constant string" +#line 2254 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix", prf); ctx.leave(); } -#line 3552 "dhcp6_parser.cc" +#line 3562 "dhcp6_parser.cc" break; - case 634: // excluded_prefix_len: "excluded-prefix-len" ":" "integer" -#line 2250 "dhcp6_parser.yy" + case 638: // excluded_prefix_len: "excluded-prefix-len" ":" "integer" +#line 2260 "dhcp6_parser.yy" { ctx.unique("excluded-prefix-len", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 3562 "dhcp6_parser.cc" +#line 3572 "dhcp6_parser.cc" break; - case 635: // pd_delegated_len: "delegated-len" ":" "integer" -#line 2256 "dhcp6_parser.yy" + case 639: // pd_delegated_len: "delegated-len" ":" "integer" +#line 2266 "dhcp6_parser.yy" { ctx.unique("delegated-len", ctx.loc2pos(yystack_[2].location)); ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 3572 "dhcp6_parser.cc" +#line 3582 "dhcp6_parser.cc" break; - case 636: // $@94: %empty -#line 2265 "dhcp6_parser.yy" + case 640: // $@94: %empty +#line 2275 "dhcp6_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3580,74 +3590,74 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3584 "dhcp6_parser.cc" +#line 3594 "dhcp6_parser.cc" break; - case 637: // reservations: "reservations" $@94 ":" "[" reservations_list "]" -#line 2271 "dhcp6_parser.yy" + case 641: // reservations: "reservations" $@94 ":" "[" reservations_list "]" +#line 2281 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3593 "dhcp6_parser.cc" +#line 3603 "dhcp6_parser.cc" break; - case 642: // not_empty_reservations_list: not_empty_reservations_list "," -#line 2282 "dhcp6_parser.yy" + case 646: // not_empty_reservations_list: not_empty_reservations_list "," +#line 2292 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3601 "dhcp6_parser.cc" +#line 3611 "dhcp6_parser.cc" break; - case 643: // $@95: %empty -#line 2287 "dhcp6_parser.yy" + case 647: // $@95: %empty +#line 2297 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3611 "dhcp6_parser.cc" +#line 3621 "dhcp6_parser.cc" break; - case 644: // reservation: "{" $@95 reservation_params "}" -#line 2291 "dhcp6_parser.yy" + case 648: // reservation: "{" $@95 reservation_params "}" +#line 2301 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3620 "dhcp6_parser.cc" +#line 3630 "dhcp6_parser.cc" break; - case 645: // $@96: %empty -#line 2296 "dhcp6_parser.yy" + case 649: // $@96: %empty +#line 2306 "dhcp6_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3630 "dhcp6_parser.cc" +#line 3640 "dhcp6_parser.cc" break; - case 646: // sub_reservation: "{" $@96 reservation_params "}" -#line 2300 "dhcp6_parser.yy" + case 650: // sub_reservation: "{" $@96 reservation_params "}" +#line 2310 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 3639 "dhcp6_parser.cc" +#line 3649 "dhcp6_parser.cc" break; - case 651: // not_empty_reservation_params: not_empty_reservation_params "," -#line 2311 "dhcp6_parser.yy" + case 655: // not_empty_reservation_params: not_empty_reservation_params "," +#line 2321 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3647 "dhcp6_parser.cc" +#line 3657 "dhcp6_parser.cc" break; - case 663: // $@97: %empty -#line 2330 "dhcp6_parser.yy" + case 667: // $@97: %empty +#line 2340 "dhcp6_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3655,20 +3665,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3659 "dhcp6_parser.cc" +#line 3669 "dhcp6_parser.cc" break; - case 664: // ip_addresses: "ip-addresses" $@97 ":" list_strings -#line 2336 "dhcp6_parser.yy" + case 668: // ip_addresses: "ip-addresses" $@97 ":" list_strings +#line 2346 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3668 "dhcp6_parser.cc" +#line 3678 "dhcp6_parser.cc" break; - case 665: // $@98: %empty -#line 2341 "dhcp6_parser.yy" + case 669: // $@98: %empty +#line 2351 "dhcp6_parser.yy" { ctx.unique("prefixes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3676,96 +3686,96 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3680 "dhcp6_parser.cc" +#line 3690 "dhcp6_parser.cc" break; - case 666: // prefixes: "prefixes" $@98 ":" list_strings -#line 2347 "dhcp6_parser.yy" + case 670: // prefixes: "prefixes" $@98 ":" list_strings +#line 2357 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3689 "dhcp6_parser.cc" +#line 3699 "dhcp6_parser.cc" break; - case 667: // $@99: %empty -#line 2352 "dhcp6_parser.yy" + case 671: // $@99: %empty +#line 2362 "dhcp6_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3698 "dhcp6_parser.cc" +#line 3708 "dhcp6_parser.cc" break; - case 668: // duid: "duid" $@99 ":" "constant string" -#line 2355 "dhcp6_parser.yy" + case 672: // duid: "duid" $@99 ":" "constant string" +#line 2365 "dhcp6_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 3708 "dhcp6_parser.cc" +#line 3718 "dhcp6_parser.cc" break; - case 669: // $@100: %empty -#line 2361 "dhcp6_parser.yy" + case 673: // $@100: %empty +#line 2371 "dhcp6_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3717 "dhcp6_parser.cc" +#line 3727 "dhcp6_parser.cc" break; - case 670: // hw_address: "hw-address" $@100 ":" "constant string" -#line 2364 "dhcp6_parser.yy" + case 674: // hw_address: "hw-address" $@100 ":" "constant string" +#line 2374 "dhcp6_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 3727 "dhcp6_parser.cc" +#line 3737 "dhcp6_parser.cc" break; - case 671: // $@101: %empty -#line 2370 "dhcp6_parser.yy" + case 675: // $@101: %empty +#line 2380 "dhcp6_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3736 "dhcp6_parser.cc" +#line 3746 "dhcp6_parser.cc" break; - case 672: // hostname: "hostname" $@101 ":" "constant string" -#line 2373 "dhcp6_parser.yy" + case 676: // hostname: "hostname" $@101 ":" "constant string" +#line 2383 "dhcp6_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 3746 "dhcp6_parser.cc" +#line 3756 "dhcp6_parser.cc" break; - case 673: // $@102: %empty -#line 2379 "dhcp6_parser.yy" + case 677: // $@102: %empty +#line 2389 "dhcp6_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3755 "dhcp6_parser.cc" +#line 3765 "dhcp6_parser.cc" break; - case 674: // flex_id_value: "flex-id" $@102 ":" "constant string" -#line 2382 "dhcp6_parser.yy" + case 678: // flex_id_value: "flex-id" $@102 ":" "constant string" +#line 2392 "dhcp6_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 3765 "dhcp6_parser.cc" +#line 3775 "dhcp6_parser.cc" break; - case 675: // $@103: %empty -#line 2388 "dhcp6_parser.yy" + case 679: // $@103: %empty +#line 2398 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3773,20 +3783,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3777 "dhcp6_parser.cc" +#line 3787 "dhcp6_parser.cc" break; - case 676: // reservation_client_classes: "client-classes" $@103 ":" list_strings -#line 2394 "dhcp6_parser.yy" + case 680: // reservation_client_classes: "client-classes" $@103 ":" list_strings +#line 2404 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3786 "dhcp6_parser.cc" +#line 3796 "dhcp6_parser.cc" break; - case 677: // $@104: %empty -#line 2402 "dhcp6_parser.yy" + case 681: // $@104: %empty +#line 2412 "dhcp6_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3794,39 +3804,39 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3798 "dhcp6_parser.cc" +#line 3808 "dhcp6_parser.cc" break; - case 678: // relay: "relay" $@104 ":" "{" relay_map "}" -#line 2408 "dhcp6_parser.yy" + case 682: // relay: "relay" $@104 ":" "{" relay_map "}" +#line 2418 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3807 "dhcp6_parser.cc" +#line 3817 "dhcp6_parser.cc" break; - case 681: // $@105: %empty -#line 2417 "dhcp6_parser.yy" + case 685: // $@105: %empty +#line 2427 "dhcp6_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3816 "dhcp6_parser.cc" +#line 3826 "dhcp6_parser.cc" break; - case 682: // ip_address: "ip-address" $@105 ":" "constant string" -#line 2420 "dhcp6_parser.yy" + case 686: // ip_address: "ip-address" $@105 ":" "constant string" +#line 2430 "dhcp6_parser.yy" { ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } -#line 3826 "dhcp6_parser.cc" +#line 3836 "dhcp6_parser.cc" break; - case 683: // $@106: %empty -#line 2429 "dhcp6_parser.yy" + case 687: // $@106: %empty +#line 2439 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3834,104 +3844,104 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3838 "dhcp6_parser.cc" +#line 3848 "dhcp6_parser.cc" break; - case 684: // client_classes: "client-classes" $@106 ":" "[" client_classes_list "]" -#line 2435 "dhcp6_parser.yy" + case 688: // client_classes: "client-classes" $@106 ":" "[" client_classes_list "]" +#line 2445 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3847 "dhcp6_parser.cc" +#line 3857 "dhcp6_parser.cc" break; - case 687: // client_classes_list: client_classes_list "," -#line 2442 "dhcp6_parser.yy" + case 691: // client_classes_list: client_classes_list "," +#line 2452 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3855 "dhcp6_parser.cc" +#line 3865 "dhcp6_parser.cc" break; - case 688: // $@107: %empty -#line 2447 "dhcp6_parser.yy" + case 692: // $@107: %empty +#line 2457 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3865 "dhcp6_parser.cc" +#line 3875 "dhcp6_parser.cc" break; - case 689: // client_class_entry: "{" $@107 client_class_params "}" -#line 2451 "dhcp6_parser.yy" + case 693: // client_class_entry: "{" $@107 client_class_params "}" +#line 2461 "dhcp6_parser.yy" { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3875 "dhcp6_parser.cc" +#line 3885 "dhcp6_parser.cc" break; - case 694: // not_empty_client_class_params: not_empty_client_class_params "," -#line 2463 "dhcp6_parser.yy" + case 698: // not_empty_client_class_params: not_empty_client_class_params "," +#line 2473 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3883 "dhcp6_parser.cc" +#line 3893 "dhcp6_parser.cc" break; - case 710: // $@108: %empty -#line 2486 "dhcp6_parser.yy" + case 714: // $@108: %empty +#line 2496 "dhcp6_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3892 "dhcp6_parser.cc" +#line 3902 "dhcp6_parser.cc" break; - case 711: // client_class_test: "test" $@108 ":" "constant string" -#line 2489 "dhcp6_parser.yy" + case 715: // client_class_test: "test" $@108 ":" "constant string" +#line 2499 "dhcp6_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3902 "dhcp6_parser.cc" +#line 3912 "dhcp6_parser.cc" break; - case 712: // $@109: %empty -#line 2495 "dhcp6_parser.yy" + case 716: // $@109: %empty +#line 2505 "dhcp6_parser.yy" { ctx.unique("template-test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3911 "dhcp6_parser.cc" +#line 3921 "dhcp6_parser.cc" break; - case 713: // client_class_template_test: "template-test" $@109 ":" "constant string" -#line 2498 "dhcp6_parser.yy" + case 717: // client_class_template_test: "template-test" $@109 ":" "constant string" +#line 2508 "dhcp6_parser.yy" { ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("template-test", template_test); ctx.leave(); } -#line 3921 "dhcp6_parser.cc" +#line 3931 "dhcp6_parser.cc" break; - case 714: // only_if_required: "only-if-required" ":" "boolean" -#line 2504 "dhcp6_parser.yy" + case 718: // only_if_required: "only-if-required" ":" "boolean" +#line 2514 "dhcp6_parser.yy" { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3931 "dhcp6_parser.cc" +#line 3941 "dhcp6_parser.cc" break; - case 715: // $@110: %empty -#line 2513 "dhcp6_parser.yy" + case 719: // $@110: %empty +#line 2523 "dhcp6_parser.yy" { ctx.unique("server-id", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3939,125 +3949,125 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } -#line 3943 "dhcp6_parser.cc" +#line 3953 "dhcp6_parser.cc" break; - case 716: // server_id: "server-id" $@110 ":" "{" server_id_params "}" -#line 2519 "dhcp6_parser.yy" + case 720: // server_id: "server-id" $@110 ":" "{" server_id_params "}" +#line 2529 "dhcp6_parser.yy" { // The type parameter is required. ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3954 "dhcp6_parser.cc" +#line 3964 "dhcp6_parser.cc" break; - case 719: // server_id_params: server_id_params "," -#line 2528 "dhcp6_parser.yy" + case 723: // server_id_params: server_id_params "," +#line 2538 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3962 "dhcp6_parser.cc" +#line 3972 "dhcp6_parser.cc" break; - case 729: // $@111: %empty -#line 2544 "dhcp6_parser.yy" + case 733: // $@111: %empty +#line 2554 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DUID_TYPE); } -#line 3971 "dhcp6_parser.cc" +#line 3981 "dhcp6_parser.cc" break; - case 730: // server_id_type: "type" $@111 ":" duid_type -#line 2547 "dhcp6_parser.yy" + case 734: // server_id_type: "type" $@111 ":" duid_type +#line 2557 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3980 "dhcp6_parser.cc" +#line 3990 "dhcp6_parser.cc" break; - case 731: // duid_type: "LLT" -#line 2552 "dhcp6_parser.yy" + case 735: // duid_type: "LLT" +#line 2562 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 3986 "dhcp6_parser.cc" +#line 3996 "dhcp6_parser.cc" break; - case 732: // duid_type: "EN" -#line 2553 "dhcp6_parser.yy" + case 736: // duid_type: "EN" +#line 2563 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 3992 "dhcp6_parser.cc" +#line 4002 "dhcp6_parser.cc" break; - case 733: // duid_type: "LL" -#line 2554 "dhcp6_parser.yy" + case 737: // duid_type: "LL" +#line 2564 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 3998 "dhcp6_parser.cc" +#line 4008 "dhcp6_parser.cc" break; - case 734: // htype: "htype" ":" "integer" -#line 2557 "dhcp6_parser.yy" + case 738: // htype: "htype" ":" "integer" +#line 2567 "dhcp6_parser.yy" { ctx.unique("htype", ctx.loc2pos(yystack_[2].location)); ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } -#line 4008 "dhcp6_parser.cc" +#line 4018 "dhcp6_parser.cc" break; - case 735: // $@112: %empty -#line 2563 "dhcp6_parser.yy" + case 739: // $@112: %empty +#line 2573 "dhcp6_parser.yy" { ctx.unique("identifier", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4017 "dhcp6_parser.cc" +#line 4027 "dhcp6_parser.cc" break; - case 736: // identifier: "identifier" $@112 ":" "constant string" -#line 2566 "dhcp6_parser.yy" + case 740: // identifier: "identifier" $@112 ":" "constant string" +#line 2576 "dhcp6_parser.yy" { ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } -#line 4027 "dhcp6_parser.cc" +#line 4037 "dhcp6_parser.cc" break; - case 737: // time: "time" ":" "integer" -#line 2572 "dhcp6_parser.yy" + case 741: // time: "time" ":" "integer" +#line 2582 "dhcp6_parser.yy" { ctx.unique("time", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 4037 "dhcp6_parser.cc" +#line 4047 "dhcp6_parser.cc" break; - case 738: // enterprise_id: "enterprise-id" ":" "integer" -#line 2578 "dhcp6_parser.yy" + case 742: // enterprise_id: "enterprise-id" ":" "integer" +#line 2588 "dhcp6_parser.yy" { ctx.unique("enterprise-id", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 4047 "dhcp6_parser.cc" +#line 4057 "dhcp6_parser.cc" break; - case 739: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2586 "dhcp6_parser.yy" + case 743: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" +#line 2596 "dhcp6_parser.yy" { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 4057 "dhcp6_parser.cc" +#line 4067 "dhcp6_parser.cc" break; - case 740: // $@113: %empty -#line 2594 "dhcp6_parser.yy" + case 744: // $@113: %empty +#line 2604 "dhcp6_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4065,66 +4075,66 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 4069 "dhcp6_parser.cc" +#line 4079 "dhcp6_parser.cc" break; - case 741: // control_socket: "control-socket" $@113 ":" "{" control_socket_params "}" -#line 2600 "dhcp6_parser.yy" + case 745: // control_socket: "control-socket" $@113 ":" "{" control_socket_params "}" +#line 2610 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4078 "dhcp6_parser.cc" +#line 4088 "dhcp6_parser.cc" break; - case 744: // control_socket_params: control_socket_params "," -#line 2607 "dhcp6_parser.yy" + case 748: // control_socket_params: control_socket_params "," +#line 2617 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4086 "dhcp6_parser.cc" +#line 4096 "dhcp6_parser.cc" break; - case 750: // $@114: %empty -#line 2619 "dhcp6_parser.yy" + case 754: // $@114: %empty +#line 2629 "dhcp6_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4095 "dhcp6_parser.cc" +#line 4105 "dhcp6_parser.cc" break; - case 751: // socket_type: "socket-type" $@114 ":" "constant string" -#line 2622 "dhcp6_parser.yy" + case 755: // socket_type: "socket-type" $@114 ":" "constant string" +#line 2632 "dhcp6_parser.yy" { ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } -#line 4105 "dhcp6_parser.cc" +#line 4115 "dhcp6_parser.cc" break; - case 752: // $@115: %empty -#line 2628 "dhcp6_parser.yy" + case 756: // $@115: %empty +#line 2638 "dhcp6_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4114 "dhcp6_parser.cc" +#line 4124 "dhcp6_parser.cc" break; - case 753: // socket_name: "socket-name" $@115 ":" "constant string" -#line 2631 "dhcp6_parser.yy" + case 757: // socket_name: "socket-name" $@115 ":" "constant string" +#line 2641 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 4124 "dhcp6_parser.cc" +#line 4134 "dhcp6_parser.cc" break; - case 754: // $@116: %empty -#line 2640 "dhcp6_parser.yy" + case 758: // $@116: %empty +#line 2650 "dhcp6_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4132,87 +4142,87 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 4136 "dhcp6_parser.cc" +#line 4146 "dhcp6_parser.cc" break; - case 755: // dhcp_queue_control: "dhcp-queue-control" $@116 ":" "{" queue_control_params "}" -#line 2646 "dhcp6_parser.yy" + case 759: // dhcp_queue_control: "dhcp-queue-control" $@116 ":" "{" queue_control_params "}" +#line 2656 "dhcp6_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4147 "dhcp6_parser.cc" +#line 4157 "dhcp6_parser.cc" break; - case 758: // queue_control_params: queue_control_params "," -#line 2655 "dhcp6_parser.yy" + case 762: // queue_control_params: queue_control_params "," +#line 2665 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4155 "dhcp6_parser.cc" +#line 4165 "dhcp6_parser.cc" break; - case 765: // enable_queue: "enable-queue" ":" "boolean" -#line 2668 "dhcp6_parser.yy" + case 769: // enable_queue: "enable-queue" ":" "boolean" +#line 2678 "dhcp6_parser.yy" { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 4165 "dhcp6_parser.cc" +#line 4175 "dhcp6_parser.cc" break; - case 766: // $@117: %empty -#line 2674 "dhcp6_parser.yy" + case 770: // $@117: %empty +#line 2684 "dhcp6_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4174 "dhcp6_parser.cc" +#line 4184 "dhcp6_parser.cc" break; - case 767: // queue_type: "queue-type" $@117 ":" "constant string" -#line 2677 "dhcp6_parser.yy" + case 771: // queue_type: "queue-type" $@117 ":" "constant string" +#line 2687 "dhcp6_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); ctx.leave(); } -#line 4184 "dhcp6_parser.cc" +#line 4194 "dhcp6_parser.cc" break; - case 768: // capacity: "capacity" ":" "integer" -#line 2683 "dhcp6_parser.yy" + case 772: // capacity: "capacity" ":" "integer" +#line 2693 "dhcp6_parser.yy" { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 4194 "dhcp6_parser.cc" +#line 4204 "dhcp6_parser.cc" break; - case 769: // $@118: %empty -#line 2689 "dhcp6_parser.yy" + case 773: // $@118: %empty +#line 2699 "dhcp6_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4203 "dhcp6_parser.cc" +#line 4213 "dhcp6_parser.cc" break; - case 770: // arbitrary_map_entry: "constant string" $@118 ":" value -#line 2692 "dhcp6_parser.yy" + case 774: // arbitrary_map_entry: "constant string" $@118 ":" value +#line 2702 "dhcp6_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4212 "dhcp6_parser.cc" +#line 4222 "dhcp6_parser.cc" break; - case 771: // $@119: %empty -#line 2699 "dhcp6_parser.yy" + case 775: // $@119: %empty +#line 2709 "dhcp6_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4220,291 +4230,291 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 4224 "dhcp6_parser.cc" +#line 4234 "dhcp6_parser.cc" break; - case 772: // dhcp_ddns: "dhcp-ddns" $@119 ":" "{" dhcp_ddns_params "}" -#line 2705 "dhcp6_parser.yy" + case 776: // dhcp_ddns: "dhcp-ddns" $@119 ":" "{" dhcp_ddns_params "}" +#line 2715 "dhcp6_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4235 "dhcp6_parser.cc" +#line 4245 "dhcp6_parser.cc" break; - case 773: // $@120: %empty -#line 2712 "dhcp6_parser.yy" + case 777: // $@120: %empty +#line 2722 "dhcp6_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4245 "dhcp6_parser.cc" +#line 4255 "dhcp6_parser.cc" break; - case 774: // sub_dhcp_ddns: "{" $@120 dhcp_ddns_params "}" -#line 2716 "dhcp6_parser.yy" + case 778: // sub_dhcp_ddns: "{" $@120 dhcp_ddns_params "}" +#line 2726 "dhcp6_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 4255 "dhcp6_parser.cc" +#line 4265 "dhcp6_parser.cc" break; - case 777: // dhcp_ddns_params: dhcp_ddns_params "," -#line 2724 "dhcp6_parser.yy" + case 781: // dhcp_ddns_params: dhcp_ddns_params "," +#line 2734 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4263 "dhcp6_parser.cc" +#line 4273 "dhcp6_parser.cc" break; - case 796: // enable_updates: "enable-updates" ":" "boolean" -#line 2749 "dhcp6_parser.yy" + case 800: // enable_updates: "enable-updates" ":" "boolean" +#line 2759 "dhcp6_parser.yy" { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 4273 "dhcp6_parser.cc" +#line 4283 "dhcp6_parser.cc" break; - case 797: // $@121: %empty -#line 2756 "dhcp6_parser.yy" + case 801: // $@121: %empty +#line 2766 "dhcp6_parser.yy" { ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4282 "dhcp6_parser.cc" +#line 4292 "dhcp6_parser.cc" break; - case 798: // dep_qualifying_suffix: "qualifying-suffix" $@121 ":" "constant string" -#line 2759 "dhcp6_parser.yy" + case 802: // dep_qualifying_suffix: "qualifying-suffix" $@121 ":" "constant string" +#line 2769 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); ctx.leave(); } -#line 4292 "dhcp6_parser.cc" +#line 4302 "dhcp6_parser.cc" break; - case 799: // $@122: %empty -#line 2765 "dhcp6_parser.yy" + case 803: // $@122: %empty +#line 2775 "dhcp6_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4301 "dhcp6_parser.cc" +#line 4311 "dhcp6_parser.cc" break; - case 800: // server_ip: "server-ip" $@122 ":" "constant string" -#line 2768 "dhcp6_parser.yy" + case 804: // server_ip: "server-ip" $@122 ":" "constant string" +#line 2778 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 4311 "dhcp6_parser.cc" +#line 4321 "dhcp6_parser.cc" break; - case 801: // server_port: "server-port" ":" "integer" -#line 2774 "dhcp6_parser.yy" + case 805: // server_port: "server-port" ":" "integer" +#line 2784 "dhcp6_parser.yy" { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 4321 "dhcp6_parser.cc" +#line 4331 "dhcp6_parser.cc" break; - case 802: // $@123: %empty -#line 2780 "dhcp6_parser.yy" + case 806: // $@123: %empty +#line 2790 "dhcp6_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4330 "dhcp6_parser.cc" +#line 4340 "dhcp6_parser.cc" break; - case 803: // sender_ip: "sender-ip" $@123 ":" "constant string" -#line 2783 "dhcp6_parser.yy" + case 807: // sender_ip: "sender-ip" $@123 ":" "constant string" +#line 2793 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 4340 "dhcp6_parser.cc" +#line 4350 "dhcp6_parser.cc" break; - case 804: // sender_port: "sender-port" ":" "integer" -#line 2789 "dhcp6_parser.yy" + case 808: // sender_port: "sender-port" ":" "integer" +#line 2799 "dhcp6_parser.yy" { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 4350 "dhcp6_parser.cc" +#line 4360 "dhcp6_parser.cc" break; - case 805: // max_queue_size: "max-queue-size" ":" "integer" -#line 2795 "dhcp6_parser.yy" + case 809: // max_queue_size: "max-queue-size" ":" "integer" +#line 2805 "dhcp6_parser.yy" { ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 4360 "dhcp6_parser.cc" +#line 4370 "dhcp6_parser.cc" break; - case 806: // $@124: %empty -#line 2801 "dhcp6_parser.yy" + case 810: // $@124: %empty +#line 2811 "dhcp6_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 4369 "dhcp6_parser.cc" +#line 4379 "dhcp6_parser.cc" break; - case 807: // ncr_protocol: "ncr-protocol" $@124 ":" ncr_protocol_value -#line 2804 "dhcp6_parser.yy" + case 811: // ncr_protocol: "ncr-protocol" $@124 ":" ncr_protocol_value +#line 2814 "dhcp6_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4378 "dhcp6_parser.cc" +#line 4388 "dhcp6_parser.cc" break; - case 808: // ncr_protocol_value: "UDP" -#line 2810 "dhcp6_parser.yy" + case 812: // ncr_protocol_value: "UDP" +#line 2820 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 4384 "dhcp6_parser.cc" +#line 4394 "dhcp6_parser.cc" break; - case 809: // ncr_protocol_value: "TCP" -#line 2811 "dhcp6_parser.yy" + case 813: // ncr_protocol_value: "TCP" +#line 2821 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 4390 "dhcp6_parser.cc" +#line 4400 "dhcp6_parser.cc" break; - case 810: // $@125: %empty -#line 2814 "dhcp6_parser.yy" + case 814: // $@125: %empty +#line 2824 "dhcp6_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 4399 "dhcp6_parser.cc" +#line 4409 "dhcp6_parser.cc" break; - case 811: // ncr_format: "ncr-format" $@125 ":" "JSON" -#line 2817 "dhcp6_parser.yy" + case 815: // ncr_format: "ncr-format" $@125 ":" "JSON" +#line 2827 "dhcp6_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 4409 "dhcp6_parser.cc" +#line 4419 "dhcp6_parser.cc" break; - case 812: // dep_override_no_update: "override-no-update" ":" "boolean" -#line 2824 "dhcp6_parser.yy" + case 816: // dep_override_no_update: "override-no-update" ":" "boolean" +#line 2834 "dhcp6_parser.yy" { ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 4419 "dhcp6_parser.cc" +#line 4429 "dhcp6_parser.cc" break; - case 813: // dep_override_client_update: "override-client-update" ":" "boolean" -#line 2831 "dhcp6_parser.yy" + case 817: // dep_override_client_update: "override-client-update" ":" "boolean" +#line 2841 "dhcp6_parser.yy" { ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 4429 "dhcp6_parser.cc" +#line 4439 "dhcp6_parser.cc" break; - case 814: // $@126: %empty -#line 2838 "dhcp6_parser.yy" + case 818: // $@126: %empty +#line 2848 "dhcp6_parser.yy" { ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 4438 "dhcp6_parser.cc" +#line 4448 "dhcp6_parser.cc" break; - case 815: // dep_replace_client_name: "replace-client-name" $@126 ":" ddns_replace_client_name_value -#line 2841 "dhcp6_parser.yy" + case 819: // dep_replace_client_name: "replace-client-name" $@126 ":" ddns_replace_client_name_value +#line 2851 "dhcp6_parser.yy" { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4447 "dhcp6_parser.cc" +#line 4457 "dhcp6_parser.cc" break; - case 816: // $@127: %empty -#line 2847 "dhcp6_parser.yy" + case 820: // $@127: %empty +#line 2857 "dhcp6_parser.yy" { ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4456 "dhcp6_parser.cc" +#line 4466 "dhcp6_parser.cc" break; - case 817: // dep_generated_prefix: "generated-prefix" $@127 ":" "constant string" -#line 2850 "dhcp6_parser.yy" + case 821: // dep_generated_prefix: "generated-prefix" $@127 ":" "constant string" +#line 2860 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); ctx.leave(); } -#line 4466 "dhcp6_parser.cc" +#line 4476 "dhcp6_parser.cc" break; - case 818: // $@128: %empty -#line 2857 "dhcp6_parser.yy" + case 822: // $@128: %empty +#line 2867 "dhcp6_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4475 "dhcp6_parser.cc" +#line 4485 "dhcp6_parser.cc" break; - case 819: // dep_hostname_char_set: "hostname-char-set" $@128 ":" "constant string" -#line 2860 "dhcp6_parser.yy" + case 823: // dep_hostname_char_set: "hostname-char-set" $@128 ":" "constant string" +#line 2870 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 4485 "dhcp6_parser.cc" +#line 4495 "dhcp6_parser.cc" break; - case 820: // $@129: %empty -#line 2867 "dhcp6_parser.yy" + case 824: // $@129: %empty +#line 2877 "dhcp6_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4494 "dhcp6_parser.cc" +#line 4504 "dhcp6_parser.cc" break; - case 821: // dep_hostname_char_replacement: "hostname-char-replacement" $@129 ":" "constant string" -#line 2870 "dhcp6_parser.yy" + case 825: // dep_hostname_char_replacement: "hostname-char-replacement" $@129 ":" "constant string" +#line 2880 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 4504 "dhcp6_parser.cc" +#line 4514 "dhcp6_parser.cc" break; - case 822: // $@130: %empty -#line 2879 "dhcp6_parser.yy" + case 826: // $@130: %empty +#line 2889 "dhcp6_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4512,48 +4522,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 4516 "dhcp6_parser.cc" +#line 4526 "dhcp6_parser.cc" break; - case 823: // config_control: "config-control" $@130 ":" "{" config_control_params "}" -#line 2885 "dhcp6_parser.yy" + case 827: // config_control: "config-control" $@130 ":" "{" config_control_params "}" +#line 2895 "dhcp6_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4526 "dhcp6_parser.cc" +#line 4536 "dhcp6_parser.cc" break; - case 824: // $@131: %empty -#line 2891 "dhcp6_parser.yy" + case 828: // $@131: %empty +#line 2901 "dhcp6_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4536 "dhcp6_parser.cc" +#line 4546 "dhcp6_parser.cc" break; - case 825: // sub_config_control: "{" $@131 config_control_params "}" -#line 2895 "dhcp6_parser.yy" + case 829: // sub_config_control: "{" $@131 config_control_params "}" +#line 2905 "dhcp6_parser.yy" { // No config_control params are required // parsing completed } -#line 4545 "dhcp6_parser.cc" +#line 4555 "dhcp6_parser.cc" break; - case 828: // config_control_params: config_control_params "," -#line 2903 "dhcp6_parser.yy" + case 832: // config_control_params: config_control_params "," +#line 2913 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4553 "dhcp6_parser.cc" +#line 4563 "dhcp6_parser.cc" break; - case 831: // $@132: %empty -#line 2913 "dhcp6_parser.yy" + case 835: // $@132: %empty +#line 2923 "dhcp6_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4561,30 +4571,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 4565 "dhcp6_parser.cc" +#line 4575 "dhcp6_parser.cc" break; - case 832: // config_databases: "config-databases" $@132 ":" "[" database_list "]" -#line 2919 "dhcp6_parser.yy" + case 836: // config_databases: "config-databases" $@132 ":" "[" database_list "]" +#line 2929 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4574 "dhcp6_parser.cc" +#line 4584 "dhcp6_parser.cc" break; - case 833: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 2924 "dhcp6_parser.yy" + case 837: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" +#line 2934 "dhcp6_parser.yy" { ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 4584 "dhcp6_parser.cc" +#line 4594 "dhcp6_parser.cc" break; - case 834: // $@133: %empty -#line 2932 "dhcp6_parser.yy" + case 838: // $@133: %empty +#line 2942 "dhcp6_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4592,83 +4602,83 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 4596 "dhcp6_parser.cc" +#line 4606 "dhcp6_parser.cc" break; - case 835: // loggers: "loggers" $@133 ":" "[" loggers_entries "]" -#line 2938 "dhcp6_parser.yy" + case 839: // loggers: "loggers" $@133 ":" "[" loggers_entries "]" +#line 2948 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4605 "dhcp6_parser.cc" +#line 4615 "dhcp6_parser.cc" break; - case 838: // loggers_entries: loggers_entries "," -#line 2947 "dhcp6_parser.yy" + case 842: // loggers_entries: loggers_entries "," +#line 2957 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4613 "dhcp6_parser.cc" +#line 4623 "dhcp6_parser.cc" break; - case 839: // $@134: %empty -#line 2953 "dhcp6_parser.yy" + case 843: // $@134: %empty +#line 2963 "dhcp6_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 4623 "dhcp6_parser.cc" +#line 4633 "dhcp6_parser.cc" break; - case 840: // logger_entry: "{" $@134 logger_params "}" -#line 2957 "dhcp6_parser.yy" + case 844: // logger_entry: "{" $@134 logger_params "}" +#line 2967 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4631 "dhcp6_parser.cc" +#line 4641 "dhcp6_parser.cc" break; - case 843: // logger_params: logger_params "," -#line 2963 "dhcp6_parser.yy" + case 847: // logger_params: logger_params "," +#line 2973 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4639 "dhcp6_parser.cc" +#line 4649 "dhcp6_parser.cc" break; - case 851: // debuglevel: "debuglevel" ":" "integer" -#line 2977 "dhcp6_parser.yy" + case 855: // debuglevel: "debuglevel" ":" "integer" +#line 2987 "dhcp6_parser.yy" { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 4649 "dhcp6_parser.cc" +#line 4659 "dhcp6_parser.cc" break; - case 852: // $@135: %empty -#line 2983 "dhcp6_parser.yy" + case 856: // $@135: %empty +#line 2993 "dhcp6_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4658 "dhcp6_parser.cc" +#line 4668 "dhcp6_parser.cc" break; - case 853: // severity: "severity" $@135 ":" "constant string" -#line 2986 "dhcp6_parser.yy" + case 857: // severity: "severity" $@135 ":" "constant string" +#line 2996 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 4668 "dhcp6_parser.cc" +#line 4678 "dhcp6_parser.cc" break; - case 854: // $@136: %empty -#line 2992 "dhcp6_parser.yy" + case 858: // $@136: %empty +#line 3002 "dhcp6_parser.yy" { ctx.unique("output_options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4676,122 +4686,122 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4680 "dhcp6_parser.cc" +#line 4690 "dhcp6_parser.cc" break; - case 855: // output_options_list: "output_options" $@136 ":" "[" output_options_list_content "]" -#line 2998 "dhcp6_parser.yy" + case 859: // output_options_list: "output_options" $@136 ":" "[" output_options_list_content "]" +#line 3008 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4689 "dhcp6_parser.cc" +#line 4699 "dhcp6_parser.cc" break; - case 858: // output_options_list_content: output_options_list_content "," -#line 3005 "dhcp6_parser.yy" + case 862: // output_options_list_content: output_options_list_content "," +#line 3015 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4697 "dhcp6_parser.cc" +#line 4707 "dhcp6_parser.cc" break; - case 859: // $@137: %empty -#line 3010 "dhcp6_parser.yy" + case 863: // $@137: %empty +#line 3020 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4707 "dhcp6_parser.cc" +#line 4717 "dhcp6_parser.cc" break; - case 860: // output_entry: "{" $@137 output_params_list "}" -#line 3014 "dhcp6_parser.yy" + case 864: // output_entry: "{" $@137 output_params_list "}" +#line 3024 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4715 "dhcp6_parser.cc" +#line 4725 "dhcp6_parser.cc" break; - case 863: // output_params_list: output_params_list "," -#line 3020 "dhcp6_parser.yy" + case 867: // output_params_list: output_params_list "," +#line 3030 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4723 "dhcp6_parser.cc" +#line 4733 "dhcp6_parser.cc" break; - case 869: // $@138: %empty -#line 3032 "dhcp6_parser.yy" + case 873: // $@138: %empty +#line 3042 "dhcp6_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4732 "dhcp6_parser.cc" +#line 4742 "dhcp6_parser.cc" break; - case 870: // output: "output" $@138 ":" "constant string" -#line 3035 "dhcp6_parser.yy" + case 874: // output: "output" $@138 ":" "constant string" +#line 3045 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 4742 "dhcp6_parser.cc" +#line 4752 "dhcp6_parser.cc" break; - case 871: // flush: "flush" ":" "boolean" -#line 3041 "dhcp6_parser.yy" + case 875: // flush: "flush" ":" "boolean" +#line 3051 "dhcp6_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 4752 "dhcp6_parser.cc" +#line 4762 "dhcp6_parser.cc" break; - case 872: // maxsize: "maxsize" ":" "integer" -#line 3047 "dhcp6_parser.yy" + case 876: // maxsize: "maxsize" ":" "integer" +#line 3057 "dhcp6_parser.yy" { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 4762 "dhcp6_parser.cc" +#line 4772 "dhcp6_parser.cc" break; - case 873: // maxver: "maxver" ":" "integer" -#line 3053 "dhcp6_parser.yy" + case 877: // maxver: "maxver" ":" "integer" +#line 3063 "dhcp6_parser.yy" { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 4772 "dhcp6_parser.cc" +#line 4782 "dhcp6_parser.cc" break; - case 874: // $@139: %empty -#line 3059 "dhcp6_parser.yy" + case 878: // $@139: %empty +#line 3069 "dhcp6_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4781 "dhcp6_parser.cc" +#line 4791 "dhcp6_parser.cc" break; - case 875: // pattern: "pattern" $@139 ":" "constant string" -#line 3062 "dhcp6_parser.yy" + case 879: // pattern: "pattern" $@139 ":" "constant string" +#line 3072 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 4791 "dhcp6_parser.cc" +#line 4801 "dhcp6_parser.cc" break; - case 876: // $@140: %empty -#line 3068 "dhcp6_parser.yy" + case 880: // $@140: %empty +#line 3078 "dhcp6_parser.yy" { ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4799,38 +4809,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.COMPATIBILITY); } -#line 4803 "dhcp6_parser.cc" +#line 4813 "dhcp6_parser.cc" break; - case 877: // compatibility: "compatibility" $@140 ":" "{" compatibility_params "}" -#line 3074 "dhcp6_parser.yy" + case 881: // compatibility: "compatibility" $@140 ":" "{" compatibility_params "}" +#line 3084 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4812 "dhcp6_parser.cc" +#line 4822 "dhcp6_parser.cc" break; - case 880: // compatibility_params: compatibility_params "," -#line 3081 "dhcp6_parser.yy" + case 884: // compatibility_params: compatibility_params "," +#line 3091 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4820 "dhcp6_parser.cc" +#line 4830 "dhcp6_parser.cc" break; - case 883: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" -#line 3090 "dhcp6_parser.yy" + case 887: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" +#line 3100 "dhcp6_parser.yy" { ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lenient-option-parsing", b); } -#line 4830 "dhcp6_parser.cc" +#line 4840 "dhcp6_parser.cc" break; -#line 4834 "dhcp6_parser.cc" +#line 4844 "dhcp6_parser.cc" default: break; @@ -5068,16 +5078,16 @@ namespace isc { namespace dhcp { // Actual number of expected tokens int yycount = 0; - const int yyn = yypact_[+yyparser_.yystack_[0].state]; + int yyn = yypact_[+yyparser_.yystack_[0].state]; if (!yy_pact_value_is_default_ (yyn)) { /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. In other words, skip the first -YYN actions for this state because they are default actions. */ - const int yyxbegin = yyn < 0 ? -yyn : 0; + int yyxbegin = yyn < 0 ? -yyn : 0; // Stay within bounds of both yycheck and yytname. - const int yychecklim = yylast_ - yyn + 1; - const int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yychecklim = yylast_ - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; for (int yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror && !yy_table_value_is_error_ (yytable_[yyx + yyn])) @@ -5098,9 +5108,6 @@ namespace isc { namespace dhcp { - - - int Dhcp6Parser::yy_syntax_error_arguments_ (const context& yyctx, symbol_kind_type yyarg[], int yyargn) const @@ -5182,150 +5189,150 @@ namespace isc { namespace dhcp { } - const short Dhcp6Parser::yypact_ninf_ = -1023; + const short Dhcp6Parser::yypact_ninf_ = -1028; const signed char Dhcp6Parser::yytable_ninf_ = -1; const short Dhcp6Parser::yypact_[] = { - 483, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, 53, 29, 30, 34, 48, - 70, 73, 76, 96, 142, 154, 156, 158, 174, 268, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 29, -102, - 122, 163, 78, 691, 43, -35, 210, 206, 109, 309, - -89, 468, 72, -1023, 284, 170, 256, 297, 311, -1023, - 37, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 324, 327, - 353, 376, 378, 391, 402, 408, 414, 418, 419, 422, - 423, 434, -1023, 438, 439, 440, 442, 445, -1023, -1023, - -1023, 446, 447, 449, -1023, -1023, -1023, 450, -1023, -1023, - -1023, -1023, -1023, -1023, 451, 452, 453, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, 454, -1023, -1023, -1023, - -1023, -1023, -1023, 455, 456, 457, -1023, -1023, 458, -1023, - 131, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 461, - 462, 464, 465, -1023, 135, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 469, 472, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - 138, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, 148, -1023, -1023, -1023, -1023, - -1023, 473, -1023, 475, 476, -1023, -1023, -1023, -1023, -1023, - -1023, 159, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 397, - 478, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 474, - -1023, -1023, 479, -1023, -1023, -1023, 484, -1023, -1023, 481, - 487, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, 488, 492, 493, -1023, -1023, -1023, - -1023, 490, 496, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, 168, -1023, -1023, -1023, - 497, -1023, -1023, 498, -1023, 499, 503, -1023, -1023, 506, - 509, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 179, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, 510, 186, -1023, -1023, - -1023, -1023, 29, 29, -1023, 269, 511, -1023, -1023, 512, - 513, 514, 517, 520, 522, 272, 310, 313, 315, 318, - 320, 322, 323, 307, 316, 328, 331, 335, 339, 539, - 340, 341, 326, 336, 351, 540, 557, 558, 352, 354, - 357, 563, 570, 573, 364, 580, 581, 583, 584, 585, - 586, 372, 373, 374, 592, 595, 596, 597, 599, 601, - 602, 603, 604, 392, 609, 614, 615, 616, 618, 620, - 404, 406, 410, 622, 625, -1023, 163, -1023, 628, 428, - 429, 415, 416, 78, -1023, 629, 647, 648, 649, 650, - 436, 437, 655, 656, 657, 691, -1023, 658, 43, -1023, - 659, 448, 660, 459, 460, -35, -1023, 661, 664, 666, - 667, 668, 669, 670, -1023, 210, -1023, 671, 672, 463, - 673, 677, 679, 480, -1023, 109, 680, 482, 486, 489, - -1023, 309, 681, 698, 183, -1023, 500, 705, 707, 494, - 710, 501, 504, 718, 720, 507, 508, 721, 723, 726, - 727, 468, -1023, 728, 515, 72, -1023, -1023, -1023, 729, - 730, 518, 731, 732, 747, 748, 751, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, 549, -1023, -1023, -1023, -1023, -1023, -128, 550, 552, - -1023, -1023, -1023, 752, 766, 767, -1023, 555, 556, 775, - 776, 567, 325, -1023, -1023, -1023, 782, 783, 784, 793, - 785, 786, 796, 795, 800, -1023, 801, 802, 803, 804, - 594, 598, -1023, -1023, -1023, 798, 806, -1023, 810, -1023, - -1023, -1023, -1023, -1023, 812, 815, 605, 606, 607, -1023, - -1023, 810, 610, 814, -1023, 611, -1023, 612, -1023, 613, - -1023, -1023, -1023, 810, 810, 810, 617, 619, 621, 623, - -1023, 624, 626, -1023, 627, 630, 631, -1023, -1023, 632, - -1023, -1023, -1023, -1023, 633, 776, -1023, -1023, 634, 635, - -1023, 636, -1023, -1023, 167, 639, -1023, -1023, -128, 637, - 638, 640, -1023, 822, -1023, -1023, 29, 163, -1023, 72, - 78, 338, 338, 825, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, 826, 827, 829, -1023, -1023, 831, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -96, 29, -32, - 240, 833, 836, 839, 192, 91, -50, 185, -54, 468, - -1023, -1023, 840, -164, -1023, -1023, 850, 852, -1023, -1023, - -1023, -1023, -1023, -47, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, 825, -1023, 204, 243, 254, -1023, -1023, - -1023, -1023, 856, 857, 858, 859, 860, 861, 862, 863, - 864, 865, -1023, 866, -1023, -1023, -1023, -1023, -1023, 255, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, 281, -1023, 867, 868, -1023, -1023, 869, 871, - -1023, -1023, 870, 874, -1023, -1023, 872, 878, -1023, -1023, - 876, 880, -1023, -1023, -1023, 125, -1023, -1023, -1023, 879, - -1023, -1023, -1023, 166, -1023, -1023, -1023, -1023, -1023, 290, - -1023, -1023, -1023, -1023, 202, -1023, -1023, 881, 883, -1023, - -1023, 882, 886, -1023, 887, 888, 889, 890, 891, 892, - 294, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - 893, 894, 895, -1023, -1023, -1023, -1023, 296, -1023, -1023, - -1023, -1023, -1023, -1023, 896, 897, 898, -1023, 298, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - 305, -1023, -1023, -1023, 899, -1023, 900, -1023, -1023, -1023, - 317, -1023, -1023, -1023, -1023, -1023, 321, -1023, 203, -1023, - 901, -1023, 342, -1023, -1023, 654, -1023, 884, 903, -1023, - -1023, 902, 904, -1023, -1023, -1023, 905, -1023, 906, -1023, - -1023, -1023, 907, 910, 911, 912, 516, 663, 699, 689, - 700, 701, 702, 703, 704, 706, 913, 708, 920, 922, - 924, 925, 338, -1023, -1023, 338, -1023, 825, 691, -1023, - 826, 109, -1023, 827, 309, -1023, 829, 1097, -1023, 831, - -96, -1023, -1023, -32, -1023, 926, 927, 240, -1023, 346, - 833, -1023, 210, -1023, 836, -89, -1023, 839, 713, 714, - 715, 716, 717, 719, 192, -1023, 933, 935, 722, 724, - 725, 91, -1023, 733, 734, 736, -50, -1023, 936, 938, - 185, -1023, 735, 941, 738, 942, -54, -1023, -1023, 98, - 840, -1023, 737, -164, -1023, -1023, 943, 944, 43, -1023, - 850, -35, -1023, 852, 946, -1023, -1023, 247, 741, 742, - 743, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, 387, -1023, 744, 745, 746, 750, -1023, 355, -1023, - 356, -1023, 940, -1023, 957, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, 399, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, 753, 754, -1023, -1023, -1023, 947, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - 958, 949, -1023, -1023, -1023, -1023, -1023, -1023, 961, -1023, - 401, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 291, - 756, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 757, - 759, -1023, -1023, 761, -1023, 29, -1023, -1023, 976, -1023, - -1023, -1023, -1023, -1023, 405, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, 765, 411, -1023, 412, -1023, 768, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 1097, -1023, - -1023, -1023, 986, 988, 772, -1023, 346, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 993, 781, - 999, 98, -1023, -1023, -1023, -1023, -1023, -1023, 788, 790, - -1023, -1023, 1007, -1023, 805, -1023, -1023, -1023, 997, -1023, - -1023, 253, -1023, 3, 997, -1023, -1023, 1010, 1018, 1020, - -1023, 413, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 1023, - 808, 816, 824, 1027, 3, -1023, 828, -1023, -1023, -1023, - 832, -1023, -1023, -1023 + 486, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, 37, 29, 38, 73, 76, + 108, 118, 130, 150, 152, 172, 191, 192, 287, 295, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 29, -142, + 275, 163, 78, 696, 211, -36, 70, 280, 107, 262, + -90, 471, 72, -1028, 316, 337, 355, 352, 358, -1028, + 113, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 377, 379, + 385, 392, 394, 402, 412, 413, 433, 436, 437, 438, + 439, 440, -1028, 441, 442, 443, 444, 446, -1028, -1028, + -1028, 449, 450, 451, 453, -1028, -1028, -1028, 454, -1028, + -1028, -1028, -1028, -1028, -1028, 455, 456, 457, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, 458, -1028, -1028, + -1028, -1028, -1028, -1028, 459, 460, 461, -1028, -1028, 462, + -1028, 124, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, 465, 466, 468, 469, -1028, 131, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + 473, 476, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, 135, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 143, -1028, + -1028, -1028, -1028, -1028, 479, -1028, 480, 481, -1028, -1028, + -1028, -1028, -1028, -1028, 162, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, 354, 411, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, 478, -1028, -1028, 483, -1028, -1028, -1028, 487, + -1028, -1028, 484, 490, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, 491, 492, 496, + -1028, -1028, -1028, -1028, 493, 499, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 168, + -1028, -1028, -1028, 501, -1028, -1028, 502, -1028, 503, 507, + -1028, -1028, 510, 513, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, 174, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 514, + 189, -1028, -1028, -1028, -1028, 29, 29, -1028, 284, 515, + -1028, -1028, 516, 517, 518, 521, 524, 526, 274, 311, + 312, 318, 320, 321, 323, 325, 314, 327, 331, 334, + 340, 341, 529, 342, 343, 324, 344, 356, 543, 547, + 560, 357, 359, 350, 360, 561, 572, 573, 367, 584, + 585, 587, 588, 589, 590, 375, 376, 378, 595, 599, + 600, 601, 603, 605, 606, 607, 608, 395, 613, 618, + 619, 621, 622, 623, 407, 409, 414, 628, 629, -1028, + 163, -1028, 630, 416, 417, 434, 435, 78, -1028, 649, + 652, 653, 654, 655, 445, 447, 658, 659, 660, 696, + -1028, 662, 211, -1028, 663, 448, 666, 452, 463, -36, + -1028, 669, 671, 672, 673, 674, 675, 676, -1028, 70, + -1028, 677, 678, 464, 682, 683, 684, 467, -1028, 107, + 701, 485, 494, 497, -1028, 262, 702, 704, -37, -1028, + 504, 708, 710, 495, 714, 505, 508, 723, 725, 511, + 512, 726, 728, 731, 732, 471, -1028, 733, 519, 72, + -1028, -1028, -1028, 734, 735, 522, 736, 737, 752, 753, + 756, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, 554, -1028, -1028, -1028, -1028, + -1028, -129, 555, 557, -1028, -1028, -1028, -1028, 757, 772, + 773, -1028, 566, 567, 774, 782, 574, 133, -1028, -1028, + -1028, 786, 789, 791, 788, 792, 801, 802, 806, 807, + -1028, 808, 809, 810, 811, 602, 604, -1028, -1028, -1028, + 803, 812, -1028, 804, -1028, -1028, -1028, -1028, -1028, 817, + 821, 609, 610, 611, -1028, -1028, 804, 612, 820, -1028, + 614, -1028, 615, -1028, 616, -1028, -1028, -1028, 804, 804, + 804, 617, 620, 634, 635, -1028, 636, 637, -1028, 656, + 657, 661, -1028, -1028, 664, -1028, -1028, -1028, -1028, 665, + 782, -1028, -1028, 668, 670, -1028, 681, -1028, -1028, -38, + 556, -1028, -1028, -129, 688, 689, 690, -1028, 832, -1028, + -1028, 29, 163, -1028, 72, 78, 339, 339, 831, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 861, 864, + 865, -1028, -1028, 866, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -97, 29, 34, 137, 867, 870, 871, 278, + 109, -51, -63, -55, 471, -1028, -1028, 872, -91, -1028, + -1028, 881, 883, -1028, -1028, -1028, -1028, -1028, -48, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 831, -1028, + 244, 285, 288, -1028, -1028, -1028, -1028, 887, 890, 893, + 897, 898, 899, 906, 907, 908, 909, -1028, 912, -1028, + -1028, -1028, -1028, -1028, 292, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, 300, -1028, 911, + 916, -1028, -1028, 914, 918, -1028, -1028, 917, 919, -1028, + -1028, 921, 922, -1028, -1028, 923, 925, -1028, -1028, -1028, + 120, -1028, -1028, -1028, 924, -1028, -1028, -1028, 185, -1028, + -1028, -1028, -1028, -1028, 302, -1028, -1028, -1028, -1028, 254, + -1028, -1028, 926, 928, -1028, -1028, 927, 931, -1028, 920, + 932, 933, 934, 935, 936, 313, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, 937, 938, 939, -1028, -1028, + -1028, -1028, 315, -1028, -1028, -1028, -1028, -1028, -1028, 940, + 941, 942, -1028, 322, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, 326, -1028, -1028, -1028, 943, + -1028, 944, -1028, -1028, -1028, 329, -1028, -1028, -1028, -1028, + -1028, 330, -1028, 281, -1028, 945, -1028, 333, -1028, -1028, + 716, -1028, 946, 947, -1028, -1028, 948, 950, -1028, -1028, + -1028, 949, -1028, 952, -1028, -1028, -1028, 951, 955, 956, + 957, 742, 729, 743, 744, 745, 747, 748, 749, 750, + 751, 960, 754, 969, 972, 973, 978, 339, -1028, -1028, + 339, -1028, 831, 696, -1028, 861, 107, -1028, 864, 262, + -1028, 865, 790, -1028, 866, -97, -1028, -1028, 34, -1028, + 980, 981, 137, -1028, 349, 867, -1028, 70, -1028, 870, + -90, -1028, 871, 768, 771, 775, 777, 778, 785, 278, + -1028, 998, 1004, 793, 797, 799, 109, -1028, 805, 814, + 816, -51, -1028, 1007, 1024, -63, -1028, 818, 1025, 828, + 1028, -55, -1028, -1028, 196, 872, -1028, 829, -91, -1028, + -1028, 1044, 953, 211, -1028, 881, -36, -1028, 883, 1051, + -1028, -1028, 181, 846, 849, 853, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, 231, -1028, 854, 858, + 860, 888, -1028, 387, -1028, 389, -1028, 1094, -1028, 1122, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + 404, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 929, + 930, -1028, -1028, -1028, 1131, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, 1128, 1136, -1028, -1028, + -1028, -1028, -1028, -1028, 1133, -1028, 410, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, 200, 954, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, 958, 959, -1028, -1028, 961, + -1028, 29, -1028, -1028, 1138, -1028, -1028, -1028, -1028, -1028, + 423, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 962, + 424, -1028, 430, -1028, 963, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, 790, -1028, -1028, -1028, 1139, 1140, + 964, -1028, 349, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, 1141, 965, 1142, 196, -1028, -1028, + -1028, -1028, -1028, -1028, 968, 970, -1028, -1028, 1145, -1028, + 971, -1028, -1028, -1028, 1144, -1028, -1028, 306, -1028, 209, + 1144, -1028, -1028, 1143, 1148, 1149, -1028, 431, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, 1150, 966, 974, 975, 1151, + 209, -1028, 977, -1028, -1028, -1028, 979, -1028, -1028, -1028 }; const short @@ -5335,763 +5342,765 @@ namespace isc { namespace dhcp { 20, 22, 24, 26, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 46, 38, 34, 33, 30, 31, 32, 37, 3, - 35, 36, 61, 5, 67, 7, 190, 9, 377, 11, - 586, 13, 613, 15, 645, 17, 504, 19, 513, 21, - 552, 23, 339, 25, 773, 27, 824, 29, 48, 41, - 0, 0, 0, 0, 0, 0, 647, 0, 515, 554, + 35, 36, 61, 5, 67, 7, 192, 9, 379, 11, + 590, 13, 617, 15, 649, 17, 508, 19, 517, 21, + 556, 23, 341, 25, 777, 27, 828, 29, 48, 41, + 0, 0, 0, 0, 0, 0, 651, 0, 519, 558, 0, 0, 0, 50, 0, 49, 0, 0, 42, 63, - 0, 65, 139, 822, 188, 209, 211, 213, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 178, 0, 0, 0, 0, 0, 158, 165, - 167, 0, 0, 0, 368, 502, 543, 0, 181, 183, - 448, 600, 602, 440, 0, 0, 0, 295, 314, 304, - 284, 683, 636, 330, 351, 715, 0, 316, 740, 754, - 771, 171, 173, 0, 0, 0, 834, 876, 0, 138, - 0, 69, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 111, 112, 113, 114, 115, 81, 119, 120, 121, - 122, 123, 124, 125, 126, 117, 118, 127, 128, 129, - 106, 135, 136, 137, 131, 132, 133, 84, 85, 86, - 87, 103, 88, 90, 89, 130, 94, 95, 82, 108, - 109, 110, 107, 83, 92, 93, 101, 102, 104, 91, - 96, 97, 98, 99, 100, 105, 116, 134, 203, 0, - 0, 0, 0, 202, 0, 192, 195, 196, 197, 198, - 199, 200, 201, 577, 604, 427, 429, 431, 0, 0, - 435, 433, 677, 426, 382, 383, 384, 385, 386, 387, - 388, 389, 408, 409, 410, 411, 412, 415, 416, 417, - 418, 419, 420, 421, 422, 413, 414, 423, 424, 425, - 0, 379, 393, 394, 395, 398, 399, 402, 403, 404, - 401, 396, 397, 390, 391, 406, 407, 392, 400, 405, - 598, 597, 593, 594, 592, 0, 588, 591, 595, 596, - 629, 0, 632, 0, 0, 628, 622, 623, 621, 626, - 627, 0, 615, 618, 619, 624, 625, 620, 675, 663, - 665, 667, 669, 671, 673, 662, 659, 660, 661, 0, - 648, 649, 654, 655, 652, 656, 657, 658, 653, 0, - 533, 259, 0, 537, 535, 540, 0, 529, 530, 0, - 516, 517, 520, 532, 521, 522, 523, 539, 524, 525, - 526, 527, 528, 570, 0, 0, 0, 568, 569, 572, - 573, 0, 555, 556, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 347, 349, 344, 0, 341, 345, 346, - 0, 797, 799, 0, 802, 0, 0, 806, 810, 0, - 0, 814, 816, 818, 820, 795, 793, 794, 0, 775, - 778, 790, 779, 780, 781, 782, 783, 784, 785, 786, - 787, 788, 789, 791, 792, 831, 0, 0, 826, 829, - 830, 47, 52, 0, 39, 45, 0, 66, 62, 0, + 0, 65, 140, 826, 190, 211, 213, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 180, 0, 0, 0, 0, 0, 159, 166, + 168, 0, 0, 0, 0, 370, 506, 547, 0, 183, + 185, 451, 604, 606, 443, 0, 0, 0, 297, 316, + 306, 286, 687, 640, 332, 353, 719, 0, 318, 744, + 758, 775, 173, 175, 0, 0, 0, 838, 880, 0, + 139, 0, 69, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 111, 112, 113, 114, 115, 81, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 117, 118, 128, + 129, 130, 106, 136, 137, 138, 132, 133, 134, 84, + 85, 86, 87, 103, 88, 90, 89, 131, 94, 95, + 82, 108, 109, 110, 107, 83, 92, 93, 101, 102, + 104, 91, 96, 97, 98, 99, 100, 105, 116, 135, + 205, 0, 0, 0, 0, 204, 0, 194, 197, 198, + 199, 200, 201, 202, 203, 581, 608, 430, 432, 434, + 0, 0, 438, 436, 681, 429, 384, 385, 386, 387, + 388, 389, 390, 391, 410, 411, 412, 413, 414, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 415, 416, + 426, 427, 428, 0, 381, 395, 396, 397, 400, 401, + 404, 405, 406, 403, 398, 399, 392, 393, 408, 409, + 394, 402, 407, 602, 601, 597, 598, 596, 0, 592, + 595, 599, 600, 633, 0, 636, 0, 0, 632, 626, + 627, 625, 630, 631, 0, 619, 622, 623, 628, 629, + 624, 679, 667, 669, 671, 673, 675, 677, 666, 663, + 664, 665, 0, 652, 653, 658, 659, 656, 660, 661, + 662, 657, 0, 537, 261, 0, 541, 539, 544, 0, + 533, 534, 0, 520, 521, 524, 536, 525, 526, 527, + 543, 528, 529, 530, 531, 532, 574, 0, 0, 0, + 572, 573, 576, 577, 0, 559, 560, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 349, 351, 346, 0, + 343, 347, 348, 0, 801, 803, 0, 806, 0, 0, + 810, 814, 0, 0, 818, 820, 822, 824, 799, 797, + 798, 0, 779, 782, 794, 783, 784, 785, 786, 787, + 788, 789, 790, 791, 792, 793, 795, 796, 835, 0, + 0, 830, 833, 834, 47, 52, 0, 39, 45, 0, + 66, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 60, 71, 68, 0, 0, - 0, 0, 0, 194, 191, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 381, 378, 0, 590, 587, - 0, 0, 0, 0, 0, 617, 614, 0, 0, 0, - 0, 0, 0, 0, 646, 651, 505, 0, 0, 0, - 0, 0, 0, 0, 514, 519, 0, 0, 0, 0, - 553, 558, 0, 0, 343, 340, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, + 71, 68, 0, 0, 0, 0, 0, 196, 193, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 383, + 380, 0, 594, 591, 0, 0, 0, 0, 0, 621, + 618, 0, 0, 0, 0, 0, 0, 0, 650, 655, + 509, 0, 0, 0, 0, 0, 0, 0, 518, 523, + 0, 0, 0, 0, 557, 562, 0, 0, 345, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 777, 774, 0, 0, 828, 825, 51, 43, 0, - 0, 0, 0, 0, 0, 0, 0, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 0, 176, 177, 155, 156, 157, 0, 0, 0, - 169, 170, 175, 0, 0, 0, 180, 0, 0, 0, - 0, 0, 0, 437, 438, 439, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 739, 0, 0, 0, 0, - 0, 0, 185, 186, 187, 0, 0, 70, 0, 205, - 206, 207, 208, 193, 0, 0, 0, 0, 0, 446, - 447, 0, 0, 0, 380, 0, 589, 0, 631, 0, - 634, 635, 616, 0, 0, 0, 0, 0, 0, 0, - 650, 0, 0, 531, 0, 0, 0, 542, 518, 0, - 574, 575, 576, 557, 0, 0, 342, 796, 0, 0, - 801, 0, 804, 805, 0, 0, 812, 813, 0, 0, - 0, 0, 776, 0, 833, 827, 0, 0, 140, 0, - 0, 0, 0, 215, 179, 160, 161, 162, 163, 164, - 159, 166, 168, 370, 506, 545, 182, 184, 450, 40, - 601, 603, 442, 443, 444, 445, 441, 0, 48, 0, - 0, 0, 638, 332, 0, 0, 0, 0, 0, 0, - 172, 174, 0, 0, 53, 204, 579, 606, 428, 430, - 432, 436, 434, 0, 599, 630, 633, 676, 664, 666, - 668, 670, 672, 674, 534, 260, 538, 536, 541, 571, - 348, 350, 798, 800, 803, 808, 809, 807, 811, 815, - 817, 819, 821, 215, 44, 0, 0, 0, 247, 252, - 254, 256, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 269, 0, 276, 278, 280, 282, 246, 0, - 222, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 239, 240, 241, 238, 242, 243, - 244, 245, 0, 220, 0, 216, 217, 375, 0, 371, - 372, 511, 0, 507, 508, 550, 0, 546, 547, 455, - 0, 451, 452, 302, 303, 0, 297, 300, 301, 0, - 312, 313, 309, 0, 306, 310, 311, 291, 293, 0, - 286, 289, 290, 688, 0, 685, 643, 0, 639, 640, - 337, 0, 333, 334, 0, 0, 0, 0, 0, 0, - 0, 353, 356, 357, 358, 359, 360, 361, 729, 735, - 0, 0, 0, 728, 725, 726, 727, 0, 717, 720, - 723, 721, 722, 724, 0, 0, 0, 326, 0, 318, - 321, 322, 323, 324, 325, 750, 752, 749, 747, 748, - 0, 742, 745, 746, 0, 766, 0, 769, 762, 763, - 0, 756, 759, 760, 761, 764, 0, 839, 0, 836, - 0, 882, 0, 878, 881, 55, 584, 0, 580, 581, - 611, 0, 607, 608, 681, 680, 0, 679, 0, 64, - 823, 189, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 781, 778, 0, 0, 832, + 829, 51, 43, 0, 0, 0, 0, 0, 0, 0, + 0, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 0, 178, 179, 156, 157, + 158, 0, 0, 0, 170, 171, 172, 177, 0, 0, + 0, 182, 0, 0, 0, 0, 0, 0, 440, 441, + 442, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 743, 0, 0, 0, 0, 0, 0, 187, 188, 189, + 0, 0, 70, 0, 207, 208, 209, 210, 195, 0, + 0, 0, 0, 0, 449, 450, 0, 0, 0, 382, + 0, 593, 0, 635, 0, 638, 639, 620, 0, 0, + 0, 0, 0, 0, 0, 654, 0, 0, 535, 0, + 0, 0, 546, 522, 0, 578, 579, 580, 561, 0, + 0, 344, 800, 0, 0, 805, 0, 808, 809, 0, + 0, 816, 817, 0, 0, 0, 0, 780, 0, 837, + 831, 0, 0, 141, 0, 0, 0, 0, 217, 181, + 161, 162, 163, 164, 165, 160, 167, 169, 372, 510, + 549, 184, 186, 453, 40, 605, 607, 445, 446, 447, + 448, 444, 0, 48, 0, 0, 0, 642, 334, 0, + 0, 0, 0, 0, 0, 174, 176, 0, 0, 53, + 206, 583, 610, 431, 433, 435, 439, 437, 0, 603, + 634, 637, 680, 668, 670, 672, 674, 676, 678, 538, + 262, 542, 540, 545, 575, 350, 352, 802, 804, 807, + 812, 813, 811, 815, 819, 821, 823, 825, 217, 44, + 0, 0, 0, 249, 254, 256, 258, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 278, + 280, 282, 284, 248, 0, 224, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 241, + 242, 243, 240, 244, 245, 246, 247, 0, 222, 0, + 218, 219, 377, 0, 373, 374, 515, 0, 511, 512, + 554, 0, 550, 551, 458, 0, 454, 455, 304, 305, + 0, 299, 302, 303, 0, 314, 315, 311, 0, 308, + 312, 313, 293, 295, 0, 288, 291, 292, 692, 0, + 689, 647, 0, 643, 644, 339, 0, 335, 336, 0, + 0, 0, 0, 0, 0, 0, 355, 358, 359, 360, + 361, 362, 363, 733, 739, 0, 0, 0, 732, 729, + 730, 731, 0, 721, 724, 727, 725, 726, 728, 0, + 0, 0, 328, 0, 320, 323, 324, 325, 326, 327, + 754, 756, 753, 751, 752, 0, 746, 749, 750, 0, + 770, 0, 773, 766, 767, 0, 760, 763, 764, 765, + 768, 0, 843, 0, 840, 0, 886, 0, 882, 885, + 55, 588, 0, 584, 585, 615, 0, 611, 612, 685, + 684, 0, 683, 0, 64, 827, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 224, 210, 212, 0, 214, 219, 0, 369, - 374, 515, 503, 510, 554, 544, 549, 0, 449, 454, - 299, 296, 315, 308, 305, 0, 0, 288, 285, 690, - 687, 684, 647, 637, 642, 0, 331, 336, 0, 0, - 0, 0, 0, 0, 355, 352, 0, 0, 0, 0, - 0, 719, 716, 0, 0, 0, 320, 317, 0, 0, - 744, 741, 0, 0, 0, 0, 758, 755, 772, 0, - 838, 835, 0, 880, 877, 57, 0, 56, 0, 578, - 583, 0, 605, 610, 0, 678, 832, 0, 0, 0, - 0, 258, 261, 262, 263, 264, 265, 266, 267, 275, - 268, 0, 274, 0, 0, 0, 0, 223, 0, 218, - 0, 373, 0, 509, 0, 548, 501, 474, 475, 476, - 478, 479, 480, 464, 465, 483, 484, 485, 486, 487, - 490, 491, 492, 493, 494, 495, 496, 497, 488, 489, - 498, 499, 500, 460, 461, 462, 463, 472, 473, 469, - 470, 471, 468, 477, 0, 457, 466, 481, 482, 467, - 453, 298, 307, 0, 0, 287, 710, 712, 0, 708, - 702, 703, 704, 705, 706, 707, 709, 699, 700, 701, - 0, 691, 692, 695, 696, 697, 698, 686, 0, 641, - 0, 335, 362, 363, 364, 365, 366, 367, 354, 0, - 0, 734, 737, 738, 718, 327, 328, 329, 319, 0, - 0, 743, 765, 0, 768, 0, 757, 854, 0, 852, - 850, 844, 848, 849, 0, 841, 846, 847, 845, 837, - 883, 879, 54, 59, 0, 582, 0, 609, 0, 249, - 250, 251, 248, 253, 255, 257, 271, 272, 273, 270, - 277, 279, 281, 283, 221, 376, 512, 551, 459, 456, - 292, 294, 0, 0, 0, 689, 694, 644, 338, 731, - 732, 733, 730, 736, 751, 753, 767, 770, 0, 0, - 0, 843, 840, 58, 585, 612, 682, 458, 0, 0, - 714, 693, 0, 851, 0, 842, 711, 713, 0, 853, - 859, 0, 856, 0, 858, 855, 869, 0, 0, 0, - 874, 0, 861, 864, 865, 866, 867, 868, 857, 0, - 0, 0, 0, 0, 863, 860, 0, 871, 872, 873, - 0, 862, 870, 875 + 0, 0, 0, 0, 0, 0, 0, 226, 212, 214, + 0, 216, 221, 0, 371, 376, 519, 507, 514, 558, + 548, 553, 0, 452, 457, 301, 298, 317, 310, 307, + 0, 0, 290, 287, 694, 691, 688, 651, 641, 646, + 0, 333, 338, 0, 0, 0, 0, 0, 0, 357, + 354, 0, 0, 0, 0, 0, 723, 720, 0, 0, + 0, 322, 319, 0, 0, 748, 745, 0, 0, 0, + 0, 762, 759, 776, 0, 842, 839, 0, 884, 881, + 57, 0, 56, 0, 582, 587, 0, 609, 614, 0, + 682, 836, 0, 0, 0, 0, 260, 263, 264, 265, + 266, 267, 268, 269, 277, 270, 0, 276, 0, 0, + 0, 0, 225, 0, 220, 0, 375, 0, 513, 0, + 552, 505, 477, 478, 479, 481, 482, 483, 467, 468, + 486, 487, 488, 489, 490, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 491, 492, 502, 503, 504, 463, + 464, 465, 466, 475, 476, 472, 473, 474, 471, 480, + 0, 460, 469, 484, 485, 470, 456, 300, 309, 0, + 0, 289, 714, 716, 0, 712, 706, 707, 708, 709, + 710, 711, 713, 703, 704, 705, 0, 695, 696, 699, + 700, 701, 702, 690, 0, 645, 0, 337, 364, 365, + 366, 367, 368, 369, 356, 0, 0, 738, 741, 742, + 722, 329, 330, 331, 321, 0, 0, 747, 769, 0, + 772, 0, 761, 858, 0, 856, 854, 848, 852, 853, + 0, 845, 850, 851, 849, 841, 887, 883, 54, 59, + 0, 586, 0, 613, 0, 251, 252, 253, 250, 255, + 257, 259, 273, 274, 275, 272, 279, 281, 283, 285, + 223, 378, 516, 555, 462, 459, 294, 296, 0, 0, + 0, 693, 698, 648, 340, 735, 736, 737, 734, 740, + 755, 757, 771, 774, 0, 0, 0, 847, 844, 58, + 589, 616, 686, 461, 0, 0, 718, 697, 0, 855, + 0, 846, 715, 717, 0, 857, 863, 0, 860, 0, + 862, 859, 873, 0, 0, 0, 878, 0, 865, 868, + 869, 870, 871, 872, 861, 0, 0, 0, 0, 0, + 867, 864, 0, 875, 876, 877, 0, 866, 874, 879 }; const short Dhcp6Parser::yypgoto_[] = { - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -10, -1023, -610, -1023, - 330, -1023, -1023, -1023, -1023, 292, -1023, -568, -1023, -1023, - -1023, -71, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 337, - 547, -1023, -1023, -42, 11, 14, 17, 18, 28, -31, - -29, -27, -13, 31, 33, 41, -1023, 44, 45, 46, - 47, -1023, 344, 51, -1023, 57, -1023, 62, 63, 67, - -1023, 69, -1023, 74, -1023, -1023, -1023, -1023, -1023, 75, - -1023, 77, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - 362, 544, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, 245, -1023, 60, -1023, -720, 93, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -46, -1023, -764, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, 66, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, 84, -746, -1023, -1023, -1023, -1023, - 86, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 49, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, 64, -1023, -1023, -1023, - 68, 562, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 71, - -1023, -1023, -1023, -1023, -1023, -1023, -1022, -1023, -1023, -1023, - 97, -1023, -1023, -1023, 100, 608, -1023, -1023, -1021, -1023, - -1020, -1023, 83, -1023, 85, -1023, 79, 80, 81, 82, - -1023, -1023, -1023, -1019, -1023, -1023, -1023, -1023, 92, -1023, - -1023, -148, 1065, -1023, -1023, -1023, -1023, -1023, 101, -1023, - -1023, -1023, 105, -1023, 641, -1023, -62, -1023, -1023, -1023, - -1023, -1023, -59, -1023, -1023, -1023, -1023, -1023, -5, -1023, - -1023, -1023, 114, -1023, -1023, -1023, 117, -1023, 591, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, 87, -1023, -1023, -1023, 55, 642, -1023, -1023, -60, - -1023, 0, -1023, -1023, -1023, -1023, -1023, 61, -1023, -1023, - -1023, 89, 644, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -49, -1023, -1023, -1023, 113, -1023, -1023, -1023, 116, -1023, - 652, 386, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1018, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, 121, -1023, -1023, -1023, -114, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, 102, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - 94, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 90, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, 424, - 643, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - 470, 590, -1023, -1023, -1023, -1023, -1023, -1023, 95, -1023, - -1023, -121, -1023, -1023, -1023, -1023, -1023, -1023, -142, -1023, - -1023, -146, -1023, -1023, -1023, -1023, -1023, -1023, -1023, -1023, - -1023, -1023, 110, -1023 + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -10, -1028, -615, -1028, + 472, -1028, -1028, -1028, -1028, 383, -1028, -645, -1028, -1028, + -1028, -71, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 415, + 638, -1028, -1028, -42, 11, 14, 17, 18, 28, -31, + -29, -27, -13, 31, 33, 41, -1028, 44, 45, 46, + 47, -1028, 426, 51, -1028, 57, -1028, 62, 63, 67, + 69, -1028, 74, -1028, 75, -1028, -1028, -1028, -1028, -1028, + 77, -1028, 79, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, 418, 633, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, 336, -1028, 119, -1028, -725, + 125, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -46, -1028, -769, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, 103, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, 111, -751, -1028, -1028, -1028, + -1028, 110, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 83, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, 95, -1028, -1028, + -1028, 99, 592, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + 92, -1028, -1028, -1028, -1028, -1028, -1028, -1027, -1028, -1028, + -1028, 127, -1028, -1028, -1028, 132, 640, -1028, -1028, -1026, + -1028, -1025, -1028, 86, -1028, 88, -1028, 80, 81, 82, + 85, -1028, -1028, -1028, -1024, -1028, -1028, -1028, -1028, 122, + -1028, -1028, -111, 1107, -1028, -1028, -1028, -1028, -1028, 145, + -1028, -1028, -1028, 151, -1028, 631, -1028, -62, -1028, -1028, + -1028, -1028, -1028, -59, -1028, -1028, -1028, -1028, -1028, -5, + -1028, -1028, -1028, 140, -1028, -1028, -1028, 154, -1028, 632, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, 90, -1028, -1028, -1028, 93, 667, -1028, -1028, + -60, -1028, 0, -1028, -1028, -1028, -1028, -1028, 94, -1028, + -1028, -1028, 97, 679, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -49, -1028, -1028, -1028, 139, -1028, -1028, -1028, 144, + -1028, 651, 419, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1023, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, 149, -1028, -1028, -1028, -87, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 134, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, 121, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 117, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + 470, 624, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, 477, 625, -1028, -1028, -1028, -1028, -1028, -1028, 128, + -1028, -1028, -95, -1028, -1028, -1028, -1028, -1028, -1028, -115, + -1028, -1028, -134, -1028, -1028, -1028, -1028, -1028, -1028, -1028, + -1028, -1028, -1028, 129, -1028 }; const short Dhcp6Parser::yydefgoto_[] = { - 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, + -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 83, 39, 40, 69, - 760, 87, 88, 41, 68, 84, 85, 785, 995, 1106, - 1107, 848, 43, 70, 90, 446, 91, 45, 71, 160, - 161, 162, 449, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 475, 750, 181, 476, 182, 477, 183, 184, 185, - 508, 186, 509, 187, 188, 189, 190, 469, 191, 192, - 485, 193, 486, 194, 195, 196, 197, 451, 47, 72, - 234, 235, 236, 518, 237, 238, 239, 240, 198, 452, - 199, 453, 200, 454, 874, 875, 876, 1035, 849, 850, - 851, 1012, 1272, 852, 1013, 853, 1014, 854, 1015, 855, - 856, 558, 857, 858, 859, 860, 861, 862, 863, 864, - 865, 1026, 1279, 866, 867, 868, 1028, 869, 1029, 870, - 1030, 871, 1031, 201, 497, 909, 910, 911, 1055, 912, - 1056, 202, 494, 895, 896, 897, 898, 203, 496, 903, - 904, 905, 906, 204, 495, 205, 504, 958, 959, 960, - 961, 962, 206, 500, 921, 922, 923, 1065, 63, 80, - 396, 397, 398, 572, 399, 573, 207, 501, 930, 931, - 932, 933, 934, 935, 936, 937, 208, 481, 878, 879, - 880, 1038, 49, 73, 280, 281, 282, 527, 283, 528, - 284, 529, 285, 533, 286, 532, 209, 210, 211, 212, - 490, 766, 291, 292, 213, 487, 890, 891, 892, 1047, - 1184, 1185, 214, 482, 57, 77, 882, 883, 884, 1041, - 59, 78, 359, 360, 361, 362, 363, 364, 365, 557, - 366, 561, 367, 560, 368, 369, 562, 370, 215, 483, - 886, 887, 888, 1044, 61, 79, 381, 382, 383, 384, - 385, 566, 386, 387, 388, 389, 390, 294, 525, 997, - 998, 999, 1108, 51, 74, 305, 306, 307, 537, 216, - 488, 217, 489, 297, 526, 1001, 1002, 1003, 1111, 53, - 75, 321, 322, 323, 540, 324, 325, 542, 326, 327, - 218, 499, 917, 918, 919, 1062, 55, 76, 339, 340, - 341, 342, 548, 343, 549, 344, 550, 345, 551, 346, - 552, 347, 553, 348, 547, 299, 534, 1006, 1007, 1114, - 219, 498, 914, 915, 1059, 1210, 1211, 1212, 1213, 1214, - 1292, 1215, 1293, 1216, 220, 502, 947, 948, 949, 1076, - 1302, 950, 951, 1077, 952, 953, 221, 222, 505, 970, - 971, 972, 1088, 973, 1089, 223, 506, 980, 981, 982, - 983, 1093, 984, 985, 1095, 224, 507, 65, 81, 418, - 419, 420, 421, 577, 422, 578, 423, 424, 580, 425, - 426, 427, 583, 817, 428, 584, 429, 430, 431, 587, - 432, 588, 433, 589, 434, 590, 225, 450, 67, 82, - 437, 438, 439, 593, 440, 226, 513, 988, 989, 1099, - 1254, 1255, 1256, 1257, 1310, 1258, 1308, 1331, 1332, 1333, - 1341, 1342, 1343, 1349, 1344, 1345, 1346, 1347, 1353, 227, - 514, 992, 993, 994 + 765, 87, 88, 41, 68, 84, 85, 790, 1000, 1111, + 1112, 853, 43, 70, 90, 449, 91, 45, 71, 161, + 162, 163, 452, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 478, 755, 182, 479, 183, 480, 184, 185, 186, + 187, 512, 188, 513, 189, 190, 191, 192, 472, 193, + 194, 489, 195, 490, 196, 197, 198, 199, 454, 47, + 72, 236, 237, 238, 522, 239, 240, 241, 242, 200, + 455, 201, 456, 202, 457, 879, 880, 881, 1040, 854, + 855, 856, 1017, 1278, 857, 1018, 858, 1019, 859, 1020, + 860, 861, 562, 862, 863, 864, 865, 866, 867, 868, + 869, 870, 1031, 1285, 871, 872, 873, 1033, 874, 1034, + 875, 1035, 876, 1036, 203, 501, 914, 915, 916, 1060, + 917, 1061, 204, 498, 900, 901, 902, 903, 205, 500, + 908, 909, 910, 911, 206, 499, 207, 508, 963, 964, + 965, 966, 967, 208, 504, 926, 927, 928, 1070, 63, + 80, 399, 400, 401, 576, 402, 577, 209, 505, 935, + 936, 937, 938, 939, 940, 941, 942, 210, 485, 883, + 884, 885, 1043, 49, 73, 283, 284, 285, 531, 286, + 532, 287, 533, 288, 537, 289, 536, 211, 212, 213, + 214, 494, 771, 294, 295, 215, 491, 895, 896, 897, + 1052, 1190, 1191, 216, 486, 57, 77, 887, 888, 889, + 1046, 59, 78, 362, 363, 364, 365, 366, 367, 368, + 561, 369, 565, 370, 564, 371, 372, 566, 373, 217, + 487, 891, 892, 893, 1049, 61, 79, 384, 385, 386, + 387, 388, 570, 389, 390, 391, 392, 393, 297, 529, + 1002, 1003, 1004, 1113, 51, 74, 308, 309, 310, 541, + 218, 492, 219, 493, 300, 530, 1006, 1007, 1008, 1116, + 53, 75, 324, 325, 326, 544, 327, 328, 546, 329, + 330, 220, 503, 922, 923, 924, 1067, 55, 76, 342, + 343, 344, 345, 552, 346, 553, 347, 554, 348, 555, + 349, 556, 350, 557, 351, 551, 302, 538, 1011, 1012, + 1119, 221, 502, 919, 920, 1064, 1216, 1217, 1218, 1219, + 1220, 1298, 1221, 1299, 1222, 222, 506, 952, 953, 954, + 1081, 1308, 955, 956, 1082, 957, 958, 223, 224, 509, + 975, 976, 977, 1093, 978, 1094, 225, 510, 985, 986, + 987, 988, 1098, 989, 990, 1100, 226, 511, 65, 81, + 421, 422, 423, 424, 581, 425, 582, 426, 427, 584, + 428, 429, 430, 587, 822, 431, 588, 432, 433, 434, + 591, 435, 592, 436, 593, 437, 594, 227, 453, 67, + 82, 440, 441, 442, 597, 443, 228, 517, 993, 994, + 1104, 1260, 1261, 1262, 1263, 1316, 1264, 1314, 1337, 1338, + 1339, 1347, 1348, 1349, 1355, 1350, 1351, 1352, 1353, 1359, + 229, 518, 997, 998, 999 }; const short Dhcp6Parser::yytable_[] = { - 159, 233, 253, 301, 315, 335, 38, 357, 377, 395, - 415, 944, 241, 295, 308, 319, 337, 379, 371, 391, - 380, 416, 872, 902, 298, 1174, 1175, 1176, 1183, 1189, - 759, 254, 358, 378, 31, 893, 32, 42, 33, 990, - 447, 44, 260, 126, 261, 448, 262, 131, 132, 393, - 394, 131, 132, 30, 158, 46, 745, 746, 747, 748, - 263, 310, 311, 312, 313, 314, 131, 132, 293, 304, - 318, 336, 242, 296, 309, 320, 338, 48, 372, 392, - 50, 417, 329, 52, 255, 435, 436, 256, 250, 1004, - 257, 258, 251, 749, 228, 229, 230, 231, 232, 893, - 900, 259, 901, 54, 264, 759, 265, 954, 955, 956, - 974, 975, 976, 791, 266, 938, 86, 267, 268, 269, - 270, 126, 894, 833, 271, 797, 798, 799, 1050, 158, - 272, 1051, 89, 350, 516, 273, 274, 300, 523, 517, - 275, 535, 276, 524, 131, 132, 536, 277, 278, 56, - 279, 538, 287, 288, 289, 290, 539, 302, 316, 303, - 317, 58, 545, 60, 977, 62, 250, 546, 158, 1053, - 251, 574, 1054, 442, 92, 93, 575, 351, 94, 131, - 132, 64, 591, 158, 95, 96, 97, 592, 351, 595, - 352, 353, 131, 132, 596, 354, 355, 356, 1336, 131, - 132, 1337, 1338, 1339, 1340, 1060, 1100, 516, 1061, 1101, - 131, 132, 1009, 98, 99, 100, 101, 102, 103, 104, + 160, 235, 255, 304, 318, 338, 38, 360, 380, 398, + 418, 949, 243, 298, 311, 322, 340, 382, 374, 394, + 383, 419, 877, 907, 301, 1180, 1181, 1182, 1189, 1195, + 764, 256, 361, 381, 31, 898, 32, 30, 33, 132, + 133, 796, 262, 127, 263, 42, 264, 132, 133, 396, + 397, 132, 133, 802, 803, 804, 750, 751, 752, 753, + 265, 313, 314, 315, 316, 317, 132, 133, 296, 307, + 321, 339, 244, 299, 312, 323, 341, 86, 375, 395, + 44, 420, 332, 46, 257, 438, 439, 258, 252, 1009, + 259, 260, 253, 754, 230, 231, 232, 233, 234, 970, + 971, 261, 396, 397, 266, 764, 267, 959, 960, 961, + 979, 980, 981, 995, 268, 48, 450, 269, 270, 271, + 272, 451, 899, 1055, 273, 50, 1056, 520, 159, 159, + 274, 353, 521, 943, 527, 275, 276, 52, 539, 528, + 277, 838, 278, 540, 820, 821, 542, 279, 280, 127, + 281, 543, 282, 290, 291, 292, 159, 54, 293, 56, + 305, 319, 306, 320, 982, 549, 898, 905, 159, 906, + 550, 578, 132, 133, 92, 93, 579, 595, 94, 58, + 132, 133, 596, 159, 95, 96, 97, 354, 1058, 355, + 356, 1059, 599, 331, 357, 358, 359, 600, 60, 62, + 332, 333, 334, 335, 336, 337, 1275, 1276, 1277, 132, + 133, 132, 133, 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, 939, 940, 941, 942, 595, 34, 35, 36, - 37, 1010, 127, 128, 129, 130, 1334, 523, 1032, 1335, - 443, 158, 1011, 1033, 131, 132, 1174, 1175, 1176, 1183, - 1189, 133, 1269, 1270, 1271, 66, 134, 135, 136, 137, - 138, 139, 140, 125, 1032, 141, 131, 132, 126, 1034, - 441, 142, 1247, 1057, 1248, 1249, 158, 1074, 1058, 1081, - 143, 1086, 1075, 144, 1082, 444, 1087, 902, 1090, 158, - 145, 131, 132, 1091, 445, 1138, 158, 944, 146, 147, - 1096, 393, 394, 148, 591, 1097, 149, 158, 455, 1098, - 150, 456, 328, 924, 925, 926, 927, 928, 929, 329, - 330, 331, 332, 333, 334, 1103, 965, 966, 815, 816, - 1104, 151, 152, 153, 154, 155, 156, 457, 1032, 535, - 907, 908, 828, 1284, 1285, 157, 829, 830, 831, 832, - 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, - 458, 158, 459, 843, 844, 845, 846, 847, 351, 373, - 352, 353, 374, 375, 376, 460, 98, 99, 100, 101, - 102, 103, 1288, 158, 574, 554, 461, 1289, 1311, 1298, - 131, 132, 462, 1312, 538, 545, 1354, 351, 463, 1314, - 1315, 1355, 464, 465, 126, 351, 466, 467, 158, 1276, - 1277, 1278, 597, 598, 762, 763, 764, 765, 468, 1299, - 1300, 1301, 470, 471, 472, 159, 473, 131, 132, 474, - 478, 479, 233, 480, 484, 491, 492, 493, 503, 510, - 511, 512, 515, 241, 253, 519, 520, 301, 521, 522, - 1196, 1197, 1198, 530, 315, 295, 531, 541, 308, 543, - 544, 555, 556, 559, 335, 319, 298, 599, 563, 564, - 565, 607, 567, 254, 357, 337, 568, 569, 570, 571, - 377, 576, 579, 581, 260, 371, 261, 582, 262, 379, - 585, 391, 380, 586, 594, 600, 601, 602, 603, 358, - 415, 604, 263, 242, 605, 378, 606, 158, 615, 608, - 293, 416, 609, 304, 610, 296, 616, 611, 309, 612, - 318, 613, 614, 621, 627, 320, 255, 624, 617, 256, - 336, 618, 257, 258, 619, 338, 158, 625, 620, 622, - 623, 628, 629, 259, 158, 372, 264, 633, 265, 131, - 132, 392, 626, 630, 634, 631, 266, 635, 632, 267, - 268, 269, 270, 636, 637, 638, 271, 639, 640, 641, - 642, 417, 272, 643, 644, 645, 646, 273, 274, 647, - 648, 649, 275, 650, 276, 651, 652, 653, 654, 277, - 278, 655, 279, 656, 287, 288, 289, 290, 657, 658, - 659, 302, 660, 303, 661, 662, 665, 663, 316, 666, - 317, 664, 668, 674, 671, 672, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 669, - 670, 675, 676, 677, 678, 679, 413, 414, 680, 681, - 682, 683, 685, 687, 689, 693, 159, 688, 694, 233, - 695, 696, 697, 698, 699, 701, 702, 704, 690, 691, - 241, 705, 703, 706, 709, 714, 158, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 707, 715, 710, 943, 957, 967, 711, 415, 718, - 712, 719, 991, 720, 721, 945, 963, 968, 978, 416, - 722, 717, 724, 723, 725, 728, 824, 729, 726, 727, - 730, 731, 733, 736, 734, 1121, 738, 737, 739, 740, - 242, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 741, 742, 743, 753, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 744, 751, 126, - 752, 754, 755, 756, 757, 946, 964, 969, 979, 417, - 758, 128, 129, 32, 243, 761, 244, 767, 768, 769, - 771, 772, 131, 132, 245, 246, 247, 248, 249, 133, - 770, 773, 774, 782, 134, 135, 136, 775, 776, 777, - 778, 779, 780, 783, 250, 784, 781, 786, 251, 142, - 787, 793, 818, 788, 789, 790, 252, 823, 792, 794, - 795, 796, 873, 877, 881, 800, 885, 801, 889, 802, - 913, 803, 804, 916, 805, 806, 920, 987, 807, 808, - 809, 810, 812, 813, 814, 820, 821, 996, 822, 1000, - 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, - 1027, 1037, 1105, 1036, 1040, 1039, 1042, 1043, 1045, 151, - 152, 1046, 1048, 1049, 1122, 1052, 1064, 1063, 1066, 1067, - 1109, 1068, 1069, 1070, 1071, 1072, 1073, 1078, 1079, 1080, - 1083, 1084, 1085, 1092, 1094, 1102, 1110, 1113, 1112, 158, - 1124, 1117, 1116, 1115, 1118, 1119, 1120, 1131, 1123, 1125, - 1126, 1127, 1128, 1129, 1133, 1130, 1134, 1132, 1135, 1136, - 1193, 1194, 1222, 1223, 1224, 1225, 1226, 1229, 1227, 1230, - 1239, 1231, 1240, 1232, 1233, 1243, 1245, 1263, 1286, 1262, - 1268, 1294, 1296, 1236, 1235, 1237, 1242, 1244, 1260, 1273, - 1274, 1275, 1280, 1281, 1282, 1287, 1295, 253, 1283, 1297, - 357, 1290, 1291, 377, 1303, 1304, 1146, 1305, 295, 1306, - 1309, 371, 379, 1313, 391, 380, 1316, 1187, 1199, 298, - 1318, 335, 1319, 1320, 395, 358, 254, 1322, 378, 1208, - 1323, 1173, 337, 1324, 1330, 1147, 1326, 260, 1327, 261, - 943, 262, 1328, 1206, 1350, 957, 1153, 1200, 1154, 967, - 1155, 945, 1351, 1329, 1352, 263, 963, 1356, 1250, 1357, - 968, 1360, 991, 293, 1156, 1358, 978, 301, 296, 1252, - 315, 372, 1186, 1359, 392, 811, 1362, 1188, 308, 255, - 1363, 319, 256, 1251, 1207, 257, 258, 336, 1148, 1209, - 899, 1149, 338, 667, 1150, 1151, 259, 673, 1008, 264, - 1201, 265, 819, 1202, 825, 1152, 1203, 1204, 1157, 266, - 1158, 946, 267, 268, 269, 270, 964, 1205, 1159, 271, - 969, 1160, 1161, 1162, 1163, 272, 979, 1139, 1164, 1253, - 273, 274, 827, 304, 1165, 275, 318, 276, 309, 1166, - 1167, 320, 277, 278, 1168, 279, 1169, 287, 288, 289, - 290, 1170, 1171, 1195, 1172, 1137, 1179, 1180, 1181, 1182, - 1177, 1221, 1178, 1220, 1191, 1238, 716, 1141, 1140, 1192, - 1317, 1190, 349, 684, 1143, 1228, 1142, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 1145, 1144, 713, 1264, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 1267, 126, 351, 1219, 1218, 1005, - 686, 1217, 1321, 1234, 1241, 735, 1246, 128, 129, 692, - 1325, 302, 1348, 303, 316, 1259, 317, 1265, 131, 132, - 1266, 246, 247, 986, 249, 133, 708, 700, 1361, 826, - 134, 135, 136, 1261, 0, 0, 0, 1146, 0, 0, - 250, 0, 0, 0, 251, 1199, 0, 0, 1187, 0, - 0, 0, 252, 0, 732, 1307, 1208, 0, 0, 0, - 1250, 0, 1173, 0, 0, 0, 1147, 0, 0, 0, - 1206, 1252, 0, 0, 1200, 0, 0, 1153, 0, 1154, - 0, 1155, 0, 0, 0, 1251, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1156, 0, 0, 0, 0, - 0, 0, 0, 1186, 0, 151, 152, 0, 1188, 0, - 0, 1207, 0, 0, 0, 0, 1209, 0, 0, 1148, - 0, 0, 1149, 0, 0, 1150, 1151, 1201, 0, 0, - 1202, 1253, 0, 1203, 1204, 158, 1152, 0, 0, 1157, - 0, 1158, 0, 0, 1205, 0, 0, 0, 0, 1159, - 0, 0, 1160, 1161, 1162, 1163, 0, 0, 0, 1164, - 0, 0, 0, 0, 0, 1165, 0, 0, 0, 0, - 1166, 1167, 0, 0, 0, 1168, 0, 1169, 0, 0, - 0, 0, 1170, 1171, 0, 1172, 0, 1179, 1180, 1181, - 1182, 1177, 0, 1178 + 125, 126, 127, 767, 768, 769, 770, 520, 34, 35, + 36, 37, 1014, 128, 129, 130, 131, 1065, 912, 913, + 1066, 944, 945, 946, 947, 132, 133, 1180, 1181, 1182, + 1189, 1195, 134, 1282, 1283, 1284, 354, 135, 136, 137, + 138, 139, 140, 141, 1105, 89, 142, 1106, 599, 159, + 127, 527, 143, 1015, 64, 1037, 1016, 159, 132, 133, + 1038, 144, 66, 1037, 145, 1062, 303, 907, 1039, 1340, + 1063, 146, 1341, 132, 133, 1143, 1079, 949, 1086, 147, + 148, 1080, 444, 1087, 149, 1091, 159, 150, 159, 1095, + 1092, 151, 1101, 595, 1096, 252, 1108, 1102, 1103, 253, + 445, 1109, 354, 376, 355, 356, 377, 378, 379, 1305, + 1306, 1307, 152, 153, 154, 155, 156, 157, 126, 446, + 447, 448, 558, 833, 132, 133, 158, 834, 835, 836, + 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 458, 159, 459, 848, 849, 850, 851, 852, 460, + 1037, 1253, 539, 1254, 1255, 1290, 461, 1291, 462, 98, + 99, 100, 101, 102, 103, 1342, 463, 1294, 1343, 1344, + 1345, 1346, 1295, 578, 559, 159, 464, 465, 1304, 354, + 929, 930, 931, 932, 933, 934, 1317, 542, 127, 354, + 159, 1318, 1320, 549, 1360, 601, 602, 466, 1321, 1361, + 467, 468, 469, 470, 471, 473, 474, 475, 476, 160, + 477, 132, 133, 481, 482, 483, 235, 484, 488, 495, + 496, 497, 507, 514, 515, 516, 519, 243, 255, 523, + 524, 304, 525, 526, 1202, 1203, 1204, 534, 318, 298, + 535, 159, 311, 545, 547, 548, 560, 563, 338, 322, + 301, 567, 568, 569, 611, 571, 572, 256, 360, 340, + 573, 574, 575, 603, 380, 580, 583, 585, 262, 374, + 263, 586, 264, 382, 589, 394, 383, 590, 598, 604, + 605, 606, 607, 361, 418, 608, 265, 244, 609, 381, + 610, 612, 613, 625, 296, 419, 619, 307, 614, 299, + 615, 616, 312, 617, 321, 618, 628, 631, 620, 323, + 257, 632, 621, 258, 339, 622, 259, 260, 159, 341, + 623, 624, 626, 627, 633, 638, 629, 261, 159, 375, + 266, 636, 267, 132, 133, 395, 639, 640, 630, 634, + 268, 635, 637, 269, 270, 271, 272, 641, 642, 643, + 273, 644, 645, 646, 647, 420, 274, 648, 649, 651, + 650, 275, 276, 652, 653, 654, 277, 655, 278, 656, + 657, 658, 659, 279, 280, 660, 281, 661, 282, 290, + 291, 292, 662, 663, 293, 664, 665, 666, 305, 667, + 306, 668, 670, 671, 673, 319, 669, 320, 674, 675, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 679, 676, 677, 680, 681, 682, 683, + 416, 417, 686, 687, 688, 684, 690, 692, 693, 685, + 694, 160, 695, 698, 235, 699, 700, 701, 702, 703, + 704, 706, 707, 696, 708, 243, 709, 710, 711, 712, + 159, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 714, 719, 715, 720, 948, + 962, 972, 723, 418, 724, 725, 716, 996, 726, 717, + 950, 968, 973, 983, 419, 727, 722, 729, 728, 730, + 733, 829, 734, 731, 732, 735, 736, 738, 741, 739, + 823, 743, 742, 744, 745, 244, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 746, + 747, 748, 758, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 749, 756, 127, 757, 759, 760, 763, + 951, 969, 974, 984, 420, 761, 762, 129, 130, 32, + 245, 772, 246, 766, 773, 775, 774, 776, 132, 133, + 247, 248, 249, 250, 251, 134, 777, 778, 787, 789, + 135, 136, 137, 779, 780, 781, 782, 783, 784, 788, + 252, 785, 791, 786, 253, 143, 792, 798, 793, 794, + 795, 797, 254, 799, 800, 801, 805, 828, 878, 806, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 807, 808, 809, 810, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 882, 127, + 354, 886, 890, 894, 918, 811, 812, 921, 925, 992, + 813, 129, 130, 814, 815, 152, 153, 817, 1001, 818, + 1005, 1021, 132, 133, 1022, 248, 249, 1023, 251, 134, + 819, 1024, 1025, 1026, 135, 136, 137, 825, 826, 827, + 1027, 1028, 1029, 1030, 252, 159, 1032, 1041, 253, 1042, + 1044, 1045, 1048, 1047, 1073, 1051, 254, 1050, 1054, 1053, + 1057, 1069, 1068, 1071, 1072, 1110, 1074, 1075, 1076, 1077, + 1078, 1083, 1084, 1085, 1088, 1089, 1090, 1097, 1099, 1107, + 1115, 1127, 1114, 1118, 1117, 1122, 1269, 1120, 1121, 1123, + 1124, 1125, 1126, 1128, 1136, 1130, 1129, 1131, 1132, 1133, + 1134, 1135, 255, 1138, 1137, 360, 1139, 1140, 380, 152, + 153, 1151, 1141, 298, 1199, 1200, 374, 382, 1228, 394, + 383, 1229, 1193, 1205, 301, 1230, 338, 1231, 1232, 398, + 361, 256, 1235, 381, 1214, 1233, 1179, 340, 1236, 159, + 1152, 1245, 262, 1237, 263, 948, 264, 1238, 1212, 1239, + 962, 1158, 1206, 1159, 972, 1160, 950, 1241, 1246, 1249, + 265, 968, 1251, 1256, 1242, 973, 1243, 996, 296, 1161, + 1248, 983, 304, 299, 1258, 318, 375, 1192, 1250, 395, + 1268, 1266, 1194, 311, 257, 1274, 322, 258, 1257, 1213, + 259, 260, 339, 1153, 1215, 1279, 1154, 341, 1280, 1155, + 1156, 261, 1281, 1286, 266, 1207, 267, 1287, 1208, 1288, + 1157, 1209, 1210, 1162, 268, 1163, 951, 269, 270, 271, + 272, 969, 1211, 1164, 273, 974, 1165, 1166, 1167, 1168, + 274, 984, 1292, 1169, 1259, 275, 276, 1289, 307, 1170, + 277, 321, 278, 312, 1171, 1172, 323, 279, 280, 1173, + 281, 1174, 282, 290, 291, 292, 1175, 1176, 293, 1177, + 1293, 1178, 1185, 1186, 1187, 1300, 1301, 1188, 1183, 1302, + 1184, 1303, 1315, 1324, 1325, 1328, 1330, 1356, 1296, 1297, + 1334, 1336, 1357, 1358, 1362, 1366, 904, 830, 672, 824, + 678, 1144, 1142, 832, 1013, 1201, 1197, 1227, 1198, 1226, + 721, 1234, 1146, 1309, 1244, 1145, 1196, 1310, 1311, 689, + 1312, 1319, 1322, 1323, 352, 1329, 1326, 1332, 1363, 1333, + 1335, 1150, 816, 1148, 1364, 1365, 1368, 1147, 1369, 305, + 713, 306, 319, 1149, 320, 1271, 1270, 718, 1225, 691, + 705, 1224, 1273, 1272, 1223, 1327, 1247, 1010, 1252, 737, + 1240, 831, 1331, 1151, 740, 1354, 1367, 0, 697, 0, + 0, 1205, 0, 1265, 1193, 0, 0, 1267, 0, 0, + 0, 1313, 1214, 0, 0, 0, 1256, 0, 1179, 0, + 0, 0, 1152, 0, 991, 0, 1212, 1258, 0, 0, + 1206, 0, 0, 1158, 0, 1159, 0, 1160, 0, 0, + 0, 1257, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1161, 0, 0, 0, 0, 0, 0, 0, 1192, + 0, 0, 0, 0, 1194, 0, 0, 1213, 0, 0, + 0, 0, 1215, 0, 0, 1153, 0, 0, 1154, 0, + 0, 1155, 1156, 1207, 0, 0, 1208, 1259, 0, 1209, + 1210, 0, 1157, 0, 0, 1162, 0, 1163, 0, 0, + 1211, 0, 0, 0, 0, 1164, 0, 0, 1165, 1166, + 1167, 1168, 0, 0, 0, 1169, 0, 0, 0, 0, + 0, 1170, 0, 0, 0, 0, 1171, 1172, 0, 0, + 0, 1173, 0, 1174, 0, 0, 0, 0, 1175, 1176, + 0, 1177, 0, 1178, 1185, 1186, 1187, 0, 0, 1188, + 1183, 0, 1184 }; const short Dhcp6Parser::yycheck_[] = { 71, 72, 73, 74, 75, 76, 16, 78, 79, 80, - 81, 775, 72, 73, 74, 75, 76, 79, 78, 79, - 79, 81, 742, 769, 73, 1047, 1047, 1047, 1047, 1047, - 640, 73, 78, 79, 5, 131, 7, 7, 9, 203, - 3, 7, 73, 78, 73, 8, 73, 101, 102, 138, - 139, 101, 102, 0, 218, 7, 184, 185, 186, 187, - 73, 96, 97, 98, 99, 100, 101, 102, 73, 74, - 75, 76, 72, 73, 74, 75, 76, 7, 78, 79, - 7, 81, 129, 7, 73, 13, 14, 73, 123, 136, - 73, 73, 127, 221, 16, 17, 18, 19, 20, 131, - 132, 73, 134, 7, 73, 715, 73, 157, 158, 159, - 164, 165, 166, 681, 73, 24, 218, 73, 73, 73, - 73, 78, 218, 32, 73, 693, 694, 695, 3, 218, - 73, 6, 10, 24, 3, 73, 73, 94, 3, 8, - 73, 3, 73, 8, 101, 102, 8, 73, 73, 7, - 73, 3, 73, 73, 73, 73, 8, 74, 75, 74, - 75, 7, 3, 7, 218, 7, 123, 8, 218, 3, - 127, 3, 6, 3, 11, 12, 8, 79, 15, 101, - 102, 7, 3, 218, 21, 22, 23, 8, 79, 3, - 81, 82, 101, 102, 8, 86, 87, 88, 195, 101, - 102, 198, 199, 200, 201, 3, 3, 3, 6, 6, - 101, 102, 8, 50, 51, 52, 53, 54, 55, 56, + 81, 780, 72, 73, 74, 75, 76, 79, 78, 79, + 79, 81, 747, 774, 73, 1052, 1052, 1052, 1052, 1052, + 645, 73, 78, 79, 5, 132, 7, 0, 9, 102, + 103, 686, 73, 79, 73, 7, 73, 102, 103, 139, + 140, 102, 103, 698, 699, 700, 185, 186, 187, 188, + 73, 97, 98, 99, 100, 101, 102, 103, 73, 74, + 75, 76, 72, 73, 74, 75, 76, 219, 78, 79, + 7, 81, 130, 7, 73, 13, 14, 73, 124, 137, + 73, 73, 128, 222, 16, 17, 18, 19, 20, 162, + 163, 73, 139, 140, 73, 720, 73, 158, 159, 160, + 165, 166, 167, 204, 73, 7, 3, 73, 73, 73, + 73, 8, 219, 3, 73, 7, 6, 3, 219, 219, + 73, 24, 8, 24, 3, 73, 73, 7, 3, 8, + 73, 32, 73, 8, 182, 183, 3, 73, 73, 79, + 73, 8, 73, 73, 73, 73, 219, 7, 73, 7, + 74, 75, 74, 75, 219, 3, 132, 133, 219, 135, + 8, 3, 102, 103, 11, 12, 8, 3, 15, 7, + 102, 103, 8, 219, 21, 22, 23, 80, 3, 82, + 83, 6, 3, 123, 87, 88, 89, 8, 7, 7, + 130, 131, 132, 133, 134, 135, 25, 26, 27, 102, + 103, 102, 103, 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, 151, 152, 153, 154, 3, 218, 219, 220, - 221, 8, 89, 90, 91, 92, 3, 3, 3, 6, - 4, 218, 8, 8, 101, 102, 1288, 1288, 1288, 1288, - 1288, 108, 25, 26, 27, 7, 113, 114, 115, 116, - 117, 118, 119, 77, 3, 122, 101, 102, 78, 8, - 6, 128, 194, 3, 196, 197, 218, 3, 8, 3, - 137, 3, 8, 140, 8, 8, 8, 1053, 3, 218, - 147, 101, 102, 8, 3, 1035, 218, 1081, 155, 156, - 3, 138, 139, 160, 3, 8, 163, 218, 4, 8, - 167, 4, 122, 141, 142, 143, 144, 145, 146, 129, - 130, 131, 132, 133, 134, 3, 161, 162, 181, 182, - 8, 188, 189, 190, 191, 192, 193, 4, 3, 3, - 120, 121, 24, 8, 8, 202, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 4, 218, 4, 45, 46, 47, 48, 49, 79, 80, - 81, 82, 83, 84, 85, 4, 50, 51, 52, 53, - 54, 55, 3, 218, 3, 8, 4, 8, 3, 8, - 101, 102, 4, 8, 3, 3, 3, 79, 4, 8, - 8, 8, 4, 4, 78, 79, 4, 4, 218, 42, - 43, 44, 442, 443, 109, 110, 111, 112, 4, 148, - 149, 150, 4, 4, 4, 516, 4, 101, 102, 4, - 4, 4, 523, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 523, 535, 4, 4, 538, 4, 4, - 124, 125, 126, 4, 545, 535, 4, 4, 538, 4, - 4, 3, 8, 4, 555, 545, 535, 218, 4, 8, - 3, 219, 4, 535, 565, 555, 4, 4, 8, 3, - 571, 4, 4, 4, 535, 565, 535, 4, 535, 571, - 4, 571, 571, 4, 4, 4, 4, 4, 4, 565, - 591, 4, 535, 523, 4, 571, 4, 218, 221, 219, - 535, 591, 219, 538, 219, 535, 220, 219, 538, 219, - 545, 219, 219, 4, 4, 545, 535, 221, 220, 535, - 555, 220, 535, 535, 219, 555, 218, 221, 219, 219, - 219, 4, 4, 535, 218, 565, 535, 4, 535, 101, - 102, 571, 221, 221, 4, 221, 535, 4, 221, 535, - 535, 535, 535, 219, 4, 4, 535, 4, 4, 4, - 4, 591, 535, 221, 221, 221, 4, 535, 535, 4, - 4, 4, 535, 4, 535, 4, 4, 4, 4, 535, - 535, 219, 535, 4, 535, 535, 535, 535, 4, 4, - 4, 538, 4, 538, 4, 221, 4, 221, 545, 4, - 545, 221, 4, 4, 219, 219, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 221, - 221, 4, 4, 4, 4, 219, 188, 189, 221, 4, - 4, 4, 4, 4, 4, 4, 737, 219, 4, 740, - 4, 4, 4, 4, 4, 4, 4, 4, 219, 219, - 740, 4, 219, 4, 4, 4, 218, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 221, 4, 221, 775, 776, 777, 221, 779, 4, - 221, 4, 783, 219, 4, 775, 776, 777, 778, 779, - 219, 221, 4, 219, 4, 4, 736, 4, 221, 221, - 4, 4, 4, 4, 219, 219, 218, 7, 7, 7, - 740, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 7, 7, 5, 5, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 218, 218, 78, - 218, 5, 5, 218, 218, 775, 776, 777, 778, 779, - 5, 90, 91, 7, 93, 218, 95, 5, 5, 5, - 5, 5, 101, 102, 103, 104, 105, 106, 107, 108, - 7, 5, 7, 5, 113, 114, 115, 7, 7, 7, - 7, 7, 218, 7, 123, 5, 218, 5, 127, 128, - 5, 7, 183, 218, 218, 218, 135, 5, 218, 218, - 218, 218, 7, 7, 7, 218, 7, 218, 7, 218, - 7, 218, 218, 7, 218, 218, 7, 7, 218, 218, - 218, 218, 218, 218, 218, 218, 218, 7, 218, 7, + 77, 78, 79, 110, 111, 112, 113, 3, 219, 220, + 221, 222, 8, 90, 91, 92, 93, 3, 121, 122, + 6, 152, 153, 154, 155, 102, 103, 1294, 1294, 1294, + 1294, 1294, 109, 42, 43, 44, 80, 114, 115, 116, + 117, 118, 119, 120, 3, 10, 123, 6, 3, 219, + 79, 3, 129, 8, 7, 3, 8, 219, 102, 103, + 8, 138, 7, 3, 141, 3, 95, 1058, 8, 3, + 8, 148, 6, 102, 103, 1040, 3, 1086, 3, 156, + 157, 8, 6, 8, 161, 3, 219, 164, 219, 3, + 8, 168, 3, 3, 8, 124, 3, 8, 8, 128, + 3, 8, 80, 81, 82, 83, 84, 85, 86, 149, + 150, 151, 189, 190, 191, 192, 193, 194, 78, 4, + 8, 3, 8, 24, 102, 103, 203, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 4, 219, 4, 45, 46, 47, 48, 49, 4, + 3, 195, 3, 197, 198, 8, 4, 8, 4, 50, + 51, 52, 53, 54, 55, 196, 4, 3, 199, 200, + 201, 202, 8, 3, 3, 219, 4, 4, 8, 80, + 142, 143, 144, 145, 146, 147, 3, 3, 79, 80, + 219, 8, 8, 3, 3, 445, 446, 4, 8, 8, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 520, + 4, 102, 103, 4, 4, 4, 527, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 527, 539, 4, + 4, 542, 4, 4, 125, 126, 127, 4, 549, 539, + 4, 219, 542, 4, 4, 4, 8, 4, 559, 549, + 539, 4, 8, 3, 220, 4, 4, 539, 569, 559, + 4, 8, 3, 219, 575, 4, 4, 4, 539, 569, + 539, 4, 539, 575, 4, 575, 575, 4, 4, 4, + 4, 4, 4, 569, 595, 4, 539, 527, 4, 575, + 4, 220, 220, 4, 539, 595, 222, 542, 220, 539, + 220, 220, 542, 220, 549, 220, 222, 4, 221, 549, + 539, 4, 221, 539, 559, 221, 539, 539, 219, 559, + 220, 220, 220, 220, 4, 4, 222, 539, 219, 569, + 539, 221, 539, 102, 103, 575, 4, 4, 222, 222, + 539, 222, 222, 539, 539, 539, 539, 220, 4, 4, + 539, 4, 4, 4, 4, 595, 539, 222, 222, 4, + 222, 539, 539, 4, 4, 4, 539, 4, 539, 4, + 4, 4, 4, 539, 539, 220, 539, 4, 539, 539, + 539, 539, 4, 4, 539, 4, 4, 4, 542, 222, + 542, 222, 4, 4, 4, 549, 222, 549, 222, 222, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 4, 220, 220, 4, 4, 4, 4, + 189, 190, 4, 4, 4, 220, 4, 4, 220, 222, + 4, 742, 220, 4, 745, 4, 4, 4, 4, 4, + 4, 4, 4, 220, 220, 745, 4, 4, 4, 222, + 219, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 4, 4, 222, 4, 780, + 781, 782, 4, 784, 4, 220, 222, 788, 4, 222, + 780, 781, 782, 783, 784, 220, 222, 4, 220, 4, + 4, 741, 4, 222, 222, 4, 4, 4, 4, 220, + 184, 219, 7, 7, 7, 745, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 7, + 7, 5, 5, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 219, 219, 79, 219, 5, 5, 5, + 780, 781, 782, 783, 784, 219, 219, 91, 92, 7, + 94, 5, 96, 219, 5, 7, 5, 5, 102, 103, + 104, 105, 106, 107, 108, 109, 5, 5, 5, 5, + 114, 115, 116, 7, 7, 7, 7, 7, 7, 7, + 124, 219, 5, 219, 128, 129, 5, 7, 219, 219, + 219, 219, 136, 219, 219, 219, 219, 5, 7, 219, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 219, 219, 219, 219, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 7, 79, + 80, 7, 7, 7, 7, 219, 219, 7, 7, 7, + 219, 91, 92, 219, 219, 189, 190, 219, 7, 219, + 7, 4, 102, 103, 4, 105, 106, 4, 108, 109, + 219, 4, 4, 4, 114, 115, 116, 219, 219, 219, + 4, 4, 4, 4, 124, 219, 4, 6, 128, 3, + 6, 3, 3, 6, 4, 3, 136, 6, 3, 6, + 6, 3, 6, 6, 3, 219, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 3, 218, 6, 3, 6, 6, 3, 6, 188, - 189, 3, 6, 3, 221, 6, 3, 6, 6, 3, - 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 3, 3, 6, 218, - 221, 4, 6, 8, 4, 4, 4, 4, 219, 219, - 219, 219, 219, 219, 4, 219, 4, 219, 4, 4, - 4, 4, 219, 219, 219, 219, 219, 4, 219, 4, - 4, 219, 4, 219, 219, 4, 4, 3, 8, 6, - 4, 4, 3, 219, 221, 219, 221, 219, 221, 218, - 218, 218, 218, 218, 218, 8, 8, 1038, 218, 8, - 1041, 218, 218, 1044, 218, 218, 1047, 218, 1038, 218, - 4, 1041, 1044, 218, 1044, 1044, 218, 1047, 1059, 1038, - 4, 1062, 4, 221, 1065, 1041, 1038, 4, 1044, 1059, - 219, 1047, 1062, 4, 7, 1047, 218, 1038, 218, 1038, - 1081, 1038, 5, 1059, 4, 1086, 1047, 1059, 1047, 1090, - 1047, 1081, 4, 218, 4, 1038, 1086, 4, 1099, 221, - 1090, 4, 1103, 1038, 1047, 219, 1096, 1108, 1038, 1099, - 1111, 1041, 1047, 219, 1044, 715, 218, 1047, 1108, 1038, - 218, 1111, 1038, 1099, 1059, 1038, 1038, 1062, 1047, 1059, - 768, 1047, 1062, 516, 1047, 1047, 1038, 523, 823, 1038, - 1059, 1038, 728, 1059, 737, 1047, 1059, 1059, 1047, 1038, - 1047, 1081, 1038, 1038, 1038, 1038, 1086, 1059, 1047, 1038, - 1090, 1047, 1047, 1047, 1047, 1038, 1096, 1037, 1047, 1099, - 1038, 1038, 740, 1108, 1047, 1038, 1111, 1038, 1108, 1047, - 1047, 1111, 1038, 1038, 1047, 1038, 1047, 1038, 1038, 1038, - 1038, 1047, 1047, 1057, 1047, 1032, 1047, 1047, 1047, 1047, - 1047, 1067, 1047, 1065, 1050, 1086, 574, 1040, 1038, 1053, - 1288, 1049, 77, 535, 1043, 1074, 1041, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 1046, 1044, 571, 1108, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 1113, 78, 79, 1064, 1062, 793, - 538, 1060, 1296, 1081, 1090, 595, 1096, 90, 91, 545, - 1311, 1108, 1334, 1108, 1111, 1100, 1111, 1110, 101, 102, - 1111, 104, 105, 779, 107, 108, 565, 555, 1354, 739, - 113, 114, 115, 1103, -1, -1, -1, 1288, -1, -1, - 123, -1, -1, -1, 127, 1296, -1, -1, 1288, -1, - -1, -1, 135, -1, 591, 1245, 1296, -1, -1, -1, - 1311, -1, 1288, -1, -1, -1, 1288, -1, -1, -1, - 1296, 1311, -1, -1, 1296, -1, -1, 1288, -1, 1288, - -1, 1288, -1, -1, -1, 1311, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1288, -1, -1, -1, -1, - -1, -1, -1, 1288, -1, 188, 189, -1, 1288, -1, - -1, 1296, -1, -1, -1, -1, 1296, -1, -1, 1288, - -1, -1, 1288, -1, -1, 1288, 1288, 1296, -1, -1, - 1296, 1311, -1, 1296, 1296, 218, 1288, -1, -1, 1288, - -1, 1288, -1, -1, 1296, -1, -1, -1, -1, 1288, - -1, -1, 1288, 1288, 1288, 1288, -1, -1, -1, 1288, - -1, -1, -1, -1, -1, 1288, -1, -1, -1, -1, - 1288, 1288, -1, -1, -1, 1288, -1, 1288, -1, -1, - -1, -1, 1288, 1288, -1, 1288, -1, 1288, 1288, 1288, - 1288, 1288, -1, 1288 + 3, 222, 6, 3, 6, 4, 3, 8, 6, 4, + 4, 4, 220, 220, 4, 220, 222, 220, 220, 220, + 220, 220, 1043, 4, 220, 1046, 4, 4, 1049, 189, + 190, 1052, 4, 1043, 4, 4, 1046, 1049, 220, 1049, + 1049, 220, 1052, 1064, 1043, 220, 1067, 220, 220, 1070, + 1046, 1043, 4, 1049, 1064, 220, 1052, 1067, 4, 219, + 1052, 4, 1043, 220, 1043, 1086, 1043, 220, 1064, 220, + 1091, 1052, 1064, 1052, 1095, 1052, 1086, 222, 4, 4, + 1043, 1091, 4, 1104, 220, 1095, 220, 1108, 1043, 1052, + 222, 1101, 1113, 1043, 1104, 1116, 1046, 1052, 220, 1049, + 6, 222, 1052, 1113, 1043, 4, 1116, 1043, 1104, 1064, + 1043, 1043, 1067, 1052, 1064, 219, 1052, 1067, 219, 1052, + 1052, 1043, 219, 219, 1043, 1064, 1043, 219, 1064, 219, + 1052, 1064, 1064, 1052, 1043, 1052, 1086, 1043, 1043, 1043, + 1043, 1091, 1064, 1052, 1043, 1095, 1052, 1052, 1052, 1052, + 1043, 1101, 8, 1052, 1104, 1043, 1043, 219, 1113, 1052, + 1043, 1116, 1043, 1113, 1052, 1052, 1116, 1043, 1043, 1052, + 1043, 1052, 1043, 1043, 1043, 1043, 1052, 1052, 1043, 1052, + 8, 1052, 1052, 1052, 1052, 4, 8, 1052, 1052, 3, + 1052, 8, 4, 4, 4, 4, 4, 4, 219, 219, + 5, 7, 4, 4, 4, 4, 773, 742, 520, 733, + 527, 1042, 1037, 745, 828, 1062, 1055, 1072, 1058, 1070, + 578, 1079, 1045, 219, 1091, 1043, 1054, 219, 219, 539, + 219, 219, 219, 1294, 77, 220, 222, 219, 222, 219, + 219, 1051, 720, 1048, 220, 220, 219, 1046, 219, 1113, + 569, 1113, 1116, 1049, 1116, 1115, 1113, 575, 1069, 542, + 559, 1067, 1118, 1116, 1065, 1302, 1095, 798, 1101, 595, + 1086, 744, 1317, 1294, 599, 1340, 1360, -1, 549, -1, + -1, 1302, -1, 1105, 1294, -1, -1, 1108, -1, -1, + -1, 1251, 1302, -1, -1, -1, 1317, -1, 1294, -1, + -1, -1, 1294, -1, 784, -1, 1302, 1317, -1, -1, + 1302, -1, -1, 1294, -1, 1294, -1, 1294, -1, -1, + -1, 1317, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1294, -1, -1, -1, -1, -1, -1, -1, 1294, + -1, -1, -1, -1, 1294, -1, -1, 1302, -1, -1, + -1, -1, 1302, -1, -1, 1294, -1, -1, 1294, -1, + -1, 1294, 1294, 1302, -1, -1, 1302, 1317, -1, 1302, + 1302, -1, 1294, -1, -1, 1294, -1, 1294, -1, -1, + 1302, -1, -1, -1, -1, 1294, -1, -1, 1294, 1294, + 1294, 1294, -1, -1, -1, 1294, -1, -1, -1, -1, + -1, 1294, -1, -1, -1, -1, 1294, 1294, -1, -1, + -1, 1294, -1, 1294, -1, -1, -1, -1, 1294, 1294, + -1, 1294, -1, 1294, 1294, 1294, 1294, -1, -1, 1294, + 1294, -1, 1294 }; const short Dhcp6Parser::yystos_[] = { - 0, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 0, 5, 7, 9, 218, 219, 220, 221, 238, 239, - 240, 245, 7, 254, 7, 259, 7, 310, 7, 424, - 7, 505, 7, 521, 7, 538, 7, 456, 7, 462, - 7, 486, 7, 400, 7, 609, 7, 640, 246, 241, - 255, 260, 311, 425, 506, 522, 539, 457, 463, 487, - 401, 610, 641, 238, 247, 248, 218, 243, 244, 10, - 256, 258, 11, 12, 15, 21, 22, 23, 50, 51, + 0, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 0, 5, 7, 9, 219, 220, 221, 222, 239, 240, + 241, 246, 7, 255, 7, 260, 7, 312, 7, 426, + 7, 507, 7, 523, 7, 540, 7, 458, 7, 464, + 7, 488, 7, 402, 7, 611, 7, 642, 247, 242, + 256, 261, 313, 427, 508, 524, 541, 459, 465, 489, + 403, 612, 643, 239, 248, 249, 219, 244, 245, 10, + 257, 259, 11, 12, 15, 21, 22, 23, 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, 89, 90, 91, - 92, 101, 102, 108, 113, 114, 115, 116, 117, 118, - 119, 122, 128, 137, 140, 147, 155, 156, 160, 163, - 167, 188, 189, 190, 191, 192, 193, 202, 218, 253, - 261, 262, 263, 265, 266, 267, 268, 269, 270, 271, + 72, 73, 74, 75, 76, 77, 78, 79, 90, 91, + 92, 93, 102, 103, 109, 114, 115, 116, 117, 118, + 119, 120, 123, 129, 138, 141, 148, 156, 157, 161, + 164, 168, 189, 190, 191, 192, 193, 194, 203, 219, + 254, 262, 263, 264, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 285, 287, 289, 290, 291, 293, 295, 296, 297, - 298, 300, 301, 303, 305, 306, 307, 308, 320, 322, - 324, 365, 373, 379, 385, 387, 394, 408, 418, 438, - 439, 440, 441, 446, 454, 480, 511, 513, 532, 562, - 576, 588, 589, 597, 607, 638, 647, 671, 16, 17, - 18, 19, 20, 253, 312, 313, 314, 316, 317, 318, - 319, 511, 513, 93, 95, 103, 104, 105, 106, 107, - 123, 127, 135, 253, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 279, 280, 281, - 282, 285, 287, 289, 290, 291, 293, 295, 301, 303, - 426, 427, 428, 430, 432, 434, 436, 438, 439, 440, - 441, 444, 445, 480, 499, 511, 513, 515, 532, 557, - 94, 253, 434, 436, 480, 507, 508, 509, 511, 513, - 96, 97, 98, 99, 100, 253, 434, 436, 480, 511, - 513, 523, 524, 525, 527, 528, 530, 531, 122, 129, - 130, 131, 132, 133, 134, 253, 480, 511, 513, 540, - 541, 542, 543, 545, 547, 549, 551, 553, 555, 454, - 24, 79, 81, 82, 86, 87, 88, 253, 342, 464, - 465, 466, 467, 468, 469, 470, 472, 474, 476, 477, - 479, 511, 513, 80, 83, 84, 85, 253, 342, 468, - 474, 488, 489, 490, 491, 492, 494, 495, 496, 497, - 498, 511, 513, 138, 139, 253, 402, 403, 404, 406, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 188, 189, 253, 511, 513, 611, 612, - 613, 614, 616, 618, 619, 621, 622, 623, 626, 628, - 629, 630, 632, 634, 636, 13, 14, 642, 643, 644, - 646, 6, 3, 4, 8, 3, 257, 3, 8, 264, - 639, 309, 321, 323, 325, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 299, - 4, 4, 4, 4, 4, 283, 286, 288, 4, 4, - 4, 419, 455, 481, 4, 302, 304, 447, 512, 514, - 442, 4, 4, 4, 374, 386, 380, 366, 563, 533, - 395, 409, 577, 4, 388, 590, 598, 608, 292, 294, - 4, 4, 4, 648, 672, 4, 3, 8, 315, 4, - 4, 4, 4, 3, 8, 500, 516, 429, 431, 433, - 4, 4, 437, 435, 558, 3, 8, 510, 3, 8, - 526, 4, 529, 4, 4, 3, 8, 556, 544, 546, - 548, 550, 552, 554, 8, 3, 8, 471, 343, 4, - 475, 473, 478, 4, 8, 3, 493, 4, 4, 4, - 8, 3, 405, 407, 3, 8, 4, 615, 617, 4, - 620, 4, 4, 624, 627, 4, 4, 631, 633, 635, - 637, 3, 8, 645, 4, 3, 8, 238, 238, 218, - 4, 4, 4, 4, 4, 4, 4, 219, 219, 219, - 219, 219, 219, 219, 219, 221, 220, 220, 220, 219, - 219, 4, 219, 219, 221, 221, 221, 4, 4, 4, - 221, 221, 221, 4, 4, 4, 219, 4, 4, 4, - 4, 4, 4, 221, 221, 221, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 219, 4, 4, 4, 4, - 4, 4, 221, 221, 221, 4, 4, 262, 4, 221, - 221, 219, 219, 313, 4, 4, 4, 4, 4, 219, - 221, 4, 4, 4, 427, 4, 508, 4, 219, 4, - 219, 219, 524, 4, 4, 4, 4, 4, 4, 4, - 542, 4, 4, 219, 4, 4, 4, 221, 466, 4, - 221, 221, 221, 490, 4, 4, 403, 221, 4, 4, - 219, 4, 219, 219, 4, 4, 221, 221, 4, 4, - 4, 4, 612, 4, 219, 643, 4, 7, 218, 7, - 7, 7, 7, 5, 218, 184, 185, 186, 187, 221, - 284, 218, 218, 5, 5, 5, 218, 218, 5, 240, - 242, 218, 109, 110, 111, 112, 443, 5, 5, 5, - 7, 5, 5, 5, 7, 7, 7, 7, 7, 7, - 218, 218, 5, 7, 5, 249, 5, 5, 218, 218, - 218, 249, 218, 7, 218, 218, 218, 249, 249, 249, - 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - 218, 242, 218, 218, 218, 181, 182, 625, 183, 284, - 218, 218, 218, 5, 238, 261, 642, 312, 24, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 45, 46, 47, 48, 49, 253, 330, - 331, 332, 335, 337, 339, 341, 342, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 355, 356, 357, 359, - 361, 363, 330, 7, 326, 327, 328, 7, 420, 421, - 422, 7, 458, 459, 460, 7, 482, 483, 484, 7, - 448, 449, 450, 131, 218, 375, 376, 377, 378, 247, - 132, 134, 377, 381, 382, 383, 384, 120, 121, 367, - 368, 369, 371, 7, 564, 565, 7, 534, 535, 536, - 7, 396, 397, 398, 141, 142, 143, 144, 145, 146, - 410, 411, 412, 413, 414, 415, 416, 417, 24, 151, - 152, 153, 154, 253, 344, 511, 513, 578, 579, 580, - 583, 584, 586, 587, 157, 158, 159, 253, 389, 390, - 391, 392, 393, 511, 513, 161, 162, 253, 511, 513, - 591, 592, 593, 595, 164, 165, 166, 218, 511, 513, - 599, 600, 601, 602, 604, 605, 611, 7, 649, 650, - 203, 253, 673, 674, 675, 250, 7, 501, 502, 503, - 7, 517, 518, 519, 136, 543, 559, 560, 326, 8, - 8, 8, 333, 336, 338, 340, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 353, 4, 358, 360, - 362, 364, 3, 8, 8, 329, 6, 3, 423, 6, - 3, 461, 6, 3, 485, 6, 3, 451, 6, 3, - 3, 6, 6, 3, 6, 370, 372, 3, 8, 566, - 3, 6, 537, 6, 3, 399, 6, 3, 4, 4, - 4, 4, 4, 4, 3, 8, 581, 585, 4, 4, - 4, 3, 8, 4, 4, 4, 3, 8, 594, 596, - 3, 8, 4, 603, 4, 606, 3, 8, 8, 651, - 3, 6, 4, 3, 8, 218, 251, 252, 504, 6, - 3, 520, 6, 3, 561, 8, 6, 4, 4, 4, - 4, 219, 221, 219, 221, 219, 219, 219, 219, 219, - 219, 4, 219, 4, 4, 4, 4, 331, 330, 328, - 426, 422, 464, 460, 488, 484, 253, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 279, 280, 281, 282, 285, 287, 289, 290, 291, 293, - 295, 301, 303, 342, 418, 430, 432, 434, 436, 438, - 439, 440, 441, 445, 452, 453, 480, 511, 513, 557, - 450, 376, 382, 4, 4, 368, 124, 125, 126, 253, - 265, 266, 267, 268, 269, 270, 342, 480, 511, 513, - 567, 568, 569, 570, 571, 573, 575, 565, 540, 536, - 402, 398, 219, 219, 219, 219, 219, 219, 411, 4, - 4, 219, 219, 219, 579, 221, 219, 219, 390, 4, - 4, 592, 221, 4, 219, 4, 600, 194, 196, 197, - 253, 342, 511, 513, 652, 653, 654, 655, 657, 650, - 221, 674, 6, 3, 507, 503, 523, 519, 4, 25, - 26, 27, 334, 218, 218, 218, 42, 43, 44, 354, - 218, 218, 218, 218, 8, 8, 8, 8, 3, 8, - 218, 218, 572, 574, 4, 8, 3, 8, 8, 148, - 149, 150, 582, 218, 218, 218, 218, 238, 658, 4, - 656, 3, 8, 218, 8, 8, 218, 453, 4, 4, - 221, 569, 4, 219, 4, 653, 218, 218, 5, 218, - 7, 659, 660, 661, 3, 6, 195, 198, 199, 200, - 201, 662, 663, 664, 666, 667, 668, 669, 660, 665, - 4, 4, 4, 670, 3, 8, 4, 221, 219, 219, - 4, 663, 218, 218 + 282, 283, 286, 288, 290, 291, 292, 293, 295, 297, + 298, 299, 300, 302, 303, 305, 307, 308, 309, 310, + 322, 324, 326, 367, 375, 381, 387, 389, 396, 410, + 420, 440, 441, 442, 443, 448, 456, 482, 513, 515, + 534, 564, 578, 590, 591, 599, 609, 640, 649, 673, + 16, 17, 18, 19, 20, 254, 314, 315, 316, 318, + 319, 320, 321, 513, 515, 94, 96, 104, 105, 106, + 107, 108, 124, 128, 136, 254, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 280, + 281, 282, 283, 286, 288, 290, 291, 292, 293, 295, + 297, 303, 305, 428, 429, 430, 432, 434, 436, 438, + 440, 441, 442, 443, 446, 447, 482, 501, 513, 515, + 517, 534, 559, 95, 254, 436, 438, 482, 509, 510, + 511, 513, 515, 97, 98, 99, 100, 101, 254, 436, + 438, 482, 513, 515, 525, 526, 527, 529, 530, 532, + 533, 123, 130, 131, 132, 133, 134, 135, 254, 482, + 513, 515, 542, 543, 544, 545, 547, 549, 551, 553, + 555, 557, 456, 24, 80, 82, 83, 87, 88, 89, + 254, 344, 466, 467, 468, 469, 470, 471, 472, 474, + 476, 478, 479, 481, 513, 515, 81, 84, 85, 86, + 254, 344, 470, 476, 490, 491, 492, 493, 494, 496, + 497, 498, 499, 500, 513, 515, 139, 140, 254, 404, + 405, 406, 408, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 189, 190, 254, 513, + 515, 613, 614, 615, 616, 618, 620, 621, 623, 624, + 625, 628, 630, 631, 632, 634, 636, 638, 13, 14, + 644, 645, 646, 648, 6, 3, 4, 8, 3, 258, + 3, 8, 265, 641, 311, 323, 325, 327, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 301, 4, 4, 4, 4, 4, 284, 287, + 289, 4, 4, 4, 4, 421, 457, 483, 4, 304, + 306, 449, 514, 516, 444, 4, 4, 4, 376, 388, + 382, 368, 565, 535, 397, 411, 579, 4, 390, 592, + 600, 610, 294, 296, 4, 4, 4, 650, 674, 4, + 3, 8, 317, 4, 4, 4, 4, 3, 8, 502, + 518, 431, 433, 435, 4, 4, 439, 437, 560, 3, + 8, 512, 3, 8, 528, 4, 531, 4, 4, 3, + 8, 558, 546, 548, 550, 552, 554, 556, 8, 3, + 8, 473, 345, 4, 477, 475, 480, 4, 8, 3, + 495, 4, 4, 4, 8, 3, 407, 409, 3, 8, + 4, 617, 619, 4, 622, 4, 4, 626, 629, 4, + 4, 633, 635, 637, 639, 3, 8, 647, 4, 3, + 8, 239, 239, 219, 4, 4, 4, 4, 4, 4, + 4, 220, 220, 220, 220, 220, 220, 220, 220, 222, + 221, 221, 221, 220, 220, 4, 220, 220, 222, 222, + 222, 4, 4, 4, 222, 222, 221, 222, 4, 4, + 4, 220, 4, 4, 4, 4, 4, 4, 222, 222, + 222, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 220, 4, 4, 4, 4, 4, 4, 222, 222, 222, + 4, 4, 263, 4, 222, 222, 220, 220, 315, 4, + 4, 4, 4, 4, 220, 222, 4, 4, 4, 429, + 4, 510, 4, 220, 4, 220, 220, 526, 4, 4, + 4, 4, 4, 4, 4, 544, 4, 4, 220, 4, + 4, 4, 222, 468, 4, 222, 222, 222, 492, 4, + 4, 405, 222, 4, 4, 220, 4, 220, 220, 4, + 4, 222, 222, 4, 4, 4, 4, 614, 4, 220, + 645, 4, 7, 219, 7, 7, 7, 7, 5, 219, + 185, 186, 187, 188, 222, 285, 219, 219, 5, 5, + 5, 219, 219, 5, 241, 243, 219, 110, 111, 112, + 113, 445, 5, 5, 5, 7, 5, 5, 5, 7, + 7, 7, 7, 7, 7, 219, 219, 5, 7, 5, + 250, 5, 5, 219, 219, 219, 250, 219, 7, 219, + 219, 219, 250, 250, 250, 219, 219, 219, 219, 219, + 219, 219, 219, 219, 219, 219, 243, 219, 219, 219, + 182, 183, 627, 184, 285, 219, 219, 219, 5, 239, + 262, 644, 314, 24, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 45, 46, + 47, 48, 49, 254, 332, 333, 334, 337, 339, 341, + 343, 344, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 357, 358, 359, 361, 363, 365, 332, 7, 328, + 329, 330, 7, 422, 423, 424, 7, 460, 461, 462, + 7, 484, 485, 486, 7, 450, 451, 452, 132, 219, + 377, 378, 379, 380, 248, 133, 135, 379, 383, 384, + 385, 386, 121, 122, 369, 370, 371, 373, 7, 566, + 567, 7, 536, 537, 538, 7, 398, 399, 400, 142, + 143, 144, 145, 146, 147, 412, 413, 414, 415, 416, + 417, 418, 419, 24, 152, 153, 154, 155, 254, 346, + 513, 515, 580, 581, 582, 585, 586, 588, 589, 158, + 159, 160, 254, 391, 392, 393, 394, 395, 513, 515, + 162, 163, 254, 513, 515, 593, 594, 595, 597, 165, + 166, 167, 219, 513, 515, 601, 602, 603, 604, 606, + 607, 613, 7, 651, 652, 204, 254, 675, 676, 677, + 251, 7, 503, 504, 505, 7, 519, 520, 521, 137, + 545, 561, 562, 328, 8, 8, 8, 335, 338, 340, + 342, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 355, 4, 360, 362, 364, 366, 3, 8, 8, + 331, 6, 3, 425, 6, 3, 463, 6, 3, 487, + 6, 3, 453, 6, 3, 3, 6, 6, 3, 6, + 372, 374, 3, 8, 568, 3, 6, 539, 6, 3, + 401, 6, 3, 4, 4, 4, 4, 4, 4, 3, + 8, 583, 587, 4, 4, 4, 3, 8, 4, 4, + 4, 3, 8, 596, 598, 3, 8, 4, 605, 4, + 608, 3, 8, 8, 653, 3, 6, 4, 3, 8, + 219, 252, 253, 506, 6, 3, 522, 6, 3, 563, + 8, 6, 4, 4, 4, 4, 220, 222, 220, 222, + 220, 220, 220, 220, 220, 220, 4, 220, 4, 4, + 4, 4, 333, 332, 330, 428, 424, 466, 462, 490, + 486, 254, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 280, 281, 282, 283, 286, + 288, 290, 291, 292, 293, 295, 297, 303, 305, 344, + 420, 432, 434, 436, 438, 440, 441, 442, 443, 447, + 454, 455, 482, 513, 515, 559, 452, 378, 384, 4, + 4, 370, 125, 126, 127, 254, 266, 267, 268, 269, + 270, 271, 344, 482, 513, 515, 569, 570, 571, 572, + 573, 575, 577, 567, 542, 538, 404, 400, 220, 220, + 220, 220, 220, 220, 413, 4, 4, 220, 220, 220, + 581, 222, 220, 220, 392, 4, 4, 594, 222, 4, + 220, 4, 602, 195, 197, 198, 254, 344, 513, 515, + 654, 655, 656, 657, 659, 652, 222, 676, 6, 3, + 509, 505, 525, 521, 4, 25, 26, 27, 336, 219, + 219, 219, 42, 43, 44, 356, 219, 219, 219, 219, + 8, 8, 8, 8, 3, 8, 219, 219, 574, 576, + 4, 8, 3, 8, 8, 149, 150, 151, 584, 219, + 219, 219, 219, 239, 660, 4, 658, 3, 8, 219, + 8, 8, 219, 455, 4, 4, 222, 571, 4, 220, + 4, 655, 219, 219, 5, 219, 7, 661, 662, 663, + 3, 6, 196, 199, 200, 201, 202, 664, 665, 666, + 668, 669, 670, 671, 662, 667, 4, 4, 4, 672, + 3, 8, 4, 222, 220, 220, 4, 665, 219, 219 }; const short Dhcp6Parser::yyr1_[] = { - 0, 222, 224, 223, 225, 223, 226, 223, 227, 223, - 228, 223, 229, 223, 230, 223, 231, 223, 232, 223, - 233, 223, 234, 223, 235, 223, 236, 223, 237, 223, - 238, 238, 238, 238, 238, 238, 238, 239, 241, 240, - 242, 243, 243, 244, 244, 244, 246, 245, 247, 247, - 248, 248, 248, 250, 249, 251, 251, 252, 252, 252, - 253, 255, 254, 257, 256, 256, 258, 260, 259, 261, - 261, 261, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 264, - 263, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 283, 282, - 284, 284, 284, 284, 284, 286, 285, 288, 287, 289, - 290, 292, 291, 294, 293, 295, 296, 297, 299, 298, - 300, 302, 301, 304, 303, 305, 306, 307, 309, 308, - 311, 310, 312, 312, 312, 313, 313, 313, 313, 313, - 313, 313, 313, 315, 314, 316, 317, 318, 319, 321, - 320, 323, 322, 325, 324, 326, 326, 327, 327, 327, - 329, 328, 330, 330, 330, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 333, 332, 334, - 334, 334, 336, 335, 338, 337, 340, 339, 341, 343, - 342, 344, 345, 346, 347, 348, 349, 350, 351, 353, - 352, 354, 354, 354, 355, 356, 358, 357, 360, 359, - 362, 361, 364, 363, 366, 365, 367, 367, 367, 368, - 368, 370, 369, 372, 371, 374, 373, 375, 375, 375, - 376, 376, 377, 378, 380, 379, 381, 381, 381, 382, - 382, 382, 383, 384, 386, 385, 388, 387, 389, 389, - 389, 390, 390, 390, 390, 390, 390, 391, 392, 393, - 395, 394, 396, 396, 397, 397, 397, 399, 398, 401, - 400, 402, 402, 402, 402, 403, 403, 405, 404, 407, - 406, 409, 408, 410, 410, 410, 411, 411, 411, 411, - 411, 411, 412, 413, 414, 415, 416, 417, 419, 418, - 420, 420, 421, 421, 421, 423, 422, 425, 424, 426, - 426, 426, 427, 427, 427, 427, 427, 427, 427, 427, - 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, - 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, - 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, - 427, 427, 427, 427, 427, 427, 427, 429, 428, 431, - 430, 433, 432, 435, 434, 437, 436, 438, 439, 440, - 442, 441, 443, 443, 443, 443, 444, 445, 447, 446, - 448, 448, 449, 449, 449, 451, 450, 452, 452, 452, - 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, - 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, - 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, - 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, - 453, 453, 455, 454, 457, 456, 458, 458, 459, 459, - 459, 461, 460, 463, 462, 464, 464, 465, 465, 465, - 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, - 467, 468, 469, 471, 470, 473, 472, 475, 474, 476, - 478, 477, 479, 481, 480, 482, 482, 483, 483, 483, - 485, 484, 487, 486, 488, 488, 489, 489, 489, 490, - 490, 490, 490, 490, 490, 490, 490, 490, 490, 491, - 493, 492, 494, 495, 496, 497, 498, 500, 499, 501, - 501, 502, 502, 502, 504, 503, 506, 505, 507, 507, - 507, 508, 508, 508, 508, 508, 508, 508, 510, 509, - 512, 511, 514, 513, 516, 515, 517, 517, 518, 518, - 518, 520, 519, 522, 521, 523, 523, 523, 524, 524, - 524, 524, 524, 524, 524, 524, 524, 524, 524, 526, - 525, 527, 529, 528, 530, 531, 533, 532, 534, 534, - 535, 535, 535, 537, 536, 539, 538, 540, 540, 541, - 541, 541, 542, 542, 542, 542, 542, 542, 542, 542, - 542, 542, 542, 544, 543, 546, 545, 548, 547, 550, - 549, 552, 551, 554, 553, 556, 555, 558, 557, 559, - 559, 561, 560, 563, 562, 564, 564, 564, 566, 565, - 567, 567, 568, 568, 568, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 570, - 572, 571, 574, 573, 575, 577, 576, 578, 578, 578, - 579, 579, 579, 579, 579, 579, 579, 579, 579, 581, - 580, 582, 582, 582, 583, 585, 584, 586, 587, 588, - 590, 589, 591, 591, 591, 592, 592, 592, 592, 592, - 594, 593, 596, 595, 598, 597, 599, 599, 599, 600, - 600, 600, 600, 600, 600, 601, 603, 602, 604, 606, - 605, 608, 607, 610, 609, 611, 611, 611, 612, 612, - 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, - 612, 612, 612, 612, 612, 612, 613, 615, 614, 617, - 616, 618, 620, 619, 621, 622, 624, 623, 625, 625, - 627, 626, 628, 629, 631, 630, 633, 632, 635, 634, - 637, 636, 639, 638, 641, 640, 642, 642, 642, 643, - 643, 645, 644, 646, 648, 647, 649, 649, 649, 651, - 650, 652, 652, 652, 653, 653, 653, 653, 653, 653, - 653, 654, 656, 655, 658, 657, 659, 659, 659, 661, - 660, 662, 662, 662, 663, 663, 663, 663, 663, 665, - 664, 666, 667, 668, 670, 669, 672, 671, 673, 673, - 673, 674, 674, 675 + 0, 223, 225, 224, 226, 224, 227, 224, 228, 224, + 229, 224, 230, 224, 231, 224, 232, 224, 233, 224, + 234, 224, 235, 224, 236, 224, 237, 224, 238, 224, + 239, 239, 239, 239, 239, 239, 239, 240, 242, 241, + 243, 244, 244, 245, 245, 245, 247, 246, 248, 248, + 249, 249, 249, 251, 250, 252, 252, 253, 253, 253, + 254, 256, 255, 258, 257, 257, 259, 261, 260, 262, + 262, 262, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 265, 264, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 284, + 283, 285, 285, 285, 285, 285, 287, 286, 289, 288, + 290, 291, 292, 294, 293, 296, 295, 297, 298, 299, + 301, 300, 302, 304, 303, 306, 305, 307, 308, 309, + 311, 310, 313, 312, 314, 314, 314, 315, 315, 315, + 315, 315, 315, 315, 315, 317, 316, 318, 319, 320, + 321, 323, 322, 325, 324, 327, 326, 328, 328, 329, + 329, 329, 331, 330, 332, 332, 332, 333, 333, 333, + 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, + 333, 333, 333, 333, 333, 333, 333, 333, 333, 335, + 334, 336, 336, 336, 338, 337, 340, 339, 342, 341, + 343, 345, 344, 346, 347, 348, 349, 350, 351, 352, + 353, 355, 354, 356, 356, 356, 357, 358, 360, 359, + 362, 361, 364, 363, 366, 365, 368, 367, 369, 369, + 369, 370, 370, 372, 371, 374, 373, 376, 375, 377, + 377, 377, 378, 378, 379, 380, 382, 381, 383, 383, + 383, 384, 384, 384, 385, 386, 388, 387, 390, 389, + 391, 391, 391, 392, 392, 392, 392, 392, 392, 393, + 394, 395, 397, 396, 398, 398, 399, 399, 399, 401, + 400, 403, 402, 404, 404, 404, 404, 405, 405, 407, + 406, 409, 408, 411, 410, 412, 412, 412, 413, 413, + 413, 413, 413, 413, 414, 415, 416, 417, 418, 419, + 421, 420, 422, 422, 423, 423, 423, 425, 424, 427, + 426, 428, 428, 428, 429, 429, 429, 429, 429, 429, + 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, + 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, + 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, + 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, + 431, 430, 433, 432, 435, 434, 437, 436, 439, 438, + 440, 441, 442, 444, 443, 445, 445, 445, 445, 446, + 447, 449, 448, 450, 450, 451, 451, 451, 453, 452, + 454, 454, 454, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 455, 455, 455, 455, 455, 455, 457, 456, 459, 458, + 460, 460, 461, 461, 461, 463, 462, 465, 464, 466, + 466, 467, 467, 467, 468, 468, 468, 468, 468, 468, + 468, 468, 468, 468, 469, 470, 471, 473, 472, 475, + 474, 477, 476, 478, 480, 479, 481, 483, 482, 484, + 484, 485, 485, 485, 487, 486, 489, 488, 490, 490, + 491, 491, 491, 492, 492, 492, 492, 492, 492, 492, + 492, 492, 492, 493, 495, 494, 496, 497, 498, 499, + 500, 502, 501, 503, 503, 504, 504, 504, 506, 505, + 508, 507, 509, 509, 509, 510, 510, 510, 510, 510, + 510, 510, 512, 511, 514, 513, 516, 515, 518, 517, + 519, 519, 520, 520, 520, 522, 521, 524, 523, 525, + 525, 525, 526, 526, 526, 526, 526, 526, 526, 526, + 526, 526, 526, 528, 527, 529, 531, 530, 532, 533, + 535, 534, 536, 536, 537, 537, 537, 539, 538, 541, + 540, 542, 542, 543, 543, 543, 544, 544, 544, 544, + 544, 544, 544, 544, 544, 544, 544, 546, 545, 548, + 547, 550, 549, 552, 551, 554, 553, 556, 555, 558, + 557, 560, 559, 561, 561, 563, 562, 565, 564, 566, + 566, 566, 568, 567, 569, 569, 570, 570, 570, 571, + 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, + 571, 571, 571, 572, 574, 573, 576, 575, 577, 579, + 578, 580, 580, 580, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 583, 582, 584, 584, 584, 585, 587, + 586, 588, 589, 590, 592, 591, 593, 593, 593, 594, + 594, 594, 594, 594, 596, 595, 598, 597, 600, 599, + 601, 601, 601, 602, 602, 602, 602, 602, 602, 603, + 605, 604, 606, 608, 607, 610, 609, 612, 611, 613, + 613, 613, 614, 614, 614, 614, 614, 614, 614, 614, + 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, + 615, 617, 616, 619, 618, 620, 622, 621, 623, 624, + 626, 625, 627, 627, 629, 628, 630, 631, 633, 632, + 635, 634, 637, 636, 639, 638, 641, 640, 643, 642, + 644, 644, 644, 645, 645, 647, 646, 648, 650, 649, + 651, 651, 651, 653, 652, 654, 654, 654, 655, 655, + 655, 655, 655, 655, 655, 656, 658, 657, 660, 659, + 661, 661, 661, 663, 662, 664, 664, 664, 665, 665, + 665, 665, 665, 667, 666, 668, 669, 670, 672, 671, + 674, 673, 675, 675, 675, 676, 676, 677 }; const signed char @@ -6110,82 +6119,82 @@ namespace isc { namespace dhcp { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 0, 4, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 3, - 3, 0, 4, 0, 4, 3, 3, 3, 0, 4, - 3, 0, 4, 0, 4, 3, 3, 3, 0, 6, - 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 3, 3, 3, 3, 0, - 6, 0, 6, 0, 6, 0, 1, 1, 3, 2, - 0, 4, 1, 3, 2, 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, 0, 4, 0, 4, 0, 4, 3, 0, - 4, 3, 3, 3, 3, 3, 3, 3, 3, 0, - 4, 1, 1, 1, 3, 3, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 6, 1, 3, 2, 1, - 1, 0, 4, 0, 4, 0, 6, 1, 3, 2, - 1, 1, 1, 1, 0, 6, 1, 3, 2, 1, - 1, 1, 1, 1, 0, 6, 0, 6, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 3, 3, 3, - 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, - 4, 1, 3, 2, 1, 1, 1, 0, 4, 0, - 4, 0, 6, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 3, 3, 3, 0, 6, - 0, 1, 1, 3, 2, 0, 4, 0, 4, 1, - 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, + 4, 1, 1, 1, 1, 1, 0, 4, 0, 4, + 3, 3, 3, 0, 4, 0, 4, 3, 3, 3, + 0, 4, 3, 0, 4, 0, 4, 3, 3, 3, + 0, 6, 0, 4, 1, 3, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 4, 3, 3, 3, + 3, 0, 6, 0, 6, 0, 6, 0, 1, 1, + 3, 2, 0, 4, 1, 3, 2, 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, 0, 4, 0, 4, 0, 4, + 3, 0, 4, 3, 3, 3, 3, 3, 3, 3, + 3, 0, 4, 1, 1, 1, 3, 3, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 6, 1, 3, + 2, 1, 1, 0, 4, 0, 4, 0, 6, 1, + 3, 2, 1, 1, 1, 1, 0, 6, 1, 3, + 2, 1, 1, 1, 1, 1, 0, 6, 0, 6, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 0, 6, 0, 1, 1, 3, 2, 0, + 4, 0, 4, 1, 3, 2, 1, 1, 1, 0, + 4, 0, 4, 0, 6, 1, 3, 2, 1, 1, + 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, + 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, + 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 3, 3, 3, - 0, 4, 1, 1, 1, 1, 3, 3, 0, 6, - 0, 1, 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 3, 3, 3, 0, 4, 1, 1, 1, 1, 3, + 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, + 1, 3, 2, 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, 1, 3, - 2, 0, 4, 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 0, 4, 0, 4, 0, 4, 1, - 0, 4, 3, 0, 6, 0, 1, 1, 3, 2, - 0, 4, 0, 4, 0, 1, 1, 3, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 1, 1, 3, 3, 3, 0, 6, 0, - 1, 1, 3, 2, 0, 4, 0, 4, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 0, 4, 0, 4, 0, 6, 0, 1, 1, 3, - 2, 0, 4, 0, 4, 1, 3, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 3, 0, 4, 3, 3, 0, 6, 0, 1, - 1, 3, 2, 0, 4, 0, 4, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 6, 0, 4, + 0, 1, 1, 3, 2, 0, 4, 0, 4, 0, + 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 1, 0, 4, 0, + 4, 0, 4, 1, 0, 4, 3, 0, 6, 0, + 1, 1, 3, 2, 0, 4, 0, 4, 0, 1, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 4, 1, 1, 3, 3, + 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, + 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 0, 4, 0, 4, 0, 6, + 0, 1, 1, 3, 2, 0, 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 6, 1, - 1, 0, 4, 0, 6, 1, 3, 2, 0, 4, - 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 3, 0, 4, 3, 3, + 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, + 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, + 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 6, 1, 1, 0, 4, 0, 6, 1, + 3, 2, 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 0, 4, 3, 0, 6, 1, 3, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 1, 1, 1, 3, 0, 4, 3, 3, 3, - 0, 6, 1, 3, 2, 1, 1, 1, 1, 1, - 0, 4, 0, 4, 0, 6, 1, 3, 2, 1, - 1, 1, 1, 1, 1, 3, 0, 4, 3, 0, - 4, 0, 6, 0, 4, 1, 3, 2, 1, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 3, 0, + 6, 1, 3, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 1, 1, 1, 3, 0, + 4, 3, 3, 3, 0, 6, 1, 3, 2, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 6, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 3, + 0, 4, 3, 0, 4, 0, 6, 0, 4, 1, + 3, 2, 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, 0, 4, 0, - 4, 3, 0, 4, 3, 3, 0, 4, 1, 1, - 0, 4, 3, 3, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 6, 0, 4, 1, 3, 2, 1, - 1, 0, 6, 3, 0, 6, 1, 3, 2, 0, - 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, - 1, 3, 0, 4, 0, 6, 1, 3, 2, 0, - 4, 1, 3, 2, 1, 1, 1, 1, 1, 0, - 4, 3, 3, 3, 0, 4, 0, 6, 1, 3, - 2, 1, 1, 3 + 3, 0, 4, 0, 4, 3, 0, 4, 3, 3, + 0, 4, 1, 1, 0, 4, 3, 3, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 6, 0, 4, + 1, 3, 2, 1, 1, 0, 6, 3, 0, 6, + 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, + 1, 1, 1, 1, 1, 3, 0, 4, 0, 6, + 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, + 1, 1, 1, 0, 4, 3, 3, 3, 0, 4, + 0, 6, 1, 3, 2, 1, 1, 3 }; @@ -6221,9 +6230,9 @@ namespace isc { namespace dhcp { "\"ddns-override-client-update\"", "\"ddns-replace-client-name\"", "\"ddns-generated-prefix\"", "\"ddns-qualifying-suffix\"", "\"ddns-update-on-renew\"", "\"ddns-use-conflict-resolution\"", - "\"store-extended-info\"", "\"subnet6\"", "\"option-def\"", - "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", "\"space\"", - "\"csv-format\"", "\"always-send\"", "\"never-send\"", + "\"ddns-ttl-percent\"", "\"store-extended-info\"", "\"subnet6\"", + "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", + "\"space\"", "\"csv-format\"", "\"always-send\"", "\"never-send\"", "\"record-types\"", "\"encapsulate\"", "\"array\"", "\"parked-packet-limit\"", "\"allocator\"", "\"pd-allocator\"", "\"shared-networks\"", "\"pools\"", "\"pool\"", "\"pd-pools\"", @@ -6283,28 +6292,29 @@ namespace isc { namespace dhcp { "ddns_replace_client_name", "$@22", "ddns_replace_client_name_value", "ddns_generated_prefix", "$@23", "ddns_qualifying_suffix", "$@24", "ddns_update_on_renew", "ddns_use_conflict_resolution", - "hostname_char_set", "$@25", "hostname_char_replacement", "$@26", - "store_extended_info", "statistic_default_sample_count", - "statistic_default_sample_age", "server_tag", "$@27", - "parked_packet_limit", "allocator", "$@28", "pd_allocator", "$@29", - "early_global_reservations_lookup", "ip_reservations_unique", - "reservations_lookup_first", "interfaces_config", "$@30", - "sub_interfaces6", "$@31", "interfaces_config_params", - "interfaces_config_param", "interfaces_list", "$@32", "re_detect", - "service_sockets_require_all", "service_sockets_retry_wait_time", - "service_sockets_max_retries", "lease_database", "$@33", - "hosts_database", "$@34", "hosts_databases", "$@35", "database_list", - "not_empty_database_list", "database", "$@36", "database_map_params", - "database_map_param", "database_type", "$@37", "db_type", "user", "$@38", - "password", "$@39", "host", "$@40", "port", "name", "$@41", "persist", - "lfc_interval", "readonly", "connect_timeout", "read_timeout", - "write_timeout", "tcp_user_timeout", "reconnect_wait_time", "on_fail", - "$@42", "on_fail_mode", "max_row_errors", "max_reconnect_tries", - "trust_anchor", "$@43", "cert_file", "$@44", "key_file", "$@45", - "cipher_list", "$@46", "sanity_checks", "$@47", "sanity_checks_params", - "sanity_checks_param", "lease_checks", "$@48", "extended_info_checks", - "$@49", "mac_sources", "$@50", "mac_sources_list", "mac_sources_value", - "duid_id", "string_id", "host_reservation_identifiers", "$@51", + "ddns_ttl_percent", "hostname_char_set", "$@25", + "hostname_char_replacement", "$@26", "store_extended_info", + "statistic_default_sample_count", "statistic_default_sample_age", + "server_tag", "$@27", "parked_packet_limit", "allocator", "$@28", + "pd_allocator", "$@29", "early_global_reservations_lookup", + "ip_reservations_unique", "reservations_lookup_first", + "interfaces_config", "$@30", "sub_interfaces6", "$@31", + "interfaces_config_params", "interfaces_config_param", "interfaces_list", + "$@32", "re_detect", "service_sockets_require_all", + "service_sockets_retry_wait_time", "service_sockets_max_retries", + "lease_database", "$@33", "hosts_database", "$@34", "hosts_databases", + "$@35", "database_list", "not_empty_database_list", "database", "$@36", + "database_map_params", "database_map_param", "database_type", "$@37", + "db_type", "user", "$@38", "password", "$@39", "host", "$@40", "port", + "name", "$@41", "persist", "lfc_interval", "readonly", "connect_timeout", + "read_timeout", "write_timeout", "tcp_user_timeout", + "reconnect_wait_time", "on_fail", "$@42", "on_fail_mode", + "max_row_errors", "max_reconnect_tries", "trust_anchor", "$@43", + "cert_file", "$@44", "key_file", "$@45", "cipher_list", "$@46", + "sanity_checks", "$@47", "sanity_checks_params", "sanity_checks_param", + "lease_checks", "$@48", "extended_info_checks", "$@49", "mac_sources", + "$@50", "mac_sources_list", "mac_sources_value", "duid_id", "string_id", + "host_reservation_identifiers", "$@51", "host_reservation_identifiers_list", "host_reservation_identifier", "hw_address_id", "flex_id", "relay_supplied_options", "$@52", "dhcp_multi_threading", "$@53", "multi_threading_params", @@ -6388,95 +6398,95 @@ namespace isc { namespace dhcp { const short Dhcp6Parser::yyrline_[] = { - 0, 310, 310, 310, 311, 311, 312, 312, 313, 313, - 314, 314, 315, 315, 316, 316, 317, 317, 318, 318, - 319, 319, 320, 320, 321, 321, 322, 322, 323, 323, - 331, 332, 333, 334, 335, 336, 337, 340, 345, 345, - 356, 359, 360, 363, 368, 374, 379, 379, 386, 387, - 390, 394, 398, 404, 404, 411, 412, 415, 419, 423, - 433, 442, 442, 457, 457, 471, 474, 480, 480, 489, - 490, 491, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 567, - 567, 576, 582, 588, 594, 600, 606, 612, 618, 624, - 630, 636, 642, 648, 654, 660, 666, 672, 678, 678, - 687, 690, 693, 696, 699, 705, 705, 714, 714, 723, - 729, 735, 735, 744, 744, 753, 759, 765, 771, 771, - 780, 786, 786, 795, 795, 804, 810, 816, 822, 822, - 834, 834, 843, 844, 845, 850, 851, 852, 853, 854, - 855, 856, 857, 860, 860, 871, 877, 883, 889, 895, - 895, 908, 908, 921, 921, 932, 933, 936, 937, 938, - 943, 943, 953, 954, 955, 960, 961, 962, 963, 964, - 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, - 975, 976, 977, 978, 979, 980, 981, 984, 984, 992, - 993, 994, 997, 997, 1006, 1006, 1015, 1015, 1024, 1030, - 1030, 1039, 1045, 1051, 1057, 1063, 1069, 1075, 1082, 1088, - 1088, 1096, 1097, 1098, 1101, 1107, 1113, 1113, 1122, 1122, - 1131, 1131, 1140, 1140, 1149, 1149, 1160, 1161, 1162, 1167, - 1168, 1171, 1171, 1190, 1190, 1208, 1208, 1219, 1220, 1221, - 1226, 1227, 1230, 1235, 1240, 1240, 1251, 1252, 1253, 1258, - 1259, 1260, 1263, 1268, 1275, 1275, 1288, 1288, 1301, 1302, - 1303, 1308, 1309, 1310, 1311, 1312, 1313, 1316, 1322, 1328, - 1334, 1334, 1345, 1346, 1349, 1350, 1351, 1356, 1356, 1366, - 1366, 1376, 1377, 1378, 1381, 1384, 1385, 1388, 1388, 1397, - 1397, 1406, 1406, 1418, 1419, 1420, 1425, 1426, 1427, 1428, - 1429, 1430, 1433, 1439, 1445, 1451, 1457, 1463, 1472, 1472, - 1486, 1487, 1490, 1491, 1492, 1501, 1501, 1527, 1527, 1538, - 1539, 1540, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, - 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, - 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, - 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, - 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1593, 1593, 1602, - 1602, 1611, 1611, 1620, 1620, 1629, 1629, 1640, 1646, 1652, - 1658, 1658, 1666, 1667, 1668, 1669, 1672, 1678, 1686, 1686, - 1698, 1699, 1703, 1704, 1705, 1710, 1710, 1718, 1719, 1720, - 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, - 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, - 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, - 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, - 1765, 1766, 1773, 1773, 1787, 1787, 1796, 1797, 1800, 1801, - 1802, 1809, 1809, 1824, 1824, 1838, 1839, 1842, 1843, 1844, - 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, - 1861, 1863, 1869, 1871, 1871, 1880, 1880, 1889, 1889, 1898, - 1900, 1900, 1909, 1919, 1919, 1932, 1933, 1938, 1939, 1940, - 1947, 1947, 1959, 1959, 1971, 1972, 1977, 1978, 1979, 1986, - 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1998, - 2000, 2000, 2009, 2011, 2013, 2019, 2025, 2034, 2034, 2047, - 2048, 2051, 2052, 2053, 2058, 2058, 2068, 2068, 2078, 2079, - 2080, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2094, 2094, - 2103, 2103, 2128, 2128, 2158, 2158, 2171, 2172, 2175, 2176, - 2177, 2182, 2182, 2194, 2194, 2206, 2207, 2208, 2213, 2214, - 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2226, - 2226, 2235, 2241, 2241, 2250, 2256, 2265, 2265, 2276, 2277, - 2280, 2281, 2282, 2287, 2287, 2296, 2296, 2305, 2306, 2309, - 2310, 2311, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, - 2325, 2326, 2327, 2330, 2330, 2341, 2341, 2352, 2352, 2361, - 2361, 2370, 2370, 2379, 2379, 2388, 2388, 2402, 2402, 2413, - 2414, 2417, 2417, 2429, 2429, 2440, 2441, 2442, 2447, 2447, - 2457, 2458, 2461, 2462, 2463, 2468, 2469, 2470, 2471, 2472, - 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2484, - 2486, 2486, 2495, 2495, 2504, 2513, 2513, 2526, 2527, 2528, - 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2544, - 2544, 2552, 2553, 2554, 2557, 2563, 2563, 2572, 2578, 2586, - 2594, 2594, 2605, 2606, 2607, 2612, 2613, 2614, 2615, 2616, - 2619, 2619, 2628, 2628, 2640, 2640, 2653, 2654, 2655, 2660, - 2661, 2662, 2663, 2664, 2665, 2668, 2674, 2674, 2683, 2689, - 2689, 2699, 2699, 2712, 2712, 2722, 2723, 2724, 2729, 2730, - 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, - 2741, 2742, 2743, 2744, 2745, 2746, 2749, 2756, 2756, 2765, - 2765, 2774, 2780, 2780, 2789, 2795, 2801, 2801, 2810, 2811, - 2814, 2814, 2824, 2831, 2838, 2838, 2847, 2847, 2857, 2857, - 2867, 2867, 2879, 2879, 2891, 2891, 2901, 2902, 2903, 2909, - 2910, 2913, 2913, 2924, 2932, 2932, 2945, 2946, 2947, 2953, - 2953, 2961, 2962, 2963, 2968, 2969, 2970, 2971, 2972, 2973, - 2974, 2977, 2983, 2983, 2992, 2992, 3003, 3004, 3005, 3010, - 3010, 3018, 3019, 3020, 3025, 3026, 3027, 3028, 3029, 3032, - 3032, 3041, 3047, 3053, 3059, 3059, 3068, 3068, 3079, 3080, - 3081, 3086, 3087, 3090 + 0, 311, 311, 311, 312, 312, 313, 313, 314, 314, + 315, 315, 316, 316, 317, 317, 318, 318, 319, 319, + 320, 320, 321, 321, 322, 322, 323, 323, 324, 324, + 332, 333, 334, 335, 336, 337, 338, 341, 346, 346, + 357, 360, 361, 364, 369, 375, 380, 380, 387, 388, + 391, 395, 399, 405, 405, 412, 413, 416, 420, 424, + 434, 443, 443, 458, 458, 472, 475, 481, 481, 490, + 491, 492, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 569, 569, 578, 584, 590, 596, 602, 608, 614, 620, + 626, 632, 638, 644, 650, 656, 662, 668, 674, 680, + 680, 689, 692, 695, 698, 701, 707, 707, 716, 716, + 725, 731, 737, 743, 743, 752, 752, 761, 767, 773, + 779, 779, 788, 794, 794, 803, 803, 812, 818, 824, + 830, 830, 842, 842, 851, 852, 853, 858, 859, 860, + 861, 862, 863, 864, 865, 868, 868, 879, 885, 891, + 897, 903, 903, 916, 916, 929, 929, 940, 941, 944, + 945, 946, 951, 951, 961, 962, 963, 968, 969, 970, + 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, + 981, 982, 983, 984, 985, 986, 987, 988, 989, 992, + 992, 1000, 1001, 1002, 1005, 1005, 1014, 1014, 1023, 1023, + 1032, 1038, 1038, 1047, 1053, 1059, 1065, 1071, 1077, 1083, + 1090, 1096, 1096, 1104, 1105, 1106, 1109, 1115, 1121, 1121, + 1130, 1130, 1139, 1139, 1148, 1148, 1157, 1157, 1168, 1169, + 1170, 1175, 1176, 1179, 1179, 1198, 1198, 1216, 1216, 1227, + 1228, 1229, 1234, 1235, 1238, 1243, 1248, 1248, 1259, 1260, + 1261, 1266, 1267, 1268, 1271, 1276, 1283, 1283, 1296, 1296, + 1309, 1310, 1311, 1316, 1317, 1318, 1319, 1320, 1321, 1324, + 1330, 1336, 1342, 1342, 1353, 1354, 1357, 1358, 1359, 1364, + 1364, 1374, 1374, 1384, 1385, 1386, 1389, 1392, 1393, 1396, + 1396, 1405, 1405, 1414, 1414, 1426, 1427, 1428, 1433, 1434, + 1435, 1436, 1437, 1438, 1441, 1447, 1453, 1459, 1465, 1471, + 1480, 1480, 1494, 1495, 1498, 1499, 1500, 1509, 1509, 1535, + 1535, 1546, 1547, 1548, 1554, 1555, 1556, 1557, 1558, 1559, + 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, + 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, + 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, + 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, + 1602, 1602, 1611, 1611, 1620, 1620, 1629, 1629, 1638, 1638, + 1649, 1655, 1661, 1667, 1667, 1675, 1676, 1677, 1678, 1681, + 1687, 1695, 1695, 1707, 1708, 1712, 1713, 1714, 1719, 1719, + 1727, 1728, 1729, 1734, 1735, 1736, 1737, 1738, 1739, 1740, + 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, + 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, + 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, + 1771, 1772, 1773, 1774, 1775, 1776, 1783, 1783, 1797, 1797, + 1806, 1807, 1810, 1811, 1812, 1819, 1819, 1834, 1834, 1848, + 1849, 1852, 1853, 1854, 1859, 1860, 1861, 1862, 1863, 1864, + 1865, 1866, 1867, 1868, 1871, 1873, 1879, 1881, 1881, 1890, + 1890, 1899, 1899, 1908, 1910, 1910, 1919, 1929, 1929, 1942, + 1943, 1948, 1949, 1950, 1957, 1957, 1969, 1969, 1981, 1982, + 1987, 1988, 1989, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + 2003, 2004, 2005, 2008, 2010, 2010, 2019, 2021, 2023, 2029, + 2035, 2044, 2044, 2057, 2058, 2061, 2062, 2063, 2068, 2068, + 2078, 2078, 2088, 2089, 2090, 2095, 2096, 2097, 2098, 2099, + 2100, 2101, 2104, 2104, 2113, 2113, 2138, 2138, 2168, 2168, + 2181, 2182, 2185, 2186, 2187, 2192, 2192, 2204, 2204, 2216, + 2217, 2218, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, + 2231, 2232, 2233, 2236, 2236, 2245, 2251, 2251, 2260, 2266, + 2275, 2275, 2286, 2287, 2290, 2291, 2292, 2297, 2297, 2306, + 2306, 2315, 2316, 2319, 2320, 2321, 2327, 2328, 2329, 2330, + 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2340, 2340, 2351, + 2351, 2362, 2362, 2371, 2371, 2380, 2380, 2389, 2389, 2398, + 2398, 2412, 2412, 2423, 2424, 2427, 2427, 2439, 2439, 2450, + 2451, 2452, 2457, 2457, 2467, 2468, 2471, 2472, 2473, 2478, + 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, + 2489, 2490, 2491, 2494, 2496, 2496, 2505, 2505, 2514, 2523, + 2523, 2536, 2537, 2538, 2543, 2544, 2545, 2546, 2547, 2548, + 2549, 2550, 2551, 2554, 2554, 2562, 2563, 2564, 2567, 2573, + 2573, 2582, 2588, 2596, 2604, 2604, 2615, 2616, 2617, 2622, + 2623, 2624, 2625, 2626, 2629, 2629, 2638, 2638, 2650, 2650, + 2663, 2664, 2665, 2670, 2671, 2672, 2673, 2674, 2675, 2678, + 2684, 2684, 2693, 2699, 2699, 2709, 2709, 2722, 2722, 2732, + 2733, 2734, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, + 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, + 2759, 2766, 2766, 2775, 2775, 2784, 2790, 2790, 2799, 2805, + 2811, 2811, 2820, 2821, 2824, 2824, 2834, 2841, 2848, 2848, + 2857, 2857, 2867, 2867, 2877, 2877, 2889, 2889, 2901, 2901, + 2911, 2912, 2913, 2919, 2920, 2923, 2923, 2934, 2942, 2942, + 2955, 2956, 2957, 2963, 2963, 2971, 2972, 2973, 2978, 2979, + 2980, 2981, 2982, 2983, 2984, 2987, 2993, 2993, 3002, 3002, + 3013, 3014, 3015, 3020, 3020, 3028, 3029, 3030, 3035, 3036, + 3037, 3038, 3039, 3042, 3042, 3051, 3057, 3063, 3069, 3069, + 3078, 3078, 3089, 3090, 3091, 3096, 3097, 3100 }; void @@ -6509,9 +6519,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 6513 "dhcp6_parser.cc" +#line 6523 "dhcp6_parser.cc" -#line 3096 "dhcp6_parser.yy" +#line 3106 "dhcp6_parser.yy" void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index 8f1472b6c0..7aa37d451a 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.8.2. +// A Bison parser, made by GNU Bison 3.7.2. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -15,7 +15,7 @@ // GNU General Public License for more details. // You should have received a copy of the GNU General Public License -// along with this program. If not, see <https://www.gnu.org/licenses/>. +// along with this program. If not, see <http://www.gnu.org/licenses/>. // As a special exception, you may create a larger work that contains // part or all of the Bison parser skeleton and distribute that work @@ -104,9 +104,9 @@ using namespace std; #endif # include "location.hh" #include <typeinfo> -#ifndef PARSER6__ASSERT +#ifndef YY_ASSERT # include <cassert> -# define PARSER6__ASSERT assert +# define YY_ASSERT assert #endif @@ -128,23 +128,17 @@ using namespace std; /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YY_USE(E) ((void) (E)) +# define YYUSE(E) ((void) (E)) #else -# define YY_USE(E) /* empty */ +# define YYUSE(E) /* empty */ #endif +#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ -# if __GNUC__ * 100 + __GNUC_MINOR__ < 407 -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") -# else -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# endif # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else @@ -206,7 +200,7 @@ using namespace std; #line 14 "dhcp6_parser.yy" namespace isc { namespace dhcp { -#line 210 "dhcp6_parser.h" +#line 204 "dhcp6_parser.h" @@ -215,49 +209,44 @@ namespace isc { namespace dhcp { class Dhcp6Parser { public: -#ifdef PARSER6_STYPE -# ifdef __GNUC__ -# pragma GCC message "bison: do not #define PARSER6_STYPE in C++, use %define api.value.type" -# endif - typedef PARSER6_STYPE value_type; -#else +#ifndef PARSER6_STYPE /// A 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 value_type + class semantic_type { public: /// Type of *this. - typedef value_type self_type; + typedef semantic_type self_type; /// Empty construction. - value_type () YY_NOEXCEPT - : yyraw_ () + semantic_type () YY_NOEXCEPT + : yybuffer_ () , yytypeid_ (YY_NULLPTR) {} /// Construct and fill. template <typename T> - value_type (YY_RVREF (T) t) + semantic_type (YY_RVREF (T) t) : yytypeid_ (&typeid (T)) { - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (sizeof (T) <= size); new (yyas_<T> ()) T (YY_MOVE (t)); } #if 201103L <= YY_CPLUSPLUS /// Non copyable. - value_type (const self_type&) = delete; + semantic_type (const self_type&) = delete; /// Non copyable. self_type& operator= (const self_type&) = delete; #endif /// Destruction, allowed only if empty. - ~value_type () YY_NOEXCEPT + ~semantic_type () YY_NOEXCEPT { - PARSER6__ASSERT (!yytypeid_); + YY_ASSERT (!yytypeid_); } # if 201103L <= YY_CPLUSPLUS @@ -266,8 +255,8 @@ namespace isc { namespace dhcp { T& emplace (U&&... u) { - PARSER6__ASSERT (!yytypeid_); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_<T> ()) T (std::forward <U>(u)...); } @@ -277,8 +266,8 @@ namespace isc { namespace dhcp { T& emplace () { - PARSER6__ASSERT (!yytypeid_); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_<T> ()) T (); } @@ -288,8 +277,8 @@ namespace isc { namespace dhcp { T& emplace (const T& t) { - PARSER6__ASSERT (!yytypeid_); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_<T> ()) T (t); } @@ -318,9 +307,9 @@ namespace isc { namespace dhcp { T& as () YY_NOEXCEPT { - PARSER6__ASSERT (yytypeid_); - PARSER6__ASSERT (*yytypeid_ == typeid (T)); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == typeid (T)); + YY_ASSERT (sizeof (T) <= size); return *yyas_<T> (); } @@ -329,9 +318,9 @@ namespace isc { namespace dhcp { const T& as () const YY_NOEXCEPT { - PARSER6__ASSERT (yytypeid_); - PARSER6__ASSERT (*yytypeid_ == typeid (T)); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == typeid (T)); + YY_ASSERT (sizeof (T) <= size); return *yyas_<T> (); } @@ -347,8 +336,8 @@ namespace isc { namespace dhcp { void swap (self_type& that) YY_NOEXCEPT { - PARSER6__ASSERT (yytypeid_); - PARSER6__ASSERT (*yytypeid_ == *that.yytypeid_); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == *that.yytypeid_); std::swap (as<T> (), that.as<T> ()); } @@ -399,7 +388,7 @@ namespace isc { namespace dhcp { private: #if YY_CPLUSPLUS < 201103L /// Non copyable. - value_type (const self_type&); + semantic_type (const self_type&); /// Non copyable. self_type& operator= (const self_type&); #endif @@ -409,7 +398,7 @@ namespace isc { namespace dhcp { T* yyas_ () YY_NOEXCEPT { - void *yyp = yyraw_; + void *yyp = yybuffer_.yyraw; return static_cast<T*> (yyp); } @@ -418,7 +407,7 @@ namespace isc { namespace dhcp { const T* yyas_ () const YY_NOEXCEPT { - const void *yyp = yyraw_; + const void *yyp = yybuffer_.yyraw; return static_cast<const T*> (yyp); } @@ -455,19 +444,18 @@ namespace isc { namespace dhcp { union { /// Strongest alignment constraints. - long double yyalign_me_; + long double yyalign_me; /// A buffer large enough to store any of the semantic values. - char yyraw_[size]; - }; + char yyraw[size]; + } yybuffer_; /// Whether the content is built: if defined, the name of the stored type. const std::type_info *yytypeid_; }; +#else + typedef PARSER6_STYPE semantic_type; #endif - /// Backward compatibility (Bison 3.8). - typedef value_type semantic_type; - /// Symbol locations. typedef location location_type; @@ -570,160 +558,161 @@ namespace isc { namespace dhcp { TOKEN_DDNS_QUALIFYING_SUFFIX = 327, // "ddns-qualifying-suffix" TOKEN_DDNS_UPDATE_ON_RENEW = 328, // "ddns-update-on-renew" TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 329, // "ddns-use-conflict-resolution" - TOKEN_STORE_EXTENDED_INFO = 330, // "store-extended-info" - TOKEN_SUBNET6 = 331, // "subnet6" - TOKEN_OPTION_DEF = 332, // "option-def" - TOKEN_OPTION_DATA = 333, // "option-data" - TOKEN_NAME = 334, // "name" - TOKEN_DATA = 335, // "data" - TOKEN_CODE = 336, // "code" - TOKEN_SPACE = 337, // "space" - TOKEN_CSV_FORMAT = 338, // "csv-format" - TOKEN_ALWAYS_SEND = 339, // "always-send" - TOKEN_NEVER_SEND = 340, // "never-send" - TOKEN_RECORD_TYPES = 341, // "record-types" - TOKEN_ENCAPSULATE = 342, // "encapsulate" - TOKEN_ARRAY = 343, // "array" - TOKEN_PARKED_PACKET_LIMIT = 344, // "parked-packet-limit" - TOKEN_ALLOCATOR = 345, // "allocator" - TOKEN_PD_ALLOCATOR = 346, // "pd-allocator" - TOKEN_SHARED_NETWORKS = 347, // "shared-networks" - TOKEN_POOLS = 348, // "pools" - TOKEN_POOL = 349, // "pool" - TOKEN_PD_POOLS = 350, // "pd-pools" - TOKEN_PREFIX = 351, // "prefix" - TOKEN_PREFIX_LEN = 352, // "prefix-len" - TOKEN_EXCLUDED_PREFIX = 353, // "excluded-prefix" - TOKEN_EXCLUDED_PREFIX_LEN = 354, // "excluded-prefix-len" - TOKEN_DELEGATED_LEN = 355, // "delegated-len" - TOKEN_USER_CONTEXT = 356, // "user-context" - TOKEN_COMMENT = 357, // "comment" - TOKEN_SUBNET = 358, // "subnet" - TOKEN_INTERFACE = 359, // "interface" - TOKEN_INTERFACE_ID = 360, // "interface-id" - TOKEN_ID = 361, // "id" - TOKEN_RAPID_COMMIT = 362, // "rapid-commit" - TOKEN_RESERVATION_MODE = 363, // "reservation-mode" - TOKEN_DISABLED = 364, // "disabled" - TOKEN_OUT_OF_POOL = 365, // "out-of-pool" - TOKEN_GLOBAL = 366, // "global" - TOKEN_ALL = 367, // "all" - TOKEN_RESERVATIONS_GLOBAL = 368, // "reservations-global" - TOKEN_RESERVATIONS_IN_SUBNET = 369, // "reservations-in-subnet" - TOKEN_RESERVATIONS_OUT_OF_POOL = 370, // "reservations-out-of-pool" - TOKEN_MAC_SOURCES = 371, // "mac-sources" - TOKEN_RELAY_SUPPLIED_OPTIONS = 372, // "relay-supplied-options" - TOKEN_HOST_RESERVATION_IDENTIFIERS = 373, // "host-reservation-identifiers" - TOKEN_SANITY_CHECKS = 374, // "sanity-checks" - TOKEN_LEASE_CHECKS = 375, // "lease-checks" - TOKEN_EXTENDED_INFO_CHECKS = 376, // "extended-info-checks" - TOKEN_CLIENT_CLASSES = 377, // "client-classes" - TOKEN_REQUIRE_CLIENT_CLASSES = 378, // "require-client-classes" - TOKEN_TEST = 379, // "test" - TOKEN_TEMPLATE_TEST = 380, // "template-test" - TOKEN_ONLY_IF_REQUIRED = 381, // "only-if-required" - TOKEN_CLIENT_CLASS = 382, // "client-class" - TOKEN_RESERVATIONS = 383, // "reservations" - TOKEN_IP_ADDRESSES = 384, // "ip-addresses" - TOKEN_PREFIXES = 385, // "prefixes" - TOKEN_DUID = 386, // "duid" - TOKEN_HW_ADDRESS = 387, // "hw-address" - TOKEN_HOSTNAME = 388, // "hostname" - TOKEN_FLEX_ID = 389, // "flex-id" - TOKEN_RELAY = 390, // "relay" - TOKEN_IP_ADDRESS = 391, // "ip-address" - TOKEN_HOOKS_LIBRARIES = 392, // "hooks-libraries" - TOKEN_LIBRARY = 393, // "library" - TOKEN_PARAMETERS = 394, // "parameters" - TOKEN_EXPIRED_LEASES_PROCESSING = 395, // "expired-leases-processing" - TOKEN_RECLAIM_TIMER_WAIT_TIME = 396, // "reclaim-timer-wait-time" - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 397, // "flush-reclaimed-timer-wait-time" - TOKEN_HOLD_RECLAIMED_TIME = 398, // "hold-reclaimed-time" - TOKEN_MAX_RECLAIM_LEASES = 399, // "max-reclaim-leases" - TOKEN_MAX_RECLAIM_TIME = 400, // "max-reclaim-time" - TOKEN_UNWARNED_RECLAIM_CYCLES = 401, // "unwarned-reclaim-cycles" - TOKEN_SERVER_ID = 402, // "server-id" - TOKEN_LLT = 403, // "LLT" - TOKEN_EN = 404, // "EN" - TOKEN_LL = 405, // "LL" - TOKEN_IDENTIFIER = 406, // "identifier" - TOKEN_HTYPE = 407, // "htype" - TOKEN_TIME = 408, // "time" - TOKEN_ENTERPRISE_ID = 409, // "enterprise-id" - TOKEN_DHCP4O6_PORT = 410, // "dhcp4o6-port" - TOKEN_DHCP_MULTI_THREADING = 411, // "multi-threading" - TOKEN_ENABLE_MULTI_THREADING = 412, // "enable-multi-threading" - TOKEN_THREAD_POOL_SIZE = 413, // "thread-pool-size" - TOKEN_PACKET_QUEUE_SIZE = 414, // "packet-queue-size" - TOKEN_CONTROL_SOCKET = 415, // "control-socket" - TOKEN_SOCKET_TYPE = 416, // "socket-type" - TOKEN_SOCKET_NAME = 417, // "socket-name" - TOKEN_DHCP_QUEUE_CONTROL = 418, // "dhcp-queue-control" - TOKEN_ENABLE_QUEUE = 419, // "enable-queue" - TOKEN_QUEUE_TYPE = 420, // "queue-type" - TOKEN_CAPACITY = 421, // "capacity" - TOKEN_DHCP_DDNS = 422, // "dhcp-ddns" - TOKEN_ENABLE_UPDATES = 423, // "enable-updates" - TOKEN_QUALIFYING_SUFFIX = 424, // "qualifying-suffix" - TOKEN_SERVER_IP = 425, // "server-ip" - TOKEN_SERVER_PORT = 426, // "server-port" - TOKEN_SENDER_IP = 427, // "sender-ip" - TOKEN_SENDER_PORT = 428, // "sender-port" - TOKEN_MAX_QUEUE_SIZE = 429, // "max-queue-size" - TOKEN_NCR_PROTOCOL = 430, // "ncr-protocol" - TOKEN_NCR_FORMAT = 431, // "ncr-format" - TOKEN_OVERRIDE_NO_UPDATE = 432, // "override-no-update" - TOKEN_OVERRIDE_CLIENT_UPDATE = 433, // "override-client-update" - TOKEN_REPLACE_CLIENT_NAME = 434, // "replace-client-name" - TOKEN_GENERATED_PREFIX = 435, // "generated-prefix" - TOKEN_UDP = 436, // "UDP" - TOKEN_TCP = 437, // "TCP" - TOKEN_JSON = 438, // "JSON" - TOKEN_WHEN_PRESENT = 439, // "when-present" - TOKEN_NEVER = 440, // "never" - TOKEN_ALWAYS = 441, // "always" - TOKEN_WHEN_NOT_PRESENT = 442, // "when-not-present" - TOKEN_HOSTNAME_CHAR_SET = 443, // "hostname-char-set" - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 444, // "hostname-char-replacement" - TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 445, // "early-global-reservations-lookup" - TOKEN_IP_RESERVATIONS_UNIQUE = 446, // "ip-reservations-unique" - TOKEN_RESERVATIONS_LOOKUP_FIRST = 447, // "reservations-lookup-first" - TOKEN_LOGGERS = 448, // "loggers" - TOKEN_OUTPUT_OPTIONS = 449, // "output_options" - TOKEN_OUTPUT = 450, // "output" - TOKEN_DEBUGLEVEL = 451, // "debuglevel" - TOKEN_SEVERITY = 452, // "severity" - TOKEN_FLUSH = 453, // "flush" - TOKEN_MAXSIZE = 454, // "maxsize" - TOKEN_MAXVER = 455, // "maxver" - TOKEN_PATTERN = 456, // "pattern" - TOKEN_COMPATIBILITY = 457, // "compatibility" - TOKEN_LENIENT_OPTION_PARSING = 458, // "lenient-option-parsing" - TOKEN_TOPLEVEL_JSON = 459, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP6 = 460, // TOPLEVEL_DHCP6 - TOKEN_SUB_DHCP6 = 461, // SUB_DHCP6 - TOKEN_SUB_INTERFACES6 = 462, // SUB_INTERFACES6 - TOKEN_SUB_SUBNET6 = 463, // SUB_SUBNET6 - TOKEN_SUB_POOL6 = 464, // SUB_POOL6 - TOKEN_SUB_PD_POOL = 465, // SUB_PD_POOL - TOKEN_SUB_RESERVATION = 466, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 467, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 468, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 469, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 470, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 471, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 472, // SUB_CONFIG_CONTROL - TOKEN_STRING = 473, // "constant string" - TOKEN_INTEGER = 474, // "integer" - TOKEN_FLOAT = 475, // "floating point" - TOKEN_BOOLEAN = 476 // "boolean" + TOKEN_DDNS_TTL_PERCENT = 330, // "ddns-ttl-percent" + TOKEN_STORE_EXTENDED_INFO = 331, // "store-extended-info" + TOKEN_SUBNET6 = 332, // "subnet6" + TOKEN_OPTION_DEF = 333, // "option-def" + TOKEN_OPTION_DATA = 334, // "option-data" + TOKEN_NAME = 335, // "name" + TOKEN_DATA = 336, // "data" + TOKEN_CODE = 337, // "code" + TOKEN_SPACE = 338, // "space" + TOKEN_CSV_FORMAT = 339, // "csv-format" + TOKEN_ALWAYS_SEND = 340, // "always-send" + TOKEN_NEVER_SEND = 341, // "never-send" + TOKEN_RECORD_TYPES = 342, // "record-types" + TOKEN_ENCAPSULATE = 343, // "encapsulate" + TOKEN_ARRAY = 344, // "array" + TOKEN_PARKED_PACKET_LIMIT = 345, // "parked-packet-limit" + TOKEN_ALLOCATOR = 346, // "allocator" + TOKEN_PD_ALLOCATOR = 347, // "pd-allocator" + TOKEN_SHARED_NETWORKS = 348, // "shared-networks" + TOKEN_POOLS = 349, // "pools" + TOKEN_POOL = 350, // "pool" + TOKEN_PD_POOLS = 351, // "pd-pools" + TOKEN_PREFIX = 352, // "prefix" + TOKEN_PREFIX_LEN = 353, // "prefix-len" + TOKEN_EXCLUDED_PREFIX = 354, // "excluded-prefix" + TOKEN_EXCLUDED_PREFIX_LEN = 355, // "excluded-prefix-len" + TOKEN_DELEGATED_LEN = 356, // "delegated-len" + TOKEN_USER_CONTEXT = 357, // "user-context" + TOKEN_COMMENT = 358, // "comment" + TOKEN_SUBNET = 359, // "subnet" + TOKEN_INTERFACE = 360, // "interface" + TOKEN_INTERFACE_ID = 361, // "interface-id" + TOKEN_ID = 362, // "id" + TOKEN_RAPID_COMMIT = 363, // "rapid-commit" + TOKEN_RESERVATION_MODE = 364, // "reservation-mode" + TOKEN_DISABLED = 365, // "disabled" + TOKEN_OUT_OF_POOL = 366, // "out-of-pool" + TOKEN_GLOBAL = 367, // "global" + TOKEN_ALL = 368, // "all" + TOKEN_RESERVATIONS_GLOBAL = 369, // "reservations-global" + TOKEN_RESERVATIONS_IN_SUBNET = 370, // "reservations-in-subnet" + TOKEN_RESERVATIONS_OUT_OF_POOL = 371, // "reservations-out-of-pool" + TOKEN_MAC_SOURCES = 372, // "mac-sources" + TOKEN_RELAY_SUPPLIED_OPTIONS = 373, // "relay-supplied-options" + TOKEN_HOST_RESERVATION_IDENTIFIERS = 374, // "host-reservation-identifiers" + TOKEN_SANITY_CHECKS = 375, // "sanity-checks" + TOKEN_LEASE_CHECKS = 376, // "lease-checks" + TOKEN_EXTENDED_INFO_CHECKS = 377, // "extended-info-checks" + TOKEN_CLIENT_CLASSES = 378, // "client-classes" + TOKEN_REQUIRE_CLIENT_CLASSES = 379, // "require-client-classes" + TOKEN_TEST = 380, // "test" + TOKEN_TEMPLATE_TEST = 381, // "template-test" + TOKEN_ONLY_IF_REQUIRED = 382, // "only-if-required" + TOKEN_CLIENT_CLASS = 383, // "client-class" + TOKEN_RESERVATIONS = 384, // "reservations" + TOKEN_IP_ADDRESSES = 385, // "ip-addresses" + TOKEN_PREFIXES = 386, // "prefixes" + TOKEN_DUID = 387, // "duid" + TOKEN_HW_ADDRESS = 388, // "hw-address" + TOKEN_HOSTNAME = 389, // "hostname" + TOKEN_FLEX_ID = 390, // "flex-id" + TOKEN_RELAY = 391, // "relay" + TOKEN_IP_ADDRESS = 392, // "ip-address" + TOKEN_HOOKS_LIBRARIES = 393, // "hooks-libraries" + TOKEN_LIBRARY = 394, // "library" + TOKEN_PARAMETERS = 395, // "parameters" + TOKEN_EXPIRED_LEASES_PROCESSING = 396, // "expired-leases-processing" + TOKEN_RECLAIM_TIMER_WAIT_TIME = 397, // "reclaim-timer-wait-time" + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 398, // "flush-reclaimed-timer-wait-time" + TOKEN_HOLD_RECLAIMED_TIME = 399, // "hold-reclaimed-time" + TOKEN_MAX_RECLAIM_LEASES = 400, // "max-reclaim-leases" + TOKEN_MAX_RECLAIM_TIME = 401, // "max-reclaim-time" + TOKEN_UNWARNED_RECLAIM_CYCLES = 402, // "unwarned-reclaim-cycles" + TOKEN_SERVER_ID = 403, // "server-id" + TOKEN_LLT = 404, // "LLT" + TOKEN_EN = 405, // "EN" + TOKEN_LL = 406, // "LL" + TOKEN_IDENTIFIER = 407, // "identifier" + TOKEN_HTYPE = 408, // "htype" + TOKEN_TIME = 409, // "time" + TOKEN_ENTERPRISE_ID = 410, // "enterprise-id" + TOKEN_DHCP4O6_PORT = 411, // "dhcp4o6-port" + TOKEN_DHCP_MULTI_THREADING = 412, // "multi-threading" + TOKEN_ENABLE_MULTI_THREADING = 413, // "enable-multi-threading" + TOKEN_THREAD_POOL_SIZE = 414, // "thread-pool-size" + TOKEN_PACKET_QUEUE_SIZE = 415, // "packet-queue-size" + TOKEN_CONTROL_SOCKET = 416, // "control-socket" + TOKEN_SOCKET_TYPE = 417, // "socket-type" + TOKEN_SOCKET_NAME = 418, // "socket-name" + TOKEN_DHCP_QUEUE_CONTROL = 419, // "dhcp-queue-control" + TOKEN_ENABLE_QUEUE = 420, // "enable-queue" + TOKEN_QUEUE_TYPE = 421, // "queue-type" + TOKEN_CAPACITY = 422, // "capacity" + TOKEN_DHCP_DDNS = 423, // "dhcp-ddns" + TOKEN_ENABLE_UPDATES = 424, // "enable-updates" + TOKEN_QUALIFYING_SUFFIX = 425, // "qualifying-suffix" + TOKEN_SERVER_IP = 426, // "server-ip" + TOKEN_SERVER_PORT = 427, // "server-port" + TOKEN_SENDER_IP = 428, // "sender-ip" + TOKEN_SENDER_PORT = 429, // "sender-port" + TOKEN_MAX_QUEUE_SIZE = 430, // "max-queue-size" + TOKEN_NCR_PROTOCOL = 431, // "ncr-protocol" + TOKEN_NCR_FORMAT = 432, // "ncr-format" + TOKEN_OVERRIDE_NO_UPDATE = 433, // "override-no-update" + TOKEN_OVERRIDE_CLIENT_UPDATE = 434, // "override-client-update" + TOKEN_REPLACE_CLIENT_NAME = 435, // "replace-client-name" + TOKEN_GENERATED_PREFIX = 436, // "generated-prefix" + TOKEN_UDP = 437, // "UDP" + TOKEN_TCP = 438, // "TCP" + TOKEN_JSON = 439, // "JSON" + TOKEN_WHEN_PRESENT = 440, // "when-present" + TOKEN_NEVER = 441, // "never" + TOKEN_ALWAYS = 442, // "always" + TOKEN_WHEN_NOT_PRESENT = 443, // "when-not-present" + TOKEN_HOSTNAME_CHAR_SET = 444, // "hostname-char-set" + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 445, // "hostname-char-replacement" + TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 446, // "early-global-reservations-lookup" + TOKEN_IP_RESERVATIONS_UNIQUE = 447, // "ip-reservations-unique" + TOKEN_RESERVATIONS_LOOKUP_FIRST = 448, // "reservations-lookup-first" + TOKEN_LOGGERS = 449, // "loggers" + TOKEN_OUTPUT_OPTIONS = 450, // "output_options" + TOKEN_OUTPUT = 451, // "output" + TOKEN_DEBUGLEVEL = 452, // "debuglevel" + TOKEN_SEVERITY = 453, // "severity" + TOKEN_FLUSH = 454, // "flush" + TOKEN_MAXSIZE = 455, // "maxsize" + TOKEN_MAXVER = 456, // "maxver" + TOKEN_PATTERN = 457, // "pattern" + TOKEN_COMPATIBILITY = 458, // "compatibility" + TOKEN_LENIENT_OPTION_PARSING = 459, // "lenient-option-parsing" + TOKEN_TOPLEVEL_JSON = 460, // TOPLEVEL_JSON + TOKEN_TOPLEVEL_DHCP6 = 461, // TOPLEVEL_DHCP6 + TOKEN_SUB_DHCP6 = 462, // SUB_DHCP6 + TOKEN_SUB_INTERFACES6 = 463, // SUB_INTERFACES6 + TOKEN_SUB_SUBNET6 = 464, // SUB_SUBNET6 + TOKEN_SUB_POOL6 = 465, // SUB_POOL6 + TOKEN_SUB_PD_POOL = 466, // SUB_PD_POOL + TOKEN_SUB_RESERVATION = 467, // SUB_RESERVATION + TOKEN_SUB_OPTION_DEFS = 468, // SUB_OPTION_DEFS + TOKEN_SUB_OPTION_DEF = 469, // SUB_OPTION_DEF + TOKEN_SUB_OPTION_DATA = 470, // SUB_OPTION_DATA + TOKEN_SUB_HOOKS_LIBRARY = 471, // SUB_HOOKS_LIBRARY + TOKEN_SUB_DHCP_DDNS = 472, // SUB_DHCP_DDNS + TOKEN_SUB_CONFIG_CONTROL = 473, // SUB_CONFIG_CONTROL + TOKEN_STRING = 474, // "constant string" + TOKEN_INTEGER = 475, // "integer" + TOKEN_FLOAT = 476, // "floating point" + TOKEN_BOOLEAN = 477 // "boolean" }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; }; /// Token kind, as returned by yylex. - typedef token::token_kind_type token_kind_type; + typedef token::yytokentype token_kind_type; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type token_type; @@ -733,7 +722,7 @@ namespace isc { namespace dhcp { { enum symbol_kind_type { - YYNTOKENS = 222, ///< Number of tokens. + YYNTOKENS = 223, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -810,607 +799,609 @@ namespace isc { namespace dhcp { S_DDNS_QUALIFYING_SUFFIX = 72, // "ddns-qualifying-suffix" S_DDNS_UPDATE_ON_RENEW = 73, // "ddns-update-on-renew" S_DDNS_USE_CONFLICT_RESOLUTION = 74, // "ddns-use-conflict-resolution" - S_STORE_EXTENDED_INFO = 75, // "store-extended-info" - S_SUBNET6 = 76, // "subnet6" - S_OPTION_DEF = 77, // "option-def" - S_OPTION_DATA = 78, // "option-data" - S_NAME = 79, // "name" - S_DATA = 80, // "data" - S_CODE = 81, // "code" - S_SPACE = 82, // "space" - S_CSV_FORMAT = 83, // "csv-format" - S_ALWAYS_SEND = 84, // "always-send" - S_NEVER_SEND = 85, // "never-send" - S_RECORD_TYPES = 86, // "record-types" - S_ENCAPSULATE = 87, // "encapsulate" - S_ARRAY = 88, // "array" - S_PARKED_PACKET_LIMIT = 89, // "parked-packet-limit" - S_ALLOCATOR = 90, // "allocator" - S_PD_ALLOCATOR = 91, // "pd-allocator" - S_SHARED_NETWORKS = 92, // "shared-networks" - S_POOLS = 93, // "pools" - S_POOL = 94, // "pool" - S_PD_POOLS = 95, // "pd-pools" - S_PREFIX = 96, // "prefix" - S_PREFIX_LEN = 97, // "prefix-len" - S_EXCLUDED_PREFIX = 98, // "excluded-prefix" - S_EXCLUDED_PREFIX_LEN = 99, // "excluded-prefix-len" - S_DELEGATED_LEN = 100, // "delegated-len" - S_USER_CONTEXT = 101, // "user-context" - S_COMMENT = 102, // "comment" - S_SUBNET = 103, // "subnet" - S_INTERFACE = 104, // "interface" - S_INTERFACE_ID = 105, // "interface-id" - S_ID = 106, // "id" - S_RAPID_COMMIT = 107, // "rapid-commit" - S_RESERVATION_MODE = 108, // "reservation-mode" - S_DISABLED = 109, // "disabled" - S_OUT_OF_POOL = 110, // "out-of-pool" - S_GLOBAL = 111, // "global" - S_ALL = 112, // "all" - S_RESERVATIONS_GLOBAL = 113, // "reservations-global" - S_RESERVATIONS_IN_SUBNET = 114, // "reservations-in-subnet" - S_RESERVATIONS_OUT_OF_POOL = 115, // "reservations-out-of-pool" - S_MAC_SOURCES = 116, // "mac-sources" - S_RELAY_SUPPLIED_OPTIONS = 117, // "relay-supplied-options" - S_HOST_RESERVATION_IDENTIFIERS = 118, // "host-reservation-identifiers" - S_SANITY_CHECKS = 119, // "sanity-checks" - S_LEASE_CHECKS = 120, // "lease-checks" - S_EXTENDED_INFO_CHECKS = 121, // "extended-info-checks" - S_CLIENT_CLASSES = 122, // "client-classes" - S_REQUIRE_CLIENT_CLASSES = 123, // "require-client-classes" - S_TEST = 124, // "test" - S_TEMPLATE_TEST = 125, // "template-test" - S_ONLY_IF_REQUIRED = 126, // "only-if-required" - S_CLIENT_CLASS = 127, // "client-class" - S_RESERVATIONS = 128, // "reservations" - S_IP_ADDRESSES = 129, // "ip-addresses" - S_PREFIXES = 130, // "prefixes" - S_DUID = 131, // "duid" - S_HW_ADDRESS = 132, // "hw-address" - S_HOSTNAME = 133, // "hostname" - S_FLEX_ID = 134, // "flex-id" - S_RELAY = 135, // "relay" - S_IP_ADDRESS = 136, // "ip-address" - S_HOOKS_LIBRARIES = 137, // "hooks-libraries" - S_LIBRARY = 138, // "library" - S_PARAMETERS = 139, // "parameters" - S_EXPIRED_LEASES_PROCESSING = 140, // "expired-leases-processing" - S_RECLAIM_TIMER_WAIT_TIME = 141, // "reclaim-timer-wait-time" - S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 142, // "flush-reclaimed-timer-wait-time" - S_HOLD_RECLAIMED_TIME = 143, // "hold-reclaimed-time" - S_MAX_RECLAIM_LEASES = 144, // "max-reclaim-leases" - S_MAX_RECLAIM_TIME = 145, // "max-reclaim-time" - S_UNWARNED_RECLAIM_CYCLES = 146, // "unwarned-reclaim-cycles" - S_SERVER_ID = 147, // "server-id" - S_LLT = 148, // "LLT" - S_EN = 149, // "EN" - S_LL = 150, // "LL" - S_IDENTIFIER = 151, // "identifier" - S_HTYPE = 152, // "htype" - S_TIME = 153, // "time" - S_ENTERPRISE_ID = 154, // "enterprise-id" - S_DHCP4O6_PORT = 155, // "dhcp4o6-port" - S_DHCP_MULTI_THREADING = 156, // "multi-threading" - S_ENABLE_MULTI_THREADING = 157, // "enable-multi-threading" - S_THREAD_POOL_SIZE = 158, // "thread-pool-size" - S_PACKET_QUEUE_SIZE = 159, // "packet-queue-size" - S_CONTROL_SOCKET = 160, // "control-socket" - S_SOCKET_TYPE = 161, // "socket-type" - S_SOCKET_NAME = 162, // "socket-name" - S_DHCP_QUEUE_CONTROL = 163, // "dhcp-queue-control" - S_ENABLE_QUEUE = 164, // "enable-queue" - S_QUEUE_TYPE = 165, // "queue-type" - S_CAPACITY = 166, // "capacity" - S_DHCP_DDNS = 167, // "dhcp-ddns" - S_ENABLE_UPDATES = 168, // "enable-updates" - S_QUALIFYING_SUFFIX = 169, // "qualifying-suffix" - S_SERVER_IP = 170, // "server-ip" - S_SERVER_PORT = 171, // "server-port" - S_SENDER_IP = 172, // "sender-ip" - S_SENDER_PORT = 173, // "sender-port" - S_MAX_QUEUE_SIZE = 174, // "max-queue-size" - S_NCR_PROTOCOL = 175, // "ncr-protocol" - S_NCR_FORMAT = 176, // "ncr-format" - S_OVERRIDE_NO_UPDATE = 177, // "override-no-update" - S_OVERRIDE_CLIENT_UPDATE = 178, // "override-client-update" - S_REPLACE_CLIENT_NAME = 179, // "replace-client-name" - S_GENERATED_PREFIX = 180, // "generated-prefix" - S_UDP = 181, // "UDP" - S_TCP = 182, // "TCP" - S_JSON = 183, // "JSON" - S_WHEN_PRESENT = 184, // "when-present" - S_NEVER = 185, // "never" - S_ALWAYS = 186, // "always" - S_WHEN_NOT_PRESENT = 187, // "when-not-present" - S_HOSTNAME_CHAR_SET = 188, // "hostname-char-set" - S_HOSTNAME_CHAR_REPLACEMENT = 189, // "hostname-char-replacement" - S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 190, // "early-global-reservations-lookup" - S_IP_RESERVATIONS_UNIQUE = 191, // "ip-reservations-unique" - S_RESERVATIONS_LOOKUP_FIRST = 192, // "reservations-lookup-first" - S_LOGGERS = 193, // "loggers" - S_OUTPUT_OPTIONS = 194, // "output_options" - S_OUTPUT = 195, // "output" - S_DEBUGLEVEL = 196, // "debuglevel" - S_SEVERITY = 197, // "severity" - S_FLUSH = 198, // "flush" - S_MAXSIZE = 199, // "maxsize" - S_MAXVER = 200, // "maxver" - S_PATTERN = 201, // "pattern" - S_COMPATIBILITY = 202, // "compatibility" - S_LENIENT_OPTION_PARSING = 203, // "lenient-option-parsing" - S_TOPLEVEL_JSON = 204, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP6 = 205, // TOPLEVEL_DHCP6 - S_SUB_DHCP6 = 206, // SUB_DHCP6 - S_SUB_INTERFACES6 = 207, // SUB_INTERFACES6 - S_SUB_SUBNET6 = 208, // SUB_SUBNET6 - S_SUB_POOL6 = 209, // SUB_POOL6 - S_SUB_PD_POOL = 210, // SUB_PD_POOL - S_SUB_RESERVATION = 211, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 212, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 213, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 214, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 215, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 216, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 217, // SUB_CONFIG_CONTROL - S_STRING = 218, // "constant string" - S_INTEGER = 219, // "integer" - S_FLOAT = 220, // "floating point" - S_BOOLEAN = 221, // "boolean" - S_YYACCEPT = 222, // $accept - S_start = 223, // start - S_224_1 = 224, // $@1 - S_225_2 = 225, // $@2 - S_226_3 = 226, // $@3 - S_227_4 = 227, // $@4 - S_228_5 = 228, // $@5 - S_229_6 = 229, // $@6 - S_230_7 = 230, // $@7 - S_231_8 = 231, // $@8 - S_232_9 = 232, // $@9 - S_233_10 = 233, // $@10 - S_234_11 = 234, // $@11 - S_235_12 = 235, // $@12 - S_236_13 = 236, // $@13 - S_237_14 = 237, // $@14 - S_value = 238, // value - S_sub_json = 239, // sub_json - S_map2 = 240, // map2 - S_241_15 = 241, // $@15 - S_map_value = 242, // map_value - S_map_content = 243, // map_content - S_not_empty_map = 244, // not_empty_map - S_list_generic = 245, // list_generic - S_246_16 = 246, // $@16 - S_list_content = 247, // list_content - S_not_empty_list = 248, // not_empty_list - S_list_strings = 249, // list_strings - S_250_17 = 250, // $@17 - S_list_strings_content = 251, // list_strings_content - S_not_empty_list_strings = 252, // not_empty_list_strings - S_unknown_map_entry = 253, // unknown_map_entry - S_syntax_map = 254, // syntax_map - S_255_18 = 255, // $@18 - S_global_object = 256, // global_object - S_257_19 = 257, // $@19 - S_global_object_comma = 258, // global_object_comma - S_sub_dhcp6 = 259, // sub_dhcp6 - S_260_20 = 260, // $@20 - S_global_params = 261, // global_params - S_global_param = 262, // global_param - S_data_directory = 263, // data_directory - S_264_21 = 264, // $@21 - S_preferred_lifetime = 265, // preferred_lifetime - S_min_preferred_lifetime = 266, // min_preferred_lifetime - S_max_preferred_lifetime = 267, // max_preferred_lifetime - S_valid_lifetime = 268, // valid_lifetime - S_min_valid_lifetime = 269, // min_valid_lifetime - S_max_valid_lifetime = 270, // max_valid_lifetime - S_renew_timer = 271, // renew_timer - S_rebind_timer = 272, // rebind_timer - S_calculate_tee_times = 273, // calculate_tee_times - S_t1_percent = 274, // t1_percent - S_t2_percent = 275, // t2_percent - S_cache_threshold = 276, // cache_threshold - S_cache_max_age = 277, // cache_max_age - S_decline_probation_period = 278, // decline_probation_period - S_ddns_send_updates = 279, // ddns_send_updates - S_ddns_override_no_update = 280, // ddns_override_no_update - S_ddns_override_client_update = 281, // ddns_override_client_update - S_ddns_replace_client_name = 282, // ddns_replace_client_name - S_283_22 = 283, // $@22 - S_ddns_replace_client_name_value = 284, // ddns_replace_client_name_value - S_ddns_generated_prefix = 285, // ddns_generated_prefix - S_286_23 = 286, // $@23 - S_ddns_qualifying_suffix = 287, // ddns_qualifying_suffix - S_288_24 = 288, // $@24 - S_ddns_update_on_renew = 289, // ddns_update_on_renew - S_ddns_use_conflict_resolution = 290, // ddns_use_conflict_resolution - S_hostname_char_set = 291, // hostname_char_set - S_292_25 = 292, // $@25 - S_hostname_char_replacement = 293, // hostname_char_replacement - S_294_26 = 294, // $@26 - S_store_extended_info = 295, // store_extended_info - S_statistic_default_sample_count = 296, // statistic_default_sample_count - S_statistic_default_sample_age = 297, // statistic_default_sample_age - S_server_tag = 298, // server_tag - S_299_27 = 299, // $@27 - S_parked_packet_limit = 300, // parked_packet_limit - S_allocator = 301, // allocator - S_302_28 = 302, // $@28 - S_pd_allocator = 303, // pd_allocator - S_304_29 = 304, // $@29 - S_early_global_reservations_lookup = 305, // early_global_reservations_lookup - S_ip_reservations_unique = 306, // ip_reservations_unique - S_reservations_lookup_first = 307, // reservations_lookup_first - S_interfaces_config = 308, // interfaces_config - S_309_30 = 309, // $@30 - S_sub_interfaces6 = 310, // sub_interfaces6 - S_311_31 = 311, // $@31 - S_interfaces_config_params = 312, // interfaces_config_params - S_interfaces_config_param = 313, // interfaces_config_param - S_interfaces_list = 314, // interfaces_list - S_315_32 = 315, // $@32 - S_re_detect = 316, // re_detect - S_service_sockets_require_all = 317, // service_sockets_require_all - S_service_sockets_retry_wait_time = 318, // service_sockets_retry_wait_time - S_service_sockets_max_retries = 319, // service_sockets_max_retries - S_lease_database = 320, // lease_database - S_321_33 = 321, // $@33 - S_hosts_database = 322, // hosts_database - S_323_34 = 323, // $@34 - S_hosts_databases = 324, // hosts_databases - S_325_35 = 325, // $@35 - S_database_list = 326, // database_list - S_not_empty_database_list = 327, // not_empty_database_list - S_database = 328, // database - S_329_36 = 329, // $@36 - S_database_map_params = 330, // database_map_params - S_database_map_param = 331, // database_map_param - S_database_type = 332, // database_type - S_333_37 = 333, // $@37 - S_db_type = 334, // db_type - S_user = 335, // user - S_336_38 = 336, // $@38 - S_password = 337, // password - S_338_39 = 338, // $@39 - S_host = 339, // host - S_340_40 = 340, // $@40 - S_port = 341, // port - S_name = 342, // name - S_343_41 = 343, // $@41 - S_persist = 344, // persist - S_lfc_interval = 345, // lfc_interval - S_readonly = 346, // readonly - S_connect_timeout = 347, // connect_timeout - S_read_timeout = 348, // read_timeout - S_write_timeout = 349, // write_timeout - S_tcp_user_timeout = 350, // tcp_user_timeout - S_reconnect_wait_time = 351, // reconnect_wait_time - S_on_fail = 352, // on_fail - S_353_42 = 353, // $@42 - S_on_fail_mode = 354, // on_fail_mode - S_max_row_errors = 355, // max_row_errors - S_max_reconnect_tries = 356, // max_reconnect_tries - S_trust_anchor = 357, // trust_anchor - S_358_43 = 358, // $@43 - S_cert_file = 359, // cert_file - S_360_44 = 360, // $@44 - S_key_file = 361, // key_file - S_362_45 = 362, // $@45 - S_cipher_list = 363, // cipher_list - S_364_46 = 364, // $@46 - S_sanity_checks = 365, // sanity_checks - S_366_47 = 366, // $@47 - S_sanity_checks_params = 367, // sanity_checks_params - S_sanity_checks_param = 368, // sanity_checks_param - S_lease_checks = 369, // lease_checks - S_370_48 = 370, // $@48 - S_extended_info_checks = 371, // extended_info_checks - S_372_49 = 372, // $@49 - S_mac_sources = 373, // mac_sources - S_374_50 = 374, // $@50 - S_mac_sources_list = 375, // mac_sources_list - S_mac_sources_value = 376, // mac_sources_value - S_duid_id = 377, // duid_id - S_string_id = 378, // string_id - S_host_reservation_identifiers = 379, // host_reservation_identifiers - S_380_51 = 380, // $@51 - S_host_reservation_identifiers_list = 381, // host_reservation_identifiers_list - S_host_reservation_identifier = 382, // host_reservation_identifier - S_hw_address_id = 383, // hw_address_id - S_flex_id = 384, // flex_id - S_relay_supplied_options = 385, // relay_supplied_options - S_386_52 = 386, // $@52 - S_dhcp_multi_threading = 387, // dhcp_multi_threading - S_388_53 = 388, // $@53 - S_multi_threading_params = 389, // multi_threading_params - S_multi_threading_param = 390, // multi_threading_param - S_enable_multi_threading = 391, // enable_multi_threading - S_thread_pool_size = 392, // thread_pool_size - S_packet_queue_size = 393, // packet_queue_size - S_hooks_libraries = 394, // hooks_libraries - S_395_54 = 395, // $@54 - S_hooks_libraries_list = 396, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 397, // not_empty_hooks_libraries_list - S_hooks_library = 398, // hooks_library - S_399_55 = 399, // $@55 - S_sub_hooks_library = 400, // sub_hooks_library - S_401_56 = 401, // $@56 - S_hooks_params = 402, // hooks_params - S_hooks_param = 403, // hooks_param - S_library = 404, // library - S_405_57 = 405, // $@57 - S_parameters = 406, // parameters - S_407_58 = 407, // $@58 - S_expired_leases_processing = 408, // expired_leases_processing - S_409_59 = 409, // $@59 - S_expired_leases_params = 410, // expired_leases_params - S_expired_leases_param = 411, // expired_leases_param - S_reclaim_timer_wait_time = 412, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 413, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 414, // hold_reclaimed_time - S_max_reclaim_leases = 415, // max_reclaim_leases - S_max_reclaim_time = 416, // max_reclaim_time - S_unwarned_reclaim_cycles = 417, // unwarned_reclaim_cycles - S_subnet6_list = 418, // subnet6_list - S_419_60 = 419, // $@60 - S_subnet6_list_content = 420, // subnet6_list_content - S_not_empty_subnet6_list = 421, // not_empty_subnet6_list - S_subnet6 = 422, // subnet6 - S_423_61 = 423, // $@61 - S_sub_subnet6 = 424, // sub_subnet6 - S_425_62 = 425, // $@62 - S_subnet6_params = 426, // subnet6_params - S_subnet6_param = 427, // subnet6_param - S_subnet = 428, // subnet - S_429_63 = 429, // $@63 - S_interface = 430, // interface - S_431_64 = 431, // $@64 - S_interface_id = 432, // interface_id - S_433_65 = 433, // $@65 - S_client_class = 434, // client_class - S_435_66 = 435, // $@66 - S_require_client_classes = 436, // require_client_classes - S_437_67 = 437, // $@67 - S_reservations_global = 438, // reservations_global - S_reservations_in_subnet = 439, // reservations_in_subnet - S_reservations_out_of_pool = 440, // reservations_out_of_pool - S_reservation_mode = 441, // reservation_mode - S_442_68 = 442, // $@68 - S_hr_mode = 443, // hr_mode - S_id = 444, // id - S_rapid_commit = 445, // rapid_commit - S_shared_networks = 446, // shared_networks - S_447_69 = 447, // $@69 - S_shared_networks_content = 448, // shared_networks_content - S_shared_networks_list = 449, // shared_networks_list - S_shared_network = 450, // shared_network - S_451_70 = 451, // $@70 - S_shared_network_params = 452, // shared_network_params - S_shared_network_param = 453, // shared_network_param - S_option_def_list = 454, // option_def_list - S_455_71 = 455, // $@71 - S_sub_option_def_list = 456, // sub_option_def_list - S_457_72 = 457, // $@72 - S_option_def_list_content = 458, // option_def_list_content - S_not_empty_option_def_list = 459, // not_empty_option_def_list - S_option_def_entry = 460, // option_def_entry - S_461_73 = 461, // $@73 - S_sub_option_def = 462, // sub_option_def - S_463_74 = 463, // $@74 - S_option_def_params = 464, // option_def_params - S_not_empty_option_def_params = 465, // not_empty_option_def_params - S_option_def_param = 466, // option_def_param - S_option_def_name = 467, // option_def_name - S_code = 468, // code - S_option_def_code = 469, // option_def_code - S_option_def_type = 470, // option_def_type - S_471_75 = 471, // $@75 - S_option_def_record_types = 472, // option_def_record_types - S_473_76 = 473, // $@76 - S_space = 474, // space - S_475_77 = 475, // $@77 - S_option_def_space = 476, // option_def_space - S_option_def_encapsulate = 477, // option_def_encapsulate - S_478_78 = 478, // $@78 - S_option_def_array = 479, // option_def_array - S_option_data_list = 480, // option_data_list - S_481_79 = 481, // $@79 - S_option_data_list_content = 482, // option_data_list_content - S_not_empty_option_data_list = 483, // not_empty_option_data_list - S_option_data_entry = 484, // option_data_entry - S_485_80 = 485, // $@80 - S_sub_option_data = 486, // sub_option_data - S_487_81 = 487, // $@81 - S_option_data_params = 488, // option_data_params - S_not_empty_option_data_params = 489, // not_empty_option_data_params - S_option_data_param = 490, // option_data_param - S_option_data_name = 491, // option_data_name - S_option_data_data = 492, // option_data_data - S_493_82 = 493, // $@82 - S_option_data_code = 494, // option_data_code - S_option_data_space = 495, // option_data_space - S_option_data_csv_format = 496, // option_data_csv_format - S_option_data_always_send = 497, // option_data_always_send - S_option_data_never_send = 498, // option_data_never_send - S_pools_list = 499, // pools_list - S_500_83 = 500, // $@83 - S_pools_list_content = 501, // pools_list_content - S_not_empty_pools_list = 502, // not_empty_pools_list - S_pool_list_entry = 503, // pool_list_entry - S_504_84 = 504, // $@84 - S_sub_pool6 = 505, // sub_pool6 - S_506_85 = 506, // $@85 - S_pool_params = 507, // pool_params - S_pool_param = 508, // pool_param - S_pool_entry = 509, // pool_entry - S_510_86 = 510, // $@86 - S_user_context = 511, // user_context - S_512_87 = 512, // $@87 - S_comment = 513, // comment - S_514_88 = 514, // $@88 - S_pd_pools_list = 515, // pd_pools_list - S_516_89 = 516, // $@89 - S_pd_pools_list_content = 517, // pd_pools_list_content - S_not_empty_pd_pools_list = 518, // not_empty_pd_pools_list - S_pd_pool_entry = 519, // pd_pool_entry - S_520_90 = 520, // $@90 - S_sub_pd_pool = 521, // sub_pd_pool - S_522_91 = 522, // $@91 - S_pd_pool_params = 523, // pd_pool_params - S_pd_pool_param = 524, // pd_pool_param - S_pd_prefix = 525, // pd_prefix - S_526_92 = 526, // $@92 - S_pd_prefix_len = 527, // pd_prefix_len - S_excluded_prefix = 528, // excluded_prefix - S_529_93 = 529, // $@93 - S_excluded_prefix_len = 530, // excluded_prefix_len - S_pd_delegated_len = 531, // pd_delegated_len - S_reservations = 532, // reservations - S_533_94 = 533, // $@94 - S_reservations_list = 534, // reservations_list - S_not_empty_reservations_list = 535, // not_empty_reservations_list - S_reservation = 536, // reservation - S_537_95 = 537, // $@95 - S_sub_reservation = 538, // sub_reservation - S_539_96 = 539, // $@96 - S_reservation_params = 540, // reservation_params - S_not_empty_reservation_params = 541, // not_empty_reservation_params - S_reservation_param = 542, // reservation_param - S_ip_addresses = 543, // ip_addresses - S_544_97 = 544, // $@97 - S_prefixes = 545, // prefixes - S_546_98 = 546, // $@98 - S_duid = 547, // duid - S_548_99 = 548, // $@99 - S_hw_address = 549, // hw_address - S_550_100 = 550, // $@100 - S_hostname = 551, // hostname - S_552_101 = 552, // $@101 - S_flex_id_value = 553, // flex_id_value - S_554_102 = 554, // $@102 - S_reservation_client_classes = 555, // reservation_client_classes - S_556_103 = 556, // $@103 - S_relay = 557, // relay - S_558_104 = 558, // $@104 - S_relay_map = 559, // relay_map - S_ip_address = 560, // ip_address - S_561_105 = 561, // $@105 - S_client_classes = 562, // client_classes - S_563_106 = 563, // $@106 - S_client_classes_list = 564, // client_classes_list - S_client_class_entry = 565, // client_class_entry - S_566_107 = 566, // $@107 - S_client_class_params = 567, // client_class_params - S_not_empty_client_class_params = 568, // not_empty_client_class_params - S_client_class_param = 569, // client_class_param - S_client_class_name = 570, // client_class_name - S_client_class_test = 571, // client_class_test - S_572_108 = 572, // $@108 - S_client_class_template_test = 573, // client_class_template_test - S_574_109 = 574, // $@109 - S_only_if_required = 575, // only_if_required - S_server_id = 576, // server_id - S_577_110 = 577, // $@110 - S_server_id_params = 578, // server_id_params - S_server_id_param = 579, // server_id_param - S_server_id_type = 580, // server_id_type - S_581_111 = 581, // $@111 - S_duid_type = 582, // duid_type - S_htype = 583, // htype - S_identifier = 584, // identifier - S_585_112 = 585, // $@112 - S_time = 586, // time - S_enterprise_id = 587, // enterprise_id - S_dhcp4o6_port = 588, // dhcp4o6_port - S_control_socket = 589, // control_socket - S_590_113 = 590, // $@113 - S_control_socket_params = 591, // control_socket_params - S_control_socket_param = 592, // control_socket_param - S_socket_type = 593, // socket_type - S_594_114 = 594, // $@114 - S_socket_name = 595, // socket_name - S_596_115 = 596, // $@115 - S_dhcp_queue_control = 597, // dhcp_queue_control - S_598_116 = 598, // $@116 - S_queue_control_params = 599, // queue_control_params - S_queue_control_param = 600, // queue_control_param - S_enable_queue = 601, // enable_queue - S_queue_type = 602, // queue_type - S_603_117 = 603, // $@117 - S_capacity = 604, // capacity - S_arbitrary_map_entry = 605, // arbitrary_map_entry - S_606_118 = 606, // $@118 - S_dhcp_ddns = 607, // dhcp_ddns - S_608_119 = 608, // $@119 - S_sub_dhcp_ddns = 609, // sub_dhcp_ddns - S_610_120 = 610, // $@120 - S_dhcp_ddns_params = 611, // dhcp_ddns_params - S_dhcp_ddns_param = 612, // dhcp_ddns_param - S_enable_updates = 613, // enable_updates - S_dep_qualifying_suffix = 614, // dep_qualifying_suffix - S_615_121 = 615, // $@121 - S_server_ip = 616, // server_ip - S_617_122 = 617, // $@122 - S_server_port = 618, // server_port - S_sender_ip = 619, // sender_ip - S_620_123 = 620, // $@123 - S_sender_port = 621, // sender_port - S_max_queue_size = 622, // max_queue_size - S_ncr_protocol = 623, // ncr_protocol - S_624_124 = 624, // $@124 - S_ncr_protocol_value = 625, // ncr_protocol_value - S_ncr_format = 626, // ncr_format - S_627_125 = 627, // $@125 - S_dep_override_no_update = 628, // dep_override_no_update - S_dep_override_client_update = 629, // dep_override_client_update - S_dep_replace_client_name = 630, // dep_replace_client_name - S_631_126 = 631, // $@126 - S_dep_generated_prefix = 632, // dep_generated_prefix - S_633_127 = 633, // $@127 - S_dep_hostname_char_set = 634, // dep_hostname_char_set - S_635_128 = 635, // $@128 - S_dep_hostname_char_replacement = 636, // dep_hostname_char_replacement - S_637_129 = 637, // $@129 - S_config_control = 638, // config_control - S_639_130 = 639, // $@130 - S_sub_config_control = 640, // sub_config_control - S_641_131 = 641, // $@131 - S_config_control_params = 642, // config_control_params - S_config_control_param = 643, // config_control_param - S_config_databases = 644, // config_databases - S_645_132 = 645, // $@132 - S_config_fetch_wait_time = 646, // config_fetch_wait_time - S_loggers = 647, // loggers - S_648_133 = 648, // $@133 - S_loggers_entries = 649, // loggers_entries - S_logger_entry = 650, // logger_entry - S_651_134 = 651, // $@134 - S_logger_params = 652, // logger_params - S_logger_param = 653, // logger_param - S_debuglevel = 654, // debuglevel - S_severity = 655, // severity - S_656_135 = 656, // $@135 - S_output_options_list = 657, // output_options_list - S_658_136 = 658, // $@136 - S_output_options_list_content = 659, // output_options_list_content - S_output_entry = 660, // output_entry - S_661_137 = 661, // $@137 - S_output_params_list = 662, // output_params_list - S_output_params = 663, // output_params - S_output = 664, // output - S_665_138 = 665, // $@138 - S_flush = 666, // flush - S_maxsize = 667, // maxsize - S_maxver = 668, // maxver - S_pattern = 669, // pattern - S_670_139 = 670, // $@139 - S_compatibility = 671, // compatibility - S_672_140 = 672, // $@140 - S_compatibility_params = 673, // compatibility_params - S_compatibility_param = 674, // compatibility_param - S_lenient_option_parsing = 675 // lenient_option_parsing + S_DDNS_TTL_PERCENT = 75, // "ddns-ttl-percent" + S_STORE_EXTENDED_INFO = 76, // "store-extended-info" + S_SUBNET6 = 77, // "subnet6" + S_OPTION_DEF = 78, // "option-def" + S_OPTION_DATA = 79, // "option-data" + S_NAME = 80, // "name" + S_DATA = 81, // "data" + S_CODE = 82, // "code" + S_SPACE = 83, // "space" + S_CSV_FORMAT = 84, // "csv-format" + S_ALWAYS_SEND = 85, // "always-send" + S_NEVER_SEND = 86, // "never-send" + S_RECORD_TYPES = 87, // "record-types" + S_ENCAPSULATE = 88, // "encapsulate" + S_ARRAY = 89, // "array" + S_PARKED_PACKET_LIMIT = 90, // "parked-packet-limit" + S_ALLOCATOR = 91, // "allocator" + S_PD_ALLOCATOR = 92, // "pd-allocator" + S_SHARED_NETWORKS = 93, // "shared-networks" + S_POOLS = 94, // "pools" + S_POOL = 95, // "pool" + S_PD_POOLS = 96, // "pd-pools" + S_PREFIX = 97, // "prefix" + S_PREFIX_LEN = 98, // "prefix-len" + S_EXCLUDED_PREFIX = 99, // "excluded-prefix" + S_EXCLUDED_PREFIX_LEN = 100, // "excluded-prefix-len" + S_DELEGATED_LEN = 101, // "delegated-len" + S_USER_CONTEXT = 102, // "user-context" + S_COMMENT = 103, // "comment" + S_SUBNET = 104, // "subnet" + S_INTERFACE = 105, // "interface" + S_INTERFACE_ID = 106, // "interface-id" + S_ID = 107, // "id" + S_RAPID_COMMIT = 108, // "rapid-commit" + S_RESERVATION_MODE = 109, // "reservation-mode" + S_DISABLED = 110, // "disabled" + S_OUT_OF_POOL = 111, // "out-of-pool" + S_GLOBAL = 112, // "global" + S_ALL = 113, // "all" + S_RESERVATIONS_GLOBAL = 114, // "reservations-global" + S_RESERVATIONS_IN_SUBNET = 115, // "reservations-in-subnet" + S_RESERVATIONS_OUT_OF_POOL = 116, // "reservations-out-of-pool" + S_MAC_SOURCES = 117, // "mac-sources" + S_RELAY_SUPPLIED_OPTIONS = 118, // "relay-supplied-options" + S_HOST_RESERVATION_IDENTIFIERS = 119, // "host-reservation-identifiers" + S_SANITY_CHECKS = 120, // "sanity-checks" + S_LEASE_CHECKS = 121, // "lease-checks" + S_EXTENDED_INFO_CHECKS = 122, // "extended-info-checks" + S_CLIENT_CLASSES = 123, // "client-classes" + S_REQUIRE_CLIENT_CLASSES = 124, // "require-client-classes" + S_TEST = 125, // "test" + S_TEMPLATE_TEST = 126, // "template-test" + S_ONLY_IF_REQUIRED = 127, // "only-if-required" + S_CLIENT_CLASS = 128, // "client-class" + S_RESERVATIONS = 129, // "reservations" + S_IP_ADDRESSES = 130, // "ip-addresses" + S_PREFIXES = 131, // "prefixes" + S_DUID = 132, // "duid" + S_HW_ADDRESS = 133, // "hw-address" + S_HOSTNAME = 134, // "hostname" + S_FLEX_ID = 135, // "flex-id" + S_RELAY = 136, // "relay" + S_IP_ADDRESS = 137, // "ip-address" + S_HOOKS_LIBRARIES = 138, // "hooks-libraries" + S_LIBRARY = 139, // "library" + S_PARAMETERS = 140, // "parameters" + S_EXPIRED_LEASES_PROCESSING = 141, // "expired-leases-processing" + S_RECLAIM_TIMER_WAIT_TIME = 142, // "reclaim-timer-wait-time" + S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 143, // "flush-reclaimed-timer-wait-time" + S_HOLD_RECLAIMED_TIME = 144, // "hold-reclaimed-time" + S_MAX_RECLAIM_LEASES = 145, // "max-reclaim-leases" + S_MAX_RECLAIM_TIME = 146, // "max-reclaim-time" + S_UNWARNED_RECLAIM_CYCLES = 147, // "unwarned-reclaim-cycles" + S_SERVER_ID = 148, // "server-id" + S_LLT = 149, // "LLT" + S_EN = 150, // "EN" + S_LL = 151, // "LL" + S_IDENTIFIER = 152, // "identifier" + S_HTYPE = 153, // "htype" + S_TIME = 154, // "time" + S_ENTERPRISE_ID = 155, // "enterprise-id" + S_DHCP4O6_PORT = 156, // "dhcp4o6-port" + S_DHCP_MULTI_THREADING = 157, // "multi-threading" + S_ENABLE_MULTI_THREADING = 158, // "enable-multi-threading" + S_THREAD_POOL_SIZE = 159, // "thread-pool-size" + S_PACKET_QUEUE_SIZE = 160, // "packet-queue-size" + S_CONTROL_SOCKET = 161, // "control-socket" + S_SOCKET_TYPE = 162, // "socket-type" + S_SOCKET_NAME = 163, // "socket-name" + S_DHCP_QUEUE_CONTROL = 164, // "dhcp-queue-control" + S_ENABLE_QUEUE = 165, // "enable-queue" + S_QUEUE_TYPE = 166, // "queue-type" + S_CAPACITY = 167, // "capacity" + S_DHCP_DDNS = 168, // "dhcp-ddns" + S_ENABLE_UPDATES = 169, // "enable-updates" + S_QUALIFYING_SUFFIX = 170, // "qualifying-suffix" + S_SERVER_IP = 171, // "server-ip" + S_SERVER_PORT = 172, // "server-port" + S_SENDER_IP = 173, // "sender-ip" + S_SENDER_PORT = 174, // "sender-port" + S_MAX_QUEUE_SIZE = 175, // "max-queue-size" + S_NCR_PROTOCOL = 176, // "ncr-protocol" + S_NCR_FORMAT = 177, // "ncr-format" + S_OVERRIDE_NO_UPDATE = 178, // "override-no-update" + S_OVERRIDE_CLIENT_UPDATE = 179, // "override-client-update" + S_REPLACE_CLIENT_NAME = 180, // "replace-client-name" + S_GENERATED_PREFIX = 181, // "generated-prefix" + S_UDP = 182, // "UDP" + S_TCP = 183, // "TCP" + S_JSON = 184, // "JSON" + S_WHEN_PRESENT = 185, // "when-present" + S_NEVER = 186, // "never" + S_ALWAYS = 187, // "always" + S_WHEN_NOT_PRESENT = 188, // "when-not-present" + S_HOSTNAME_CHAR_SET = 189, // "hostname-char-set" + S_HOSTNAME_CHAR_REPLACEMENT = 190, // "hostname-char-replacement" + S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 191, // "early-global-reservations-lookup" + S_IP_RESERVATIONS_UNIQUE = 192, // "ip-reservations-unique" + S_RESERVATIONS_LOOKUP_FIRST = 193, // "reservations-lookup-first" + S_LOGGERS = 194, // "loggers" + S_OUTPUT_OPTIONS = 195, // "output_options" + S_OUTPUT = 196, // "output" + S_DEBUGLEVEL = 197, // "debuglevel" + S_SEVERITY = 198, // "severity" + S_FLUSH = 199, // "flush" + S_MAXSIZE = 200, // "maxsize" + S_MAXVER = 201, // "maxver" + S_PATTERN = 202, // "pattern" + S_COMPATIBILITY = 203, // "compatibility" + S_LENIENT_OPTION_PARSING = 204, // "lenient-option-parsing" + S_TOPLEVEL_JSON = 205, // TOPLEVEL_JSON + S_TOPLEVEL_DHCP6 = 206, // TOPLEVEL_DHCP6 + S_SUB_DHCP6 = 207, // SUB_DHCP6 + S_SUB_INTERFACES6 = 208, // SUB_INTERFACES6 + S_SUB_SUBNET6 = 209, // SUB_SUBNET6 + S_SUB_POOL6 = 210, // SUB_POOL6 + S_SUB_PD_POOL = 211, // SUB_PD_POOL + S_SUB_RESERVATION = 212, // SUB_RESERVATION + S_SUB_OPTION_DEFS = 213, // SUB_OPTION_DEFS + S_SUB_OPTION_DEF = 214, // SUB_OPTION_DEF + S_SUB_OPTION_DATA = 215, // SUB_OPTION_DATA + S_SUB_HOOKS_LIBRARY = 216, // SUB_HOOKS_LIBRARY + S_SUB_DHCP_DDNS = 217, // SUB_DHCP_DDNS + S_SUB_CONFIG_CONTROL = 218, // SUB_CONFIG_CONTROL + S_STRING = 219, // "constant string" + S_INTEGER = 220, // "integer" + S_FLOAT = 221, // "floating point" + S_BOOLEAN = 222, // "boolean" + S_YYACCEPT = 223, // $accept + S_start = 224, // start + S_225_1 = 225, // $@1 + S_226_2 = 226, // $@2 + S_227_3 = 227, // $@3 + S_228_4 = 228, // $@4 + S_229_5 = 229, // $@5 + S_230_6 = 230, // $@6 + S_231_7 = 231, // $@7 + S_232_8 = 232, // $@8 + S_233_9 = 233, // $@9 + S_234_10 = 234, // $@10 + S_235_11 = 235, // $@11 + S_236_12 = 236, // $@12 + S_237_13 = 237, // $@13 + S_238_14 = 238, // $@14 + S_value = 239, // value + S_sub_json = 240, // sub_json + S_map2 = 241, // map2 + S_242_15 = 242, // $@15 + S_map_value = 243, // map_value + S_map_content = 244, // map_content + S_not_empty_map = 245, // not_empty_map + S_list_generic = 246, // list_generic + S_247_16 = 247, // $@16 + S_list_content = 248, // list_content + S_not_empty_list = 249, // not_empty_list + S_list_strings = 250, // list_strings + S_251_17 = 251, // $@17 + S_list_strings_content = 252, // list_strings_content + S_not_empty_list_strings = 253, // not_empty_list_strings + S_unknown_map_entry = 254, // unknown_map_entry + S_syntax_map = 255, // syntax_map + S_256_18 = 256, // $@18 + S_global_object = 257, // global_object + S_258_19 = 258, // $@19 + S_global_object_comma = 259, // global_object_comma + S_sub_dhcp6 = 260, // sub_dhcp6 + S_261_20 = 261, // $@20 + S_global_params = 262, // global_params + S_global_param = 263, // global_param + S_data_directory = 264, // data_directory + S_265_21 = 265, // $@21 + S_preferred_lifetime = 266, // preferred_lifetime + S_min_preferred_lifetime = 267, // min_preferred_lifetime + S_max_preferred_lifetime = 268, // max_preferred_lifetime + S_valid_lifetime = 269, // valid_lifetime + S_min_valid_lifetime = 270, // min_valid_lifetime + S_max_valid_lifetime = 271, // max_valid_lifetime + S_renew_timer = 272, // renew_timer + S_rebind_timer = 273, // rebind_timer + S_calculate_tee_times = 274, // calculate_tee_times + S_t1_percent = 275, // t1_percent + S_t2_percent = 276, // t2_percent + S_cache_threshold = 277, // cache_threshold + S_cache_max_age = 278, // cache_max_age + S_decline_probation_period = 279, // decline_probation_period + S_ddns_send_updates = 280, // ddns_send_updates + S_ddns_override_no_update = 281, // ddns_override_no_update + S_ddns_override_client_update = 282, // ddns_override_client_update + S_ddns_replace_client_name = 283, // ddns_replace_client_name + S_284_22 = 284, // $@22 + S_ddns_replace_client_name_value = 285, // ddns_replace_client_name_value + S_ddns_generated_prefix = 286, // ddns_generated_prefix + S_287_23 = 287, // $@23 + S_ddns_qualifying_suffix = 288, // ddns_qualifying_suffix + S_289_24 = 289, // $@24 + S_ddns_update_on_renew = 290, // ddns_update_on_renew + S_ddns_use_conflict_resolution = 291, // ddns_use_conflict_resolution + S_ddns_ttl_percent = 292, // ddns_ttl_percent + S_hostname_char_set = 293, // hostname_char_set + S_294_25 = 294, // $@25 + S_hostname_char_replacement = 295, // hostname_char_replacement + S_296_26 = 296, // $@26 + S_store_extended_info = 297, // store_extended_info + S_statistic_default_sample_count = 298, // statistic_default_sample_count + S_statistic_default_sample_age = 299, // statistic_default_sample_age + S_server_tag = 300, // server_tag + S_301_27 = 301, // $@27 + S_parked_packet_limit = 302, // parked_packet_limit + S_allocator = 303, // allocator + S_304_28 = 304, // $@28 + S_pd_allocator = 305, // pd_allocator + S_306_29 = 306, // $@29 + S_early_global_reservations_lookup = 307, // early_global_reservations_lookup + S_ip_reservations_unique = 308, // ip_reservations_unique + S_reservations_lookup_first = 309, // reservations_lookup_first + S_interfaces_config = 310, // interfaces_config + S_311_30 = 311, // $@30 + S_sub_interfaces6 = 312, // sub_interfaces6 + S_313_31 = 313, // $@31 + S_interfaces_config_params = 314, // interfaces_config_params + S_interfaces_config_param = 315, // interfaces_config_param + S_interfaces_list = 316, // interfaces_list + S_317_32 = 317, // $@32 + S_re_detect = 318, // re_detect + S_service_sockets_require_all = 319, // service_sockets_require_all + S_service_sockets_retry_wait_time = 320, // service_sockets_retry_wait_time + S_service_sockets_max_retries = 321, // service_sockets_max_retries + S_lease_database = 322, // lease_database + S_323_33 = 323, // $@33 + S_hosts_database = 324, // hosts_database + S_325_34 = 325, // $@34 + S_hosts_databases = 326, // hosts_databases + S_327_35 = 327, // $@35 + S_database_list = 328, // database_list + S_not_empty_database_list = 329, // not_empty_database_list + S_database = 330, // database + S_331_36 = 331, // $@36 + S_database_map_params = 332, // database_map_params + S_database_map_param = 333, // database_map_param + S_database_type = 334, // database_type + S_335_37 = 335, // $@37 + S_db_type = 336, // db_type + S_user = 337, // user + S_338_38 = 338, // $@38 + S_password = 339, // password + S_340_39 = 340, // $@39 + S_host = 341, // host + S_342_40 = 342, // $@40 + S_port = 343, // port + S_name = 344, // name + S_345_41 = 345, // $@41 + S_persist = 346, // persist + S_lfc_interval = 347, // lfc_interval + S_readonly = 348, // readonly + S_connect_timeout = 349, // connect_timeout + S_read_timeout = 350, // read_timeout + S_write_timeout = 351, // write_timeout + S_tcp_user_timeout = 352, // tcp_user_timeout + S_reconnect_wait_time = 353, // reconnect_wait_time + S_on_fail = 354, // on_fail + S_355_42 = 355, // $@42 + S_on_fail_mode = 356, // on_fail_mode + S_max_row_errors = 357, // max_row_errors + S_max_reconnect_tries = 358, // max_reconnect_tries + S_trust_anchor = 359, // trust_anchor + S_360_43 = 360, // $@43 + S_cert_file = 361, // cert_file + S_362_44 = 362, // $@44 + S_key_file = 363, // key_file + S_364_45 = 364, // $@45 + S_cipher_list = 365, // cipher_list + S_366_46 = 366, // $@46 + S_sanity_checks = 367, // sanity_checks + S_368_47 = 368, // $@47 + S_sanity_checks_params = 369, // sanity_checks_params + S_sanity_checks_param = 370, // sanity_checks_param + S_lease_checks = 371, // lease_checks + S_372_48 = 372, // $@48 + S_extended_info_checks = 373, // extended_info_checks + S_374_49 = 374, // $@49 + S_mac_sources = 375, // mac_sources + S_376_50 = 376, // $@50 + S_mac_sources_list = 377, // mac_sources_list + S_mac_sources_value = 378, // mac_sources_value + S_duid_id = 379, // duid_id + S_string_id = 380, // string_id + S_host_reservation_identifiers = 381, // host_reservation_identifiers + S_382_51 = 382, // $@51 + S_host_reservation_identifiers_list = 383, // host_reservation_identifiers_list + S_host_reservation_identifier = 384, // host_reservation_identifier + S_hw_address_id = 385, // hw_address_id + S_flex_id = 386, // flex_id + S_relay_supplied_options = 387, // relay_supplied_options + S_388_52 = 388, // $@52 + S_dhcp_multi_threading = 389, // dhcp_multi_threading + S_390_53 = 390, // $@53 + S_multi_threading_params = 391, // multi_threading_params + S_multi_threading_param = 392, // multi_threading_param + S_enable_multi_threading = 393, // enable_multi_threading + S_thread_pool_size = 394, // thread_pool_size + S_packet_queue_size = 395, // packet_queue_size + S_hooks_libraries = 396, // hooks_libraries + S_397_54 = 397, // $@54 + S_hooks_libraries_list = 398, // hooks_libraries_list + S_not_empty_hooks_libraries_list = 399, // not_empty_hooks_libraries_list + S_hooks_library = 400, // hooks_library + S_401_55 = 401, // $@55 + S_sub_hooks_library = 402, // sub_hooks_library + S_403_56 = 403, // $@56 + S_hooks_params = 404, // hooks_params + S_hooks_param = 405, // hooks_param + S_library = 406, // library + S_407_57 = 407, // $@57 + S_parameters = 408, // parameters + S_409_58 = 409, // $@58 + S_expired_leases_processing = 410, // expired_leases_processing + S_411_59 = 411, // $@59 + S_expired_leases_params = 412, // expired_leases_params + S_expired_leases_param = 413, // expired_leases_param + S_reclaim_timer_wait_time = 414, // reclaim_timer_wait_time + S_flush_reclaimed_timer_wait_time = 415, // flush_reclaimed_timer_wait_time + S_hold_reclaimed_time = 416, // hold_reclaimed_time + S_max_reclaim_leases = 417, // max_reclaim_leases + S_max_reclaim_time = 418, // max_reclaim_time + S_unwarned_reclaim_cycles = 419, // unwarned_reclaim_cycles + S_subnet6_list = 420, // subnet6_list + S_421_60 = 421, // $@60 + S_subnet6_list_content = 422, // subnet6_list_content + S_not_empty_subnet6_list = 423, // not_empty_subnet6_list + S_subnet6 = 424, // subnet6 + S_425_61 = 425, // $@61 + S_sub_subnet6 = 426, // sub_subnet6 + S_427_62 = 427, // $@62 + S_subnet6_params = 428, // subnet6_params + S_subnet6_param = 429, // subnet6_param + S_subnet = 430, // subnet + S_431_63 = 431, // $@63 + S_interface = 432, // interface + S_433_64 = 433, // $@64 + S_interface_id = 434, // interface_id + S_435_65 = 435, // $@65 + S_client_class = 436, // client_class + S_437_66 = 437, // $@66 + S_require_client_classes = 438, // require_client_classes + S_439_67 = 439, // $@67 + S_reservations_global = 440, // reservations_global + S_reservations_in_subnet = 441, // reservations_in_subnet + S_reservations_out_of_pool = 442, // reservations_out_of_pool + S_reservation_mode = 443, // reservation_mode + S_444_68 = 444, // $@68 + S_hr_mode = 445, // hr_mode + S_id = 446, // id + S_rapid_commit = 447, // rapid_commit + S_shared_networks = 448, // shared_networks + S_449_69 = 449, // $@69 + S_shared_networks_content = 450, // shared_networks_content + S_shared_networks_list = 451, // shared_networks_list + S_shared_network = 452, // shared_network + S_453_70 = 453, // $@70 + S_shared_network_params = 454, // shared_network_params + S_shared_network_param = 455, // shared_network_param + S_option_def_list = 456, // option_def_list + S_457_71 = 457, // $@71 + S_sub_option_def_list = 458, // sub_option_def_list + S_459_72 = 459, // $@72 + S_option_def_list_content = 460, // option_def_list_content + S_not_empty_option_def_list = 461, // not_empty_option_def_list + S_option_def_entry = 462, // option_def_entry + S_463_73 = 463, // $@73 + S_sub_option_def = 464, // sub_option_def + S_465_74 = 465, // $@74 + S_option_def_params = 466, // option_def_params + S_not_empty_option_def_params = 467, // not_empty_option_def_params + S_option_def_param = 468, // option_def_param + S_option_def_name = 469, // option_def_name + S_code = 470, // code + S_option_def_code = 471, // option_def_code + S_option_def_type = 472, // option_def_type + S_473_75 = 473, // $@75 + S_option_def_record_types = 474, // option_def_record_types + S_475_76 = 475, // $@76 + S_space = 476, // space + S_477_77 = 477, // $@77 + S_option_def_space = 478, // option_def_space + S_option_def_encapsulate = 479, // option_def_encapsulate + S_480_78 = 480, // $@78 + S_option_def_array = 481, // option_def_array + S_option_data_list = 482, // option_data_list + S_483_79 = 483, // $@79 + S_option_data_list_content = 484, // option_data_list_content + S_not_empty_option_data_list = 485, // not_empty_option_data_list + S_option_data_entry = 486, // option_data_entry + S_487_80 = 487, // $@80 + S_sub_option_data = 488, // sub_option_data + S_489_81 = 489, // $@81 + S_option_data_params = 490, // option_data_params + S_not_empty_option_data_params = 491, // not_empty_option_data_params + S_option_data_param = 492, // option_data_param + S_option_data_name = 493, // option_data_name + S_option_data_data = 494, // option_data_data + S_495_82 = 495, // $@82 + S_option_data_code = 496, // option_data_code + S_option_data_space = 497, // option_data_space + S_option_data_csv_format = 498, // option_data_csv_format + S_option_data_always_send = 499, // option_data_always_send + S_option_data_never_send = 500, // option_data_never_send + S_pools_list = 501, // pools_list + S_502_83 = 502, // $@83 + S_pools_list_content = 503, // pools_list_content + S_not_empty_pools_list = 504, // not_empty_pools_list + S_pool_list_entry = 505, // pool_list_entry + S_506_84 = 506, // $@84 + S_sub_pool6 = 507, // sub_pool6 + S_508_85 = 508, // $@85 + S_pool_params = 509, // pool_params + S_pool_param = 510, // pool_param + S_pool_entry = 511, // pool_entry + S_512_86 = 512, // $@86 + S_user_context = 513, // user_context + S_514_87 = 514, // $@87 + S_comment = 515, // comment + S_516_88 = 516, // $@88 + S_pd_pools_list = 517, // pd_pools_list + S_518_89 = 518, // $@89 + S_pd_pools_list_content = 519, // pd_pools_list_content + S_not_empty_pd_pools_list = 520, // not_empty_pd_pools_list + S_pd_pool_entry = 521, // pd_pool_entry + S_522_90 = 522, // $@90 + S_sub_pd_pool = 523, // sub_pd_pool + S_524_91 = 524, // $@91 + S_pd_pool_params = 525, // pd_pool_params + S_pd_pool_param = 526, // pd_pool_param + S_pd_prefix = 527, // pd_prefix + S_528_92 = 528, // $@92 + S_pd_prefix_len = 529, // pd_prefix_len + S_excluded_prefix = 530, // excluded_prefix + S_531_93 = 531, // $@93 + S_excluded_prefix_len = 532, // excluded_prefix_len + S_pd_delegated_len = 533, // pd_delegated_len + S_reservations = 534, // reservations + S_535_94 = 535, // $@94 + S_reservations_list = 536, // reservations_list + S_not_empty_reservations_list = 537, // not_empty_reservations_list + S_reservation = 538, // reservation + S_539_95 = 539, // $@95 + S_sub_reservation = 540, // sub_reservation + S_541_96 = 541, // $@96 + S_reservation_params = 542, // reservation_params + S_not_empty_reservation_params = 543, // not_empty_reservation_params + S_reservation_param = 544, // reservation_param + S_ip_addresses = 545, // ip_addresses + S_546_97 = 546, // $@97 + S_prefixes = 547, // prefixes + S_548_98 = 548, // $@98 + S_duid = 549, // duid + S_550_99 = 550, // $@99 + S_hw_address = 551, // hw_address + S_552_100 = 552, // $@100 + S_hostname = 553, // hostname + S_554_101 = 554, // $@101 + S_flex_id_value = 555, // flex_id_value + S_556_102 = 556, // $@102 + S_reservation_client_classes = 557, // reservation_client_classes + S_558_103 = 558, // $@103 + S_relay = 559, // relay + S_560_104 = 560, // $@104 + S_relay_map = 561, // relay_map + S_ip_address = 562, // ip_address + S_563_105 = 563, // $@105 + S_client_classes = 564, // client_classes + S_565_106 = 565, // $@106 + S_client_classes_list = 566, // client_classes_list + S_client_class_entry = 567, // client_class_entry + S_568_107 = 568, // $@107 + S_client_class_params = 569, // client_class_params + S_not_empty_client_class_params = 570, // not_empty_client_class_params + S_client_class_param = 571, // client_class_param + S_client_class_name = 572, // client_class_name + S_client_class_test = 573, // client_class_test + S_574_108 = 574, // $@108 + S_client_class_template_test = 575, // client_class_template_test + S_576_109 = 576, // $@109 + S_only_if_required = 577, // only_if_required + S_server_id = 578, // server_id + S_579_110 = 579, // $@110 + S_server_id_params = 580, // server_id_params + S_server_id_param = 581, // server_id_param + S_server_id_type = 582, // server_id_type + S_583_111 = 583, // $@111 + S_duid_type = 584, // duid_type + S_htype = 585, // htype + S_identifier = 586, // identifier + S_587_112 = 587, // $@112 + S_time = 588, // time + S_enterprise_id = 589, // enterprise_id + S_dhcp4o6_port = 590, // dhcp4o6_port + S_control_socket = 591, // control_socket + S_592_113 = 592, // $@113 + S_control_socket_params = 593, // control_socket_params + S_control_socket_param = 594, // control_socket_param + S_socket_type = 595, // socket_type + S_596_114 = 596, // $@114 + S_socket_name = 597, // socket_name + S_598_115 = 598, // $@115 + S_dhcp_queue_control = 599, // dhcp_queue_control + S_600_116 = 600, // $@116 + S_queue_control_params = 601, // queue_control_params + S_queue_control_param = 602, // queue_control_param + S_enable_queue = 603, // enable_queue + S_queue_type = 604, // queue_type + S_605_117 = 605, // $@117 + S_capacity = 606, // capacity + S_arbitrary_map_entry = 607, // arbitrary_map_entry + S_608_118 = 608, // $@118 + S_dhcp_ddns = 609, // dhcp_ddns + S_610_119 = 610, // $@119 + S_sub_dhcp_ddns = 611, // sub_dhcp_ddns + S_612_120 = 612, // $@120 + S_dhcp_ddns_params = 613, // dhcp_ddns_params + S_dhcp_ddns_param = 614, // dhcp_ddns_param + S_enable_updates = 615, // enable_updates + S_dep_qualifying_suffix = 616, // dep_qualifying_suffix + S_617_121 = 617, // $@121 + S_server_ip = 618, // server_ip + S_619_122 = 619, // $@122 + S_server_port = 620, // server_port + S_sender_ip = 621, // sender_ip + S_622_123 = 622, // $@123 + S_sender_port = 623, // sender_port + S_max_queue_size = 624, // max_queue_size + S_ncr_protocol = 625, // ncr_protocol + S_626_124 = 626, // $@124 + S_ncr_protocol_value = 627, // ncr_protocol_value + S_ncr_format = 628, // ncr_format + S_629_125 = 629, // $@125 + S_dep_override_no_update = 630, // dep_override_no_update + S_dep_override_client_update = 631, // dep_override_client_update + S_dep_replace_client_name = 632, // dep_replace_client_name + S_633_126 = 633, // $@126 + S_dep_generated_prefix = 634, // dep_generated_prefix + S_635_127 = 635, // $@127 + S_dep_hostname_char_set = 636, // dep_hostname_char_set + S_637_128 = 637, // $@128 + S_dep_hostname_char_replacement = 638, // dep_hostname_char_replacement + S_639_129 = 639, // $@129 + S_config_control = 640, // config_control + S_641_130 = 641, // $@130 + S_sub_config_control = 642, // sub_config_control + S_643_131 = 643, // $@131 + S_config_control_params = 644, // config_control_params + S_config_control_param = 645, // config_control_param + S_config_databases = 646, // config_databases + S_647_132 = 647, // $@132 + S_config_fetch_wait_time = 648, // config_fetch_wait_time + S_loggers = 649, // loggers + S_650_133 = 650, // $@133 + S_loggers_entries = 651, // loggers_entries + S_logger_entry = 652, // logger_entry + S_653_134 = 653, // $@134 + S_logger_params = 654, // logger_params + S_logger_param = 655, // logger_param + S_debuglevel = 656, // debuglevel + S_severity = 657, // severity + S_658_135 = 658, // $@135 + S_output_options_list = 659, // output_options_list + S_660_136 = 660, // $@136 + S_output_options_list_content = 661, // output_options_list_content + S_output_entry = 662, // output_entry + S_663_137 = 663, // $@137 + S_output_params_list = 664, // output_params_list + S_output_params = 665, // output_params + S_output = 666, // output + S_667_138 = 667, // $@138 + S_flush = 668, // flush + S_maxsize = 669, // maxsize + S_maxver = 670, // maxver + S_pattern = 671, // pattern + S_672_139 = 672, // $@139 + S_compatibility = 673, // compatibility + S_674_140 = 674, // $@140 + S_compatibility_params = 675, // compatibility_params + S_compatibility_param = 676, // compatibility_param + S_lenient_option_parsing = 677 // lenient_option_parsing }; }; @@ -1433,7 +1424,7 @@ namespace isc { namespace dhcp { typedef Base super_type; /// Default constructor. - basic_symbol () YY_NOEXCEPT + basic_symbol () : value () , location () {} @@ -1484,7 +1475,7 @@ namespace isc { namespace dhcp { /// Copy constructor. basic_symbol (const basic_symbol& that); - /// Constructors for typed symbols. + /// Constructor for valueless symbols, and symbols from each type. #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, location_type&& l) : Base (t) @@ -1496,7 +1487,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) : Base (t) @@ -1510,7 +1500,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) : Base (t) @@ -1524,7 +1513,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) : Base (t) @@ -1538,7 +1526,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) : Base (t) @@ -1552,7 +1539,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) : Base (t) @@ -1573,10 +1559,8 @@ namespace isc { namespace dhcp { clear (); } - - /// Destroy contents, and record that is empty. - void clear () YY_NOEXCEPT + void clear () { // User destructor. symbol_kind_type yykind = this->kind (); @@ -1641,7 +1625,7 @@ switch (yykind) void move (basic_symbol& s); /// The semantic value. - value_type value; + semantic_type value; /// The location. location_type location; @@ -1656,27 +1640,25 @@ switch (yykind) /// Type access provider for token (enum) based symbols. struct by_kind { - /// The symbol kind as needed by the constructor. - typedef token_kind_type kind_type; - /// Default constructor. - by_kind () YY_NOEXCEPT; + by_kind (); #if 201103L <= YY_CPLUSPLUS /// Move constructor. - by_kind (by_kind&& that) YY_NOEXCEPT; + by_kind (by_kind&& that); #endif /// Copy constructor. - by_kind (const by_kind& that) YY_NOEXCEPT; - - /// Constructor from (external) token numbers. - by_kind (kind_type t) YY_NOEXCEPT; + by_kind (const by_kind& that); + /// The symbol kind as needed by the constructor. + typedef token_kind_type kind_type; + /// Constructor from (external) token numbers. + by_kind (kind_type t); /// Record that this symbol is empty. - void clear () YY_NOEXCEPT; + void clear (); /// Steal the symbol kind from \a that. void move (by_kind& that); @@ -1703,70 +1685,74 @@ switch (yykind) typedef basic_symbol<by_kind> super_type; /// Empty symbol. - symbol_type () YY_NOEXCEPT {} + 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_kind_type (tok), std::move (l)) + : super_type(token_type (tok), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER6_error || tok == token::TOKEN_PARSER6_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SERVICE_SOCKETS_REQUIRE_ALL || tok == token::TOKEN_SERVICE_SOCKETS_RETRY_WAIT_TIME || tok == token::TOKEN_SERVICE_SOCKETS_MAX_RETRIES || 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_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_READ_TIMEOUT || tok == token::TOKEN_WRITE_TIMEOUT || tok == token::TOKEN_TCP_USER_TIMEOUT || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_ON_FAIL || tok == token::TOKEN_STOP_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_CONTINUE || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_TRUST_ANCHOR || tok == token::TOKEN_CERT_FILE || tok == token::TOKEN_KEY_FILE || tok == token::TOKEN_CIPHER_LIST || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_DDNS_TTL_PERCENT || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_NEVER_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_PARKED_PACKET_LIMIT || tok == token::TOKEN_ALLOCATOR || tok == token::TOKEN_PD_ALLOCATOR || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_EXTENDED_INFO_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_TEMPLATE_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_RESERVATIONS_LOOKUP_FIRST || 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_COMPATIBILITY || tok == token::TOKEN_LENIENT_OPTION_PARSING || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); + } #else symbol_type (int tok, const location_type& l) - : super_type (token_kind_type (tok), l) -#endif + : super_type(token_type (tok), l) { -#if !defined _MSC_VER || defined __clang__ - PARSER6__ASSERT (tok == token::TOKEN_END - || (token::TOKEN_PARSER6_error <= tok && tok <= token::TOKEN_SUB_CONFIG_CONTROL)); -#endif + YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_PARSER6_error || tok == token::TOKEN_PARSER6_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SERVICE_SOCKETS_REQUIRE_ALL || tok == token::TOKEN_SERVICE_SOCKETS_RETRY_WAIT_TIME || tok == token::TOKEN_SERVICE_SOCKETS_MAX_RETRIES || 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_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_READ_TIMEOUT || tok == token::TOKEN_WRITE_TIMEOUT || tok == token::TOKEN_TCP_USER_TIMEOUT || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_ON_FAIL || tok == token::TOKEN_STOP_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_EXIT || tok == token::TOKEN_SERVE_RETRY_CONTINUE || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_TRUST_ANCHOR || tok == token::TOKEN_CERT_FILE || tok == token::TOKEN_KEY_FILE || tok == token::TOKEN_CIPHER_LIST || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_DDNS_TTL_PERCENT || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_NEVER_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_PARKED_PACKET_LIMIT || tok == token::TOKEN_ALLOCATOR || tok == token::TOKEN_PD_ALLOCATOR || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_EXTENDED_INFO_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_TEMPLATE_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_RESERVATIONS_LOOKUP_FIRST || 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_COMPATIBILITY || tok == token::TOKEN_LENIENT_OPTION_PARSING || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, bool v, location_type l) - : super_type (token_kind_type (tok), std::move (v), std::move (l)) + : super_type(token_type (tok), std::move (v), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_BOOLEAN); + } #else symbol_type (int tok, const bool& v, const location_type& l) - : super_type (token_kind_type (tok), v, l) -#endif + : super_type(token_type (tok), v, l) { -#if !defined _MSC_VER || defined __clang__ - PARSER6__ASSERT (tok == token::TOKEN_BOOLEAN); -#endif + YY_ASSERT (tok == token::TOKEN_BOOLEAN); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, double v, location_type l) - : super_type (token_kind_type (tok), std::move (v), std::move (l)) + : super_type(token_type (tok), std::move (v), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_FLOAT); + } #else symbol_type (int tok, const double& v, const location_type& l) - : super_type (token_kind_type (tok), v, l) -#endif + : super_type(token_type (tok), v, l) { -#if !defined _MSC_VER || defined __clang__ - PARSER6__ASSERT (tok == token::TOKEN_FLOAT); -#endif + YY_ASSERT (tok == token::TOKEN_FLOAT); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, int64_t v, location_type l) - : super_type (token_kind_type (tok), std::move (v), std::move (l)) + : super_type(token_type (tok), std::move (v), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_INTEGER); + } #else symbol_type (int tok, const int64_t& v, const location_type& l) - : super_type (token_kind_type (tok), v, l) -#endif + : super_type(token_type (tok), v, l) { -#if !defined _MSC_VER || defined __clang__ - PARSER6__ASSERT (tok == token::TOKEN_INTEGER); -#endif + YY_ASSERT (tok == token::TOKEN_INTEGER); } +#endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, std::string v, location_type l) - : super_type (token_kind_type (tok), std::move (v), std::move (l)) + : super_type(token_type (tok), std::move (v), std::move (l)) + { + YY_ASSERT (tok == token::TOKEN_STRING); + } #else symbol_type (int tok, const std::string& v, const location_type& l) - : super_type (token_kind_type (tok), v, l) -#endif + : super_type(token_type (tok), v, l) { -#if !defined _MSC_VER || defined __clang__ - PARSER6__ASSERT (tok == token::TOKEN_STRING); -#endif + YY_ASSERT (tok == token::TOKEN_STRING); } +#endif }; /// Build a parser object. @@ -1814,7 +1800,7 @@ switch (yykind) /// YYSYMBOL. No bounds checking. static std::string symbol_name (symbol_kind_type yysymbol); - // Implementation of make_symbol for each token kind. + // Implementation of make_symbol for each symbol type. #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -2943,6 +2929,21 @@ switch (yykind) #if 201103L <= YY_CPLUSPLUS static symbol_type + make_DDNS_TTL_PERCENT (location_type l) + { + return symbol_type (token::TOKEN_DDNS_TTL_PERCENT, std::move (l)); + } +#else + static + symbol_type + make_DDNS_TTL_PERCENT (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_TTL_PERCENT, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type make_STORE_EXTENDED_INFO (location_type l) { return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, std::move (l)); @@ -5151,9 +5152,9 @@ switch (yykind) { public: context (const Dhcp6Parser& yyparser, const symbol_type& yyla); - const symbol_type& lookahead () const YY_NOEXCEPT { return yyla_; } - symbol_kind_type token () const YY_NOEXCEPT { return yyla_.kind (); } - const location_type& location () const YY_NOEXCEPT { return yyla_.location; } + const symbol_type& lookahead () const { return yyla_; } + symbol_kind_type token () const { return yyla_.kind (); } + const location_type& location () const { return yyla_.location; } /// Put in YYARG at most YYARGN of the expected tokens, and return the /// number of tokens stored in YYARG. If YYARG is null, return the @@ -5191,19 +5192,19 @@ switch (yykind) /// 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) YY_NOEXCEPT; + 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) YY_NOEXCEPT; + static bool yy_table_value_is_error_ (int yyvalue); static const short yypact_ninf_; static const signed char yytable_ninf_; /// Convert a scanner token kind \a t to a symbol kind. /// In theory \a t should be a token_kind_type, but character literals - /// are valid, yet not members of the token_kind_type enum. - static symbol_kind_type yytranslate_ (int t) YY_NOEXCEPT; + /// are valid, yet not members of the token_type enum. + static symbol_kind_type yytranslate_ (int t); /// Convert the symbol name \a n to a form suitable for a diagnostic. static std::string yytnamerr_ (const char *yystr); @@ -5235,14 +5236,14 @@ switch (yykind) static const short yycheck_[]; - // YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of - // state STATE-NUM. + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. static const short yystos_[]; - // YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. static const short yyr1_[]; - // YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. + // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. static const signed char yyr2_[]; @@ -5341,7 +5342,7 @@ switch (yykind) typedef typename S::size_type size_type; typedef typename std::ptrdiff_t index_type; - stack (size_type n = 200) YY_NOEXCEPT + stack (size_type n = 200) : seq_ (n) {} @@ -5420,7 +5421,7 @@ switch (yykind) class slice { public: - slice (const stack& stack, index_type range) YY_NOEXCEPT + slice (const stack& stack, index_type range) : stack_ (stack) , range_ (range) {} @@ -5470,13 +5471,13 @@ switch (yykind) 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) YY_NOEXCEPT; + void yypop_ (int n = 1); /// Constants. enum { - yylast_ = 1373, ///< Last index in yytable_. - yynnts_ = 454, ///< Number of nonterminal symbols. + yylast_ = 1382, ///< Last index in yytable_. + yynnts_ = 455, ///< Number of nonterminal symbols. yyfinal_ = 30 ///< Termination state number. }; @@ -5488,7 +5489,7 @@ switch (yykind) inline Dhcp6Parser::symbol_kind_type - Dhcp6Parser::yytranslate_ (int t) YY_NOEXCEPT + Dhcp6Parser::yytranslate_ (int t) { // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to // TOKEN-NUM as returned by yylex. @@ -5543,15 +5544,15 @@ switch (yykind) 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221 + 215, 216, 217, 218, 219, 220, 221, 222 }; // Last valid token kind. - const int code_max = 476; + const int code_max = 477; if (t <= 0) return symbol_kind::S_YYEOF; else if (t <= code_max) - return static_cast <symbol_kind_type> (translate_table[t]); + return YY_CAST (symbol_kind_type, translate_table[t]); else return symbol_kind::S_YYUNDEF; } @@ -5600,7 +5601,6 @@ switch (yykind) - template <typename Base> Dhcp6Parser::symbol_kind_type Dhcp6Parser::basic_symbol<Base>::type_get () const YY_NOEXCEPT @@ -5608,7 +5608,6 @@ switch (yykind) return this->kind (); } - template <typename Base> bool Dhcp6Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT @@ -5659,13 +5658,13 @@ switch (yykind) // by_kind. inline - Dhcp6Parser::by_kind::by_kind () YY_NOEXCEPT + Dhcp6Parser::by_kind::by_kind () : kind_ (symbol_kind::S_YYEMPTY) {} #if 201103L <= YY_CPLUSPLUS inline - Dhcp6Parser::by_kind::by_kind (by_kind&& that) YY_NOEXCEPT + Dhcp6Parser::by_kind::by_kind (by_kind&& that) : kind_ (that.kind_) { that.clear (); @@ -5673,20 +5672,18 @@ switch (yykind) #endif inline - Dhcp6Parser::by_kind::by_kind (const by_kind& that) YY_NOEXCEPT + Dhcp6Parser::by_kind::by_kind (const by_kind& that) : kind_ (that.kind_) {} inline - Dhcp6Parser::by_kind::by_kind (token_kind_type t) YY_NOEXCEPT + Dhcp6Parser::by_kind::by_kind (token_kind_type t) : kind_ (yytranslate_ (t)) {} - - inline void - Dhcp6Parser::by_kind::clear () YY_NOEXCEPT + Dhcp6Parser::by_kind::clear () { kind_ = symbol_kind::S_YYEMPTY; } @@ -5706,7 +5703,6 @@ switch (yykind) return kind_; } - inline Dhcp6Parser::symbol_kind_type Dhcp6Parser::by_kind::type_get () const YY_NOEXCEPT @@ -5714,10 +5710,9 @@ switch (yykind) return this->kind (); } - #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 5721 "dhcp6_parser.h" +#line 5716 "dhcp6_parser.h" diff --git a/src/bin/dhcp6/dhcp6_parser.yy b/src/bin/dhcp6/dhcp6_parser.yy index 2c0b7a9c7e..dfe57c6c8b 100644 --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@ -118,6 +118,7 @@ using namespace std; DDNS_QUALIFYING_SUFFIX "ddns-qualifying-suffix" DDNS_UPDATE_ON_RENEW "ddns-update-on-renew" DDNS_USE_CONFLICT_RESOLUTION "ddns-use-conflict-resolution" + DDNS_TTL_PERCENT "ddns-ttl-percent" STORE_EXTENDED_INFO "store-extended-info" SUBNET6 "subnet6" OPTION_DEF "option-def" @@ -550,6 +551,7 @@ global_param: data_directory | ddns_qualifying_suffix | ddns_update_on_renew | ddns_use_conflict_resolution + | ddns_ttl_percent | store_extended_info | statistic_default_sample_count | statistic_default_sample_age @@ -732,6 +734,12 @@ ddns_use_conflict_resolution: DDNS_USE_CONFLICT_RESOLUTION COLON BOOLEAN { ctx.stack_.back()->set("ddns-use-conflict-resolution", b); }; +ddns_ttl_percent: DDNS_TTL_PERCENT COLON FLOAT { + ctx.unique("ddns-ttl-percent", ctx.loc2pos(@1)); + ElementPtr ttl(new DoubleElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("ddns-ttl-percent", ttl); +}; + hostname_char_set: HOSTNAME_CHAR_SET { ctx.unique("hostname-char-set", ctx.loc2pos(@1)); ctx.enter(ctx.NO_KEYWORD); @@ -1584,6 +1592,7 @@ subnet6_param: preferred_lifetime | ddns_qualifying_suffix | ddns_update_on_renew | ddns_use_conflict_resolution + | ddns_ttl_percent | store_extended_info | allocator | pd_allocator @@ -1760,6 +1769,7 @@ shared_network_param: name | ddns_qualifying_suffix | ddns_update_on_renew | ddns_use_conflict_resolution + | ddns_ttl_percent | store_extended_info | allocator | pd_allocator diff --git a/src/bin/dhcp6/dhcp6_srv.cc b/src/bin/dhcp6/dhcp6_srv.cc index c250cef3fa..cdcdcd9c23 100644 --- a/src/bin/dhcp6/dhcp6_srv.cc +++ b/src/bin/dhcp6/dhcp6_srv.cc @@ -2283,7 +2283,9 @@ Dhcpv6Srv::createNameChangeRequests(const Pkt6Ptr& answer, do_fwd, do_rev, opt_fqdn->getDomainName(), iaaddr->getAddress().toText(), - dhcid, 0, calculateDdnsTtl(iaaddr->getValid()), + dhcid, 0, + calculateDdnsTtl(iaaddr->getValid(), + ctx.getDdnsParams()->getTtlPercent()), ctx.getDdnsParams()->getUseConflictResolution())); LOG_DEBUG(ddns6_logger, DBG_DHCP6_DETAIL, DHCP6_DDNS_CREATE_ADD_NAME_CHANGE_REQUEST).arg(ncr->toText()); diff --git a/src/bin/dhcp6/json_config_parser.cc b/src/bin/dhcp6/json_config_parser.cc index 6267ab8eac..324b8c34f1 100644 --- a/src/bin/dhcp6/json_config_parser.cc +++ b/src/bin/dhcp6/json_config_parser.cc @@ -812,6 +812,7 @@ processDhcp6Config(isc::data::ConstElementPtr config_set) { (config_pair.first == "ddns-qualifying-suffix") || (config_pair.first == "ddns-update-on-renew") || (config_pair.first == "ddns-use-conflict-resolution") || + (config_pair.first == "ddns-ttl-percent") || (config_pair.first == "store-extended-info") || (config_pair.first == "statistic-default-sample-count") || (config_pair.first == "statistic-default-sample-age") || diff --git a/src/bin/dhcp6/location.hh b/src/bin/dhcp6/location.hh index 2b2df149d8..a8d79e7bb0 100644 --- a/src/bin/dhcp6/location.hh +++ b/src/bin/dhcp6/location.hh @@ -1,9 +1,8 @@ -// Generated 202303131406 -// A Bison parser, made by GNU Bison 3.8.2. +// A Bison parser, made by GNU Bison 3.7.2. // Locations for Bison parsers in C++ -// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -16,7 +15,7 @@ // GNU General Public License for more details. // You should have received a copy of the GNU General Public License -// along with this program. If not, see <https://www.gnu.org/licenses/>. +// along with this program. If not, see <http://www.gnu.org/licenses/>. // As a special exception, you may create a larger work that contains // part or all of the Bison parser skeleton and distribute that work diff --git a/src/bin/dhcp6/tests/fqdn_unittest.cc b/src/bin/dhcp6/tests/fqdn_unittest.cc index b27701d6a1..f91342fa1d 100644 --- a/src/bin/dhcp6/tests/fqdn_unittest.cc +++ b/src/bin/dhcp6/tests/fqdn_unittest.cc @@ -598,6 +598,8 @@ public: /// @param fqdn The expected string value of the FQDN, if blank the /// check is skipped /// @param exp_use_cr expected value of NCR::conflict_resolution_ + /// @param ddns_ttl_percent expected value of ddns_ttl_percent used for + /// the NCR void verifyNameChangeRequest(const isc::dhcp_ddns::NameChangeType type, const bool reverse, const bool forward, const std::string& addr, @@ -605,7 +607,9 @@ public: const uint64_t expires, const uint16_t valid_lft, const std::string& fqdn = "", - const bool exp_use_cr = true) { + const bool exp_use_cr = true, + util::Optional<double> exp_ddns_ttl_percent + = util::Optional<double>()) { NameChangeRequestPtr ncr; ASSERT_NO_THROW(ncr = d2_mgr_.peekAt(0)); ASSERT_TRUE(ncr); @@ -618,7 +622,7 @@ public: EXPECT_EQ(dhcid, ncr->getDhcid().toStr()); } - uint32_t ttl = calculateDdnsTtl(valid_lft); + uint32_t ttl = calculateDdnsTtl(valid_lft, exp_ddns_ttl_percent); if (expires != 0) { EXPECT_EQ(expires + ttl, ncr->getLeaseExpiresOn()); } @@ -2140,4 +2144,39 @@ TEST_F(FqdnDhcpv6SrvTest, processRequestRenew) { } } +// Verify that ddns-ttl-percent can be used to calculate +// NCR lifetime. +TEST_F(FqdnDhcpv6SrvTest, ddnsTtlPercent) { + // Create Reply message with Client Id and Server id. + Pkt6Ptr answer = generateMessageWithIds(DHCPV6_REPLY); + + // Create an IA. + addIA(1234, IOAddress("2001:db8:1::1"), answer); + + // Use domain name in upper case. It should be converted to lower-case + // before DHCID is calculated. So, we should get the same result as if + // we typed domain name in lower-case. + Option6ClientFqdnPtr fqdn = createClientFqdn(Option6ClientFqdn::FLAG_S, + "MYHOST.EXAMPLE.COM", + Option6ClientFqdn::FULL); + answer->addOption(fqdn); + + // Create NameChangeRequest for the first allocated address. + AllocEngine::ClientContext6 ctx; + subnet_->setDdnsUseConflictResolution(false); + subnet_->setDdnsTtlPercent(Optional<double>(0.10)); + ctx.subnet_ = subnet_; + ctx.fwd_dns_update_ = ctx.rev_dns_update_ = true; + ASSERT_NO_THROW(srv_->createNameChangeRequests(answer, ctx)); + ASSERT_EQ(1, d2_mgr_.getQueueSize()); + + // Verify that NameChangeRequest is correct. + verifyNameChangeRequest(isc::dhcp_ddns::CHG_ADD, true, true, + "2001:db8:1::1", + "000201415AA33D1187D148275136FA30300478" + "FAAAA3EBD29826B5C907B2C9268A6F52", + 0, 500, "", false, subnet_->getDdnsTtlPercent()); +} + + } // end of anonymous namespace diff --git a/src/lib/dhcpsrv/cfg_globals.cc b/src/lib/dhcpsrv/cfg_globals.cc index e267d5856a..a8083e0128 100644 --- a/src/lib/dhcpsrv/cfg_globals.cc +++ b/src/lib/dhcpsrv/cfg_globals.cc @@ -51,6 +51,7 @@ CfgGlobals::nameToIndex = { { "ddns-use-conflict-resolution", DDNS_USE_CONFLICT_RESOLUTION }, { "parked-packet-limit", PARKED_PACKET_LIMIT }, { "allocator", ALLOCATOR }, + { "ddns-ttl-percent", DDNS_TTL_PERCENT }, // DHCPv4 specific parameters. { "echo-client-id", ECHO_CLIENT_ID }, diff --git a/src/lib/dhcpsrv/cfg_globals.h b/src/lib/dhcpsrv/cfg_globals.h index c3c39a5e4b..0dfaf666d6 100644 --- a/src/lib/dhcpsrv/cfg_globals.h +++ b/src/lib/dhcpsrv/cfg_globals.h @@ -74,6 +74,7 @@ public: DDNS_USE_CONFLICT_RESOLUTION, PARKED_PACKET_LIMIT, ALLOCATOR, + DDNS_TTL_PERCENT, // DHCPv4 specific parameters. ECHO_CLIENT_ID, diff --git a/src/lib/dhcpsrv/dhcpsrv_messages.cc b/src/lib/dhcpsrv/dhcpsrv_messages.cc index 5e561c5162..2d821c0b68 100644 --- a/src/lib/dhcpsrv/dhcpsrv_messages.cc +++ b/src/lib/dhcpsrv/dhcpsrv_messages.cc @@ -49,6 +49,7 @@ extern const isc::log::MessageID DHCPSRV_CFGMGR_UPDATE_SUBNET6 = "DHCPSRV_CFGMGR extern const isc::log::MessageID DHCPSRV_CFGMGR_USE_ADDRESS = "DHCPSRV_CFGMGR_USE_ADDRESS"; extern const isc::log::MessageID DHCPSRV_CFGMGR_USE_UNICAST = "DHCPSRV_CFGMGR_USE_UNICAST"; extern const isc::log::MessageID DHCPSRV_CLOSE_DB = "DHCPSRV_CLOSE_DB"; +extern const isc::log::MessageID DHCPSRV_DDNS_TTL_PERCENT_TOO_SMALL = "DHCPSRV_DDNS_TTL_PERCENT_TOO_SMALL"; extern const isc::log::MessageID DHCPSRV_DEPRECATED = "DHCPSRV_DEPRECATED"; extern const isc::log::MessageID DHCPSRV_DHCP4O6_RECEIVED_BAD_PACKET = "DHCPSRV_DHCP4O6_RECEIVED_BAD_PACKET"; extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_ERROR_EXCEPTION = "DHCPSRV_DHCP_DDNS_ERROR_EXCEPTION"; @@ -304,6 +305,7 @@ const char* values[] = { "DHCPSRV_CFGMGR_USE_ADDRESS", "listening on address %1, on interface %2", "DHCPSRV_CFGMGR_USE_UNICAST", "listening on unicast address %1, on interface %2", "DHCPSRV_CLOSE_DB", "closing currently open %1 database", + "DHCPSRV_DDNS_TTL_PERCENT_TOO_SMALL", "ddns-ttl-percent %1 of lease lifetime %2 is too small, ignoring it", "DHCPSRV_DEPRECATED", "This configuration is using a deprecated feature: %1", "DHCPSRV_DHCP4O6_RECEIVED_BAD_PACKET", "received bad DHCPv4o6 packet: %1", "DHCPSRV_DHCP_DDNS_ERROR_EXCEPTION", "error handler for DHCP_DDNS IO generated an expected exception: %1", diff --git a/src/lib/dhcpsrv/dhcpsrv_messages.h b/src/lib/dhcpsrv/dhcpsrv_messages.h index a664868a13..ad70ed43f4 100644 --- a/src/lib/dhcpsrv/dhcpsrv_messages.h +++ b/src/lib/dhcpsrv/dhcpsrv_messages.h @@ -50,6 +50,7 @@ extern const isc::log::MessageID DHCPSRV_CFGMGR_UPDATE_SUBNET6; extern const isc::log::MessageID DHCPSRV_CFGMGR_USE_ADDRESS; extern const isc::log::MessageID DHCPSRV_CFGMGR_USE_UNICAST; extern const isc::log::MessageID DHCPSRV_CLOSE_DB; +extern const isc::log::MessageID DHCPSRV_DDNS_TTL_PERCENT_TOO_SMALL; extern const isc::log::MessageID DHCPSRV_DEPRECATED; extern const isc::log::MessageID DHCPSRV_DHCP4O6_RECEIVED_BAD_PACKET; extern const isc::log::MessageID DHCPSRV_DHCP_DDNS_ERROR_EXCEPTION; diff --git a/src/lib/dhcpsrv/dhcpsrv_messages.mes b/src/lib/dhcpsrv/dhcpsrv_messages.mes index a0fd0e8b85..1ac57ad6c4 100644 --- a/src/lib/dhcpsrv/dhcpsrv_messages.mes +++ b/src/lib/dhcpsrv/dhcpsrv_messages.mes @@ -1279,3 +1279,13 @@ indicate an error in the source code, please submit a bug report. % DHCPSRV_UNKNOWN_DB unknown database type: %1 The database access string specified a database type (given in the message) that is unknown to the software. This is a configuration error. + +% DHCPSRV_DDNS_TTL_PERCENT_TOO_SMALL ddns-ttl-percent %1 of lease lifetime %2 is too small, ignoring it +A debug message issued when the DDNS TTL value calculated using the +ddns-ttl-percent is zero. Kea will ignore the value and calculate +the DDNS TTL as though ddsn-ttl-percent were not specified. The +value of ddns-ttl-percent and the lease lifetime are shown in +the message details. + + + diff --git a/src/lib/dhcpsrv/ncr_generator.cc b/src/lib/dhcpsrv/ncr_generator.cc index bcb8011e68..34905e219b 100644 --- a/src/lib/dhcpsrv/ncr_generator.cc +++ b/src/lib/dhcpsrv/ncr_generator.cc @@ -24,13 +24,14 @@ namespace { /// /// This method is exception safe. /// +/// @param chg_type type of change to create CHG_ADD or CHG_REMOVE /// @param lease Pointer to a lease for which NCR should be sent. /// @param identifier Identifier to be used to generate DHCID for /// the DNS update. For DHCPv4 it will be hardware address or client /// identifier. For DHCPv6 it will be a DUID. /// @param label Client identification information in the textual format. /// This is used for logging purposes. -/// @param use_conflict_resolution flag that tells D2 whether or not to +/// @param subnet subnet to which the lease belongs. /// use conflict resolution. /// /// @tparam LeasePtrType Pointer to a lease. @@ -38,8 +39,7 @@ namespace { template<typename LeasePtrType, typename IdentifierType> void queueNCRCommon(const NameChangeType& chg_type, const LeasePtrType& lease, const IdentifierType& identifier, const std::string& label, - const bool use_conflict_resolution = true) { - + NetworkPtr subnet) { // Check if there is a need for update. if (lease->hostname_.empty() || (!lease->fqdn_fwd_ && !lease->fqdn_rev_) || !CfgMgr::instance().getD2ClientMgr().ddnsEnabled()) { @@ -51,6 +51,13 @@ void queueNCRCommon(const NameChangeType& chg_type, const LeasePtrType& lease, return; } + bool use_conflict_resolution = true; + util::Optional<double> ddns_ttl_percent; + if (subnet) { + use_conflict_resolution = subnet->getDdnsUseConflictResolution(); + ddns_ttl_percent = subnet->getDdnsTtlPercent(); + } + try { // Create DHCID std::vector<uint8_t> hostname_wire; @@ -93,24 +100,18 @@ void queueNCR(const NameChangeType& chg_type, const Lease4Ptr& lease) { if (lease) { // Figure out from the lease's subnet if we should use conflict resolution. // If there's no subnet, something hinky is going on so we'll set it true. - bool use_cr = true; Subnet4Ptr subnet = CfgMgr::instance().getCurrentCfg() ->getCfgSubnets4()->getSubnet(lease->subnet_id_); - if (subnet) { - // We should always have subnet. - use_cr = subnet->getDdnsUseConflictResolution(); - } // Client id takes precedence over HW address. if (lease->client_id_) { queueNCRCommon(chg_type, lease, lease->client_id_->getClientId(), - Pkt4::makeLabel(lease->hwaddr_, lease->client_id_), use_cr); - + Pkt4::makeLabel(lease->hwaddr_, lease->client_id_), subnet); } else { // Client id is not specified for the lease. Use HW address // instead. queueNCRCommon(chg_type, lease, lease->hwaddr_, - Pkt4::makeLabel(lease->hwaddr_, lease->client_id_), use_cr); + Pkt4::makeLabel(lease->hwaddr_, lease->client_id_), subnet); } } } @@ -120,20 +121,27 @@ void queueNCR(const NameChangeType& chg_type, const Lease6Ptr& lease) { if (lease && (lease->type_ != Lease::TYPE_PD) && lease->duid_) { // Figure out from the lease's subnet if we should use conflict resolution. // If there's no subnet, something hinky is going on so we'll set it true. - bool use_cr = true; Subnet6Ptr subnet = CfgMgr::instance().getCurrentCfg() ->getCfgSubnets6()->getSubnet(lease->subnet_id_); - if (subnet) { - // We should always have subnet. - use_cr = subnet->getDdnsUseConflictResolution(); - } - queueNCRCommon(chg_type, lease, *(lease->duid_), - Pkt6::makeLabel(lease->duid_, lease->hwaddr_), use_cr); + Pkt6::makeLabel(lease->duid_, lease->hwaddr_), subnet); } } -uint32_t calculateDdnsTtl(uint32_t lease_lft) { +uint32_t calculateDdnsTtl(uint32_t lease_lft, const util::Optional<double>& ddns_ttl_percent) { + // If we have a configured percentage use it to calculate TTL. + if (!ddns_ttl_percent.unspecified() && (ddns_ttl_percent.get() > 0.0000)) { + uint32_t new_lft = static_cast<uint32_t>(round(ddns_ttl_percent.get() * lease_lft)); + if (new_lft > 0) { + return (new_lft); + } else { + LOG_DEBUG(dhcpsrv_logger, DHCPSRV_DBG_TRACE_DETAIL_DATA, + DHCPSRV_DDNS_TTL_PERCENT_TOO_SMALL) + .arg(ddns_ttl_percent.get()) + .arg(lease_lft); + } + } + // Per RFC 4702 DDNS RR TTL should be given by: // ((lease life time / 3) < 10 minutes) ? 10 minutes : (lease life time / 3) if (lease_lft < 1800) { diff --git a/src/lib/dhcpsrv/ncr_generator.h b/src/lib/dhcpsrv/ncr_generator.h index 29b56a5f0e..2994481780 100644 --- a/src/lib/dhcpsrv/ncr_generator.h +++ b/src/lib/dhcpsrv/ncr_generator.h @@ -9,6 +9,7 @@ #include <dhcp_ddns/ncr_msg.h> #include <dhcpsrv/lease.h> +#include <util/optional.h> namespace isc { namespace dhcp { @@ -52,7 +53,9 @@ void queueNCR(const dhcp_ddns::NameChangeType& chg_type, const Lease6Ptr& lease) /// @param lease_life_time valid life time of the lease /// /// @return the calculated TTL. -uint32_t calculateDdnsTtl(uint32_t lease_life_time); +uint32_t calculateDdnsTtl(uint32_t lease_life_time, + const util::Optional<double>& ddns_ttl_percent + = util::Optional<double>()); } // end of isc::dhcp namespace } // end of isc namespace diff --git a/src/lib/dhcpsrv/network.cc b/src/lib/dhcpsrv/network.cc index f56e8dfa6e..30532d80d9 100644 --- a/src/lib/dhcpsrv/network.cc +++ b/src/lib/dhcpsrv/network.cc @@ -236,6 +236,10 @@ Network::toElement() const { map->set("ddns-qualifying-suffix", Element::create(ddns_qualifying_suffix_)); } + if (!ddns_ttl_percent_.unspecified()) { + map->set("ddns-ttl-percent", Element::create(ddns_ttl_percent_)); + } + if (!hostname_char_set_.unspecified()) { map->set("hostname-char-set", Element::create(hostname_char_set_)); } diff --git a/src/lib/dhcpsrv/network.h b/src/lib/dhcpsrv/network.h index de3ce2a64a..147f79e826 100644 --- a/src/lib/dhcpsrv/network.h +++ b/src/lib/dhcpsrv/network.h @@ -219,7 +219,7 @@ public: ddns_replace_client_name_mode_(), ddns_generated_prefix_(), ddns_qualifying_suffix_(), hostname_char_set_(), hostname_char_replacement_(), store_extended_info_(), cache_threshold_(), cache_max_age_(), ddns_update_on_renew_(), - ddns_use_conflict_resolution_() { + ddns_use_conflict_resolution_(), ddns_ttl_percent_() { } /// @brief Virtual destructor. @@ -663,6 +663,23 @@ public: ddns_qualifying_suffix_ = ddns_qualifying_suffix; } + /// @brief Returns ddns-ttl-percent + /// + /// @param inheritance inheritance mode to be used. + util::Optional<double> + getDdnsTtlPercent(const Inheritance& inheritance = Inheritance::ALL) const { + return (getProperty<Network>(&Network::getDdnsTtlPercent, + ddns_ttl_percent_, inheritance, + CfgGlobals::DDNS_TTL_PERCENT)); + } + + /// @brief Sets new ddns-ttl-percent + /// + /// @param ddns_ttl_percent New value to use. + void setDdnsTtlPercent(const util::Optional<double>& ddns_ttl_percent) { + ddns_ttl_percent_ = ddns_ttl_percent; + } + /// @brief Return the char set regexp used to sanitize client hostnames. util::Optional<std::string> getHostnameCharSet(const Inheritance& inheritance = Inheritance::ALL) const { @@ -1195,6 +1212,9 @@ protected: /// @brief Allocator used for IP address allocations. util::Optional<std::string> allocator_type_; + /// @brief Percentage of the lease lifetime to use for DNS TTL. + util::Optional<double> ddns_ttl_percent_; + /// @brief Pointer to another network that this network belongs to. /// /// The most common case is that this instance is a subnet which belongs diff --git a/src/lib/dhcpsrv/parsers/base_network_parser.cc b/src/lib/dhcpsrv/parsers/base_network_parser.cc index 69b79eb24c..e75abeed29 100644 --- a/src/lib/dhcpsrv/parsers/base_network_parser.cc +++ b/src/lib/dhcpsrv/parsers/base_network_parser.cc @@ -270,6 +270,10 @@ BaseNetworkParser::parseDdnsParams(const data::ConstElementPtr& network_data, if (network_data->contains("ddns-use-conflict-resolution")) { network->setDdnsUseConflictResolution(getBoolean(network_data, "ddns-use-conflict-resolution")); } + + if (network_data->contains("ddns-ttl-percent")) { + network->setDdnsTtlPercent(getDouble(network_data, "ddns-ttl-percent")); + } } void diff --git a/src/lib/dhcpsrv/parsers/base_network_parser.h b/src/lib/dhcpsrv/parsers/base_network_parser.h index b2359f83bd..7ba01f70e7 100644 --- a/src/lib/dhcpsrv/parsers/base_network_parser.h +++ b/src/lib/dhcpsrv/parsers/base_network_parser.h @@ -98,6 +98,8 @@ protected: /// - ddns-replace-client-name /// - ddns-generated-prefix /// - ddns-qualifying-suffix + /// - ddns-use-conflict-resolution + /// - ddns-ttl-percent /// /// @param network_data Data element holding shared network /// configuration to be parsed. diff --git a/src/lib/dhcpsrv/parsers/simple_parser4.cc b/src/lib/dhcpsrv/parsers/simple_parser4.cc index 4c8c518e59..25eca87072 100644 --- a/src/lib/dhcpsrv/parsers/simple_parser4.cc +++ b/src/lib/dhcpsrv/parsers/simple_parser4.cc @@ -101,6 +101,7 @@ const SimpleKeywords SimpleParser4::GLOBAL4_PARAMETERS = { { "parked-packet-limit", Element::integer }, { "allocator", Element::string }, { "offer-lifetime", Element::integer }, + { "ddns-ttl-percent", Element::real }, }; /// @brief This table defines default global values for DHCPv4 @@ -256,7 +257,8 @@ const SimpleKeywords SimpleParser4::SUBNET4_PARAMETERS = { { "ddns-update-on-renew", Element::boolean }, { "ddns-use-conflict-resolution", Element::boolean }, { "allocator", Element::string }, - { "offer-lifetime", Element::integer } + { "offer-lifetime", Element::integer }, + { "ddns-ttl-percent", Element::real }, }; /// @brief This table defines default values for each IPv4 subnet. @@ -376,7 +378,8 @@ const SimpleKeywords SimpleParser4::SHARED_NETWORK4_PARAMETERS = { { "ddns-update-on-renew", Element::boolean }, { "ddns-use-conflict-resolution", Element::boolean }, { "allocator", Element::string }, - { "offer-lifetime", Element::integer } + { "offer-lifetime", Element::integer }, + { "ddns-ttl-percent", Element::real }, }; /// @brief This table defines default values for each IPv4 shared network. diff --git a/src/lib/dhcpsrv/parsers/simple_parser6.cc b/src/lib/dhcpsrv/parsers/simple_parser6.cc index be310a3025..3ec663a4b1 100644 --- a/src/lib/dhcpsrv/parsers/simple_parser6.cc +++ b/src/lib/dhcpsrv/parsers/simple_parser6.cc @@ -101,7 +101,8 @@ const SimpleKeywords SimpleParser6::GLOBAL6_PARAMETERS = { { "compatibility", Element::map }, { "parked-packet-limit", Element::integer }, { "allocator", Element::string }, - { "pd-allocator", Element::string } + { "pd-allocator", Element::string }, + { "ddns-ttl-percent", Element::real }, }; /// @brief This table defines default global values for DHCPv6 @@ -139,7 +140,7 @@ const SimpleDefaults SimpleParser6::GLOBAL6_DEFAULTS = { { "ddns-use-conflict-resolution", Element::boolean, "true" }, { "parked-packet-limit", Element::integer, "256" }, { "allocator", Element::string, "iterative" }, - { "pd-allocator", Element::string, "iterative" } + { "pd-allocator", Element::string, "iterative" }, }; /// @brief This table defines all option definition parameters. @@ -251,7 +252,8 @@ const SimpleKeywords SimpleParser6::SUBNET6_PARAMETERS = { { "ddns-update-on-renew", Element::boolean }, { "ddns-use-conflict-resolution", Element::boolean }, { "allocator", Element::string }, - { "pd-allocator", Element::string } + { "pd-allocator", Element::string }, + { "ddns-ttl-percent", Element::real }, }; /// @brief This table defines default values for each IPv6 subnet. @@ -390,7 +392,8 @@ const SimpleKeywords SimpleParser6::SHARED_NETWORK6_PARAMETERS = { { "ddns-update-on-renew", Element::boolean }, { "ddns-use-conflict-resolution", Element::boolean }, { "allocator", Element::string }, - { "pd-allocator", Element::string } + { "pd-allocator", Element::string }, + { "ddns-ttl-percent", Element::real }, }; /// @brief This table defines default values for each IPv6 subnet. diff --git a/src/lib/dhcpsrv/srv_config.cc b/src/lib/dhcpsrv/srv_config.cc index b44d410baf..3d2dfce45e 100644 --- a/src/lib/dhcpsrv/srv_config.cc +++ b/src/lib/dhcpsrv/srv_config.cc @@ -1031,5 +1031,14 @@ DdnsParams::getUseConflictResolution() const { return (subnet_->getDdnsUseConflictResolution().get()); } +util::Optional<double> +DdnsParams::getTtlPercent() const { + if (!subnet_) { + return (util::Optional<double>()); + } + + return (subnet_->getDdnsTtlPercent()); +} + } // namespace dhcp } // namespace isc diff --git a/src/lib/dhcpsrv/srv_config.h b/src/lib/dhcpsrv/srv_config.h index 4790341735..6bc66e596c 100644 --- a/src/lib/dhcpsrv/srv_config.h +++ b/src/lib/dhcpsrv/srv_config.h @@ -30,6 +30,7 @@ #include <cc/data.h> #include <cc/user_context.h> #include <cc/simple_parser.h> +#include <util/optional.h> #include <util/strutil.h> #include <boost/shared_ptr.hpp> @@ -149,6 +150,14 @@ public: /// @return True if conflict resolution should be used. bool getUseConflictResolution() const; + /// @brief Returns percent of lease lifetime to use for TTL + /// + /// This value, if greater than zero, is used to calculate the lease lifetime + /// passed to D2 in the NCR. Otherwise the value is calculated per RFC 4702. + /// + /// @return True if conflict resolution should be used. + util::Optional<double> getTtlPercent() const; + /// @brief Returns the subnet-id of the subnet associated with these parameters /// /// @return value of subnet-id (or 0 if no subnet is associated) diff --git a/src/lib/dhcpsrv/tests/ncr_generator_unittest.cc b/src/lib/dhcpsrv/tests/ncr_generator_unittest.cc index 95909653d1..ae1e0348d5 100644 --- a/src/lib/dhcpsrv/tests/ncr_generator_unittest.cc +++ b/src/lib/dhcpsrv/tests/ncr_generator_unittest.cc @@ -686,6 +686,28 @@ TEST_F(NCRGenerator4Test, calculateDdnsTtl) { // A life time > 1800 should be 1/3 of the value. EXPECT_EQ(601, calculateDdnsTtl(1803)); + + // Now check permutations of values for ddns-ttl-percent. + util::Optional<double> ddns_ttl_percent; + + // Unspecified percent should result in normal per RFC calculation. + EXPECT_EQ(601, calculateDdnsTtl(1803, ddns_ttl_percent)); + + // A percentage of zero should be ignored. + ddns_ttl_percent = 0.0; + EXPECT_EQ(601, calculateDdnsTtl(1803, ddns_ttl_percent)); + + // A percentage that results in near zero should be ignored. + ddns_ttl_percent = 0.000005; + EXPECT_EQ(601, calculateDdnsTtl(1803, ddns_ttl_percent)); + + // A large enough percentage should be used. + ddns_ttl_percent = 0.01; + EXPECT_EQ(18, calculateDdnsTtl(1803, ddns_ttl_percent)); + + // A large enough percentage should be used. + ddns_ttl_percent = 1.50; + EXPECT_EQ(2705, calculateDdnsTtl(1803, ddns_ttl_percent)); } } // end of anonymous namespace diff --git a/src/lib/dhcpsrv/tests/network_unittest.cc b/src/lib/dhcpsrv/tests/network_unittest.cc index 921ac8ba39..c790dca123 100644 --- a/src/lib/dhcpsrv/tests/network_unittest.cc +++ b/src/lib/dhcpsrv/tests/network_unittest.cc @@ -182,6 +182,7 @@ TEST_F(NetworkTest, inheritanceSupport4) { globals_->set("ddns-use-conflict-resolution", Element::create(true)); globals_->set("allocator", Element::create("random")); globals_->set("offer-lifetime", Element::create(45)); + globals_->set("ddns-ttl-percent", Element::create(0.75)); // For each parameter for which inheritance is supported run // the test that checks if the values are inherited properly. @@ -365,6 +366,12 @@ TEST_F(NetworkTest, inheritanceSupport4) { testNetworkInheritance<TestNetwork4>(&Network4::getOfferLft, &Network4::setOfferLft, 10, 45); + }, + { + SCOPED_TRACE("ddns-ttl-percent"); + testNetworkInheritance<TestNetwork4>(&Network::getDdnsTtlPercent, + &Network::setDdnsTtlPercent, + .33, .75); } } @@ -387,6 +394,7 @@ TEST_F(NetworkTest, inheritanceSupport6) { globals_->set("ddns-use-conflict-resolution", Element::create(true)); globals_->set("allocator", Element::create("random")); globals_->set("pd-allocator", Element::create("random")); + globals_->set("ddns-ttl-percent", Element::create(0.55)); // For each parameter for which inheritance is supported run // the test that checks if the values are inherited properly. @@ -477,6 +485,12 @@ TEST_F(NetworkTest, inheritanceSupport6) { &Network6::setPdAllocatorType, "iterative", "random"); } + { + SCOPED_TRACE("ddns-ttl-percent"); + testNetworkInheritance<TestNetwork6>(&Network::getDdnsTtlPercent, + &Network::setDdnsTtlPercent, + .22, .55); + } // Interface-id requires special type of test. boost::shared_ptr<TestNetwork6> net_child(new TestNetwork6()); diff --git a/src/lib/dhcpsrv/tests/srv_config_unittest.cc b/src/lib/dhcpsrv/tests/srv_config_unittest.cc index 67150a578c..4881e38a11 100644 --- a/src/lib/dhcpsrv/tests/srv_config_unittest.cc +++ b/src/lib/dhcpsrv/tests/srv_config_unittest.cc @@ -1453,6 +1453,8 @@ TEST_F(SrvConfigTest, getDdnsParamsTest4) { conf.addConfiguredGlobal("hostname-char-replacement", Element::create("x")); // Enable conflict resolution globally. conf.addConfiguredGlobal("ddns-use-conflict-resolution", Element::create(true)); + // Configure TTL percent globally. + conf.addConfiguredGlobal("ddns-ttl-percent", Element::create(20.0)); // Add a plain subnet Triplet<uint32_t> def_triplet; @@ -1492,6 +1494,7 @@ TEST_F(SrvConfigTest, getDdnsParamsTest4) { subnet2->setHostnameCharSet(""); subnet2->setDdnsUpdateOnRenew(true); subnet2->setDdnsUseConflictResolution(false); + subnet2->setDdnsTtlPercent(Optional<double>(40.0)); // Get DDNS params for subnet1. ASSERT_NO_THROW(params = conf_.getDdnsParams(subnet1)); @@ -1507,6 +1510,8 @@ TEST_F(SrvConfigTest, getDdnsParamsTest4) { EXPECT_EQ("x", params->getHostnameCharReplacement()); EXPECT_FALSE(params->getUpdateOnRenew()); EXPECT_TRUE(params->getUseConflictResolution()); + EXPECT_FALSE(params->getTtlPercent().unspecified()); + EXPECT_EQ(20.0, params->getTtlPercent().get()); // We inherited a non-blank hostname_char_set so we // should get a sanitizer instance. @@ -1529,6 +1534,8 @@ TEST_F(SrvConfigTest, getDdnsParamsTest4) { EXPECT_EQ("x", params->getHostnameCharReplacement()); EXPECT_TRUE(params->getUpdateOnRenew()); EXPECT_FALSE(params->getUseConflictResolution()); + EXPECT_FALSE(params->getTtlPercent().unspecified()); + EXPECT_EQ(40.0, params->getTtlPercent().get()); // We have a blank hostname-char-set so we should not get a sanitizer instance. ASSERT_NO_THROW(sanitizer = params->getHostnameSanitizer()); @@ -1584,6 +1591,7 @@ TEST_F(SrvConfigTest, getDdnsParamsNoSubnetTest4) { conf.addConfiguredGlobal("hostname-char-replacement", Element::create("x")); conf.addConfiguredGlobal("ddns-update-on-renew", Element::create(true)); conf.addConfiguredGlobal("ddns-use-conflict-resolution", Element::create(false)); + conf.addConfiguredGlobal("ddns-ttl-percent", Element::create(77.0)); // Get DDNS params for no subnet. Subnet4Ptr subnet4; @@ -1600,6 +1608,7 @@ TEST_F(SrvConfigTest, getDdnsParamsNoSubnetTest4) { EXPECT_TRUE(params->getHostnameCharReplacement().empty()); EXPECT_FALSE(params->getUpdateOnRenew()); EXPECT_TRUE(params->getUseConflictResolution()); + EXPECT_TRUE(params->getTtlPercent().unspecified()); } // Verifies that the scoped values for DDNS parameters can be fetched @@ -1621,6 +1630,8 @@ TEST_F(SrvConfigTest, getDdnsParamsTest6) { conf.addConfiguredGlobal("hostname-char-replacement", Element::create("x")); // Enable conflict resolution globally. conf.addConfiguredGlobal("ddns-use-conflict-resolution", Element::create(true)); + // Configure TTL percent globally. + conf.addConfiguredGlobal("ddns-ttl-percent", Element::create(25.0)); // Add a plain subnet Triplet<uint32_t> def_triplet; @@ -1660,6 +1671,7 @@ TEST_F(SrvConfigTest, getDdnsParamsTest6) { subnet2->setHostnameCharSet(""); subnet2->setDdnsUpdateOnRenew(true); subnet2->setDdnsUseConflictResolution(false); + subnet2->setDdnsTtlPercent(Optional<double>(45.0)); // Get DDNS params for subnet1. ASSERT_NO_THROW(params = conf_.getDdnsParams(subnet1)); @@ -1675,6 +1687,8 @@ TEST_F(SrvConfigTest, getDdnsParamsTest6) { EXPECT_EQ("x", params->getHostnameCharReplacement()); EXPECT_FALSE(params->getUpdateOnRenew()); EXPECT_TRUE(params->getUseConflictResolution()); + EXPECT_FALSE(params->getTtlPercent().unspecified()); + EXPECT_EQ(25.0, params->getTtlPercent().get()); // We inherited a non-blank hostname_char_set so we // should get a sanitizer instance. @@ -1697,6 +1711,8 @@ TEST_F(SrvConfigTest, getDdnsParamsTest6) { EXPECT_EQ("x", params->getHostnameCharReplacement()); EXPECT_TRUE(params->getUpdateOnRenew()); EXPECT_FALSE(params->getUseConflictResolution()); + EXPECT_FALSE(params->getTtlPercent().unspecified()); + EXPECT_EQ(45.0, params->getTtlPercent().get()); // We have a blank hostname-char-set so we should not get a sanitizer instance. ASSERT_NO_THROW(sanitizer = params->getHostnameSanitizer()); @@ -1752,6 +1768,7 @@ TEST_F(SrvConfigTest, getDdnsParamsNoSubnetTest6) { conf.addConfiguredGlobal("hostname-char-replacement", Element::create("x")); conf.addConfiguredGlobal("ddns-update-on-renew", Element::create(true)); conf.addConfiguredGlobal("ddns-use-conflict-resolution", Element::create(false)); + conf.addConfiguredGlobal("ddns-ttl-percent", Element::create(77.0)); // Get DDNS params for no subnet. Subnet6Ptr subnet6; @@ -1766,6 +1783,9 @@ TEST_F(SrvConfigTest, getDdnsParamsNoSubnetTest6) { EXPECT_TRUE(params->getQualifyingSuffix().empty()); EXPECT_TRUE(params->getHostnameCharSet().empty()); EXPECT_TRUE(params->getHostnameCharReplacement().empty()); + EXPECT_FALSE(params->getUpdateOnRenew()); + EXPECT_TRUE(params->getUseConflictResolution()); + EXPECT_TRUE(params->getTtlPercent().unspecified()); } // Verifies that adding multi threading settings works |