diff options
author | Thomas Markwalder <tmark@isc.org> | 2020-10-20 14:35:51 +0200 |
---|---|---|
committer | Thomas Markwalder <tmark@isc.org> | 2020-10-21 20:19:52 +0200 |
commit | 00305bc7d49fd5597e71ad693924b5087bc40e25 (patch) | |
tree | e94ff834fbf5c09031300544947291a07967e814 | |
parent | [1386] Added support for ddns-use-conflict-resolution to dhcpsrv (diff) | |
download | kea-00305bc7d49fd5597e71ad693924b5087bc40e25.tar.xz kea-00305bc7d49fd5597e71ad693924b5087bc40e25.zip |
[#1386] kea-dhcp4/6 now parse ddns-use-conflict-resolution
Both servers parse and store ddns-use-conflict-resolution but
do nothing with it.
doc/examples/kea4/all-keys.json
doc/examples/kea4/with-ddns.json
doc/examples/kea6/all-keys.json
doc/examples/kea6/with-ddns.json
Added entries for ddns-use-conflict-resolution
src/bin/dhcp4/dhcp4_lexer.ll
src/bin/dhcp4/dhcp4_parser.yy
src/bin/dhcp4/json_config_parser.cc
src/bin/dhcp4/tests/get_config_unittest.cc
Added support for ddns-use-conflict-resolution
src/bin/dhcp4/tests/get_config_unittest.cc.skel
Changed important calls to ASSERT_NO_THROW_LOG to ease debugging
src/bin/dhcp6/dhcp6_lexer.ll
src/bin/dhcp6/dhcp6_parser.yy
src/bin/dhcp6/json_config_parser.cc
src/bin/dhcp6/tests/get_config_unittest.cc
Added support for ddns-use-conflict-resolution
src/bin/dhcp6/tests/get_config_unittest.cc.skel
Changed important calls to ASSERT_NO_THROW_LOG to ease debugging
src/lib/dhcpsrv/parsers/base_network_parser.cc
Fixed copy/paste error
28 files changed, 14230 insertions, 17841 deletions
diff --git a/doc/examples/kea4/all-keys.json b/doc/examples/kea4/all-keys.json index 719d823730..38dce67a61 100644 --- a/doc/examples/kea4/all-keys.json +++ b/doc/examples/kea4/all-keys.json @@ -155,6 +155,13 @@ // may be specified at the global, shared-network and subnet levels. "ddns-update-on-renew": true, + // Boolean flag, which is passed to kea-dhcp-ddns with each DDNS + // udpate request to indicate whether or not DNS update conflict + // resolution as described in RFC 4703 should be employed for the + // given update request. The default value for this flag is true. + // It may be specified at the global, shared-network and subnet levels. + "ddns-use-conflict-resolution": true, + // 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, @@ -628,6 +635,9 @@ "ddns-update-on-renew": true, // Shared network level value. See description at the global level. + "ddns-use-conflict-resolution": true, + + // Shared network level value. See description at the global level. "hostname-char-replacement": "x", // Shared network level value. See description at the global level. @@ -741,6 +751,9 @@ "ddns-update-on-renew": true, // Subnet level value. See description at the global level. + "ddns-use-conflict-resolution": true, + + // 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/kea4/with-ddns.json b/doc/examples/kea4/with-ddns.json index 769c7d64e3..8ca16d68af 100644 --- a/doc/examples/kea4/with-ddns.json +++ b/doc/examples/kea4/with-ddns.json @@ -59,6 +59,8 @@ "ddns-replace-client-name" : "when-present", "ddns-generated-prefix" : "test.prefix", "ddns-qualifying-suffix" : "test.suffix.", + "ddns-update-on-renew" : false, + "ddns-use-conflict-resolution" : true, "hostname-char-set": "[^A-Za-z0-9.-]", "hostname-char-replacement": "x", diff --git a/doc/examples/kea6/all-keys.json b/doc/examples/kea6/all-keys.json index c70d8a6ddf..68b26a940d 100644 --- a/doc/examples/kea6/all-keys.json +++ b/doc/examples/kea6/all-keys.json @@ -115,6 +115,13 @@ // may be specified at the global, shared-network and subnet levels. "ddns-update-on-renew": true, + // Boolean flag, which is passed to kea-dhcp-ddns with each DDNS + // udpate request to indicate whether or not DNS update conflict + // resolution as described in RFC 4703 should be employed for the + // given update request. The default value for this flag is true. + // It may be specified at the global, shared-network and subnet levels. + "ddns-use-conflict-resolution": true, + // 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, @@ -575,6 +582,9 @@ "ddns-update-on-renew": true, // Shared network level value. See description at the global level. + "ddns-use-conflict-resolution": true, + + // Shared network level value. See description at the global level. "hostname-char-replacement": "x", // Shared network level value. See description at the global level. @@ -680,6 +690,9 @@ "ddns-update-on-renew": true, // Subnet level value. See description at the global level. + "ddns-use-conflict-resolution": true, + + // 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/with-ddns.json b/doc/examples/kea6/with-ddns.json index f87dfbb3c3..64d7528cf9 100644 --- a/doc/examples/kea6/with-ddns.json +++ b/doc/examples/kea6/with-ddns.json @@ -62,6 +62,8 @@ "ddns-replace-client-name" : "when-present", "ddns-generated-prefix" : "test.prefix", "ddns-qualifying-suffix" : "test.suffix.", + "ddns-update-on-renew" : false, + "ddns-use-conflict-resolution" : true, "hostname-char-set": "[^A-Za-z0-9.-]", "hostname-char-replacement": "x", diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc index 684855314f..9669c1d3f3 100644 --- a/src/bin/dhcp4/dhcp4_lexer.cc +++ b/src/bin/dhcp4/dhcp4_lexer.cc @@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 201 -#define YY_END_OF_BUFFER 202 +#define YY_NUM_RULES 202 +#define YY_END_OF_BUFFER 203 /* 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[1868] = +static const flex_int16_t yy_accept[1891] = { 0, - 194, 194, 0, 0, 0, 0, 0, 0, 0, 0, - 202, 200, 10, 11, 200, 1, 194, 191, 194, 194, - 200, 193, 192, 200, 200, 200, 200, 200, 187, 188, - 200, 200, 200, 189, 190, 5, 5, 5, 200, 200, - 200, 10, 11, 0, 0, 183, 0, 0, 0, 0, + 195, 195, 0, 0, 0, 0, 0, 0, 0, 0, + 203, 201, 10, 11, 201, 1, 195, 192, 195, 195, + 201, 194, 193, 201, 201, 201, 201, 201, 188, 189, + 201, 201, 201, 190, 191, 5, 5, 5, 201, 201, + 201, 10, 11, 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, 1, 194, 194, - 0, 193, 194, 3, 2, 6, 0, 194, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 9, 0, 184, + 0, 0, 0, 0, 0, 0, 0, 1, 195, 195, + 0, 194, 195, 3, 2, 6, 0, 195, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 9, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 186, 0, 0, 0, 0, 0, 0, 0, + 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, @@ -724,10 +724,10 @@ static const flex_int16_t yy_accept[1868] = 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -735,178 +735,180 @@ static const flex_int16_t yy_accept[1868] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 199, 197, 0, 196, 195, 0, 0, - 0, 0, 0, 0, 0, 0, 165, 0, 164, 0, - 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 200, 198, 0, 197, 196, 0, 0, + 0, 0, 0, 0, 0, 0, 166, 0, 165, 0, + 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 18, 0, 0, 0, 0, 198, 195, - 0, 0, 0, 0, 0, 0, 0, 166, 0, 168, + 0, 0, 0, 18, 0, 0, 0, 0, 199, 196, + 0, 0, 0, 0, 0, 0, 0, 167, 0, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 90, 0, 0, 0, 0, 0, 0, 0, 75, - 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, + 0, 91, 0, 0, 0, 0, 0, 0, 0, 76, + 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 78, 0, 39, 0, 0, + 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 79, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, 31, 0, 0, 36, 0, 0, 0, 0, 0, - 0, 0, 12, 170, 169, 0, 0, 0, 122, 0, + 0, 0, 12, 171, 170, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 118, 0, + 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 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, 7, 0, 0, 171, 0, 0, 0, 0, 0, + 0, 7, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 128, 97, 0, - 0, 0, 0, 0, 0, 102, 32, 0, 0, 0, + 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, + 98, 0, 0, 0, 0, 0, 0, 103, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 104, 40, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 105, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, - 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, - - 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, + 0, 118, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 37, 0, 0, 0, 0, 30, 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, 148, 0, 0, + 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - + 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, - 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 175, 0, 0, 0, 0, 0, 0, 0, 0, 115, - 0, 0, 0, 0, 0, 0, 0, 0, 119, 0, - 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, + 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 113, 22, 0, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 0, 0, 0, 0, 72, 0, 0, 0, 0, - 0, 0, 127, 34, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 59, 0, 0, 0, 0, 0, 93, 94, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, + 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 154, 0, 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, + 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, + 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, + 0, 0, 120, 0, 0, 0, 0, 0, 0, 0, + 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 114, 22, + + 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 158, 0, 0, 0, 0, + 73, 0, 0, 0, 0, 0, 0, 128, 34, 0, + 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, + 0, 0, 94, 95, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 179, 0, 73, 87, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, - 0, 0, 0, 154, 0, 0, 152, 0, 143, 142, - 0, 0, 0, 49, 0, 0, 21, 0, 0, 0, - 0, 167, 0, 0, 0, 0, 0, 108, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 136, 0, 0, 145, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, - 15, 0, 41, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, - 57, 0, 0, 120, 0, 0, 0, 0, 111, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, - 0, 173, 0, 0, 178, 0, 96, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 180, 0, 74, + 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 56, 0, 0, 0, 0, 0, 0, 0, 155, + 0, 0, 153, 0, 144, 143, 0, 0, 0, 49, + 0, 0, 21, 0, 0, 0, 0, 168, 0, 0, + 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 137, 0, 0, 146, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 126, 0, 15, 0, 41, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, + 121, 0, 0, 0, 0, 112, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 80, 0, 174, 0, + 0, 179, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 48, 0, - - 0, 0, 0, 0, 181, 0, 0, 106, 27, 0, - 0, 0, 50, 141, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 176, 0, 149, 0, 0, 0, - 0, 0, 0, 0, 0, 25, 0, 0, 0, 24, - 0, 155, 0, 0, 0, 52, 0, 0, 0, 0, - 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 0, 0, 95, 0, 0, 0, 42, 0, 0, + + 14, 0, 0, 0, 0, 0, 48, 0, 0, 0, + 0, 0, 182, 0, 0, 107, 27, 0, 0, 0, + 50, 142, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 0, 150, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 24, 0, + 156, 0, 0, 0, 52, 0, 0, 0, 0, 0, + 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 0, 0, 96, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 126, 0, 0, 0, 26, 0, 0, - 177, 0, 0, 0, 0, 0, 137, 0, 0, 0, + 0, 0, 0, 127, 0, 0, 0, 26, 0, 0, + 178, 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 20, - 0, 180, 71, 0, 0, 0, 0, 174, 172, 0, + 0, 181, 72, 0, 0, 0, 0, 175, 173, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 0, 161, 0, 0, 0, 0, - 0, 0, 0, 134, 0, 0, 0, 110, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, - 0, 139, 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 162, 13, 0, 0, 0, 0, 0, 0, 0, 0, - - 140, 150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, - 0, 0, 0, 0, 0, 0, 0, 133, 0, 55, - 54, 19, 0, 158, 0, 0, 0, 0, 45, 0, - 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 132, 0, 0, 0, 51, 0, - 0, 46, 160, 0, 0, 70, 0, 0, 0, 0, - 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, + 0, 0, 16, 0, 0, 0, 162, 0, 0, 0, + 0, 0, 0, 0, 135, 0, 0, 0, 111, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, + 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, + 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 163, 13, 0, 0, 0, 0, 0, 0, + 0, 0, 141, 151, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, + 134, 0, 55, 54, 19, 0, 159, 0, 0, 0, + 0, 45, 0, 0, 0, 93, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, + 0, 0, 51, 0, 0, 46, 161, 0, 0, 71, + 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 29, 0, 0, 67, 0, 0, - 138, 0, 0, 0, 0, 182, 159, 0, 107, 0, - 0, 0, 63, 0, 0, 0, 0, 0, 0, 130, - 0, 135, 0, 65, 58, 0, 0, 0, 0, 0, - 0, 129, 0, 0, 163, 0, 0, 0, 0, 0, - 0, 0, 64, 0, 0, 0, 0, 0, 91, 61, - 0, 0, 0, 0, 60, 131, 0 + 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 0, 0, 67, 0, 0, 0, 139, 0, 0, + 0, 0, 183, 160, 0, 108, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 0, 131, 0, 136, + 0, 65, 0, 58, 0, 0, 0, 0, 0, 0, + 0, 130, 0, 0, 164, 0, 0, 0, 0, 0, + 0, 0, 0, 64, 0, 0, 0, 0, 0, 69, + 0, 92, 61, 0, 0, 0, 0, 60, 132, 0 } ; static const YY_CHAR yy_ec[256] = @@ -953,244 +955,248 @@ static const YY_CHAR yy_meta[74] = 3, 3, 3 } ; -static const flex_int16_t yy_base[1880] = +static const flex_int16_t yy_base[1903] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 2268, 2269, 34, 2264, 145, 0, 207, 2269, 214, 221, - 13, 228, 2269, 2244, 118, 25, 2, 6, 2269, 2269, - 73, 11, 17, 2269, 2269, 2269, 104, 2252, 2205, 0, - 2242, 108, 2259, 24, 262, 2269, 2201, 67, 2207, 84, - 75, 88, 224, 91, 89, 290, 220, 2199, 206, 285, - 206, 204, 212, 60, 232, 2208, 247, 294, 315, 307, - 286, 2191, 230, 325, 354, 328, 2210, 0, 366, 382, - 397, 411, 404, 2269, 0, 2269, 419, 425, 216, 225, - 229, 227, 319, 329, 2269, 2207, 2248, 2269, 300, 2269, - - 438, 2235, 390, 2204, 331, 10, 406, 311, 408, 414, - 420, 2245, 0, 491, 409, 2187, 2184, 2188, 402, 2184, - 2192, 406, 2188, 2177, 2178, 2183, 78, 2193, 2176, 2185, - 2185, 95, 2176, 239, 2177, 2175, 396, 2223, 2227, 2167, - 2220, 2160, 2183, 2180, 2180, 2174, 336, 2167, 2165, 2166, - 2158, 2163, 2157, 413, 2168, 2161, 2152, 2151, 2165, 423, - 2151, 430, 422, 2145, 465, 420, 432, 2166, 2163, 2164, - 423, 2162, 2197, 2196, 423, 2142, 2142, 2143, 462, 2135, - 2152, 2144, 0, 456, 471, 471, 489, 479, 504, 2143, - 2269, 0, 2188, 509, 2137, 494, 501, 507, 2191, 516, - - 2190, 503, 2189, 2269, 553, 2188, 526, 2147, 2139, 2126, - 2137, 2141, 2142, 2139, 2136, 2135, 2126, 500, 2177, 2171, - 2135, 2116, 2113, 2121, 2116, 2130, 2126, 2114, 2126, 2126, - 2117, 2101, 2105, 2118, 2120, 2117, 2109, 2099, 2117, 2269, - 2112, 498, 2097, 2096, 2148, 2095, 2105, 2108, 541, 2104, - 2143, 2088, 2090, 2101, 2139, 2084, 2142, 2077, 2092, 535, - 2082, 2088, 2097, 2078, 2076, 2076, 2082, 2073, 2072, 2079, - 2069, 2128, 2084, 2083, 2077, 488, 2084, 2079, 2071, 2061, - 2076, 2075, 2070, 2074, 166, 2072, 2058, 2064, 2071, 2053, - 2054, 2057, 2054, 2053, 341, 2048, 2062, 2061, 2104, 2063, - - 399, 2054, 523, 2269, 2269, 536, 2269, 2269, 2041, 0, - 520, 515, 2089, 548, 2099, 548, 2269, 2098, 2269, 2092, - 598, 2269, 547, 2032, 2041, 2089, 2049, 2032, 2049, 2030, - 2036, 2088, 2043, 2038, 2041, 2036, 543, 2269, 2038, 2082, - 2076, 2034, 2031, 576, 2037, 2077, 2071, 2024, 2019, 2016, - 2067, 2024, 2013, 2029, 2063, 2009, 621, 2023, 2008, 2021, - 2019, 2007, 2017, 2012, 2019, 2014, 2010, 528, 2008, 2011, - 2006, 1992, 2004, 2000, 2050, 546, 2044, 2269, 2043, 1993, - 1992, 1991, 1984, 1986, 1998, 1989, 1978, 1995, 1990, 586, - 2037, 1990, 1987, 1990, 2269, 1989, 1978, 1978, 1990, 570, - - 1965, 1966, 1987, 580, 1969, 2020, 1965, 1979, 1982, 1977, - 1963, 1975, 1974, 1973, 1968, 1971, 1970, 1969, 1968, 572, - 2011, 1970, 2009, 2269, 1951, 1950, 629, 1963, 2269, 2269, - 1962, 0, 1951, 1943, 573, 2002, 2001, 2269, 2000, 2269, - 604, 672, 603, 1999, 1941, 1952, 1991, 1944, 1946, 1945, - 1933, 2269, 1938, 1944, 1947, 1930, 1945, 1932, 1931, 2269, - 591, 1933, 1930, 607, 1928, 1930, 2269, 1938, 1935, 1920, - 1933, 1928, 653, 1935, 1923, 1916, 1967, 2269, 1914, 1930, - 1964, 1925, 1922, 1923, 1907, 1924, 1958, 1909, 1904, 1903, - 1954, 1898, 560, 1917, 1891, 1898, 1903, 1913, 1947, 1951, - - 2269, 1896, 1892, 1890, 1899, 1893, 1900, 1884, 1884, 1894, - 1882, 1896, 1885, 1881, 1879, 2269, 1936, 2269, 1878, 1889, - 1928, 1873, 1878, 1887, 1881, 1875, 1884, 1926, 1920, 1882, - 1865, 1865, 1860, 1880, 1855, 1861, 1866, 1859, 1867, 1871, - 1854, 1912, 1853, 1905, 1850, 1851, 1850, 1862, 1851, 2269, - 1861, 2269, 1850, 1848, 2269, 1859, 1895, 1855, 0, 1839, - 1856, 1896, 2269, 2269, 2269, 608, 607, 655, 2269, 1847, - 1846, 614, 1853, 1833, 1832, 1885, 1830, 1883, 1828, 1827, - 1826, 1833, 1826, 1838, 1820, 1820, 1835, 1834, 1822, 1832, - 1831, 1831, 1813, 1818, 1859, 1826, 1818, 1863, 1807, 1823, - - 1822, 2269, 1807, 1804, 1862, 1817, 1809, 1815, 1806, 1814, - 1799, 1815, 1797, 1809, 1810, 570, 1792, 1786, 1791, 1806, - 1803, 1804, 1783, 1793, 1799, 1842, 1797, 1789, 1780, 2269, - 1781, 1783, 1792, 1790, 1829, 1828, 1779, 16, 1788, 1825, - 1770, 1771, 1774, 1767, 2269, 1781, 1760, 1764, 1778, 1770, - 1815, 1767, 1774, 1812, 2269, 1757, 1771, 1755, 1769, 1772, - 1753, 1805, 1804, 1803, 1802, 1747, 1800, 1799, 2269, 1744, - 1758, 656, 1759, 1758, 1755, 1755, 1792, 1752, 1735, 1740, - 1742, 2269, 1748, 1738, 2269, 637, 625, 1732, 1730, 1737, - 1747, 1739, 1726, 1720, 1778, 628, 1782, 643, 1776, 1736, - - 1774, 1773, 1725, 1723, 1731, 1734, 1718, 1719, 1728, 1709, - 1764, 1715, 1723, 1724, 1760, 1721, 199, 643, 217, 293, - 351, 309, 353, 2269, 419, 446, 483, 544, 612, 610, - 629, 628, 618, 633, 631, 647, 653, 698, 700, 650, - 642, 653, 700, 658, 708, 2269, 709, 662, 664, 666, - 660, 663, 716, 679, 668, 681, 2269, 671, 682, 671, - 684, 686, 730, 731, 674, 685, 670, 693, 672, 678, - 733, 697, 681, 693, 737, 738, 739, 686, 741, 705, - 700, 707, 703, 688, 700, 701, 708, 694, 2269, 759, - 717, 719, 709, 721, 711, 724, 709, 716, 722, 714, - - 728, 768, 744, 731, 736, 733, 715, 722, 736, 781, - 734, 732, 741, 2269, 731, 746, 743, 729, 736, 735, - 733, 752, 749, 737, 744, 745, 754, 758, 755, 745, - 743, 743, 754, 750, 806, 763, 748, 749, 755, 771, - 761, 2269, 771, 771, 764, 775, 773, 818, 760, 762, - 777, 764, 763, 825, 782, 768, 771, 2269, 2269, 781, - 786, 791, 779, 789, 791, 2269, 2269, 792, 779, 797, - 784, 778, 783, 801, 788, 838, 789, 841, 787, 791, - 849, 2269, 2269, 794, 798, 797, 794, 854, 807, 797, - 798, 794, 807, 818, 802, 820, 815, 816, 818, 811, - - 813, 814, 815, 815, 817, 832, 873, 830, 835, 812, - 835, 819, 2269, 826, 827, 841, 831, 829, 879, 837, - 827, 842, 843, 830, 862, 870, 839, 834, 889, 890, - 852, 892, 2269, 855, 859, 900, 848, 843, 844, 856, - 863, 852, 853, 849, 852, 853, 863, 872, 908, 856, - 865, 861, 919, 876, 877, 868, 2269, 870, 873, 881, - 883, 868, 884, 878, 925, 891, 875, 876, 2269, 892, - 895, 878, 937, 880, 899, 2269, 898, 901, 881, 899, - 939, 897, 893, 890, 943, 944, 906, 892, 910, 909, - 910, 896, 911, 903, 910, 900, 918, 917, 904, 2269, - - 912, 918, 921, 966, 2269, 915, 920, 964, 915, 928, - 922, 926, 924, 922, 924, 934, 979, 923, 928, 924, - 983, 927, 939, 2269, 927, 935, 933, 984, 946, 932, - 933, 942, 954, 942, 940, 945, 955, 956, 961, 1002, - 974, 979, 961, 958, 954, 968, 951, 951, 1011, 954, - 2269, 954, 974, 973, 964, 953, 970, 977, 1020, 981, - 974, 978, 982, 965, 982, 1027, 974, 2269, 1024, 971, - 976, 975, 976, 976, 997, 994, 999, 1000, 986, 994, - 1003, 983, 998, 1005, 1047, 2269, 1048, 1049, 991, 1001, - 1011, 1014, 1002, 998, 1005, 1014, 1002, 1009, 1010, 1022, - - 1063, 1010, 1008, 1010, 1027, 1068, 1018, 1017, 1023, 1021, - 1019, 1014, 1075, 1076, 1072, 1078, 2269, 1035, 1028, 1019, - 1038, 1026, 1036, 1033, 1038, 1034, 1047, 1047, 2269, 1031, - 1033, 1033, 2269, 1035, 1095, 1034, 1053, 1054, 1056, 1047, - 1101, 1102, 1055, 1040, 1054, 1062, 1061, 1045, 1050, 1068, - 2269, 1090, 1081, 1113, 1053, 1075, 1070, 1070, 1074, 2269, - 1061, 1063, 1080, 1075, 1079, 1124, 1072, 1076, 2269, 1068, - 1085, 1065, 1086, 1076, 1127, 2269, 1092, 1093, 1131, 1078, - 1133, 1091, 1097, 1083, 1143, 1086, 1097, 1089, 1095, 1091, - 1109, 1110, 1111, 2269, 2269, 1110, 2269, 1095, 1106, 1097, - - 1116, 1106, 1099, 1111, 1155, 1119, 1108, 1115, 1116, 1122, - 2269, 1115, 1167, 1108, 1169, 2269, 1170, 1112, 1118, 1125, - 1169, 1131, 2269, 2269, 1118, 2269, 1120, 1134, 1139, 1122, - 1181, 1138, 1139, 1140, 1180, 1132, 1137, 1188, 1141, 1137, - 1191, 2269, 1138, 1193, 1194, 1151, 1153, 2269, 2269, 1136, - 1198, 1194, 1158, 1201, 1143, 1155, 1160, 1175, 1206, 2269, - 1163, 1156, 1165, 1156, 1167, 1212, 1159, 1174, 1210, 1162, - 2269, 1158, 1174, 1175, 1176, 1173, 1217, 1180, 1170, 1185, - 1172, 1168, 1228, 1181, 1225, 1231, 1188, 2269, 1190, 1183, - 1192, 1193, 1191, 1181, 1184, 1184, 1189, 1244, 1191, 1246, - - 1189, 1248, 1244, 1185, 1200, 1193, 1196, 1209, 1210, 1209, - 1258, 2269, 1212, 2269, 2269, 1217, 1209, 1219, 1204, 1260, - 1206, 1267, 1211, 1221, 1270, 2269, 1218, 1218, 1220, 1222, - 1275, 1216, 1219, 2269, 1220, 1239, 2269, 1223, 2269, 2269, - 1236, 1238, 1239, 2269, 1226, 1234, 2269, 1286, 1235, 1288, - 1268, 2269, 1290, 1247, 1292, 1243, 1290, 2269, 1238, 1246, - 1240, 1237, 1240, 1243, 1243, 1260, 1299, 1252, 1264, 1267, - 1255, 1250, 1257, 1247, 2269, 1270, 1255, 2269, 1257, 1258, - 1273, 1273, 1276, 1276, 1273, 1317, 1279, 1271, 2269, 1272, - 2269, 1282, 2269, 1279, 1284, 1285, 1282, 1326, 1274, 1289, - - 1290, 1282, 2269, 1279, 1280, 1280, 1286, 1285, 1283, 1297, - 2269, 1338, 1285, 2269, 1286, 1286, 1288, 1294, 2269, 1296, - 1350, 1292, 1300, 1303, 1314, 1312, 1356, 1309, 1318, 2269, - 1315, 2269, 1312, 1335, 2269, 1362, 2269, 1320, 1305, 1365, - 1366, 1323, 1328, 1310, 1370, 1371, 1367, 1331, 1328, 1324, - 1317, 1372, 1330, 1320, 1325, 1381, 1335, 1383, 1380, 1343, - 1339, 1384, 1332, 1337, 1335, 1394, 1350, 1338, 1397, 1355, - 1399, 1360, 1349, 1343, 1403, 1345, 1346, 1360, 1363, 1363, - 1409, 1351, 1368, 1364, 1368, 1352, 1410, 1411, 1358, 1413, - 1376, 1377, 2269, 1377, 1378, 1365, 1364, 1420, 2269, 1361, - - 1379, 1428, 1386, 1399, 2269, 1431, 1384, 2269, 2269, 1375, - 1386, 1435, 2269, 2269, 1381, 1386, 1384, 1434, 1392, 1397, - 1385, 1389, 1387, 1401, 2269, 1389, 2269, 1392, 1443, 1386, - 1391, 1451, 1400, 1410, 1411, 2269, 1456, 1409, 1454, 2269, - 1460, 2269, 1403, 1418, 1406, 2269, 1416, 1417, 1466, 1424, - 1428, 2269, 1464, 1430, 1406, 1424, 1433, 1415, 1422, 1476, - 1435, 1434, 1479, 1427, 1481, 1482, 1432, 1436, 1441, 1434, - 2269, 1487, 1488, 2269, 1437, 1490, 1432, 2269, 1435, 1445, - 1489, 1437, 1452, 1439, 1454, 1446, 1446, 1501, 1458, 1446, - 1445, 1505, 1458, 2269, 1502, 1453, 1450, 2269, 1464, 1451, - - 2269, 1468, 1513, 1466, 1463, 1464, 2269, 1517, 1476, 1459, - 1461, 1477, 1459, 1475, 1476, 1485, 2269, 1475, 1527, 2269, - 1486, 2269, 2269, 1470, 1477, 1531, 1527, 2269, 2269, 1489, - 2269, 1529, 1491, 1492, 1477, 1478, 1486, 1540, 1488, 1537, - 1492, 2269, 1504, 1491, 1498, 2269, 1495, 1500, 1498, 1550, - 1551, 1499, 1495, 2269, 1510, 1511, 1512, 2269, 1513, 1503, - 1515, 1560, 1561, 1503, 1511, 1512, 1525, 2269, 1502, 1562, - 1523, 2269, 1527, 1512, 1512, 1527, 1520, 1519, 1530, 1517, - 2269, 1533, 1523, 1579, 1537, 1539, 1530, 1539, 1541, 1545, - 2269, 2269, 1538, 1587, 1530, 1589, 1590, 1591, 1549, 1593, - - 2269, 2269, 1589, 1551, 1552, 1539, 1598, 1541, 1546, 1537, - 1602, 1555, 1556, 1546, 1563, 1562, 1603, 1547, 1566, 2269, - 1563, 1568, 1569, 1614, 1571, 1574, 1561, 2269, 1618, 2269, - 2269, 2269, 1579, 2269, 1561, 1621, 1622, 1565, 2269, 1584, - 1625, 1584, 2269, 1575, 1565, 1624, 1590, 1583, 1579, 1633, - 1577, 1582, 1578, 1580, 2269, 1585, 1595, 1580, 2269, 1582, - 1594, 2269, 2269, 1599, 1592, 2269, 1594, 1602, 1647, 1588, - 1590, 1587, 1611, 2269, 1604, 1607, 1596, 1650, 1597, 1605, - 1614, 1615, 1608, 1603, 1607, 1619, 1664, 2269, 1610, 1622, - 1667, 1616, 1615, 1670, 1623, 1610, 1625, 1630, 1675, 1676, - - 1633, 1678, 1628, 1622, 2269, 1638, 1682, 2269, 1639, 1641, - 2269, 1632, 1646, 1642, 1635, 2269, 2269, 1689, 2269, 1646, - 1691, 1652, 2269, 1693, 1694, 1649, 1648, 1649, 1639, 2269, - 1694, 2269, 1641, 2269, 2269, 1701, 1643, 1659, 1704, 1665, - 1662, 2269, 1703, 1652, 2269, 1664, 1657, 1712, 1654, 1656, - 1671, 1656, 2269, 1669, 1718, 1719, 1667, 1669, 2269, 2269, - 1663, 1679, 1724, 1725, 2269, 2269, 2269, 1731, 1736, 1741, - 1746, 1751, 1756, 1761, 1764, 1738, 1743, 1745, 1758 + 2291, 2292, 34, 2287, 145, 0, 207, 2292, 214, 221, + 13, 228, 2292, 2267, 118, 25, 2, 6, 2292, 2292, + 73, 11, 17, 2292, 2292, 2292, 104, 2275, 2228, 0, + 2265, 108, 2282, 24, 262, 2292, 2224, 67, 2230, 84, + 75, 88, 224, 91, 89, 290, 220, 2222, 206, 285, + 206, 204, 212, 60, 232, 2231, 247, 294, 315, 307, + 286, 2214, 230, 325, 354, 328, 2233, 0, 366, 382, + 397, 411, 404, 2292, 0, 2292, 419, 425, 216, 225, + 229, 227, 319, 329, 2292, 2230, 2271, 2292, 300, 2292, + + 438, 2258, 390, 2227, 331, 10, 406, 311, 408, 414, + 420, 2268, 0, 491, 409, 2210, 2207, 2211, 402, 2207, + 2215, 406, 2211, 2200, 2201, 2206, 78, 2216, 2199, 2208, + 2208, 95, 2199, 239, 2200, 2198, 396, 2246, 2250, 2190, + 2243, 2183, 2206, 2203, 2203, 2197, 336, 2190, 2188, 2189, + 2181, 2186, 2180, 413, 2191, 2184, 2175, 2174, 2188, 423, + 2174, 430, 422, 2168, 465, 420, 432, 2189, 2186, 2187, + 423, 2185, 2220, 2219, 423, 2165, 2165, 2166, 462, 2158, + 2175, 2167, 0, 456, 471, 471, 489, 479, 504, 2166, + 2292, 0, 2211, 509, 2160, 494, 501, 507, 2214, 516, + + 2213, 503, 2212, 2292, 553, 2211, 526, 2170, 2162, 2149, + 2160, 2164, 2165, 2162, 2159, 2158, 2149, 500, 2200, 2194, + 2158, 2139, 2136, 2144, 2139, 2153, 2149, 2137, 2149, 2149, + 2140, 2124, 2128, 2141, 2143, 2140, 2132, 2122, 2140, 2292, + 2135, 498, 2120, 2119, 2171, 2118, 2128, 2131, 541, 2127, + 2166, 2111, 2113, 2124, 2162, 2107, 2165, 2100, 2115, 535, + 2105, 2111, 2120, 2101, 2099, 2099, 2105, 2096, 2095, 2102, + 2092, 2151, 2107, 2106, 2100, 488, 2107, 2102, 2094, 2084, + 2099, 2098, 2093, 2097, 166, 2095, 2081, 2087, 2094, 2076, + 2077, 2080, 2077, 2076, 341, 2071, 2085, 2084, 2127, 2086, + + 399, 2077, 523, 2292, 2292, 536, 2292, 2292, 2064, 0, + 520, 515, 2112, 548, 2122, 548, 2292, 2121, 2292, 2115, + 598, 2292, 547, 2055, 2064, 2112, 2072, 2055, 2072, 2053, + 2059, 2111, 2066, 2061, 2064, 2059, 543, 2292, 2061, 2105, + 2099, 2057, 2054, 576, 2060, 2100, 2094, 2047, 2042, 2039, + 2090, 2047, 2036, 2052, 2086, 2032, 621, 2046, 2031, 2044, + 2042, 2030, 2040, 2035, 2042, 2037, 2033, 528, 2031, 2034, + 2029, 2015, 2027, 2023, 2073, 546, 2067, 2292, 2066, 2016, + 2015, 2014, 2007, 2009, 2021, 2012, 2001, 2018, 2013, 586, + 2060, 2013, 2010, 2013, 2292, 2012, 2001, 2001, 2013, 570, + + 1988, 1989, 2010, 580, 1992, 2043, 1988, 2002, 2005, 2000, + 1986, 1998, 1997, 1996, 1991, 1994, 1993, 1992, 1991, 572, + 2034, 1993, 2032, 2292, 1974, 1973, 629, 1986, 2292, 2292, + 1985, 0, 1974, 1966, 573, 2025, 2024, 2292, 2023, 2292, + 604, 672, 603, 2022, 1964, 1975, 2014, 1967, 1969, 1968, + 1956, 2292, 1961, 1967, 1970, 1953, 1968, 1955, 1954, 2292, + 591, 1956, 1953, 607, 1951, 1953, 2292, 1961, 1958, 1943, + 1956, 1951, 653, 1958, 1946, 1939, 1990, 2292, 1937, 1953, + 1987, 1948, 1945, 1946, 1930, 1947, 1981, 1932, 1927, 1926, + 1977, 1921, 560, 1940, 1914, 1921, 1926, 1936, 1970, 1974, + + 2292, 1919, 1915, 1913, 1922, 1916, 1923, 1907, 1907, 1917, + 1905, 1919, 1908, 1904, 1902, 2292, 1959, 2292, 1901, 1912, + 1951, 1896, 1901, 1910, 1904, 1898, 1907, 1949, 1943, 1905, + 1888, 1888, 1883, 1903, 1878, 1884, 1889, 1882, 1890, 1894, + 1877, 1935, 1876, 1928, 1873, 1874, 1873, 1885, 1874, 2292, + 1884, 2292, 1873, 1871, 2292, 1882, 1918, 1878, 0, 1862, + 1879, 1919, 2292, 2292, 2292, 608, 607, 655, 2292, 1870, + 1869, 614, 1876, 1856, 1855, 1908, 1853, 1906, 1851, 1850, + 1849, 1856, 1849, 1861, 1843, 1843, 1858, 1857, 612, 1856, + 1855, 1855, 1837, 1842, 1883, 1850, 1842, 1887, 1831, 1847, + + 1846, 2292, 1831, 1828, 1886, 1841, 1833, 1839, 1830, 1838, + 1823, 1839, 1821, 1833, 1834, 570, 1816, 1810, 1815, 1830, + 1827, 1828, 1807, 1817, 1823, 1866, 1821, 1813, 1804, 2292, + 1805, 1807, 1816, 1814, 1853, 1852, 1803, 16, 1812, 1849, + 1794, 1795, 1798, 1791, 2292, 1805, 1784, 1788, 1802, 1794, + 1839, 1791, 1798, 1836, 2292, 1781, 1795, 1779, 1793, 1796, + 1777, 1829, 1828, 1827, 1826, 1771, 1824, 1823, 2292, 1768, + 1782, 675, 1783, 1782, 1779, 1779, 1816, 1776, 1759, 1764, + 1766, 2292, 1772, 1762, 2292, 637, 625, 1756, 1754, 1761, + 1771, 1763, 1750, 1744, 1802, 629, 1806, 655, 1800, 1760, + + 1798, 1797, 1749, 1747, 1755, 1758, 1742, 1743, 1752, 1750, + 1732, 1787, 1738, 1746, 1747, 1783, 1744, 199, 643, 217, + 293, 351, 309, 353, 2292, 419, 446, 483, 544, 612, + 610, 614, 628, 619, 634, 638, 647, 644, 701, 702, + 653, 645, 655, 702, 660, 710, 2292, 711, 670, 672, + 668, 662, 665, 718, 681, 670, 683, 2292, 673, 684, + 673, 686, 688, 732, 733, 676, 687, 672, 695, 674, + 680, 735, 699, 683, 695, 739, 740, 741, 688, 743, + 707, 702, 709, 705, 690, 702, 703, 710, 696, 2292, + 761, 719, 721, 711, 723, 713, 726, 711, 718, 724, + + 716, 730, 770, 746, 733, 738, 735, 717, 724, 738, + 783, 736, 734, 743, 2292, 733, 748, 745, 731, 738, + 737, 735, 754, 751, 739, 746, 747, 756, 760, 796, + 758, 748, 747, 746, 757, 753, 809, 766, 751, 752, + 758, 774, 764, 2292, 774, 774, 767, 778, 776, 821, + 763, 765, 780, 767, 766, 828, 785, 771, 774, 2292, + 2292, 784, 789, 794, 782, 792, 794, 2292, 2292, 795, + 782, 800, 787, 781, 786, 804, 791, 841, 792, 844, + 790, 794, 852, 2292, 2292, 797, 801, 800, 797, 857, + 810, 800, 801, 797, 810, 821, 805, 823, 818, 819, + + 821, 814, 816, 817, 818, 818, 820, 835, 876, 833, + 838, 815, 838, 822, 2292, 829, 830, 844, 834, 832, + 882, 840, 830, 845, 846, 833, 865, 873, 842, 837, + 892, 893, 855, 895, 2292, 858, 862, 903, 851, 846, + 847, 859, 866, 855, 856, 852, 855, 856, 866, 875, + 911, 859, 877, 870, 865, 923, 880, 881, 872, 2292, + 874, 877, 885, 887, 872, 888, 882, 929, 895, 879, + 880, 2292, 896, 899, 882, 941, 884, 903, 2292, 902, + 905, 885, 903, 943, 901, 897, 894, 947, 948, 910, + 896, 914, 913, 914, 900, 915, 907, 914, 904, 922, + + 921, 908, 2292, 916, 922, 925, 970, 2292, 919, 924, + 968, 919, 932, 926, 930, 928, 926, 928, 938, 983, + 927, 932, 928, 987, 931, 943, 2292, 931, 939, 937, + 988, 950, 936, 937, 946, 958, 946, 944, 949, 959, + 960, 965, 1006, 978, 983, 965, 962, 958, 972, 955, + 955, 1015, 958, 2292, 958, 978, 977, 968, 957, 974, + 981, 1024, 985, 978, 982, 986, 969, 986, 977, 1032, + 979, 2292, 1029, 978, 981, 980, 981, 981, 1002, 999, + 1004, 1005, 991, 999, 1008, 988, 1003, 1010, 1052, 2292, + 1053, 1054, 996, 1006, 1016, 1019, 1007, 1003, 1010, 1019, + + 1007, 1014, 1015, 1027, 1068, 1015, 1013, 1015, 1032, 1073, + 1023, 1022, 1028, 1026, 1024, 1019, 1080, 1081, 1077, 1083, + 2292, 1040, 1033, 1024, 1043, 1031, 1041, 1038, 1043, 1039, + 1052, 1052, 2292, 1036, 1038, 1038, 2292, 1040, 1100, 1039, + 1058, 1059, 1061, 1052, 1106, 1107, 1060, 1045, 1059, 1067, + 1066, 1050, 1055, 1073, 2292, 1095, 1086, 1118, 1058, 1080, + 1075, 1075, 1079, 2292, 1066, 1068, 1085, 1080, 1084, 1129, + 1077, 1081, 2292, 1073, 1090, 1070, 1091, 1081, 1132, 1085, + 2292, 1099, 1099, 1137, 1084, 1139, 1098, 1103, 1089, 1149, + 1092, 1103, 1095, 1101, 1097, 1115, 1116, 1117, 2292, 2292, + + 1116, 2292, 1101, 1112, 1103, 1122, 1112, 1105, 1117, 1161, + 1125, 1114, 1121, 1122, 1128, 2292, 1121, 1173, 1114, 1175, + 2292, 1176, 1118, 1124, 1131, 1175, 1137, 2292, 2292, 1124, + 2292, 1126, 1140, 1145, 1128, 1187, 1144, 1145, 1146, 1186, + 1138, 1143, 1194, 1147, 1143, 1197, 2292, 1144, 1199, 1200, + 1157, 1159, 2292, 2292, 1142, 1204, 1200, 1164, 1207, 1149, + 1161, 1166, 1181, 1212, 2292, 1169, 1162, 1171, 1162, 1173, + 1218, 1165, 1180, 1216, 1168, 2292, 1164, 1180, 1181, 1182, + 1179, 1223, 1186, 1176, 1186, 1192, 1179, 1175, 1235, 1188, + 1232, 1238, 1196, 2292, 1197, 1190, 1199, 1201, 1198, 1188, + + 1191, 1191, 1196, 1251, 1198, 1253, 1196, 1255, 1251, 1192, + 1207, 1200, 1203, 1216, 1218, 1216, 1265, 2292, 1219, 2292, + 2292, 1224, 1216, 1226, 1211, 1267, 1213, 1274, 1218, 1228, + 1277, 2292, 1225, 1225, 1227, 1229, 1282, 1223, 1226, 2292, + 1227, 1246, 2292, 1230, 2292, 2292, 1243, 1245, 1246, 2292, + 1233, 1241, 2292, 1293, 1242, 1295, 1275, 2292, 1297, 1254, + 1299, 1250, 1297, 2292, 1245, 1253, 1247, 1244, 1247, 1250, + 1250, 1267, 1306, 1259, 1271, 1274, 1262, 1265, 1258, 1265, + 1256, 2292, 1278, 1263, 2292, 1265, 1266, 1281, 1281, 1284, + 1284, 1281, 1325, 1287, 1279, 2292, 1280, 2292, 1290, 2292, + + 1287, 1292, 1293, 1290, 1334, 1282, 1297, 1298, 1290, 2292, + 1287, 1288, 1288, 1294, 1293, 1291, 1305, 2292, 1346, 1293, + 2292, 1294, 1294, 1296, 1302, 2292, 1304, 1358, 1300, 1308, + 1311, 1322, 1320, 1364, 1317, 1326, 2292, 1323, 2292, 1320, + 1343, 2292, 1370, 2292, 1328, 1313, 1373, 1374, 1331, 1336, + 1318, 1378, 1379, 1375, 1339, 1336, 1332, 1325, 1380, 1338, + 1339, 1329, 1334, 1390, 1344, 1393, 1389, 1352, 1349, 1393, + 1341, 1346, 1344, 1403, 1359, 1347, 1406, 1364, 1408, 1369, + 1358, 1352, 1412, 1354, 1355, 1369, 1372, 1372, 1418, 1360, + 1377, 1373, 1377, 1361, 1419, 1420, 1367, 1422, 1385, 1386, + + 2292, 1386, 1387, 1374, 1373, 1429, 2292, 1370, 1388, 1437, + 1395, 1408, 2292, 1440, 1393, 2292, 2292, 1384, 1395, 1444, + 2292, 2292, 1390, 1395, 1393, 1443, 1401, 1406, 1394, 1410, + 1399, 1397, 1411, 2292, 1399, 2292, 1402, 1453, 1396, 1401, + 1462, 1410, 1420, 1421, 2292, 1466, 1420, 1464, 2292, 1470, + 2292, 1413, 1428, 1416, 2292, 1426, 1427, 1476, 1434, 1438, + 2292, 1474, 1440, 1416, 1434, 1443, 1425, 1432, 1486, 1445, + 1444, 1489, 1437, 1491, 1492, 1442, 1446, 1451, 1444, 2292, + 1497, 1498, 2292, 1447, 1500, 1442, 2292, 1445, 1455, 1499, + 1447, 1462, 1449, 1464, 1450, 1457, 1457, 1512, 1469, 1457, + + 1456, 1516, 1469, 2292, 1513, 1464, 1461, 2292, 1475, 1462, + 2292, 1479, 1524, 1477, 1474, 1475, 2292, 1528, 1487, 1470, + 1472, 1488, 1470, 1486, 1487, 1496, 2292, 1486, 1538, 2292, + 1497, 2292, 2292, 1481, 1488, 1542, 1538, 2292, 2292, 1500, + 2292, 1540, 1502, 1503, 1488, 1489, 1497, 1551, 1499, 1548, + 1549, 1504, 2292, 1516, 1503, 1510, 2292, 1507, 1512, 1510, + 1562, 1563, 1511, 1507, 2292, 1522, 1523, 1524, 2292, 1525, + 1515, 1527, 1572, 1573, 1515, 1523, 1524, 1537, 2292, 1514, + 1574, 1535, 2292, 1539, 1524, 1524, 1539, 1532, 1531, 1542, + 1529, 2292, 1545, 1533, 1536, 1592, 1550, 1552, 1543, 1552, + + 1554, 1558, 2292, 2292, 1551, 1600, 1543, 1602, 1603, 1604, + 1562, 1606, 2292, 2292, 1602, 1564, 1565, 1552, 1611, 1554, + 1559, 1550, 1615, 1568, 1569, 1559, 1576, 1575, 1616, 1560, + 1579, 1580, 2292, 1577, 1582, 1583, 1628, 1585, 1588, 1575, + 2292, 1632, 2292, 2292, 2292, 1593, 2292, 1575, 1635, 1636, + 1579, 2292, 1598, 1639, 1598, 2292, 1589, 1579, 1638, 1604, + 1597, 1593, 1647, 1590, 1592, 1597, 1593, 1595, 2292, 1600, + 1610, 1595, 2292, 1597, 1609, 2292, 2292, 1614, 1607, 2292, + 1609, 1617, 1662, 1603, 1605, 1602, 1626, 2292, 1613, 1620, + 1623, 1612, 1666, 1613, 1621, 1630, 1631, 1624, 1619, 1623, + + 1635, 1680, 2292, 1626, 1638, 1683, 1632, 1634, 1632, 1687, + 1640, 1627, 1642, 1647, 1692, 1693, 1650, 1695, 1645, 1639, + 2292, 1655, 1699, 2292, 1656, 1641, 1659, 2292, 1650, 1664, + 1660, 1653, 2292, 2292, 1707, 2292, 1664, 1709, 1670, 2292, + 1711, 1653, 1713, 1668, 1667, 1668, 1658, 2292, 1713, 2292, + 1660, 2292, 1672, 2292, 1721, 1663, 1679, 1724, 1685, 1682, + 1674, 2292, 1724, 1673, 2292, 1685, 1678, 1733, 1681, 1676, + 1678, 1693, 1678, 2292, 1739, 1692, 1741, 1742, 1690, 2292, + 1692, 2292, 2292, 1686, 1702, 1747, 1748, 2292, 2292, 2292, + 1754, 1759, 1764, 1769, 1774, 1779, 1784, 1787, 1761, 1766, + + 1768, 1781 } ; -static const flex_int16_t yy_def[1880] = +static const flex_int16_t yy_def[1903] = { 0, - 1868, 1868, 1869, 1869, 1868, 1868, 1868, 1868, 1868, 1868, - 1867, 1867, 1867, 1867, 1867, 1870, 1867, 1867, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1871, - 1867, 1867, 1867, 1872, 15, 1867, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1873, 45, 45, 45, 45, + 1891, 1891, 1892, 1892, 1891, 1891, 1891, 1891, 1891, 1891, + 1890, 1890, 1890, 1890, 1890, 1893, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1894, + 1890, 1890, 1890, 1895, 15, 1890, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1896, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1870, 1867, 1867, - 1867, 1867, 1867, 1867, 1874, 1867, 1867, 1867, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1871, 1867, 1872, 1867, + 45, 45, 45, 45, 45, 45, 45, 1893, 1890, 1890, + 1890, 1890, 1890, 1890, 1897, 1890, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890, 1890, 1894, 1890, 1895, 1890, - 1867, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1875, 45, 1873, 45, 45, 45, 45, 45, 45, + 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1898, 45, 1896, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1874, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1867, 1876, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1897, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + 1890, 1899, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1875, 1867, 1873, 45, 45, 45, 45, 45, + 45, 45, 1898, 1890, 1896, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1867, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -1198,190 +1204,194 @@ static const flex_int16_t yy_def[1880] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1877, - 45, 45, 45, 45, 45, 45, 1867, 45, 1867, 45, - 1873, 1867, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1867, 45, 45, + 45, 45, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1900, + 45, 45, 45, 45, 45, 45, 1890, 45, 1890, 45, + 1896, 1890, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1867, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1867, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1867, 45, 45, 45, 45, 1867, 1867, - 1867, 1878, 45, 45, 45, 45, 45, 1867, 45, 1867, - 45, 1873, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1867, 45, 45, 45, 45, 45, 45, 45, 1867, - 45, 45, 45, 45, 45, 45, 1867, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1867, 45, 45, + 45, 45, 45, 1890, 45, 45, 45, 45, 1890, 1890, + 1890, 1901, 45, 45, 45, 45, 45, 1890, 45, 1890, + 45, 1896, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1890, 45, 45, 45, 45, 45, 45, 45, 1890, + 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1867, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1867, 45, 1867, 45, 45, + 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1890, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1867, - 45, 1867, 45, 45, 1867, 45, 45, 1867, 1879, 45, - 45, 45, 1867, 1867, 1867, 45, 45, 45, 1867, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1890, + 45, 1890, 45, 45, 1890, 45, 45, 1890, 1902, 45, + 45, 45, 1890, 1890, 1890, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1867, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1867, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1867, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1867, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1867, 45, + 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1867, 45, 45, 1867, 45, 45, 45, 45, 45, + 45, 1890, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1867, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1867, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1867, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1867, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1867, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1867, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1867, 1867, 45, - 45, 45, 45, 45, 45, 1867, 1867, 45, 45, 45, + 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1890, + 1890, 45, 45, 45, 45, 45, 45, 1890, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1867, 1867, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1890, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1867, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1867, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1867, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1867, 45, - 45, 45, 45, 45, 45, 1867, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1867, - - 45, 45, 45, 45, 1867, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1867, 45, 45, 45, 45, 45, 45, + 45, 1890, 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1867, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1867, 45, 45, + + 45, 45, 1890, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1867, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1867, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1867, 45, - 45, 45, 1867, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1867, 45, 45, 45, 45, 45, 45, 45, 45, 1867, - 45, 45, 45, 45, 45, 45, 45, 45, 1867, 45, - 45, 45, 45, 45, 45, 1867, 45, 45, 45, 45, + 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1867, 1867, 45, 1867, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1867, 45, 45, 45, 45, 1867, 45, 45, 45, 45, - 45, 45, 1867, 1867, 45, 1867, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1867, 45, 45, 45, 45, 45, 1867, 1867, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1867, + 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1890, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1867, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1867, 45, 45, + 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, + 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, + 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, + 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1890, 1890, + + 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, + 1890, 45, 45, 45, 45, 45, 45, 1890, 1890, 45, + 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, + 45, 45, 1890, 1890, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1867, 45, 1867, 1867, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1867, 45, 45, 45, 45, - 45, 45, 45, 1867, 45, 45, 1867, 45, 1867, 1867, - 45, 45, 45, 1867, 45, 45, 1867, 45, 45, 45, - 45, 1867, 45, 45, 45, 45, 45, 1867, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1890, 45, 1890, + 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1890, 45, 45, 45, 45, 45, 45, 45, 1890, + 45, 45, 1890, 45, 1890, 1890, 45, 45, 45, 1890, + 45, 45, 1890, 45, 45, 45, 45, 1890, 45, 45, + 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1867, 45, 45, 1867, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1867, 45, - 1867, 45, 1867, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 1867, 45, 45, 45, 45, 45, 45, 45, - 1867, 45, 45, 1867, 45, 45, 45, 45, 1867, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1867, - 45, 1867, 45, 45, 1867, 45, 1867, 45, 45, 45, + 45, 1890, 45, 45, 1890, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1890, 45, 1890, 45, 1890, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1890, + 45, 45, 45, 45, 45, 45, 45, 1890, 45, 45, + 1890, 45, 45, 45, 45, 1890, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1890, 45, 1890, 45, + 45, 1890, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1867, 45, 45, 45, 45, 45, 1867, 45, - - 45, 45, 45, 45, 1867, 45, 45, 1867, 1867, 45, - 45, 45, 1867, 1867, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1867, 45, 1867, 45, 45, 45, - 45, 45, 45, 45, 45, 1867, 45, 45, 45, 1867, - 45, 1867, 45, 45, 45, 1867, 45, 45, 45, 45, - 45, 1867, 45, 45, 45, 45, 45, 45, 45, 45, + + 1890, 45, 45, 45, 45, 45, 1890, 45, 45, 45, + 45, 45, 1890, 45, 45, 1890, 1890, 45, 45, 45, + 1890, 1890, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1890, 45, 1890, 45, 45, 45, 45, + 45, 45, 45, 45, 1890, 45, 45, 45, 1890, 45, + 1890, 45, 45, 45, 1890, 45, 45, 45, 45, 45, + 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1890, + 45, 45, 1890, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1867, 45, 45, 1867, 45, 45, 45, 1867, 45, 45, + + 45, 45, 45, 1890, 45, 45, 45, 1890, 45, 45, + 1890, 45, 45, 45, 45, 45, 1890, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1890, 45, 45, 1890, + 45, 1890, 1890, 45, 45, 45, 45, 1890, 1890, 45, + 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1890, 45, 45, 45, 1890, 45, 45, 45, + 45, 45, 45, 45, 1890, 45, 45, 45, 1890, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1890, 45, + 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, + 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 1890, 1890, 45, 45, 45, 45, 45, 45, + 45, 45, 1890, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1867, 45, 45, 45, 1867, 45, 45, - - 1867, 45, 45, 45, 45, 45, 1867, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1867, 45, 45, 1867, - 45, 1867, 1867, 45, 45, 45, 45, 1867, 1867, 45, - 1867, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1867, 45, 45, 45, 1867, 45, 45, 45, 45, - 45, 45, 45, 1867, 45, 45, 45, 1867, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1867, 45, 45, - 45, 1867, 45, 45, 45, 45, 45, 45, 45, 45, - 1867, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1867, 1867, 45, 45, 45, 45, 45, 45, 45, 45, - - 1867, 1867, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1867, - 45, 45, 45, 45, 45, 45, 45, 1867, 45, 1867, - 1867, 1867, 45, 1867, 45, 45, 45, 45, 1867, 45, - 45, 45, 1867, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1867, 45, 45, 45, 1867, 45, - 45, 1867, 1867, 45, 45, 1867, 45, 45, 45, 45, - 45, 45, 45, 1867, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1867, 45, 45, + 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, + 1890, 45, 1890, 1890, 1890, 45, 1890, 45, 45, 45, + 45, 1890, 45, 45, 45, 1890, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1890, 45, + 45, 45, 1890, 45, 45, 1890, 1890, 45, 45, 1890, + 45, 45, 45, 45, 45, 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1867, 45, 45, 1867, 45, 45, - 1867, 45, 45, 45, 45, 1867, 1867, 45, 1867, 45, - 45, 45, 1867, 45, 45, 45, 45, 45, 45, 1867, - 45, 1867, 45, 1867, 1867, 45, 45, 45, 45, 45, - 45, 1867, 45, 45, 1867, 45, 45, 45, 45, 45, - 45, 45, 1867, 45, 45, 45, 45, 45, 1867, 1867, - 45, 45, 45, 45, 1867, 1867, 0, 1867, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867 + 45, 45, 1890, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1890, 45, 45, 1890, 45, 45, 45, 1890, 45, 45, + 45, 45, 1890, 1890, 45, 1890, 45, 45, 45, 1890, + 45, 45, 45, 45, 45, 45, 45, 1890, 45, 1890, + 45, 1890, 45, 1890, 45, 45, 45, 45, 45, 45, + 45, 1890, 45, 45, 1890, 45, 45, 45, 45, 45, + 45, 45, 45, 1890, 45, 45, 45, 45, 45, 1890, + 45, 1890, 1890, 45, 45, 45, 45, 1890, 1890, 0, + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + + 1890, 1890 } ; -static const flex_int16_t yy_nxt[2343] = +static const flex_int16_t yy_nxt[2366] = { 0, - 1867, 13, 14, 13, 1867, 15, 16, 1867, 17, 18, + 1890, 13, 14, 13, 1890, 15, 16, 1890, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 84, 757, 37, 14, 37, 85, 25, 26, 38, 100, - 1867, 27, 37, 14, 37, 42, 28, 42, 38, 90, + 84, 758, 37, 14, 37, 85, 25, 26, 38, 100, + 1890, 27, 37, 14, 37, 42, 28, 42, 38, 90, 91, 29, 197, 30, 13, 14, 13, 89, 90, 25, 31, 91, 13, 14, 13, 13, 14, 13, 32, 40, - 758, 13, 14, 13, 33, 40, 101, 90, 91, 197, + 759, 13, 14, 13, 33, 40, 101, 90, 91, 197, 89, 34, 35, 13, 14, 13, 93, 15, 16, 94, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 13, 14, 13, 89, 39, 103, 25, 26, @@ -1402,141 +1412,141 @@ static const flex_int16_t yy_nxt[2343] = 80, 80, 80, 80, 80, 79, 105, 82, 82, 82, 82, 82, 410, 81, 83, 83, 83, 83, 83, 79, 81, 82, 82, 82, 82, 82, 184, 81, 108, 105, - 103, 119, 836, 131, 81, 185, 81, 184, 109, 120, + 103, 119, 838, 131, 81, 185, 81, 184, 109, 120, 134, 135, 121, 81, 132, 122, 186, 123, 136, 124, - 81, 108, 184, 840, 133, 164, 115, 81, 45, 165, + 81, 108, 184, 842, 133, 164, 115, 81, 45, 165, 139, 185, 116, 187, 45, 117, 109, 45, 232, 45, 140, 45, 141, 45, 186, 113, 143, 144, 45, 45, - 145, 45, 45, 841, 233, 100, 146, 45, 45, 45, + 145, 45, 45, 843, 233, 100, 146, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 125, 160, 45, 126, 127, 161, 45, 128, 129, 147, 45, 107, 101, 148, 199, 162, 317, 149, 45, 185, - 130, 420, 45, 110, 45, 114, 842, 155, 843, 150, + 130, 420, 45, 110, 45, 114, 844, 155, 845, 150, 152, 196, 153, 151, 154, 156, 186, 157, 173, 174, 166, 199, 158, 159, 167, 188, 179, 168, 108, 83, 83, 83, 83, 83, 169, 170, 180, 196, 109, 171, 172, 181, 81, 79, 189, 80, 80, 80, 80, 80, - 248, 175, 844, 176, 249, 87, 177, 87, 81, 426, + 248, 175, 846, 176, 249, 87, 177, 87, 81, 426, 88, 88, 88, 88, 88, 81, 109, 83, 83, 83, 83, 83, 79, 178, 82, 82, 82, 82, 82, 194, 81, 81, 88, 88, 88, 88, 88, 81, 88, 88, 88, 88, 88, 99, 198, 200, 202, 201, 194, 211, 99, 198, 236, 81, 216, 237, 199, 194, 212, 238, - 81, 427, 213, 217, 218, 206, 845, 270, 290, 202, + 81, 427, 213, 217, 218, 206, 847, 270, 290, 202, 262, 271, 198, 200, 201, 273, 207, 282, 283, 198, 99, 256, 291, 295, 99, 263, 264, 265, 99, 267, - 284, 303, 268, 269, 285, 201, 99, 305, 286, 846, + 284, 303, 268, 269, 285, 201, 99, 305, 286, 848, 99, 304, 99, 192, 205, 205, 205, 205, 205, 304, 274, 275, 276, 205, 205, 205, 205, 205, 205, 303, 305, 277, 299, 278, 303, 279, 280, 304, 281, 314, 305, 312, 315, 316, 320, 307, 205, 205, 205, 205, - 205, 205, 318, 360, 399, 381, 847, 400, 312, 429, + 205, 205, 318, 360, 399, 381, 849, 400, 312, 429, 334, 368, 306, 308, 312, 435, 316, 314, 335, 315, 361, 320, 429, 336, 337, 318, 321, 321, 321, 321, 321, 323, 429, 433, 437, 321, 321, 321, 321, 321, 321, 382, 439, 434, 435, 430, 464, 435, 457, 492, - 493, 516, 465, 848, 494, 383, 502, 437, 321, 321, + 493, 516, 465, 850, 494, 383, 502, 437, 321, 321, 321, 321, 321, 321, 369, 458, 503, 370, 562, 622, - 439, 442, 442, 442, 442, 442, 443, 735, 736, 623, + 439, 442, 442, 442, 442, 442, 443, 736, 737, 623, 442, 442, 442, 442, 442, 442, 478, 548, 526, 531, 549, 479, 527, 532, 555, 566, 562, 567, 562, 556, 686, 687, 584, 442, 442, 442, 442, 442, 442, 517, - 585, 803, 586, 587, 588, 592, 589, 849, 602, 850, - 685, 789, 566, 603, 567, 688, 568, 686, 593, 687, - 594, 691, 790, 802, 803, 812, 851, 852, 692, 480, - 853, 813, 854, 855, 481, 45, 45, 45, 45, 45, - 815, 816, 856, 817, 45, 45, 45, 45, 45, 45, - - 837, 802, 857, 858, 838, 859, 860, 861, 839, 862, - 864, 865, 863, 866, 867, 868, 869, 45, 45, 45, + 585, 804, 586, 587, 588, 592, 589, 851, 602, 852, + 685, 853, 566, 603, 567, 688, 568, 686, 593, 687, + 594, 691, 709, 803, 804, 710, 813, 854, 692, 480, + 790, 855, 814, 856, 481, 45, 45, 45, 45, 45, + 857, 791, 858, 859, 45, 45, 45, 45, 45, 45, + + 839, 803, 816, 817, 840, 818, 860, 861, 841, 862, + 863, 864, 866, 867, 865, 868, 869, 45, 45, 45, 45, 45, 45, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, - 897, 898, 899, 900, 902, 903, 904, 907, 908, 909, - 901, 911, 912, 905, 913, 910, 914, 906, 915, 916, + 897, 898, 899, 900, 901, 902, 904, 905, 906, 909, + 910, 911, 903, 913, 914, 907, 915, 912, 916, 908, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, - 947, 948, 949, 950, 951, 952, 953, 926, 954, 955, + 947, 948, 949, 950, 951, 952, 953, 954, 955, 928, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, - 966, 967, 968, 969, 971, 972, 973, 974, 970, 975, - 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, - 986, 987, 988, 989, 990, 991, 992, 994, 995, 996, - 993, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, + 966, 967, 968, 969, 970, 971, 972, 974, 975, 976, + 977, 973, 978, 979, 980, 981, 982, 983, 984, 985, + 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, + 997, 998, 999, 996, 1000, 1001, 1002, 1003, 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, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, - 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1042, - 1065, 1066, 1041, 1067, 1068, 1069, 1070, 1071, 1072, 1073, + 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, + 1066, 1067, 1045, 1068, 1069, 1044, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, - 1084, 1085, 1086, 1088, 1089, 1090, 1091, 1092, 1093, 1094, + 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, - 1105, 1106, 1107, 1108, 1109, 1110, 1112, 1113, 1114, 1115, - 1116, 1117, 1118, 1119, 1120, 1121, 1111, 1122, 1123, 1124, - 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, + 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, + 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, + 1115, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, - 1087, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1154, - 1153, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, + 1145, 1146, 1147, 1148, 1091, 1149, 1150, 1151, 1152, 1153, + 1154, 1155, 1156, 1158, 1157, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, - 1174, 1175, 1176, 1177, 1178, 1179, 1152, 1153, 1180, 1181, - 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, - 1192, 1193, 1194, 1195, 1197, 1199, 1200, 1201, 1196, 1202, - 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, + 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, + 1156, 1157, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, + 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1202, + 1204, 1205, 1206, 1201, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, - 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1198, 1241, + 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, - 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, + 1243, 1244, 1245, 1203, 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, 1278, 1279, 1280, 1258, - 1281, 1282, 1283, 1284, 1285, 1259, 1286, 1287, 1288, 1289, - 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, + 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, + 1282, 1283, 1284, 1285, 1263, 1286, 1287, 1288, 1289, 1290, + 1264, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, - 1330, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, + 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, - 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1360, 1361, - 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, - 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1351, 1380, - 1381, 1382, 1383, 1331, 1384, 1385, 1386, 1387, 1388, 1389, - 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1398, 1399, 1400, - 1401, 1359, 1402, 1403, 1397, 1404, 1405, 1406, 1407, 1408, - 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, + 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, + 1361, 1362, 1363, 1364, 1366, 1367, 1368, 1369, 1370, 1371, + 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, + 1382, 1383, 1384, 1385, 1357, 1386, 1387, 1388, 1389, 1337, + 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, + 1400, 1401, 1402, 1403, 1405, 1406, 1407, 1365, 1408, 1409, + 1410, 1404, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, - 1429, 1430, 1431, 1432, 1434, 1435, 1436, 1437, 1433, 1438, + 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, 1434, 1456, 1457, - 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, + 1439, 1441, 1442, 1443, 1444, 1440, 1445, 1446, 1447, 1448, + 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, + 1459, 1460, 1461, 1462, 1441, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, - 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1518, - 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1517, - 1528, 1529, 1530, 1504, 1531, 1532, 1533, 1534, 1535, 1536, + 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, + 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1526, 1527, 1528, + 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1525, 1536, 1537, - 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, + 1538, 1512, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 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, 1591, 1592, 1593, 1594, 1537, 1595, 1596, - 1597, 1598, 1599, 1573, 1600, 1601, 1602, 1603, 1604, 1605, - 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, + 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, + 1598, 1599, 1600, 1601, 1602, 1603, 1546, 1604, 1605, 1606, + 1607, 1608, 1582, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, @@ -1563,79 +1573,81 @@ static const flex_int16_t yy_nxt[2343] = 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, - 1846, 1848, 1847, 1849, 1850, 1851, 1852, 1853, 1854, 1855, + 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, - 1866, 12, 12, 12, 12, 12, 36, 36, 36, 36, - 36, 78, 310, 78, 78, 78, 97, 432, 97, 559, - 97, 99, 99, 99, 99, 99, 112, 112, 112, 112, - 112, 183, 99, 183, 183, 183, 203, 203, 203, 835, - 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, - 824, 823, 822, 821, 820, 819, 818, 814, 811, 810, - 809, 808, 807, 806, 805, 804, 801, 800, 799, 798, - - 797, 796, 795, 794, 793, 792, 791, 788, 787, 786, - 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, - 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, - 765, 764, 763, 762, 761, 760, 759, 756, 755, 754, - 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, - 743, 742, 741, 740, 739, 738, 737, 734, 733, 732, - 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, - 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, - 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, - 701, 700, 699, 698, 697, 696, 695, 694, 693, 690, - - 689, 685, 684, 683, 682, 681, 680, 679, 678, 677, - 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, - 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, - 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, - 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, - 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, - 626, 625, 624, 621, 620, 619, 618, 617, 616, 615, - 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, - 604, 601, 600, 599, 598, 597, 596, 595, 591, 590, - 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, - - 573, 572, 571, 570, 569, 565, 564, 563, 561, 560, - 558, 557, 554, 553, 552, 551, 550, 547, 546, 545, - 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, - 534, 533, 530, 529, 528, 525, 524, 523, 522, 521, - 520, 519, 518, 515, 514, 513, 512, 511, 510, 509, - 508, 507, 506, 505, 504, 501, 500, 499, 498, 497, - 496, 495, 491, 490, 489, 488, 487, 486, 485, 484, - 483, 482, 477, 476, 475, 474, 473, 472, 471, 470, - 469, 468, 467, 466, 463, 462, 461, 460, 459, 456, - 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, - - 445, 444, 441, 440, 438, 436, 431, 428, 425, 424, - 423, 422, 421, 419, 418, 417, 416, 415, 414, 413, - 412, 411, 408, 407, 406, 405, 404, 403, 402, 401, - 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, - 388, 387, 386, 385, 384, 380, 379, 378, 377, 376, - 375, 374, 373, 372, 371, 367, 366, 365, 364, 363, - 362, 359, 358, 357, 356, 355, 354, 353, 352, 351, - 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, - 340, 339, 338, 333, 332, 331, 330, 329, 328, 327, - 326, 325, 324, 322, 204, 319, 317, 313, 311, 309, - - 302, 301, 300, 298, 297, 296, 294, 293, 292, 289, - 288, 287, 272, 266, 261, 260, 259, 258, 257, 255, - 254, 253, 252, 251, 250, 247, 246, 245, 244, 243, - 242, 241, 240, 239, 235, 234, 231, 228, 227, 226, - 225, 222, 221, 220, 219, 215, 214, 210, 209, 208, - 204, 195, 193, 191, 190, 182, 163, 142, 118, 104, - 102, 43, 98, 96, 95, 86, 43, 1867, 11, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1867, 1867 + 1866, 1868, 1867, 1869, 1870, 1871, 1872, 1873, 1874, 1875, + 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, + 1886, 1887, 1888, 1889, 12, 12, 12, 12, 12, 36, + 36, 36, 36, 36, 78, 310, 78, 78, 78, 97, + 432, 97, 559, 97, 99, 99, 99, 99, 99, 112, + 112, 112, 112, 112, 183, 99, 183, 183, 183, 203, + 203, 203, 837, 836, 835, 834, 833, 832, 831, 830, + + 829, 828, 827, 826, 825, 824, 823, 822, 821, 820, + 819, 815, 812, 811, 810, 809, 808, 807, 806, 805, + 802, 801, 800, 799, 798, 797, 796, 795, 794, 793, + 792, 789, 788, 787, 786, 785, 784, 783, 782, 781, + 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, + 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, + 760, 757, 756, 755, 754, 753, 752, 751, 750, 749, + 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, + 738, 735, 734, 733, 732, 731, 730, 729, 728, 727, + 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, + + 716, 715, 714, 713, 712, 711, 708, 707, 706, 705, + 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, + 694, 693, 690, 689, 685, 684, 683, 682, 681, 680, + 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, + 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, + 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, + 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, + 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, + 629, 628, 627, 626, 625, 624, 621, 620, 619, 618, + 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, + + 607, 606, 605, 604, 601, 600, 599, 598, 597, 596, + 595, 591, 590, 583, 582, 581, 580, 579, 578, 577, + 576, 575, 574, 573, 572, 571, 570, 569, 565, 564, + 563, 561, 560, 558, 557, 554, 553, 552, 551, 550, + 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, + 537, 536, 535, 534, 533, 530, 529, 528, 525, 524, + 523, 522, 521, 520, 519, 518, 515, 514, 513, 512, + 511, 510, 509, 508, 507, 506, 505, 504, 501, 500, + 499, 498, 497, 496, 495, 491, 490, 489, 488, 487, + 486, 485, 484, 483, 482, 477, 476, 475, 474, 473, + + 472, 471, 470, 469, 468, 467, 466, 463, 462, 461, + 460, 459, 456, 455, 454, 453, 452, 451, 450, 449, + 448, 447, 446, 445, 444, 441, 440, 438, 436, 431, + 428, 425, 424, 423, 422, 421, 419, 418, 417, 416, + 415, 414, 413, 412, 411, 408, 407, 406, 405, 404, + 403, 402, 401, 398, 397, 396, 395, 394, 393, 392, + 391, 390, 389, 388, 387, 386, 385, 384, 380, 379, + 378, 377, 376, 375, 374, 373, 372, 371, 367, 366, + 365, 364, 363, 362, 359, 358, 357, 356, 355, 354, + 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, + + 343, 342, 341, 340, 339, 338, 333, 332, 331, 330, + 329, 328, 327, 326, 325, 324, 322, 204, 319, 317, + 313, 311, 309, 302, 301, 300, 298, 297, 296, 294, + 293, 292, 289, 288, 287, 272, 266, 261, 260, 259, + 258, 257, 255, 254, 253, 252, 251, 250, 247, 246, + 245, 244, 243, 242, 241, 240, 239, 235, 234, 231, + 228, 227, 226, 225, 222, 221, 220, 219, 215, 214, + 210, 209, 208, 204, 195, 193, 191, 190, 182, 163, + 142, 118, 104, 102, 43, 98, 96, 95, 86, 43, + 1890, 11, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890 } ; -static const flex_int16_t yy_chk[2343] = +static const flex_int16_t yy_chk[2366] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1664,237 +1676,239 @@ static const flex_int16_t yy_chk[2343] = 17, 17, 17, 17, 17, 19, 62, 19, 19, 19, 19, 19, 285, 17, 20, 20, 20, 20, 20, 22, 19, 22, 22, 22, 22, 22, 89, 20, 53, 62, - 57, 59, 717, 61, 22, 90, 17, 92, 53, 59, + 57, 59, 718, 61, 22, 90, 17, 92, 53, 59, 62, 63, 59, 19, 61, 59, 91, 59, 63, 59, - 20, 53, 89, 719, 61, 73, 57, 22, 45, 73, + 20, 53, 89, 720, 61, 73, 57, 22, 45, 73, 65, 90, 57, 92, 45, 57, 53, 45, 134, 45, 65, 45, 65, 45, 91, 56, 67, 67, 45, 45, - 67, 45, 56, 720, 134, 99, 67, 45, 45, 45, + 67, 45, 56, 721, 134, 99, 67, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 60, 71, 56, 60, 60, 71, 56, 60, 60, 68, 56, 69, 99, 68, 108, 71, 295, 68, 56, 93, - 60, 295, 56, 76, 56, 56, 721, 70, 722, 68, + 60, 295, 56, 76, 56, 56, 722, 70, 723, 68, 69, 105, 69, 68, 69, 70, 94, 70, 75, 75, 74, 108, 70, 70, 74, 93, 76, 74, 75, 79, 79, 79, 79, 79, 74, 74, 76, 105, 75, 74, 74, 76, 79, 80, 94, 80, 80, 80, 80, 80, - 147, 75, 723, 75, 147, 81, 75, 81, 80, 301, + 147, 75, 724, 75, 147, 81, 75, 81, 80, 301, 81, 81, 81, 81, 81, 79, 75, 83, 83, 83, 83, 83, 82, 75, 82, 82, 82, 82, 82, 103, 83, 80, 87, 87, 87, 87, 87, 82, 88, 88, 88, 88, 88, 101, 107, 109, 111, 110, 115, 119, 101, 154, 137, 83, 122, 137, 175, 103, 119, 137, - 82, 301, 119, 122, 122, 115, 725, 163, 171, 111, + 82, 301, 119, 122, 122, 115, 726, 163, 171, 111, 160, 163, 107, 109, 110, 165, 115, 166, 166, 154, 101, 154, 171, 175, 101, 160, 160, 160, 101, 162, - 167, 184, 162, 162, 167, 179, 101, 186, 167, 726, + 167, 184, 162, 162, 167, 179, 101, 186, 167, 727, 101, 185, 101, 101, 114, 114, 114, 114, 114, 188, 165, 165, 165, 114, 114, 114, 114, 114, 114, 184, 186, 165, 179, 165, 187, 165, 165, 185, 165, 196, 189, 194, 197, 198, 202, 188, 114, 114, 114, 114, - 114, 114, 200, 242, 276, 260, 727, 276, 207, 303, + 114, 114, 200, 242, 276, 260, 728, 276, 207, 303, 218, 249, 187, 189, 194, 312, 198, 196, 218, 197, 242, 202, 306, 218, 218, 200, 205, 205, 205, 205, 205, 207, 303, 311, 314, 205, 205, 205, 205, 205, 205, 260, 316, 311, 312, 306, 344, 323, 337, 368, - 368, 390, 344, 728, 368, 260, 376, 314, 205, 205, + 368, 390, 344, 729, 368, 260, 376, 314, 205, 205, 205, 205, 205, 205, 249, 337, 376, 249, 435, 493, 316, 321, 321, 321, 321, 321, 323, 616, 616, 493, 321, 321, 321, 321, 321, 321, 357, 420, 400, 404, 420, 357, 400, 404, 427, 441, 435, 441, 443, 427, 566, 567, 461, 321, 321, 321, 321, 321, 321, 390, - 461, 687, 461, 461, 461, 464, 461, 729, 473, 730, - 568, 672, 441, 473, 441, 568, 443, 566, 464, 567, - 464, 572, 672, 686, 687, 696, 731, 732, 572, 357, - 733, 696, 734, 735, 357, 442, 442, 442, 442, 442, - 698, 698, 736, 698, 442, 442, 442, 442, 442, 442, - - 718, 686, 737, 738, 718, 739, 740, 741, 718, 742, - 743, 744, 742, 745, 747, 748, 749, 442, 442, 442, - 442, 442, 442, 750, 751, 752, 753, 754, 755, 756, - 758, 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, 783, 784, 785, 786, - 781, 787, 788, 783, 790, 786, 791, 783, 792, 793, - 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, - 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, - 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, - - 825, 826, 827, 828, 829, 830, 831, 803, 832, 833, - 834, 835, 836, 837, 838, 839, 840, 841, 843, 844, - 845, 846, 847, 848, 849, 850, 851, 852, 848, 853, - 854, 855, 856, 857, 860, 861, 862, 863, 864, 865, - 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, - 874, 878, 879, 880, 881, 884, 885, 886, 887, 888, - 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, - 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, - 909, 910, 911, 912, 914, 915, 916, 917, 918, 919, - 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, - - 930, 931, 932, 934, 935, 936, 937, 938, 939, 940, - 941, 942, 943, 944, 945, 946, 947, 948, 949, 926, - 950, 951, 925, 952, 953, 954, 955, 956, 958, 959, - 960, 961, 962, 963, 964, 965, 966, 967, 968, 970, - 971, 972, 973, 974, 975, 977, 978, 979, 980, 981, - 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, - 992, 993, 994, 995, 996, 997, 998, 999, 1001, 1002, - 1003, 1004, 1006, 1007, 1008, 1009, 997, 1010, 1011, 1012, - 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, - 1023, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, - - 973, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1043, - 1042, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1052, 1053, - 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, - 1064, 1065, 1066, 1067, 1069, 1070, 1041, 1042, 1071, 1072, - 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, - 1083, 1084, 1085, 1087, 1088, 1089, 1090, 1091, 1087, 1092, - 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, - 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, - 1113, 1114, 1115, 1116, 1118, 1119, 1120, 1121, 1122, 1123, - 1124, 1125, 1126, 1127, 1128, 1130, 1131, 1132, 1088, 1134, + 461, 687, 461, 461, 461, 464, 461, 730, 473, 731, + 568, 732, 441, 473, 441, 568, 443, 566, 464, 567, + 464, 572, 589, 686, 687, 589, 696, 733, 572, 357, + 672, 734, 696, 735, 357, 442, 442, 442, 442, 442, + 736, 672, 737, 738, 442, 442, 442, 442, 442, 442, + + 719, 686, 698, 698, 719, 698, 739, 740, 719, 741, + 742, 743, 744, 745, 743, 746, 748, 442, 442, 442, + 442, 442, 442, 749, 750, 751, 752, 753, 754, 755, + 756, 757, 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, 784, 784, 785, + 786, 787, 782, 788, 789, 784, 791, 787, 792, 784, + 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, + 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, + 813, 814, 816, 817, 818, 819, 820, 821, 822, 823, + + 824, 825, 826, 827, 828, 829, 830, 831, 832, 804, + 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, + 843, 845, 846, 847, 848, 849, 850, 851, 852, 853, + 854, 850, 855, 856, 857, 858, 859, 862, 863, 864, + 865, 866, 867, 870, 871, 872, 873, 874, 875, 876, + 877, 878, 879, 876, 880, 881, 882, 883, 886, 887, + 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, + 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, + 908, 909, 910, 911, 912, 913, 914, 916, 917, 918, + 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, + + 929, 930, 931, 932, 933, 934, 936, 937, 938, 939, + 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, + 950, 951, 928, 952, 953, 927, 954, 955, 956, 957, + 958, 959, 961, 962, 963, 964, 965, 966, 967, 968, + 969, 970, 971, 973, 974, 975, 976, 977, 978, 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, 1009, 1010, 1011, 1012, + 1000, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, + 1022, 1023, 1024, 1025, 1026, 1028, 1029, 1030, 1031, 1032, + + 1033, 1034, 1035, 1036, 976, 1037, 1038, 1039, 1040, 1041, + 1042, 1043, 1044, 1046, 1045, 1047, 1048, 1049, 1050, 1051, + 1052, 1053, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, + 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1073, + 1044, 1045, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, + 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1091, 1092, + 1093, 1094, 1095, 1091, 1096, 1097, 1098, 1099, 1100, 1101, + 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, + 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1122, + 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, + + 1134, 1135, 1136, 1092, 1138, 1139, 1140, 1141, 1142, 1143, + 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, + 1154, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1165, + 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1174, 1175, 1176, + 1177, 1178, 1179, 1180, 1156, 1182, 1183, 1184, 1185, 1186, + 1157, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, + 1196, 1197, 1198, 1201, 1203, 1204, 1205, 1206, 1207, 1208, + 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1217, 1218, 1219, + 1220, 1222, 1223, 1224, 1225, 1226, 1227, 1230, 1232, 1233, + 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, + + 1244, 1245, 1246, 1248, 1249, 1250, 1251, 1252, 1255, 1256, + 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1266, 1267, + 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1277, 1278, + 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, + 1289, 1290, 1291, 1292, 1263, 1293, 1295, 1296, 1297, 1240, + 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, + 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1271, 1315, 1316, + 1317, 1311, 1319, 1322, 1323, 1324, 1325, 1326, 1327, 1328, + 1329, 1330, 1331, 1333, 1334, 1335, 1336, 1337, 1338, 1339, + 1341, 1342, 1344, 1347, 1348, 1349, 1351, 1352, 1354, 1355, + + 1356, 1357, 1359, 1360, 1361, 1356, 1362, 1363, 1365, 1366, + 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, + 1377, 1378, 1379, 1380, 1357, 1381, 1383, 1384, 1386, 1387, + 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1397, 1399, + 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1411, + 1412, 1413, 1414, 1415, 1416, 1417, 1419, 1420, 1422, 1423, + 1424, 1425, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, + 1435, 1436, 1438, 1440, 1441, 1443, 1445, 1446, 1447, 1448, + 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, + 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1455, 1466, 1467, + + 1468, 1441, 1469, 1470, 1471, 1472, 1473, 1473, 1474, 1475, + 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, + 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, + 1496, 1497, 1498, 1499, 1500, 1502, 1503, 1504, 1505, 1506, + 1508, 1509, 1510, 1511, 1512, 1514, 1515, 1518, 1519, 1520, + 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, + 1533, 1535, 1537, 1538, 1539, 1540, 1474, 1541, 1542, 1543, + 1544, 1546, 1512, 1547, 1548, 1550, 1552, 1553, 1554, 1556, + 1557, 1558, 1559, 1560, 1562, 1563, 1564, 1565, 1566, 1567, + 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, - 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, - 1145, 1146, 1147, 1148, 1149, 1150, 1152, 1153, 1154, 1155, - 1156, 1157, 1158, 1159, 1161, 1162, 1163, 1164, 1165, 1166, - 1167, 1168, 1170, 1171, 1172, 1173, 1174, 1175, 1177, 1152, - 1178, 1179, 1180, 1181, 1182, 1153, 1183, 1184, 1185, 1186, - 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1196, 1198, 1199, - 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, - 1210, 1212, 1213, 1214, 1215, 1217, 1218, 1219, 1220, 1221, - 1222, 1225, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, - 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1243, 1244, 1245, - - 1246, 1247, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, - 1258, 1259, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, - 1269, 1270, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, - 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1258, 1289, - 1290, 1291, 1292, 1235, 1293, 1294, 1295, 1296, 1297, 1298, - 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, - 1309, 1266, 1310, 1311, 1305, 1313, 1316, 1317, 1318, 1319, - 1320, 1321, 1322, 1323, 1324, 1325, 1327, 1328, 1329, 1330, - 1331, 1332, 1333, 1335, 1336, 1338, 1341, 1342, 1343, 1345, - 1346, 1348, 1349, 1350, 1351, 1353, 1354, 1355, 1350, 1356, - - 1357, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, - 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1351, 1376, 1377, - 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, - 1390, 1392, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, - 1402, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1412, 1413, - 1415, 1416, 1417, 1418, 1420, 1421, 1422, 1423, 1424, 1425, - 1426, 1427, 1428, 1429, 1431, 1433, 1434, 1436, 1438, 1439, - 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, - 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1448, - 1459, 1460, 1461, 1434, 1462, 1463, 1464, 1465, 1465, 1466, - - 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, - 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, - 1487, 1488, 1489, 1490, 1491, 1492, 1494, 1495, 1496, 1497, - 1498, 1500, 1501, 1502, 1503, 1504, 1506, 1507, 1510, 1511, - 1512, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, - 1524, 1526, 1528, 1529, 1530, 1531, 1532, 1466, 1533, 1534, - 1535, 1537, 1538, 1504, 1539, 1541, 1543, 1544, 1545, 1547, - 1548, 1549, 1550, 1551, 1553, 1554, 1555, 1556, 1557, 1558, - 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, - 1569, 1570, 1572, 1573, 1575, 1576, 1577, 1579, 1580, 1581, - - 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, - 1592, 1593, 1595, 1596, 1597, 1599, 1600, 1602, 1603, 1604, - 1605, 1606, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, - 1616, 1618, 1619, 1621, 1624, 1625, 1626, 1627, 1630, 1632, - 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1643, - 1644, 1645, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1655, - 1656, 1657, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, - 1667, 1669, 1670, 1671, 1673, 1674, 1675, 1676, 1677, 1678, - 1679, 1680, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, - 1690, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1703, - - 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, - 1714, 1715, 1716, 1717, 1718, 1719, 1721, 1722, 1723, 1724, - 1725, 1726, 1727, 1729, 1733, 1735, 1736, 1737, 1738, 1740, - 1741, 1742, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, - 1752, 1753, 1754, 1756, 1757, 1758, 1760, 1761, 1764, 1765, - 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1775, 1776, 1777, - 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, - 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, - 1799, 1800, 1801, 1802, 1803, 1804, 1806, 1807, 1809, 1810, - 1812, 1813, 1814, 1815, 1818, 1820, 1821, 1822, 1824, 1825, - - 1826, 1827, 1828, 1829, 1831, 1833, 1836, 1837, 1838, 1839, - 1840, 1841, 1840, 1843, 1844, 1846, 1847, 1848, 1849, 1850, - 1851, 1852, 1854, 1855, 1856, 1857, 1858, 1861, 1862, 1863, - 1864, 1868, 1868, 1868, 1868, 1868, 1869, 1869, 1869, 1869, - 1869, 1870, 1876, 1870, 1870, 1870, 1871, 1877, 1871, 1878, - 1871, 1872, 1872, 1872, 1872, 1872, 1873, 1873, 1873, 1873, - 1873, 1874, 1879, 1874, 1874, 1874, 1875, 1875, 1875, 716, - 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, - 705, 704, 703, 702, 701, 700, 699, 697, 695, 694, - 693, 692, 691, 690, 689, 688, 684, 683, 681, 680, - - 679, 678, 677, 676, 675, 674, 673, 671, 670, 668, - 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, - 657, 656, 654, 653, 652, 651, 650, 649, 648, 647, - 646, 644, 643, 642, 641, 640, 639, 637, 636, 635, - 634, 633, 632, 631, 629, 628, 627, 626, 625, 624, - 623, 622, 621, 620, 619, 618, 617, 615, 614, 613, - 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, - 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, - 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, - 581, 580, 579, 578, 577, 576, 575, 574, 573, 571, - - 570, 562, 561, 560, 558, 557, 556, 554, 553, 551, - 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, - 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, - 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, - 519, 517, 515, 514, 513, 512, 511, 510, 509, 508, - 507, 506, 505, 504, 503, 502, 500, 499, 498, 497, - 496, 495, 494, 492, 491, 490, 489, 488, 487, 486, - 485, 484, 483, 482, 481, 480, 479, 477, 476, 475, - 474, 472, 471, 470, 469, 468, 466, 465, 463, 462, - 459, 458, 457, 456, 455, 454, 453, 451, 450, 449, - - 448, 447, 446, 445, 444, 439, 437, 436, 434, 433, - 431, 428, 426, 425, 423, 422, 421, 419, 418, 417, - 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, - 406, 405, 403, 402, 401, 399, 398, 397, 396, 394, - 393, 392, 391, 389, 388, 387, 386, 385, 384, 383, - 382, 381, 380, 379, 377, 375, 374, 373, 372, 371, - 370, 369, 367, 366, 365, 364, 363, 362, 361, 360, - 359, 358, 356, 355, 354, 353, 352, 351, 350, 349, - 348, 347, 346, 345, 343, 342, 341, 340, 339, 336, - 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, - - 325, 324, 320, 318, 315, 313, 309, 302, 300, 299, - 298, 297, 296, 294, 293, 292, 291, 290, 289, 288, - 287, 286, 284, 283, 282, 281, 280, 279, 278, 277, - 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, - 265, 264, 263, 262, 261, 259, 258, 257, 256, 255, - 254, 253, 252, 251, 250, 248, 247, 246, 245, 244, - 243, 241, 239, 238, 237, 236, 235, 234, 233, 232, - 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, - 221, 220, 219, 217, 216, 215, 214, 213, 212, 211, - 210, 209, 208, 206, 203, 201, 199, 195, 193, 190, - - 182, 181, 180, 178, 177, 176, 174, 173, 172, 170, - 169, 168, 164, 161, 159, 158, 157, 156, 155, 153, - 152, 151, 150, 149, 148, 146, 145, 144, 143, 142, - 141, 140, 139, 138, 136, 135, 133, 131, 130, 129, - 128, 126, 125, 124, 123, 121, 120, 118, 117, 116, - 112, 104, 102, 97, 96, 77, 72, 66, 58, 49, - 47, 43, 41, 39, 38, 24, 14, 11, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1867, 1867 + 1578, 1579, 1581, 1582, 1584, 1585, 1586, 1588, 1589, 1590, + 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, + 1601, 1602, 1603, 1605, 1606, 1607, 1609, 1610, 1612, 1613, + 1614, 1615, 1616, 1618, 1619, 1620, 1621, 1622, 1623, 1624, + 1625, 1626, 1628, 1629, 1631, 1634, 1635, 1636, 1637, 1640, + 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, + 1652, 1654, 1655, 1656, 1658, 1659, 1660, 1661, 1662, 1663, + 1664, 1666, 1667, 1668, 1670, 1671, 1672, 1673, 1674, 1675, + 1676, 1677, 1678, 1680, 1681, 1682, 1684, 1685, 1686, 1687, + 1688, 1689, 1690, 1691, 1693, 1694, 1695, 1696, 1697, 1698, + + 1699, 1700, 1701, 1702, 1705, 1706, 1707, 1708, 1709, 1710, + 1711, 1712, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, + 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, + 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1742, 1746, 1748, + 1749, 1750, 1751, 1753, 1754, 1755, 1757, 1758, 1759, 1760, + 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1770, 1771, + 1772, 1774, 1775, 1778, 1779, 1781, 1782, 1783, 1784, 1785, + 1786, 1787, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, + 1797, 1798, 1799, 1800, 1801, 1802, 1804, 1805, 1806, 1807, + 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, + + 1818, 1819, 1820, 1822, 1823, 1825, 1826, 1827, 1829, 1830, + 1831, 1832, 1835, 1837, 1838, 1839, 1841, 1842, 1843, 1844, + 1845, 1846, 1847, 1849, 1851, 1853, 1855, 1856, 1857, 1858, + 1859, 1860, 1859, 1861, 1863, 1864, 1866, 1867, 1868, 1869, + 1870, 1871, 1872, 1873, 1875, 1876, 1877, 1878, 1879, 1881, + 1884, 1885, 1886, 1887, 1891, 1891, 1891, 1891, 1891, 1892, + 1892, 1892, 1892, 1892, 1893, 1899, 1893, 1893, 1893, 1894, + 1900, 1894, 1901, 1894, 1895, 1895, 1895, 1895, 1895, 1896, + 1896, 1896, 1896, 1896, 1897, 1902, 1897, 1897, 1897, 1898, + 1898, 1898, 717, 716, 715, 714, 713, 712, 711, 710, + + 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, + 699, 697, 695, 694, 693, 692, 691, 690, 689, 688, + 684, 683, 681, 680, 679, 678, 677, 676, 675, 674, + 673, 671, 670, 668, 667, 666, 665, 664, 663, 662, + 661, 660, 659, 658, 657, 656, 654, 653, 652, 651, + 650, 649, 648, 647, 646, 644, 643, 642, 641, 640, + 639, 637, 636, 635, 634, 633, 632, 631, 629, 628, + 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, + 617, 615, 614, 613, 612, 611, 610, 609, 608, 607, + 606, 605, 604, 603, 601, 600, 599, 598, 597, 596, + + 595, 594, 593, 592, 591, 590, 588, 587, 586, 585, + 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, + 574, 573, 571, 570, 562, 561, 560, 558, 557, 556, + 554, 553, 551, 549, 548, 547, 546, 545, 544, 543, + 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, + 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, + 522, 521, 520, 519, 517, 515, 514, 513, 512, 511, + 510, 509, 508, 507, 506, 505, 504, 503, 502, 500, + 499, 498, 497, 496, 495, 494, 492, 491, 490, 489, + 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, + + 477, 476, 475, 474, 472, 471, 470, 469, 468, 466, + 465, 463, 462, 459, 458, 457, 456, 455, 454, 453, + 451, 450, 449, 448, 447, 446, 445, 444, 439, 437, + 436, 434, 433, 431, 428, 426, 425, 423, 422, 421, + 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, + 409, 408, 407, 406, 405, 403, 402, 401, 399, 398, + 397, 396, 394, 393, 392, 391, 389, 388, 387, 386, + 385, 384, 383, 382, 381, 380, 379, 377, 375, 374, + 373, 372, 371, 370, 369, 367, 366, 365, 364, 363, + 362, 361, 360, 359, 358, 356, 355, 354, 353, 352, + + 351, 350, 349, 348, 347, 346, 345, 343, 342, 341, + 340, 339, 336, 335, 334, 333, 332, 331, 330, 329, + 328, 327, 326, 325, 324, 320, 318, 315, 313, 309, + 302, 300, 299, 298, 297, 296, 294, 293, 292, 291, + 290, 289, 288, 287, 286, 284, 283, 282, 281, 280, + 279, 278, 277, 275, 274, 273, 272, 271, 270, 269, + 268, 267, 266, 265, 264, 263, 262, 261, 259, 258, + 257, 256, 255, 254, 253, 252, 251, 250, 248, 247, + 246, 245, 244, 243, 241, 239, 238, 237, 236, 235, + 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, + + 224, 223, 222, 221, 220, 219, 217, 216, 215, 214, + 213, 212, 211, 210, 209, 208, 206, 203, 201, 199, + 195, 193, 190, 182, 181, 180, 178, 177, 176, 174, + 173, 172, 170, 169, 168, 164, 161, 159, 158, 157, + 156, 155, 153, 152, 151, 150, 149, 148, 146, 145, + 144, 143, 142, 141, 140, 139, 138, 136, 135, 133, + 131, 130, 129, 128, 126, 125, 124, 123, 121, 120, + 118, 117, 116, 112, 104, 102, 97, 96, 77, 72, + 66, 58, 49, 47, 43, 41, 39, 38, 24, 14, + 11, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, + 1890, 1890, 1890, 1890, 1890 } ; static yy_state_type yy_last_accepting_state; @@ -1903,7 +1917,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[201] = +static const flex_int16_t yy_rule_linenum[202] = { 0, 145, 147, 149, 154, 155, 160, 161, 162, 174, 177, 182, 189, 198, 207, 216, 225, 234, 243, 253, 262, @@ -1911,22 +1925,23 @@ static const flex_int16_t yy_rule_linenum[201] = 361, 373, 382, 391, 400, 409, 420, 431, 442, 453, 464, 475, 486, 497, 508, 519, 530, 541, 552, 563, 574, 585, 594, 605, 616, 627, 638, 649, 658, 667, - 676, 685, 696, 707, 718, 729, 740, 751, 762, 772, - 783, 792, 802, 816, 832, 841, 850, 859, 868, 890, - 912, 921, 931, 940, 951, 960, 969, 978, 987, 996, - 1006, 1015, 1026, 1037, 1048, 1059, 1071, 1080, 1089, 1098, - - 1107, 1116, 1125, 1134, 1143, 1152, 1162, 1173, 1185, 1194, - 1203, 1213, 1223, 1233, 1243, 1253, 1263, 1272, 1282, 1291, - 1300, 1309, 1318, 1328, 1338, 1347, 1357, 1366, 1375, 1384, - 1393, 1402, 1411, 1420, 1429, 1438, 1447, 1456, 1465, 1474, - 1483, 1492, 1501, 1510, 1519, 1528, 1537, 1546, 1555, 1564, - 1573, 1582, 1591, 1600, 1609, 1618, 1627, 1636, 1645, 1654, - 1663, 1672, 1684, 1696, 1706, 1716, 1726, 1736, 1746, 1756, - 1766, 1776, 1786, 1795, 1804, 1813, 1822, 1833, 1844, 1857, - 1870, 1883, 1892, 1991, 1996, 2001, 2006, 2007, 2008, 2009, - 2010, 2011, 2013, 2031, 2044, 2049, 2053, 2055, 2057, 2059 - + 676, 685, 696, 707, 718, 729, 740, 751, 762, 773, + 783, 794, 803, 813, 827, 843, 852, 861, 870, 879, + 901, 923, 932, 942, 951, 962, 971, 980, 989, 998, + 1007, 1017, 1026, 1037, 1048, 1059, 1070, 1082, 1091, 1100, + + 1109, 1118, 1127, 1136, 1145, 1154, 1163, 1173, 1184, 1196, + 1205, 1214, 1224, 1234, 1244, 1254, 1264, 1274, 1283, 1293, + 1302, 1311, 1320, 1329, 1339, 1349, 1358, 1368, 1377, 1386, + 1395, 1404, 1413, 1422, 1431, 1440, 1449, 1458, 1467, 1476, + 1485, 1494, 1503, 1512, 1521, 1530, 1539, 1548, 1557, 1566, + 1575, 1584, 1593, 1602, 1611, 1620, 1629, 1638, 1647, 1656, + 1665, 1674, 1683, 1695, 1707, 1717, 1727, 1737, 1747, 1757, + 1767, 1777, 1787, 1797, 1806, 1815, 1824, 1833, 1844, 1855, + 1868, 1881, 1894, 1903, 2002, 2007, 2012, 2017, 2018, 2019, + 2020, 2021, 2022, 2024, 2042, 2055, 2060, 2064, 2066, 2068, + + 2070 } ; /* The intent behind this definition is that it'll catch @@ -1979,7 +1994,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg) -#line 1982 "dhcp4_lexer.cc" +#line 1997 "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 @@ -2005,8 +2020,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 2008 "dhcp4_lexer.cc" -#line 2009 "dhcp4_lexer.cc" +#line 2023 "dhcp4_lexer.cc" +#line 2024 "dhcp4_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2334,7 +2349,7 @@ YY_DECL } -#line 2337 "dhcp4_lexer.cc" +#line 2352 "dhcp4_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2363,13 +2378,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 >= 1868 ) + if ( yy_current_state >= 1891 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1867 ); + while ( yy_current_state != 1890 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2388,13 +2403,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 < 201 ) + else if ( yy_act < 202 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 201 ) + else if ( yy_act == 202 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 202 ) + else if ( yy_act == 203 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3248,6 +3263,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_USE_CONFLICT_RESOLUTION(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_); + } +} + YY_BREAK +case 70: +YY_RULE_SETUP +#line 773 "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: @@ -3255,9 +3284,9 @@ YY_RULE_SETUP } } YY_BREAK -case 70: +case 71: YY_RULE_SETUP -#line 772 "dhcp4_lexer.ll" +#line 783 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3269,9 +3298,9 @@ YY_RULE_SETUP } } YY_BREAK -case 71: +case 72: YY_RULE_SETUP -#line 783 "dhcp4_lexer.ll" +#line 794 "dhcp4_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3281,9 +3310,9 @@ YY_RULE_SETUP } } YY_BREAK -case 72: +case 73: YY_RULE_SETUP -#line 792 "dhcp4_lexer.ll" +#line 803 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3294,9 +3323,9 @@ YY_RULE_SETUP } } YY_BREAK -case 73: +case 74: YY_RULE_SETUP -#line 802 "dhcp4_lexer.ll" +#line 813 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3311,9 +3340,9 @@ YY_RULE_SETUP } } YY_BREAK -case 74: +case 75: YY_RULE_SETUP -#line 816 "dhcp4_lexer.ll" +#line 827 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -3330,9 +3359,9 @@ YY_RULE_SETUP } } YY_BREAK -case 75: +case 76: YY_RULE_SETUP -#line 832 "dhcp4_lexer.ll" +#line 843 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3342,9 +3371,9 @@ YY_RULE_SETUP } } YY_BREAK -case 76: +case 77: YY_RULE_SETUP -#line 841 "dhcp4_lexer.ll" +#line 852 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3354,9 +3383,9 @@ YY_RULE_SETUP } } YY_BREAK -case 77: +case 78: YY_RULE_SETUP -#line 850 "dhcp4_lexer.ll" +#line 861 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3366,9 +3395,9 @@ YY_RULE_SETUP } } YY_BREAK -case 78: +case 79: YY_RULE_SETUP -#line 859 "dhcp4_lexer.ll" +#line 870 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::POOLS: @@ -3378,9 +3407,9 @@ YY_RULE_SETUP } } YY_BREAK -case 79: +case 80: YY_RULE_SETUP -#line 868 "dhcp4_lexer.ll" +#line 879 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3403,9 +3432,9 @@ YY_RULE_SETUP } } YY_BREAK -case 80: +case 81: YY_RULE_SETUP -#line 890 "dhcp4_lexer.ll" +#line 901 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3428,9 +3457,9 @@ YY_RULE_SETUP } } YY_BREAK -case 81: +case 82: YY_RULE_SETUP -#line 912 "dhcp4_lexer.ll" +#line 923 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3440,9 +3469,9 @@ YY_RULE_SETUP } } YY_BREAK -case 82: +case 83: YY_RULE_SETUP -#line 921 "dhcp4_lexer.ll" +#line 932 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3453,9 +3482,9 @@ YY_RULE_SETUP } } YY_BREAK -case 83: +case 84: YY_RULE_SETUP -#line 931 "dhcp4_lexer.ll" +#line 942 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3465,9 +3494,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 85: YY_RULE_SETUP -#line 940 "dhcp4_lexer.ll" +#line 951 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3479,9 +3508,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 86: YY_RULE_SETUP -#line 951 "dhcp4_lexer.ll" +#line 962 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3491,9 +3520,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 87: YY_RULE_SETUP -#line 960 "dhcp4_lexer.ll" +#line 971 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3503,9 +3532,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 88: YY_RULE_SETUP -#line 969 "dhcp4_lexer.ll" +#line 980 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3515,9 +3544,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 89: YY_RULE_SETUP -#line 978 "dhcp4_lexer.ll" +#line 989 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3527,9 +3556,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 90: YY_RULE_SETUP -#line 987 "dhcp4_lexer.ll" +#line 998 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3539,9 +3568,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 91: YY_RULE_SETUP -#line 996 "dhcp4_lexer.ll" +#line 1007 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3552,9 +3581,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 92: YY_RULE_SETUP -#line 1006 "dhcp4_lexer.ll" +#line 1017 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3564,9 +3593,9 @@ YY_RULE_SETUP } } YY_BREAK -case 92: +case 93: YY_RULE_SETUP -#line 1015 "dhcp4_lexer.ll" +#line 1026 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3578,9 +3607,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 94: YY_RULE_SETUP -#line 1026 "dhcp4_lexer.ll" +#line 1037 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3592,9 +3621,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 95: YY_RULE_SETUP -#line 1037 "dhcp4_lexer.ll" +#line 1048 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3606,9 +3635,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 96: YY_RULE_SETUP -#line 1048 "dhcp4_lexer.ll" +#line 1059 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3620,9 +3649,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 97: YY_RULE_SETUP -#line 1059 "dhcp4_lexer.ll" +#line 1070 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3634,9 +3663,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 98: YY_RULE_SETUP -#line 1071 "dhcp4_lexer.ll" +#line 1082 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3646,9 +3675,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 99: YY_RULE_SETUP -#line 1080 "dhcp4_lexer.ll" +#line 1091 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -3658,9 +3687,9 @@ YY_RULE_SETUP } } YY_BREAK -case 99: +case 100: YY_RULE_SETUP -#line 1089 "dhcp4_lexer.ll" +#line 1100 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3670,9 +3699,9 @@ YY_RULE_SETUP } } YY_BREAK -case 100: +case 101: YY_RULE_SETUP -#line 1098 "dhcp4_lexer.ll" +#line 1109 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -3682,9 +3711,9 @@ YY_RULE_SETUP } } YY_BREAK -case 101: +case 102: YY_RULE_SETUP -#line 1107 "dhcp4_lexer.ll" +#line 1118 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3694,9 +3723,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::OUTPUT_OPTIONS: @@ -3706,9 +3735,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 104: YY_RULE_SETUP -#line 1125 "dhcp4_lexer.ll" +#line 1136 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3718,9 +3747,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 105: YY_RULE_SETUP -#line 1134 "dhcp4_lexer.ll" +#line 1145 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3730,9 +3759,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 106: YY_RULE_SETUP -#line 1143 "dhcp4_lexer.ll" +#line 1154 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -3742,9 +3771,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 107: YY_RULE_SETUP -#line 1152 "dhcp4_lexer.ll" +#line 1163 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3755,9 +3784,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 108: YY_RULE_SETUP -#line 1162 "dhcp4_lexer.ll" +#line 1173 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3769,9 +3798,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 1173 "dhcp4_lexer.ll" +#line 1184 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3784,9 +3813,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 110: YY_RULE_SETUP -#line 1185 "dhcp4_lexer.ll" +#line 1196 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -3796,9 +3825,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 111: YY_RULE_SETUP -#line 1194 "dhcp4_lexer.ll" +#line 1205 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -3808,9 +3837,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 112: YY_RULE_SETUP -#line 1203 "dhcp4_lexer.ll" +#line 1214 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3821,9 +3850,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 113: YY_RULE_SETUP -#line 1213 "dhcp4_lexer.ll" +#line 1224 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3834,9 +3863,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 114: YY_RULE_SETUP -#line 1223 "dhcp4_lexer.ll" +#line 1234 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3847,9 +3876,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 115: YY_RULE_SETUP -#line 1233 "dhcp4_lexer.ll" +#line 1244 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3860,9 +3889,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 116: YY_RULE_SETUP -#line 1243 "dhcp4_lexer.ll" +#line 1254 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3873,9 +3902,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 117: YY_RULE_SETUP -#line 1253 "dhcp4_lexer.ll" +#line 1264 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3886,9 +3915,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 118: YY_RULE_SETUP -#line 1263 "dhcp4_lexer.ll" +#line 1274 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATIONS: @@ -3898,9 +3927,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 119: YY_RULE_SETUP -#line 1272 "dhcp4_lexer.ll" +#line 1283 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3911,9 +3940,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 120: YY_RULE_SETUP -#line 1282 "dhcp4_lexer.ll" +#line 1293 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3923,9 +3952,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 121: YY_RULE_SETUP -#line 1291 "dhcp4_lexer.ll" +#line 1302 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3935,9 +3964,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 122: YY_RULE_SETUP -#line 1300 "dhcp4_lexer.ll" +#line 1311 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3947,9 +3976,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 123: YY_RULE_SETUP -#line 1309 "dhcp4_lexer.ll" +#line 1320 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3959,9 +3988,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 124: YY_RULE_SETUP -#line 1318 "dhcp4_lexer.ll" +#line 1329 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3972,9 +4001,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 125: YY_RULE_SETUP -#line 1328 "dhcp4_lexer.ll" +#line 1339 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -3985,9 +4014,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 126: YY_RULE_SETUP -#line 1338 "dhcp4_lexer.ll" +#line 1349 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -3997,9 +4026,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 127: YY_RULE_SETUP -#line 1347 "dhcp4_lexer.ll" +#line 1358 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4009,9 +4038,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 128: YY_RULE_SETUP -#line 1357 "dhcp4_lexer.ll" +#line 1368 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -4021,9 +4050,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 129: YY_RULE_SETUP -#line 1366 "dhcp4_lexer.ll" +#line 1377 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -4033,9 +4062,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 130: YY_RULE_SETUP -#line 1375 "dhcp4_lexer.ll" +#line 1386 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4045,9 +4074,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 131: YY_RULE_SETUP -#line 1384 "dhcp4_lexer.ll" +#line 1395 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4057,9 +4086,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 132: YY_RULE_SETUP -#line 1393 "dhcp4_lexer.ll" +#line 1404 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4069,9 +4098,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 133: YY_RULE_SETUP -#line 1402 "dhcp4_lexer.ll" +#line 1413 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4081,9 +4110,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 134: YY_RULE_SETUP -#line 1411 "dhcp4_lexer.ll" +#line 1422 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4093,9 +4122,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 135: YY_RULE_SETUP -#line 1420 "dhcp4_lexer.ll" +#line 1431 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4105,9 +4134,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 136: YY_RULE_SETUP -#line 1429 "dhcp4_lexer.ll" +#line 1440 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4117,9 +4146,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 137: YY_RULE_SETUP -#line 1438 "dhcp4_lexer.ll" +#line 1449 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4129,9 +4158,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 138: YY_RULE_SETUP -#line 1447 "dhcp4_lexer.ll" +#line 1458 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4141,9 +4170,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 139: YY_RULE_SETUP -#line 1456 "dhcp4_lexer.ll" +#line 1467 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4153,9 +4182,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 140: YY_RULE_SETUP -#line 1465 "dhcp4_lexer.ll" +#line 1476 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4165,9 +4194,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 141: YY_RULE_SETUP -#line 1474 "dhcp4_lexer.ll" +#line 1485 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4177,9 +4206,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 142: YY_RULE_SETUP -#line 1483 "dhcp4_lexer.ll" +#line 1494 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4189,9 +4218,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 143: YY_RULE_SETUP -#line 1492 "dhcp4_lexer.ll" +#line 1503 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4201,9 +4230,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 144: YY_RULE_SETUP -#line 1501 "dhcp4_lexer.ll" +#line 1512 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4213,9 +4242,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 145: YY_RULE_SETUP -#line 1510 "dhcp4_lexer.ll" +#line 1521 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4225,9 +4254,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 146: YY_RULE_SETUP -#line 1519 "dhcp4_lexer.ll" +#line 1530 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4237,9 +4266,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 147: YY_RULE_SETUP -#line 1528 "dhcp4_lexer.ll" +#line 1539 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4249,9 +4278,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 148: YY_RULE_SETUP -#line 1537 "dhcp4_lexer.ll" +#line 1548 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4261,9 +4290,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 149: YY_RULE_SETUP -#line 1546 "dhcp4_lexer.ll" +#line 1557 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4273,9 +4302,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 150: YY_RULE_SETUP -#line 1555 "dhcp4_lexer.ll" +#line 1566 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4285,9 +4314,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 151: YY_RULE_SETUP -#line 1564 "dhcp4_lexer.ll" +#line 1575 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4297,9 +4326,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 152: YY_RULE_SETUP -#line 1573 "dhcp4_lexer.ll" +#line 1584 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4309,9 +4338,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 153: YY_RULE_SETUP -#line 1582 "dhcp4_lexer.ll" +#line 1593 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4321,9 +4350,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 154: YY_RULE_SETUP -#line 1591 "dhcp4_lexer.ll" +#line 1602 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4333,9 +4362,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 155: YY_RULE_SETUP -#line 1600 "dhcp4_lexer.ll" +#line 1611 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4345,9 +4374,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 156: YY_RULE_SETUP -#line 1609 "dhcp4_lexer.ll" +#line 1620 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4357,9 +4386,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 157: YY_RULE_SETUP -#line 1618 "dhcp4_lexer.ll" +#line 1629 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4369,9 +4398,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 158: YY_RULE_SETUP -#line 1627 "dhcp4_lexer.ll" +#line 1638 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4381,9 +4410,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 159: YY_RULE_SETUP -#line 1636 "dhcp4_lexer.ll" +#line 1647 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4393,9 +4422,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 160: YY_RULE_SETUP -#line 1645 "dhcp4_lexer.ll" +#line 1656 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4405,9 +4434,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 161: YY_RULE_SETUP -#line 1654 "dhcp4_lexer.ll" +#line 1665 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4417,9 +4446,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 162: YY_RULE_SETUP -#line 1663 "dhcp4_lexer.ll" +#line 1674 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4429,9 +4458,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 163: YY_RULE_SETUP -#line 1672 "dhcp4_lexer.ll" +#line 1683 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4444,9 +4473,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 164: YY_RULE_SETUP -#line 1684 "dhcp4_lexer.ll" +#line 1695 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4459,9 +4488,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 165: YY_RULE_SETUP -#line 1696 "dhcp4_lexer.ll" +#line 1707 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -4472,9 +4501,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 165: +case 166: YY_RULE_SETUP -#line 1706 "dhcp4_lexer.ll" +#line 1717 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -4485,9 +4514,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 166: +case 167: YY_RULE_SETUP -#line 1716 "dhcp4_lexer.ll" +#line 1727 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) { @@ -4498,9 +4527,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 167: +case 168: YY_RULE_SETUP -#line 1726 "dhcp4_lexer.ll" +#line 1737 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4511,9 +4540,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 168: +case 169: YY_RULE_SETUP -#line 1736 "dhcp4_lexer.ll" +#line 1747 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4524,9 +4553,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 169: +case 170: YY_RULE_SETUP -#line 1746 "dhcp4_lexer.ll" +#line 1757 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4537,9 +4566,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 1756 "dhcp4_lexer.ll" +#line 1767 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4550,9 +4579,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 171: +case 172: YY_RULE_SETUP -#line 1766 "dhcp4_lexer.ll" +#line 1777 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4563,9 +4592,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 1776 "dhcp4_lexer.ll" +#line 1787 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4576,9 +4605,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 173: +case 174: YY_RULE_SETUP -#line 1786 "dhcp4_lexer.ll" +#line 1797 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4588,9 +4617,9 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 175: YY_RULE_SETUP -#line 1795 "dhcp4_lexer.ll" +#line 1806 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4600,9 +4629,9 @@ YY_RULE_SETUP } } YY_BREAK -case 175: +case 176: YY_RULE_SETUP -#line 1804 "dhcp4_lexer.ll" +#line 1815 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4612,9 +4641,9 @@ YY_RULE_SETUP } } YY_BREAK -case 176: +case 177: YY_RULE_SETUP -#line 1813 "dhcp4_lexer.ll" +#line 1824 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4624,9 +4653,9 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 178: YY_RULE_SETUP -#line 1822 "dhcp4_lexer.ll" +#line 1833 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4638,9 +4667,9 @@ YY_RULE_SETUP } } YY_BREAK -case 178: +case 179: YY_RULE_SETUP -#line 1833 "dhcp4_lexer.ll" +#line 1844 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4652,9 +4681,9 @@ YY_RULE_SETUP } } YY_BREAK -case 179: +case 180: YY_RULE_SETUP -#line 1844 "dhcp4_lexer.ll" +#line 1855 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4668,9 +4697,9 @@ YY_RULE_SETUP } } YY_BREAK -case 180: +case 181: YY_RULE_SETUP -#line 1857 "dhcp4_lexer.ll" +#line 1868 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4684,9 +4713,9 @@ YY_RULE_SETUP } } YY_BREAK -case 181: +case 182: YY_RULE_SETUP -#line 1870 "dhcp4_lexer.ll" +#line 1881 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4700,9 +4729,9 @@ YY_RULE_SETUP } } YY_BREAK -case 182: +case 183: YY_RULE_SETUP -#line 1883 "dhcp4_lexer.ll" +#line 1894 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4712,9 +4741,9 @@ YY_RULE_SETUP } } YY_BREAK -case 183: +case 184: YY_RULE_SETUP -#line 1892 "dhcp4_lexer.ll" +#line 1903 "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. @@ -4814,65 +4843,65 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 184: -/* rule 184 can match eol */ +case 185: +/* rule 185 can match eol */ YY_RULE_SETUP -#line 1991 "dhcp4_lexer.ll" +#line 2002 "dhcp4_lexer.ll" { /* Bad string with a forbidden control character inside */ driver.error(driver.loc_, "Invalid control in " + std::string(yytext)); } YY_BREAK -case 185: -/* rule 185 can match eol */ +case 186: +/* rule 186 can match eol */ YY_RULE_SETUP -#line 1996 "dhcp4_lexer.ll" +#line 2007 "dhcp4_lexer.ll" { /* Bad string with a bad escape inside */ driver.error(driver.loc_, "Bad escape in " + std::string(yytext)); } YY_BREAK -case 186: +case 187: YY_RULE_SETUP -#line 2001 "dhcp4_lexer.ll" +#line 2012 "dhcp4_lexer.ll" { /* Bad string with an open escape at the end */ driver.error(driver.loc_, "Overflow escape in " + std::string(yytext)); } YY_BREAK -case 187: +case 188: YY_RULE_SETUP -#line 2006 "dhcp4_lexer.ll" +#line 2017 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 188: +case 189: YY_RULE_SETUP -#line 2007 "dhcp4_lexer.ll" +#line 2018 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 189: +case 190: YY_RULE_SETUP -#line 2008 "dhcp4_lexer.ll" +#line 2019 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 190: +case 191: YY_RULE_SETUP -#line 2009 "dhcp4_lexer.ll" +#line 2020 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 191: +case 192: YY_RULE_SETUP -#line 2010 "dhcp4_lexer.ll" +#line 2021 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } YY_BREAK -case 192: +case 193: YY_RULE_SETUP -#line 2011 "dhcp4_lexer.ll" +#line 2022 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } YY_BREAK -case 193: +case 194: YY_RULE_SETUP -#line 2013 "dhcp4_lexer.ll" +#line 2024 "dhcp4_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -4891,9 +4920,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 194: +case 195: YY_RULE_SETUP -#line 2031 "dhcp4_lexer.ll" +#line 2042 "dhcp4_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -4907,43 +4936,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 195: +case 196: YY_RULE_SETUP -#line 2044 "dhcp4_lexer.ll" +#line 2055 "dhcp4_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 196: +case 197: YY_RULE_SETUP -#line 2049 "dhcp4_lexer.ll" +#line 2060 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 197: +case 198: YY_RULE_SETUP -#line 2053 "dhcp4_lexer.ll" +#line 2064 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 198: +case 199: YY_RULE_SETUP -#line 2055 "dhcp4_lexer.ll" +#line 2066 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 199: +case 200: YY_RULE_SETUP -#line 2057 "dhcp4_lexer.ll" +#line 2068 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 200: +case 201: YY_RULE_SETUP -#line 2059 "dhcp4_lexer.ll" +#line 2070 "dhcp4_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2061 "dhcp4_lexer.ll" +#line 2072 "dhcp4_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp4Parser::make_END(driver.loc_); @@ -4967,12 +4996,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 201: +case 202: YY_RULE_SETUP -#line 2084 "dhcp4_lexer.ll" +#line 2095 "dhcp4_lexer.ll" ECHO; YY_BREAK -#line 4975 "dhcp4_lexer.cc" +#line 5004 "dhcp4_lexer.cc" case YY_END_OF_BUFFER: { @@ -5291,7 +5320,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 >= 1868 ) + if ( yy_current_state >= 1891 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5324,11 +5353,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 >= 1868 ) + if ( yy_current_state >= 1891 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1867); + yy_is_jam = (yy_current_state == 1890); return yy_is_jam ? 0 : yy_current_state; } @@ -6077,7 +6106,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2084 "dhcp4_lexer.ll" +#line 2095 "dhcp4_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll index 449a4e927a..456dc003d3 100644 --- a/src/bin/dhcp4/dhcp4_lexer.ll +++ b/src/bin/dhcp4/dhcp4_lexer.ll @@ -758,6 +758,17 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} } } +\"ddns-use-conflict-resolution\" { + 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_USE_CONFLICT_RESOLUTION(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("ddns-use-conflict-resolution", 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 b84f940bc5..65ca29f5e0 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.7.2. +// A Bison parser, made by GNU Bison 3.0.4. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -30,25 +30,32 @@ // This special exception was added by the Free Software Foundation in // version 2.2 of Bison. -// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, -// especially those whose name start with YY_ or yy_. They are -// private implementation details that can be changed or removed. - - // Take the name prefix into account. #define yylex parser4_lex +// First part of user declarations. + +#line 39 "dhcp4_parser.cc" // lalr1.cc:404 +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif #include "dhcp4_parser.h" +// User implementation prologue. +#line 53 "dhcp4_parser.cc" // lalr1.cc:412 // Unqualified %code blocks. -#line 34 "dhcp4_parser.yy" +#line 34 "dhcp4_parser.yy" // lalr1.cc:413 #include <dhcp4/parser_context.h> -#line 52 "dhcp4_parser.cc" +#line 59 "dhcp4_parser.cc" // lalr1.cc:413 #ifndef YY_ @@ -63,16 +70,6 @@ # endif #endif - -// Whether we are compiled with exception support. -#ifndef YY_EXCEPTIONS -# if defined __GNUC__ && !defined __EXCEPTIONS -# define YY_EXCEPTIONS 0 -# else -# define YY_EXCEPTIONS 1 -# endif -#endif - #define YYRHSLOC(Rhs, K) ((Rhs)[K].location) /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends @@ -90,10 +87,13 @@ { \ (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \ } \ - while (false) + while (/*CONSTCOND*/ false) # endif +// Suppress unused-variable warnings by "using" E. +#define YYUSE(E) ((void) (E)) + // Enable debugging if requested. #if PARSER4_DEBUG @@ -106,7 +106,7 @@ { \ *yycdebug_ << Title << ' '; \ yy_print_ (*yycdebug_, Symbol); \ - *yycdebug_ << '\n'; \ + *yycdebug_ << std::endl; \ } \ } while (false) @@ -119,15 +119,15 @@ # define YY_STACK_PRINT() \ do { \ if (yydebug_) \ - yy_stack_print_ (); \ + yystack_print_ (); \ } while (false) #else // !PARSER4_DEBUG # define YYCDEBUG if (false) std::cerr -# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol) -# define YY_REDUCE_PRINT(Rule) static_cast<void> (0) -# define YY_STACK_PRINT() static_cast<void> (0) +# 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) #endif // !PARSER4_DEBUG @@ -139,17 +139,54 @@ #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus_) -#line 14 "dhcp4_parser.yy" +#line 14 "dhcp4_parser.yy" // lalr1.cc:479 namespace isc { namespace dhcp { -#line 145 "dhcp4_parser.cc" +#line 145 "dhcp4_parser.cc" // lalr1.cc:479 + + /* Return YYSTR after stripping away unnecessary quotes and + backslashes, so that it's suitable for yyerror. The heuristic is + that double-quoting is unnecessary unless the string contains an + apostrophe, a comma, or backslash (other than backslash-backslash). + YYSTR is taken from yytname. */ + std::string + Dhcp4Parser::yytnamerr_ (const char *yystr) + { + if (*yystr == '"') + { + std::string yyr = ""; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + // Fall through. + default: + yyr += *yyp; + break; + + case '"': + return yyr; + } + do_not_strip_quotes: ; + } + + return yystr; + } + /// Build a parser object. Dhcp4Parser::Dhcp4Parser (isc::dhcp::Parser4Context& ctx_yyarg) + : #if PARSER4_DEBUG - : yydebug_ (false), + yydebug_ (false), yycdebug_ (&std::cerr), -#else - : #endif ctx (ctx_yyarg) {} @@ -157,30 +194,32 @@ namespace isc { namespace dhcp { Dhcp4Parser::~Dhcp4Parser () {} - Dhcp4Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW - {} /*---------------. - | symbol kinds. | + | Symbol types. | `---------------*/ // by_state. - Dhcp4Parser::by_state::by_state () YY_NOEXCEPT + inline + Dhcp4Parser::by_state::by_state () : state (empty_state) {} - Dhcp4Parser::by_state::by_state (const by_state& that) YY_NOEXCEPT - : state (that.state) + inline + Dhcp4Parser::by_state::by_state (const by_state& other) + : state (other.state) {} + inline void - Dhcp4Parser::by_state::clear () YY_NOEXCEPT + Dhcp4Parser::by_state::clear () { state = empty_state; } + inline void Dhcp4Parser::by_state::move (by_state& that) { @@ -188,94 +227,57 @@ namespace isc { namespace dhcp { that.clear (); } - Dhcp4Parser::by_state::by_state (state_type s) YY_NOEXCEPT + inline + Dhcp4Parser::by_state::by_state (state_type s) : state (s) {} - Dhcp4Parser::symbol_kind_type - Dhcp4Parser::by_state::kind () const YY_NOEXCEPT + inline + Dhcp4Parser::symbol_number_type + Dhcp4Parser::by_state::type_get () const { if (state == empty_state) - return symbol_kind::S_YYEMPTY; + return empty_symbol; else - return YY_CAST (symbol_kind_type, yystos_[+state]); + return yystos_[state]; } + inline Dhcp4Parser::stack_symbol_type::stack_symbol_type () {} - Dhcp4Parser::stack_symbol_type::stack_symbol_type (YY_RVREF (stack_symbol_type) that) - : super_type (YY_MOVE (that.state), YY_MOVE (that.location)) - { - switch (that.kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); - break; - - case symbol_kind::S_BOOLEAN: // "boolean" - value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); - break; - - case symbol_kind::S_FLOAT: // "floating point" - value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); - break; - - case symbol_kind::S_INTEGER: // "integer" - value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); - break; - - case symbol_kind::S_STRING: // "constant string" - value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); - break; - - default: - break; - } - -#if 201103L <= YY_CPLUSPLUS - // that is emptied. - that.state = empty_state; -#endif - } - Dhcp4Parser::stack_symbol_type::stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) that) - : super_type (s, YY_MOVE (that.location)) + inline + Dhcp4Parser::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that) + : super_type (s, that.location) { - switch (that.kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.move< ElementPtr > (YY_MOVE (that.value)); + switch (that.type_get ()) + { + case 210: // value + case 214: // map_value + case 255: // ddns_replace_client_name_value + case 280: // socket_type + case 283: // outbound_interface_value + case 305: // db_type + case 399: // hr_mode + case 554: // ncr_protocol_value + value.move< ElementPtr > (that.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" - value.move< bool > (YY_MOVE (that.value)); + case 194: // "boolean" + value.move< bool > (that.value); break; - case symbol_kind::S_FLOAT: // "floating point" - value.move< double > (YY_MOVE (that.value)); + case 193: // "floating point" + value.move< double > (that.value); break; - case symbol_kind::S_INTEGER: // "integer" - value.move< int64_t > (YY_MOVE (that.value)); + case 192: // "integer" + value.move< int64_t > (that.value); break; - case symbol_kind::S_STRING: // "constant string" - value.move< std::string > (YY_MOVE (that.value)); + case 191: // "constant string" + value.move< std::string > (that.value); break; default: @@ -283,40 +285,40 @@ namespace isc { namespace dhcp { } // that is emptied. - that.kind_ = symbol_kind::S_YYEMPTY; + that.type = empty_symbol; } -#if YY_CPLUSPLUS < 201103L + inline Dhcp4Parser::stack_symbol_type& Dhcp4Parser::stack_symbol_type::operator= (const stack_symbol_type& that) { state = that.state; - switch (that.kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + switch (that.type_get ()) + { + case 210: // value + case 214: // map_value + case 255: // ddns_replace_client_name_value + case 280: // socket_type + case 283: // outbound_interface_value + case 305: // db_type + case 399: // hr_mode + case 554: // ncr_protocol_value value.copy< ElementPtr > (that.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 194: // "boolean" value.copy< bool > (that.value); break; - case symbol_kind::S_FLOAT: // "floating point" + case 193: // "floating point" value.copy< double > (that.value); break; - case symbol_kind::S_INTEGER: // "integer" + case 192: // "integer" value.copy< int64_t > (that.value); break; - case symbol_kind::S_STRING: // "constant string" + case 191: // "constant string" value.copy< std::string > (that.value); break; @@ -328,51 +330,9 @@ namespace isc { namespace dhcp { return *this; } - Dhcp4Parser::stack_symbol_type& - Dhcp4Parser::stack_symbol_type::operator= (stack_symbol_type& that) - { - state = that.state; - switch (that.kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.move< ElementPtr > (that.value); - break; - - case symbol_kind::S_BOOLEAN: // "boolean" - value.move< bool > (that.value); - break; - - case symbol_kind::S_FLOAT: // "floating point" - value.move< double > (that.value); - break; - - case symbol_kind::S_INTEGER: // "integer" - value.move< int64_t > (that.value); - break; - - case symbol_kind::S_STRING: // "constant string" - value.move< std::string > (that.value); - break; - - default: - break; - } - - location = that.location; - // that is emptied. - that.state = empty_state; - return *this; - } -#endif template <typename Base> + inline void Dhcp4Parser::yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const { @@ -383,121 +343,133 @@ namespace isc { namespace dhcp { #if PARSER4_DEBUG template <typename Base> void - Dhcp4Parser::yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const + Dhcp4Parser::yy_print_ (std::ostream& yyo, + const basic_symbol<Base>& yysym) const { std::ostream& yyoutput = yyo; YYUSE (yyoutput); + symbol_number_type yytype = yysym.type_get (); + // Avoid a (spurious) G++ 4.8 warning about "array subscript is + // below array bounds". if (yysym.empty ()) - yyo << "empty symbol"; - else - { - symbol_kind_type yykind = yysym.kind (); - yyo << (yykind < YYNTOKENS ? "token" : "nterm") - << ' ' << yysym.name () << " (" - << yysym.location << ": "; - switch (yykind) - { - case symbol_kind::S_STRING: // "constant string" -#line 272 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < std::string > (); } -#line 404 "dhcp4_parser.cc" + std::abort (); + yyo << (yytype < yyntokens_ ? "token" : "nterm") + << ' ' << yytname_[yytype] << " (" + << yysym.location << ": "; + switch (yytype) + { + case 191: // "constant string" + +#line 273 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< std::string > (); } +#line 366 "dhcp4_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_INTEGER: // "integer" -#line 272 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < int64_t > (); } -#line 410 "dhcp4_parser.cc" + case 192: // "integer" + +#line 273 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< int64_t > (); } +#line 373 "dhcp4_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_FLOAT: // "floating point" -#line 272 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < double > (); } -#line 416 "dhcp4_parser.cc" + case 193: // "floating point" + +#line 273 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< double > (); } +#line 380 "dhcp4_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_BOOLEAN: // "boolean" -#line 272 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < bool > (); } -#line 422 "dhcp4_parser.cc" + case 194: // "boolean" + +#line 273 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< bool > (); } +#line 387 "dhcp4_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_value: // value -#line 272 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 428 "dhcp4_parser.cc" + case 210: // value + +#line 273 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 394 "dhcp4_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_map_value: // map_value -#line 272 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 434 "dhcp4_parser.cc" + case 214: // map_value + +#line 273 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 401 "dhcp4_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 272 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 440 "dhcp4_parser.cc" + case 255: // ddns_replace_client_name_value + +#line 273 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 408 "dhcp4_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_socket_type: // socket_type -#line 272 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 446 "dhcp4_parser.cc" + case 280: // socket_type + +#line 273 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 415 "dhcp4_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_outbound_interface_value: // outbound_interface_value -#line 272 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 452 "dhcp4_parser.cc" + case 283: // outbound_interface_value + +#line 273 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 422 "dhcp4_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_db_type: // db_type -#line 272 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 458 "dhcp4_parser.cc" + case 305: // db_type + +#line 273 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 429 "dhcp4_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_hr_mode: // hr_mode -#line 272 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 464 "dhcp4_parser.cc" + case 399: // hr_mode + +#line 273 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 436 "dhcp4_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 272 "dhcp4_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 470 "dhcp4_parser.cc" + case 554: // ncr_protocol_value + +#line 273 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 443 "dhcp4_parser.cc" // lalr1.cc:636 break; + default: break; } - yyo << ')'; - } + yyo << ')'; } #endif + inline void - Dhcp4Parser::yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym) + Dhcp4Parser::yypush_ (const char* m, state_type s, symbol_type& sym) { - if (m) - YY_SYMBOL_PRINT (m, sym); - yystack_.push (YY_MOVE (sym)); + stack_symbol_type t (s, sym); + yypush_ (m, t); } + inline void - Dhcp4Parser::yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym) + Dhcp4Parser::yypush_ (const char* m, stack_symbol_type& s) { -#if 201103L <= YY_CPLUSPLUS - yypush_ (m, stack_symbol_type (s, std::move (sym))); -#else - stack_symbol_type ss (s, sym); - yypush_ (m, ss); -#endif + if (m) + YY_SYMBOL_PRINT (m, s); + yystack_.push (s); } + inline void - Dhcp4Parser::yypop_ (int n) + Dhcp4Parser::yypop_ (unsigned int n) { yystack_.pop (n); } @@ -529,37 +501,32 @@ namespace isc { namespace dhcp { } #endif // PARSER4_DEBUG - Dhcp4Parser::state_type + inline Dhcp4Parser::state_type Dhcp4Parser::yy_lr_goto_state_ (state_type yystate, int yysym) { - int yyr = yypgoto_[yysym - YYNTOKENS] + yystate; + int yyr = yypgoto_[yysym - yyntokens_] + yystate; if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate) return yytable_[yyr]; else - return yydefgoto_[yysym - YYNTOKENS]; + return yydefgoto_[yysym - yyntokens_]; } - bool + inline bool Dhcp4Parser::yy_pact_value_is_default_ (int yyvalue) { return yyvalue == yypact_ninf_; } - bool + inline bool Dhcp4Parser::yy_table_value_is_error_ (int yyvalue) { return yyvalue == yytable_ninf_; } int - Dhcp4Parser::operator() () - { - return parse (); - } - - int Dhcp4Parser::parse () { + // State. int yyn; /// Length of the RHS of the rule being reduced. int yylen = 0; @@ -577,11 +544,11 @@ namespace isc { namespace dhcp { /// The return value of parse (). int yyresult; -#if YY_EXCEPTIONS + // FIXME: This shoud be completely indented. It is not yet to + // avoid gratuitous conflicts when merging into the master branch. try -#endif // YY_EXCEPTIONS { - YYCDEBUG << "Starting parse\n"; + YYCDEBUG << "Starting parse" << std::endl; /* Initialize the stack. The initial state will be set in @@ -589,70 +556,48 @@ namespace isc { namespace dhcp { location values to have been already stored, initialize these stacks with a primary value. */ yystack_.clear (); - yypush_ (YY_NULLPTR, 0, YY_MOVE (yyla)); + yypush_ (YY_NULLPTR, 0, yyla); - /*-----------------------------------------------. - | yynewstate -- push a new symbol on the stack. | - `-----------------------------------------------*/ + // A new symbol was pushed on the stack. yynewstate: - YYCDEBUG << "Entering state " << int (yystack_[0].state) << '\n'; - YY_STACK_PRINT (); + YYCDEBUG << "Entering state " << yystack_[0].state << std::endl; // Accept? if (yystack_[0].state == yyfinal_) - YYACCEPT; + goto yyacceptlab; goto yybackup; - - /*-----------. - | yybackup. | - `-----------*/ + // Backup. yybackup: + // Try to take a decision without lookahead. - yyn = yypact_[+yystack_[0].state]; + yyn = yypact_[yystack_[0].state]; if (yy_pact_value_is_default_ (yyn)) goto yydefault; // Read a lookahead token. if (yyla.empty ()) { - YYCDEBUG << "Reading a token\n"; -#if YY_EXCEPTIONS + YYCDEBUG << "Reading a token: "; try -#endif // YY_EXCEPTIONS { symbol_type yylookahead (yylex (ctx)); yyla.move (yylookahead); } -#if YY_EXCEPTIONS catch (const syntax_error& yyexc) { - YYCDEBUG << "Caught exception: " << yyexc.what() << '\n'; error (yyexc); goto yyerrlab1; } -#endif // YY_EXCEPTIONS } YY_SYMBOL_PRINT ("Next token is", yyla); - if (yyla.kind () == symbol_kind::S_YYerror) - { - // The scanner already issued an error message, process directly - // to error recovery. But do not keep the error token as - // lookahead, it is too special and may lead us to an endless - // loop in error recovery. */ - yyla.kind_ = symbol_kind::S_YYUNDEF; - goto yyerrlab1; - } - /* If the proper action on seeing token YYLA.TYPE is to reduce or to detect an error, take that action. */ - yyn += yyla.kind (); - if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.kind ()) - { - goto yydefault; - } + yyn += yyla.type_get (); + if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ()) + goto yydefault; // Reduce or error. yyn = yytable_[yyn]; @@ -669,58 +614,56 @@ namespace isc { namespace dhcp { --yyerrstatus_; // Shift the lookahead token. - yypush_ ("Shifting", state_type (yyn), YY_MOVE (yyla)); + yypush_ ("Shifting", yyn, yyla); goto yynewstate; - /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: - yyn = yydefact_[+yystack_[0].state]; + yyn = yydefact_[yystack_[0].state]; if (yyn == 0) goto yyerrlab; goto yyreduce; - /*-----------------------------. - | yyreduce -- do a reduction. | + | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: yylen = yyr2_[yyn]; { stack_symbol_type yylhs; - yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]); + yylhs.state = yy_lr_goto_state_(yystack_[yylen].state, yyr1_[yyn]); /* Variants are always initialized to an empty instance of the correct type. The default '$$ = $1' action is NOT applied when using variants. */ - switch (yyr1_[yyn]) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - yylhs.value.emplace< ElementPtr > (); + switch (yyr1_[yyn]) + { + case 210: // value + case 214: // map_value + case 255: // ddns_replace_client_name_value + case 280: // socket_type + case 283: // outbound_interface_value + case 305: // db_type + case 399: // hr_mode + case 554: // ncr_protocol_value + yylhs.value.build< ElementPtr > (); break; - case symbol_kind::S_BOOLEAN: // "boolean" - yylhs.value.emplace< bool > (); + case 194: // "boolean" + yylhs.value.build< bool > (); break; - case symbol_kind::S_FLOAT: // "floating point" - yylhs.value.emplace< double > (); + case 193: // "floating point" + yylhs.value.build< double > (); break; - case symbol_kind::S_INTEGER: // "integer" - yylhs.value.emplace< int64_t > (); + case 192: // "integer" + yylhs.value.build< int64_t > (); break; - case symbol_kind::S_STRING: // "constant string" - yylhs.value.emplace< std::string > (); + case 191: // "constant string" + yylhs.value.build< std::string > (); break; default: @@ -728,293 +671,290 @@ namespace isc { namespace dhcp { } - // Default location. + // Compute the default @$. { - stack_type::slice range (yystack_, yylen); - YYLLOC_DEFAULT (yylhs.location, range, yylen); - yyerror_range[1].location = yylhs.location; + slice<stack_symbol_type, stack_type> slice (yystack_, yylen); + YYLLOC_DEFAULT (yylhs.location, slice, yylen); } // Perform the reduction. YY_REDUCE_PRINT (yyn); -#if YY_EXCEPTIONS try -#endif // YY_EXCEPTIONS { switch (yyn) { - case 2: // $@1: %empty -#line 281 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 750 "dhcp4_parser.cc" + case 2: +#line 282 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.NO_KEYWORD; } +#line 690 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 4: // $@2: %empty -#line 282 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.CONFIG; } -#line 756 "dhcp4_parser.cc" + case 4: +#line 283 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.CONFIG; } +#line 696 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 6: // $@3: %empty -#line 283 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.DHCP4; } -#line 762 "dhcp4_parser.cc" + case 6: +#line 284 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP4; } +#line 702 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 8: // $@4: %empty -#line 284 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.INTERFACES_CONFIG; } -#line 768 "dhcp4_parser.cc" + case 8: +#line 285 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.INTERFACES_CONFIG; } +#line 708 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 10: // $@5: %empty -#line 285 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.SUBNET4; } -#line 774 "dhcp4_parser.cc" + case 10: +#line 286 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.SUBNET4; } +#line 714 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 12: // $@6: %empty -#line 286 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.POOLS; } -#line 780 "dhcp4_parser.cc" + case 12: +#line 287 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.POOLS; } +#line 720 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 14: // $@7: %empty -#line 287 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.RESERVATIONS; } -#line 786 "dhcp4_parser.cc" + case 14: +#line 288 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.RESERVATIONS; } +#line 726 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 16: // $@8: %empty -#line 288 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.DHCP4; } -#line 792 "dhcp4_parser.cc" + case 16: +#line 289 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP4; } +#line 732 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 18: // $@9: %empty -#line 289 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.OPTION_DEF; } -#line 798 "dhcp4_parser.cc" + case 18: +#line 290 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.OPTION_DEF; } +#line 738 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 20: // $@10: %empty -#line 290 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.OPTION_DATA; } -#line 804 "dhcp4_parser.cc" + case 20: +#line 291 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.OPTION_DATA; } +#line 744 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 22: // $@11: %empty -#line 291 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 810 "dhcp4_parser.cc" + case 22: +#line 292 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } +#line 750 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 24: // $@12: %empty -#line 292 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.DHCP_DDNS; } -#line 816 "dhcp4_parser.cc" + case 24: +#line 293 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP_DDNS; } +#line 756 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 26: // $@13: %empty -#line 293 "dhcp4_parser.yy" - { ctx.ctx_ = ctx.CONFIG_CONTROL; } -#line 822 "dhcp4_parser.cc" + case 26: +#line 294 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.CONFIG_CONTROL; } +#line 762 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 28: // value: "integer" -#line 301 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 828 "dhcp4_parser.cc" + case 28: +#line 302 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } +#line 768 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 29: // value: "floating point" -#line 302 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } -#line 834 "dhcp4_parser.cc" + case 29: +#line 303 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } +#line 774 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 30: // value: "boolean" -#line 303 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 840 "dhcp4_parser.cc" + case 30: +#line 304 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } +#line 780 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 31: // value: "constant string" -#line 304 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 846 "dhcp4_parser.cc" + case 31: +#line 305 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } +#line 786 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 32: // value: "null" -#line 305 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 852 "dhcp4_parser.cc" + case 32: +#line 306 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } +#line 792 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 33: // value: map2 -#line 306 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 858 "dhcp4_parser.cc" + case 33: +#line 307 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 798 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 34: // value: list_generic -#line 307 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 864 "dhcp4_parser.cc" + case 34: +#line 308 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 804 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 35: // sub_json: value -#line 310 "dhcp4_parser.yy" - { + case 35: +#line 311 "dhcp4_parser.yy" // lalr1.cc:859 + { // Push back the JSON value on the stack - ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); } -#line 873 "dhcp4_parser.cc" +#line 813 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 36: // $@14: %empty -#line 315 "dhcp4_parser.yy" - { + case 36: +#line 316 "dhcp4_parser.yy" // lalr1.cc:859 + { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 884 "dhcp4_parser.cc" +#line 824 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 37: // map2: "{" $@14 map_content "}" -#line 320 "dhcp4_parser.yy" - { + case 37: +#line 321 "dhcp4_parser.yy" // lalr1.cc:859 + { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. } -#line 894 "dhcp4_parser.cc" +#line 834 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 38: // map_value: map2 -#line 326 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 900 "dhcp4_parser.cc" + case 38: +#line 327 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 840 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 41: // not_empty_map: "constant string" ":" value -#line 333 "dhcp4_parser.yy" - { + case 41: +#line 334 "dhcp4_parser.yy" // lalr1.cc:859 + { // map containing a single entry - ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); - ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + ctx.unique(yystack_[2].value.as< std::string > (), ctx.loc2pos(yystack_[2].location)); + ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 910 "dhcp4_parser.cc" +#line 850 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 42: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 338 "dhcp4_parser.yy" - { + case 42: +#line 339 "dhcp4_parser.yy" // lalr1.cc:859 + { // map consisting of a shorter map followed by // comma and string:value - ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); - ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + ctx.unique(yystack_[2].value.as< std::string > (), ctx.loc2pos(yystack_[2].location)); + ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 921 "dhcp4_parser.cc" +#line 861 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 43: // $@15: %empty -#line 346 "dhcp4_parser.yy" - { + case 43: +#line 347 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 930 "dhcp4_parser.cc" +#line 870 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 44: // list_generic: "[" $@15 list_content "]" -#line 349 "dhcp4_parser.yy" - { + case 44: +#line 350 "dhcp4_parser.yy" // lalr1.cc:859 + { // list parsing complete. Put any sanity checking here } -#line 938 "dhcp4_parser.cc" +#line 878 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 47: // not_empty_list: value -#line 357 "dhcp4_parser.yy" - { + case 47: +#line 358 "dhcp4_parser.yy" // lalr1.cc:859 + { // List consisting of a single element. - ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); } -#line 947 "dhcp4_parser.cc" +#line 887 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 48: // not_empty_list: not_empty_list "," value -#line 361 "dhcp4_parser.yy" - { + case 48: +#line 362 "dhcp4_parser.yy" // lalr1.cc:859 + { // List ending with , and a value. - ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); } -#line 956 "dhcp4_parser.cc" +#line 896 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 49: // $@16: %empty -#line 368 "dhcp4_parser.yy" - { + case 49: +#line 369 "dhcp4_parser.yy" // lalr1.cc:859 + { // List parsing about to start } -#line 964 "dhcp4_parser.cc" +#line 904 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 50: // list_strings: "[" $@16 list_strings_content "]" -#line 370 "dhcp4_parser.yy" - { + case 50: +#line 371 "dhcp4_parser.yy" // lalr1.cc:859 + { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); } -#line 973 "dhcp4_parser.cc" +#line 913 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 53: // not_empty_list_strings: "constant string" -#line 379 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 53: +#line 380 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 982 "dhcp4_parser.cc" +#line 922 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 54: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 383 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 54: +#line 384 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 991 "dhcp4_parser.cc" +#line 931 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 55: // unknown_map_entry: "constant string" ":" -#line 394 "dhcp4_parser.yy" - { + case 55: +#line 395 "dhcp4_parser.yy" // lalr1.cc:859 + { const std::string& where = ctx.contextName(); - const std::string& keyword = yystack_[1].value.as < std::string > (); + const std::string& keyword = yystack_[1].value.as< std::string > (); error(yystack_[1].location, "got unexpected keyword \"" + keyword + "\" in " + where + " map."); } -#line 1002 "dhcp4_parser.cc" +#line 942 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 56: // $@17: %empty -#line 403 "dhcp4_parser.yy" - { + case 56: +#line 404 "dhcp4_parser.yy" // lalr1.cc:859 + { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1013 "dhcp4_parser.cc" +#line 953 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 57: // syntax_map: "{" $@17 global_object "}" -#line 408 "dhcp4_parser.yy" - { + case 57: +#line 409 "dhcp4_parser.yy" // lalr1.cc:859 + { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. @@ -1022,12 +962,12 @@ namespace isc { namespace dhcp { // Dhcp4 is required ctx.require("Dhcp4", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 1026 "dhcp4_parser.cc" +#line 966 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 58: // $@18: %empty -#line 418 "dhcp4_parser.yy" - { + case 58: +#line 419 "dhcp4_parser.yy" // lalr1.cc:859 + { // This code is executed when we're about to start parsing // the content of the map // Prevent against duplicate. @@ -1037,1322 +977,1332 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP4); } -#line 1041 "dhcp4_parser.cc" +#line 981 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 59: // global_object: "Dhcp4" $@18 ":" "{" global_params "}" -#line 427 "dhcp4_parser.yy" - { + case 59: +#line 428 "dhcp4_parser.yy" // lalr1.cc:859 + { // No global parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1051 "dhcp4_parser.cc" +#line 991 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 60: // $@19: %empty -#line 435 "dhcp4_parser.yy" - { + case 60: +#line 436 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1061 "dhcp4_parser.cc" +#line 1001 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 61: // sub_dhcp4: "{" $@19 global_params "}" -#line 439 "dhcp4_parser.yy" - { + case 61: +#line 440 "dhcp4_parser.yy" // lalr1.cc:859 + { // No global parameter is required // parsing completed } -#line 1070 "dhcp4_parser.cc" +#line 1010 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 120: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 508 "dhcp4_parser.yy" - { + case 121: +#line 510 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("valid-lifetime", prf); } -#line 1080 "dhcp4_parser.cc" +#line 1020 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 121: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 514 "dhcp4_parser.yy" - { + case 122: +#line 516 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("min-valid-lifetime", prf); } -#line 1090 "dhcp4_parser.cc" +#line 1030 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 122: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 520 "dhcp4_parser.yy" - { + case 123: +#line 522 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-valid-lifetime", prf); } -#line 1100 "dhcp4_parser.cc" +#line 1040 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 123: // renew_timer: "renew-timer" ":" "integer" -#line 526 "dhcp4_parser.yy" - { + case 124: +#line 528 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("renew-timer", prf); } -#line 1110 "dhcp4_parser.cc" +#line 1050 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 124: // rebind_timer: "rebind-timer" ":" "integer" -#line 532 "dhcp4_parser.yy" - { + case 125: +#line 534 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rebind-timer", prf); } -#line 1120 "dhcp4_parser.cc" +#line 1060 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 125: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 538 "dhcp4_parser.yy" - { + case 126: +#line 540 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location)); - ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr ctt(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("calculate-tee-times", ctt); } -#line 1130 "dhcp4_parser.cc" +#line 1070 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 126: // t1_percent: "t1-percent" ":" "floating point" -#line 544 "dhcp4_parser.yy" - { + case 127: +#line 546 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location)); - ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr t1(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("t1-percent", t1); } -#line 1140 "dhcp4_parser.cc" +#line 1080 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 127: // t2_percent: "t2-percent" ":" "floating point" -#line 550 "dhcp4_parser.yy" - { + case 128: +#line 552 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location)); - ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr t2(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("t2-percent", t2); } -#line 1150 "dhcp4_parser.cc" +#line 1090 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 128: // cache_threshold: "cache-threshold" ":" "floating point" -#line 556 "dhcp4_parser.yy" - { + case 129: +#line 558 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location)); - ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr ct(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cache-threshold", ct); } -#line 1160 "dhcp4_parser.cc" +#line 1100 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 129: // cache_max_age: "cache-max-age" ":" "integer" -#line 562 "dhcp4_parser.yy" - { + case 130: +#line 564 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr cm(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cache-max-age", cm); } -#line 1170 "dhcp4_parser.cc" +#line 1110 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 130: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 568 "dhcp4_parser.yy" - { + case 131: +#line 570 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("decline-probation-period", dpp); } -#line 1180 "dhcp4_parser.cc" +#line 1120 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 131: // $@20: %empty -#line 574 "dhcp4_parser.yy" - { + case 132: +#line 576 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1189 "dhcp4_parser.cc" +#line 1129 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 132: // server_tag: "server-tag" $@20 ":" "constant string" -#line 577 "dhcp4_parser.yy" - { - ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 133: +#line 579 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr stag(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); ctx.leave(); } -#line 1199 "dhcp4_parser.cc" +#line 1139 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 133: // echo_client_id: "echo-client-id" ":" "boolean" -#line 583 "dhcp4_parser.yy" - { + case 134: +#line 585 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("echo-client-id", ctx.loc2pos(yystack_[2].location)); - ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr echo(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("echo-client-id", echo); } -#line 1209 "dhcp4_parser.cc" +#line 1149 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 134: // match_client_id: "match-client-id" ":" "boolean" -#line 589 "dhcp4_parser.yy" - { + case 135: +#line 591 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("match-client-id", ctx.loc2pos(yystack_[2].location)); - ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr match(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("match-client-id", match); } -#line 1219 "dhcp4_parser.cc" +#line 1159 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 135: // authoritative: "authoritative" ":" "boolean" -#line 595 "dhcp4_parser.yy" - { + case 136: +#line 597 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("authoritative", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("authoritative", prf); } -#line 1229 "dhcp4_parser.cc" +#line 1169 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 136: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 601 "dhcp4_parser.yy" - { + case 137: +#line 603 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-send-updates", b); } -#line 1239 "dhcp4_parser.cc" +#line 1179 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 137: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 607 "dhcp4_parser.yy" - { + case 138: +#line 609 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-override-no-update", b); } -#line 1249 "dhcp4_parser.cc" +#line 1189 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 138: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 613 "dhcp4_parser.yy" - { + case 139: +#line 615 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-override-client-update", b); } -#line 1259 "dhcp4_parser.cc" +#line 1199 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 139: // $@21: %empty -#line 619 "dhcp4_parser.yy" - { + case 140: +#line 621 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.REPLACE_CLIENT_NAME); ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); } -#line 1268 "dhcp4_parser.cc" +#line 1208 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 140: // ddns_replace_client_name: "ddns-replace-client-name" $@21 ":" ddns_replace_client_name_value -#line 622 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); + case 141: +#line 624 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1277 "dhcp4_parser.cc" +#line 1217 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 141: // ddns_replace_client_name_value: "when-present" -#line 628 "dhcp4_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); + case 142: +#line 630 "dhcp4_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 1285 "dhcp4_parser.cc" +#line 1225 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 142: // ddns_replace_client_name_value: "never" -#line 631 "dhcp4_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); + case 143: +#line 633 "dhcp4_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 1293 "dhcp4_parser.cc" +#line 1233 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 143: // ddns_replace_client_name_value: "always" -#line 634 "dhcp4_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); + case 144: +#line 636 "dhcp4_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 1301 "dhcp4_parser.cc" +#line 1241 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 144: // ddns_replace_client_name_value: "when-not-present" -#line 637 "dhcp4_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); + case 145: +#line 639 "dhcp4_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 1309 "dhcp4_parser.cc" +#line 1249 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 145: // ddns_replace_client_name_value: "boolean" -#line 640 "dhcp4_parser.yy" - { + case 146: +#line 642 "dhcp4_parser.yy" // lalr1.cc:859 + { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); } -#line 1318 "dhcp4_parser.cc" +#line 1258 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 146: // $@22: %empty -#line 646 "dhcp4_parser.yy" - { + case 147: +#line 648 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1327 "dhcp4_parser.cc" +#line 1267 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 147: // ddns_generated_prefix: "ddns-generated-prefix" $@22 ":" "constant string" -#line 649 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 148: +#line 651 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-generated-prefix", s); ctx.leave(); } -#line 1337 "dhcp4_parser.cc" +#line 1277 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 148: // $@23: %empty -#line 655 "dhcp4_parser.yy" - { + case 149: +#line 657 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1346 "dhcp4_parser.cc" +#line 1286 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 149: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@23 ":" "constant string" -#line 658 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 150: +#line 660 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-qualifying-suffix", s); ctx.leave(); } -#line 1356 "dhcp4_parser.cc" +#line 1296 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 150: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 664 "dhcp4_parser.yy" - { + case 151: +#line 666 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-update-on-renew", b); } -#line 1366 "dhcp4_parser.cc" +#line 1306 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 152: +#line 672 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location)); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-use-conflict-resolution", b); +} +#line 1316 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 151: // $@24: %empty -#line 670 "dhcp4_parser.yy" - { + case 153: +#line 678 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1375 "dhcp4_parser.cc" +#line 1325 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 152: // hostname_char_set: "hostname-char-set" $@24 ":" "constant string" -#line 673 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 154: +#line 681 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 1385 "dhcp4_parser.cc" +#line 1335 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 153: // $@25: %empty -#line 679 "dhcp4_parser.yy" - { + case 155: +#line 687 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1394 "dhcp4_parser.cc" +#line 1344 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 154: // hostname_char_replacement: "hostname-char-replacement" $@25 ":" "constant string" -#line 682 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 156: +#line 690 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 1404 "dhcp4_parser.cc" +#line 1354 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 155: // store_extended_info: "store-extended-info" ":" "boolean" -#line 688 "dhcp4_parser.yy" - { + case 157: +#line 696 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("store-extended-info", b); } -#line 1414 "dhcp4_parser.cc" +#line 1364 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 156: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 694 "dhcp4_parser.yy" - { + case 158: +#line 702 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + 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 1424 "dhcp4_parser.cc" +#line 1374 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 157: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 700 "dhcp4_parser.yy" - { + case 159: +#line 708 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + 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 1434 "dhcp4_parser.cc" +#line 1384 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 158: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 706 "dhcp4_parser.yy" - { + case 160: +#line 714 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location)); - ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr unique(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-reservations-unique", unique); } -#line 1444 "dhcp4_parser.cc" +#line 1394 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 159: // $@26: %empty -#line 712 "dhcp4_parser.yy" - { + case 161: +#line 720 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces-config", i); ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1456 "dhcp4_parser.cc" +#line 1406 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 160: // interfaces_config: "interfaces-config" $@26 ":" "{" interfaces_config_params "}" -#line 718 "dhcp4_parser.yy" - { + case 162: +#line 726 "dhcp4_parser.yy" // lalr1.cc:859 + { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1466 "dhcp4_parser.cc" +#line 1416 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 170: // $@27: %empty -#line 737 "dhcp4_parser.yy" - { + case 172: +#line 745 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1476 "dhcp4_parser.cc" +#line 1426 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 171: // sub_interfaces4: "{" $@27 interfaces_config_params "}" -#line 741 "dhcp4_parser.yy" - { + case 173: +#line 749 "dhcp4_parser.yy" // lalr1.cc:859 + { // No interfaces config param is required // parsing completed } -#line 1485 "dhcp4_parser.cc" +#line 1435 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 172: // $@28: %empty -#line 746 "dhcp4_parser.yy" - { + case 174: +#line 754 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1497 "dhcp4_parser.cc" +#line 1447 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 173: // interfaces_list: "interfaces" $@28 ":" list_strings -#line 752 "dhcp4_parser.yy" - { + case 175: +#line 760 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1506 "dhcp4_parser.cc" +#line 1456 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 174: // $@29: %empty -#line 757 "dhcp4_parser.yy" - { + case 176: +#line 765 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("dhcp-socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DHCP_SOCKET_TYPE); } -#line 1515 "dhcp4_parser.cc" +#line 1465 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 175: // dhcp_socket_type: "dhcp-socket-type" $@29 ":" socket_type -#line 760 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ()); + case 177: +#line 768 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1524 "dhcp4_parser.cc" +#line 1474 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 176: // socket_type: "raw" -#line 765 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } -#line 1530 "dhcp4_parser.cc" + case 178: +#line 773 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } +#line 1480 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 177: // socket_type: "udp" -#line 766 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } -#line 1536 "dhcp4_parser.cc" + case 179: +#line 774 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } +#line 1486 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 178: // $@30: %empty -#line 769 "dhcp4_parser.yy" - { + case 180: +#line 777 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("outbound-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.OUTBOUND_INTERFACE); } -#line 1545 "dhcp4_parser.cc" +#line 1495 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 179: // outbound_interface: "outbound-interface" $@30 ":" outbound_interface_value -#line 772 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ()); + case 181: +#line 780 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1554 "dhcp4_parser.cc" +#line 1504 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 180: // outbound_interface_value: "same-as-inbound" -#line 777 "dhcp4_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); + case 182: +#line 785 "dhcp4_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); } -#line 1562 "dhcp4_parser.cc" +#line 1512 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 181: // outbound_interface_value: "use-routing" -#line 779 "dhcp4_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); + case 183: +#line 787 "dhcp4_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); } -#line 1570 "dhcp4_parser.cc" +#line 1520 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 182: // re_detect: "re-detect" ":" "boolean" -#line 783 "dhcp4_parser.yy" - { + case 184: +#line 791 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("re-detect", b); } -#line 1580 "dhcp4_parser.cc" +#line 1530 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 183: // $@31: %empty -#line 790 "dhcp4_parser.yy" - { + case 185: +#line 798 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1592 "dhcp4_parser.cc" +#line 1542 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 184: // lease_database: "lease-database" $@31 ":" "{" database_map_params "}" -#line 796 "dhcp4_parser.yy" - { + case 186: +#line 804 "dhcp4_parser.yy" // lalr1.cc:859 + { // 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 1603 "dhcp4_parser.cc" +#line 1553 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 185: // $@32: %empty -#line 803 "dhcp4_parser.yy" - { + case 187: +#line 811 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sanity-checks", m); ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 1615 "dhcp4_parser.cc" +#line 1565 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 186: // sanity_checks: "sanity-checks" $@32 ":" "{" sanity_checks_params "}" -#line 809 "dhcp4_parser.yy" - { + case 188: +#line 817 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1624 "dhcp4_parser.cc" +#line 1574 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 190: // $@33: %empty -#line 819 "dhcp4_parser.yy" - { + case 192: +#line 827 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1633 "dhcp4_parser.cc" +#line 1583 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 191: // lease_checks: "lease-checks" $@33 ":" "constant string" -#line 822 "dhcp4_parser.yy" - { + case 193: +#line 830 "dhcp4_parser.yy" // lalr1.cc:859 + { - if ( (string(yystack_[0].value.as < std::string > ()) == "none") || - (string(yystack_[0].value.as < std::string > ()) == "warn") || - (string(yystack_[0].value.as < std::string > ()) == "fix") || - (string(yystack_[0].value.as < std::string > ()) == "fix-del") || - (string(yystack_[0].value.as < std::string > ()) == "del")) { - ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + if ( (string(yystack_[0].value.as< std::string > ()) == "none") || + (string(yystack_[0].value.as< std::string > ()) == "warn") || + (string(yystack_[0].value.as< std::string > ()) == "fix") || + (string(yystack_[0].value.as< std::string > ()) == "fix-del") || + (string(yystack_[0].value.as< std::string > ()) == "del")) { + ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-checks", user); ctx.leave(); } else { - error(yystack_[0].location, "Unsupported 'lease-checks value: " + string(yystack_[0].value.as < std::string > ()) + + error(yystack_[0].location, "Unsupported 'lease-checks value: " + string(yystack_[0].value.as< std::string > ()) + ", supported values are: none, warn, fix, fix-del, del"); } } -#line 1653 "dhcp4_parser.cc" +#line 1603 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 192: // $@34: %empty -#line 838 "dhcp4_parser.yy" - { + case 194: +#line 846 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1665 "dhcp4_parser.cc" +#line 1615 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 193: // hosts_database: "hosts-database" $@34 ":" "{" database_map_params "}" -#line 844 "dhcp4_parser.yy" - { + case 195: +#line 852 "dhcp4_parser.yy" // lalr1.cc:859 + { // 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 1676 "dhcp4_parser.cc" +#line 1626 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 194: // $@35: %empty -#line 851 "dhcp4_parser.yy" - { + case 196: +#line 859 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1688 "dhcp4_parser.cc" +#line 1638 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 195: // hosts_databases: "hosts-databases" $@35 ":" "[" database_list "]" -#line 857 "dhcp4_parser.yy" - { + case 197: +#line 865 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1697 "dhcp4_parser.cc" +#line 1647 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 200: // $@36: %empty -#line 870 "dhcp4_parser.yy" - { + case 202: +#line 878 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1707 "dhcp4_parser.cc" +#line 1657 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 201: // database: "{" $@36 database_map_params "}" -#line 874 "dhcp4_parser.yy" - { + case 203: +#line 882 "dhcp4_parser.yy" // lalr1.cc:859 + { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1717 "dhcp4_parser.cc" +#line 1667 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 225: // $@37: %empty -#line 907 "dhcp4_parser.yy" - { + case 227: +#line 915 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_TYPE); } -#line 1726 "dhcp4_parser.cc" +#line 1676 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 226: // database_type: "type" $@37 ":" db_type -#line 910 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); + case 228: +#line 918 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1735 "dhcp4_parser.cc" +#line 1685 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 227: // db_type: "memfile" -#line 915 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1741 "dhcp4_parser.cc" + case 229: +#line 923 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } +#line 1691 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 228: // db_type: "mysql" -#line 916 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1747 "dhcp4_parser.cc" + case 230: +#line 924 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } +#line 1697 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 229: // db_type: "postgresql" -#line 917 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1753 "dhcp4_parser.cc" + case 231: +#line 925 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } +#line 1703 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 230: // db_type: "cql" -#line 918 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } -#line 1759 "dhcp4_parser.cc" + case 232: +#line 926 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } +#line 1709 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 231: // $@38: %empty -#line 921 "dhcp4_parser.yy" - { + case 233: +#line 929 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1768 "dhcp4_parser.cc" +#line 1718 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 232: // user: "user" $@38 ":" "constant string" -#line 924 "dhcp4_parser.yy" - { - ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 234: +#line 932 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); ctx.leave(); } -#line 1778 "dhcp4_parser.cc" +#line 1728 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 233: // $@39: %empty -#line 930 "dhcp4_parser.yy" - { + case 235: +#line 938 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1787 "dhcp4_parser.cc" +#line 1737 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 234: // password: "password" $@39 ":" "constant string" -#line 933 "dhcp4_parser.yy" - { - ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 236: +#line 941 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); ctx.leave(); } -#line 1797 "dhcp4_parser.cc" +#line 1747 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 235: // $@40: %empty -#line 939 "dhcp4_parser.yy" - { + case 237: +#line 947 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1806 "dhcp4_parser.cc" +#line 1756 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 236: // host: "host" $@40 ":" "constant string" -#line 942 "dhcp4_parser.yy" - { - ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 238: +#line 950 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); ctx.leave(); } -#line 1816 "dhcp4_parser.cc" +#line 1766 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 237: // port: "port" ":" "integer" -#line 948 "dhcp4_parser.yy" - { + case 239: +#line 956 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); - ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", p); } -#line 1826 "dhcp4_parser.cc" +#line 1776 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 238: // $@41: %empty -#line 954 "dhcp4_parser.yy" - { + case 240: +#line 962 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1835 "dhcp4_parser.cc" +#line 1785 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 239: // name: "name" $@41 ":" "constant string" -#line 957 "dhcp4_parser.yy" - { - ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 241: +#line 965 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1845 "dhcp4_parser.cc" +#line 1795 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 240: // persist: "persist" ":" "boolean" -#line 963 "dhcp4_parser.yy" - { + case 242: +#line 971 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); } -#line 1855 "dhcp4_parser.cc" +#line 1805 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 241: // lfc_interval: "lfc-interval" ":" "integer" -#line 969 "dhcp4_parser.yy" - { + case 243: +#line 977 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); } -#line 1865 "dhcp4_parser.cc" +#line 1815 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 242: // readonly: "readonly" ":" "boolean" -#line 975 "dhcp4_parser.yy" - { + case 244: +#line 983 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); } -#line 1875 "dhcp4_parser.cc" +#line 1825 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 243: // connect_timeout: "connect-timeout" ":" "integer" -#line 981 "dhcp4_parser.yy" - { + case 245: +#line 989 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("connect-timeout", n); } -#line 1885 "dhcp4_parser.cc" +#line 1835 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 244: // request_timeout: "request-timeout" ":" "integer" -#line 987 "dhcp4_parser.yy" - { + case 246: +#line 995 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("request-timeout", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("request-timeout", n); } -#line 1895 "dhcp4_parser.cc" +#line 1845 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 245: // tcp_keepalive: "tcp-keepalive" ":" "integer" -#line 993 "dhcp4_parser.yy" - { + case 247: +#line 1001 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("tcp-keepalive", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-keepalive", n); } -#line 1905 "dhcp4_parser.cc" +#line 1855 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 246: // tcp_nodelay: "tcp-nodelay" ":" "boolean" -#line 999 "dhcp4_parser.yy" - { + case 248: +#line 1007 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("tcp-nodelay", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-nodelay", n); } -#line 1915 "dhcp4_parser.cc" +#line 1865 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 247: // $@42: %empty -#line 1005 "dhcp4_parser.yy" - { + case 249: +#line 1013 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("contact-points", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1924 "dhcp4_parser.cc" +#line 1874 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 248: // contact_points: "contact-points" $@42 ":" "constant string" -#line 1008 "dhcp4_parser.yy" - { - ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 250: +#line 1016 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr cp(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("contact-points", cp); ctx.leave(); } -#line 1934 "dhcp4_parser.cc" +#line 1884 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 249: // $@43: %empty -#line 1014 "dhcp4_parser.yy" - { + case 251: +#line 1022 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("keyspace", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1943 "dhcp4_parser.cc" +#line 1893 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 250: // keyspace: "keyspace" $@43 ":" "constant string" -#line 1017 "dhcp4_parser.yy" - { - ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 252: +#line 1025 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr ks(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("keyspace", ks); ctx.leave(); } -#line 1953 "dhcp4_parser.cc" +#line 1903 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 251: // $@44: %empty -#line 1023 "dhcp4_parser.yy" - { + case 253: +#line 1031 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("consistency", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1962 "dhcp4_parser.cc" +#line 1912 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 252: // consistency: "consistency" $@44 ":" "constant string" -#line 1026 "dhcp4_parser.yy" - { - ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 254: +#line 1034 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr c(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("consistency", c); ctx.leave(); } -#line 1972 "dhcp4_parser.cc" +#line 1922 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 253: // $@45: %empty -#line 1032 "dhcp4_parser.yy" - { + case 255: +#line 1040 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("serial-consistency", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1981 "dhcp4_parser.cc" +#line 1931 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 254: // serial_consistency: "serial-consistency" $@45 ":" "constant string" -#line 1035 "dhcp4_parser.yy" - { - ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 256: +#line 1043 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr c(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("serial-consistency", c); ctx.leave(); } -#line 1991 "dhcp4_parser.cc" +#line 1941 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 255: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 1041 "dhcp4_parser.yy" - { + case 257: +#line 1049 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 2001 "dhcp4_parser.cc" +#line 1951 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 256: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 1047 "dhcp4_parser.yy" - { + case 258: +#line 1055 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 2011 "dhcp4_parser.cc" +#line 1961 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 257: // max_row_errors: "max-row-errors" ":" "integer" -#line 1053 "dhcp4_parser.yy" - { + case 259: +#line 1061 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-row-errors", n); } -#line 2021 "dhcp4_parser.cc" +#line 1971 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 258: // $@46: %empty -#line 1060 "dhcp4_parser.yy" - { + case 260: +#line 1068 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host-reservation-identifiers", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 2033 "dhcp4_parser.cc" +#line 1983 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 259: // host_reservation_identifiers: "host-reservation-identifiers" $@46 ":" "[" host_reservation_identifiers_list "]" -#line 1066 "dhcp4_parser.yy" - { + case 261: +#line 1074 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2042 "dhcp4_parser.cc" +#line 1992 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 267: // duid_id: "duid" -#line 1082 "dhcp4_parser.yy" - { + case 269: +#line 1090 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2051 "dhcp4_parser.cc" +#line 2001 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 268: // hw_address_id: "hw-address" -#line 1087 "dhcp4_parser.yy" - { + case 270: +#line 1095 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 2060 "dhcp4_parser.cc" +#line 2010 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 269: // circuit_id: "circuit-id" -#line 1092 "dhcp4_parser.yy" - { + case 271: +#line 1100 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(circuit); } -#line 2069 "dhcp4_parser.cc" +#line 2019 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 270: // client_id: "client-id" -#line 1097 "dhcp4_parser.yy" - { + case 272: +#line 1105 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(client); } -#line 2078 "dhcp4_parser.cc" +#line 2028 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 271: // flex_id: "flex-id" -#line 1102 "dhcp4_parser.yy" - { + case 273: +#line 1110 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 2087 "dhcp4_parser.cc" +#line 2037 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 272: // $@47: %empty -#line 1109 "dhcp4_parser.yy" - { + case 274: +#line 1117 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("multi-threading", mt); ctx.stack_.push_back(mt); ctx.enter(ctx.DHCP_MULTI_THREADING); } -#line 2099 "dhcp4_parser.cc" +#line 2049 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 273: // dhcp_multi_threading: "multi-threading" $@47 ":" "{" multi_threading_params "}" -#line 1115 "dhcp4_parser.yy" - { + case 275: +#line 1123 "dhcp4_parser.yy" // lalr1.cc:859 + { // 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 2110 "dhcp4_parser.cc" +#line 2060 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 282: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1134 "dhcp4_parser.yy" - { + case 284: +#line 1142 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-multi-threading", b); } -#line 2120 "dhcp4_parser.cc" +#line 2070 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 283: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1140 "dhcp4_parser.yy" - { + case 285: +#line 1148 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("thread-pool-size", prf); } -#line 2130 "dhcp4_parser.cc" +#line 2080 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 284: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1146 "dhcp4_parser.yy" - { + case 286: +#line 1154 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("packet-queue-size", prf); } -#line 2140 "dhcp4_parser.cc" +#line 2090 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 285: // $@48: %empty -#line 1152 "dhcp4_parser.yy" - { + case 287: +#line 1160 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hooks-libraries", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2152 "dhcp4_parser.cc" +#line 2102 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 286: // hooks_libraries: "hooks-libraries" $@48 ":" "[" hooks_libraries_list "]" -#line 1158 "dhcp4_parser.yy" - { + case 288: +#line 1166 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2161 "dhcp4_parser.cc" +#line 2111 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 291: // $@49: %empty -#line 1171 "dhcp4_parser.yy" - { + case 293: +#line 1179 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2171 "dhcp4_parser.cc" +#line 2121 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 292: // hooks_library: "{" $@49 hooks_params "}" -#line 1175 "dhcp4_parser.yy" - { + case 294: +#line 1183 "dhcp4_parser.yy" // lalr1.cc:859 + { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2181 "dhcp4_parser.cc" +#line 2131 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 293: // $@50: %empty -#line 1181 "dhcp4_parser.yy" - { + case 295: +#line 1189 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2191 "dhcp4_parser.cc" +#line 2141 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 294: // sub_hooks_library: "{" $@50 hooks_params "}" -#line 1185 "dhcp4_parser.yy" - { + case 296: +#line 1193 "dhcp4_parser.yy" // lalr1.cc:859 + { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2201 "dhcp4_parser.cc" +#line 2151 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 300: // $@51: %empty -#line 1200 "dhcp4_parser.yy" - { + case 302: +#line 1208 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2210 "dhcp4_parser.cc" +#line 2160 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 301: // library: "library" $@51 ":" "constant string" -#line 1203 "dhcp4_parser.yy" - { - ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 303: +#line 1211 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 2220 "dhcp4_parser.cc" +#line 2170 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 302: // $@52: %empty -#line 1209 "dhcp4_parser.yy" - { + case 304: +#line 1217 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2229 "dhcp4_parser.cc" +#line 2179 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 303: // parameters: "parameters" $@52 ":" map_value -#line 1212 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); + case 305: +#line 1220 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2238 "dhcp4_parser.cc" +#line 2188 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 304: // $@53: %empty -#line 1218 "dhcp4_parser.yy" - { + case 306: +#line 1226 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("expired-leases-processing", m); ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2250 "dhcp4_parser.cc" +#line 2200 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 305: // expired_leases_processing: "expired-leases-processing" $@53 ":" "{" expired_leases_params "}" -#line 1224 "dhcp4_parser.yy" - { + case 307: +#line 1232 "dhcp4_parser.yy" // lalr1.cc:859 + { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2260 "dhcp4_parser.cc" +#line 2210 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 314: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1242 "dhcp4_parser.yy" - { + case 316: +#line 1250 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + 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 2270 "dhcp4_parser.cc" +#line 2220 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 315: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1248 "dhcp4_parser.yy" - { + case 317: +#line 1256 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + 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 2280 "dhcp4_parser.cc" +#line 2230 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 316: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1254 "dhcp4_parser.yy" - { + case 318: +#line 1262 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2290 "dhcp4_parser.cc" +#line 2240 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 317: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1260 "dhcp4_parser.yy" - { + case 319: +#line 1268 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2300 "dhcp4_parser.cc" +#line 2250 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 318: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1266 "dhcp4_parser.yy" - { + case 320: +#line 1274 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2310 "dhcp4_parser.cc" +#line 2260 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 319: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1272 "dhcp4_parser.yy" - { + case 321: +#line 1280 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2320 "dhcp4_parser.cc" +#line 2270 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 320: // $@54: %empty -#line 1281 "dhcp4_parser.yy" - { + case 322: +#line 1289 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("subnet4", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet4", l); ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET4); } -#line 2332 "dhcp4_parser.cc" +#line 2282 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 321: // subnet4_list: "subnet4" $@54 ":" "[" subnet4_list_content "]" -#line 1287 "dhcp4_parser.yy" - { + case 323: +#line 1295 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2341 "dhcp4_parser.cc" +#line 2291 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 326: // $@55: %empty -#line 1307 "dhcp4_parser.yy" - { + case 328: +#line 1315 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2351 "dhcp4_parser.cc" +#line 2301 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 327: // subnet4: "{" $@55 subnet4_params "}" -#line 1311 "dhcp4_parser.yy" - { + case 329: +#line 1319 "dhcp4_parser.yy" // lalr1.cc:859 + { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. // In particular we can do things like this: @@ -2373,624 +2323,624 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2377 "dhcp4_parser.cc" +#line 2327 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 328: // $@56: %empty -#line 1333 "dhcp4_parser.yy" - { + case 330: +#line 1341 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2387 "dhcp4_parser.cc" +#line 2337 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 329: // sub_subnet4: "{" $@56 subnet4_params "}" -#line 1337 "dhcp4_parser.yy" - { + case 331: +#line 1345 "dhcp4_parser.yy" // lalr1.cc:859 + { // The subnet subnet4 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2397 "dhcp4_parser.cc" +#line 2347 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 373: // $@57: %empty -#line 1392 "dhcp4_parser.yy" - { + case 376: +#line 1401 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2406 "dhcp4_parser.cc" +#line 2356 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 374: // subnet: "subnet" $@57 ":" "constant string" -#line 1395 "dhcp4_parser.yy" - { - ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 377: +#line 1404 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2416 "dhcp4_parser.cc" +#line 2366 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 375: // $@58: %empty -#line 1401 "dhcp4_parser.yy" - { + case 378: +#line 1410 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("4o6-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2425 "dhcp4_parser.cc" +#line 2375 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 376: // subnet_4o6_interface: "4o6-interface" $@58 ":" "constant string" -#line 1404 "dhcp4_parser.yy" - { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 379: +#line 1413 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 2435 "dhcp4_parser.cc" +#line 2385 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 377: // $@59: %empty -#line 1410 "dhcp4_parser.yy" - { + case 380: +#line 1419 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("4o6-interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2444 "dhcp4_parser.cc" +#line 2394 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 378: // subnet_4o6_interface_id: "4o6-interface-id" $@59 ":" "constant string" -#line 1413 "dhcp4_parser.yy" - { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 381: +#line 1422 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 2454 "dhcp4_parser.cc" +#line 2404 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 379: // $@60: %empty -#line 1419 "dhcp4_parser.yy" - { + case 382: +#line 1428 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("4o6-subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2463 "dhcp4_parser.cc" +#line 2413 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 380: // subnet_4o6_subnet: "4o6-subnet" $@60 ":" "constant string" -#line 1422 "dhcp4_parser.yy" - { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 383: +#line 1431 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 2473 "dhcp4_parser.cc" +#line 2423 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 381: // $@61: %empty -#line 1428 "dhcp4_parser.yy" - { + case 384: +#line 1437 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2482 "dhcp4_parser.cc" +#line 2432 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 382: // interface: "interface" $@61 ":" "constant string" -#line 1431 "dhcp4_parser.yy" - { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 385: +#line 1440 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2492 "dhcp4_parser.cc" +#line 2442 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 383: // $@62: %empty -#line 1437 "dhcp4_parser.yy" - { + case 386: +#line 1446 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2501 "dhcp4_parser.cc" +#line 2451 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 384: // client_class: "client-class" $@62 ":" "constant string" -#line 1440 "dhcp4_parser.yy" - { - ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 387: +#line 1449 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 2511 "dhcp4_parser.cc" +#line 2461 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 385: // $@63: %empty -#line 1446 "dhcp4_parser.yy" - { + case 388: +#line 1455 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("require-client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2523 "dhcp4_parser.cc" +#line 2473 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 386: // require_client_classes: "require-client-classes" $@63 ":" list_strings -#line 1452 "dhcp4_parser.yy" - { + case 389: +#line 1461 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2532 "dhcp4_parser.cc" +#line 2482 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 387: // $@64: %empty -#line 1457 "dhcp4_parser.yy" - { + case 390: +#line 1466 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.RESERVATION_MODE); } -#line 2541 "dhcp4_parser.cc" +#line 2491 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 388: // reservation_mode: "reservation-mode" $@64 ":" hr_mode -#line 1460 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); + case 391: +#line 1469 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2550 "dhcp4_parser.cc" +#line 2500 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 389: // hr_mode: "disabled" -#line 1465 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2556 "dhcp4_parser.cc" + case 392: +#line 1474 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } +#line 2506 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 390: // hr_mode: "out-of-pool" -#line 1466 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2562 "dhcp4_parser.cc" + case 393: +#line 1475 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } +#line 2512 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 391: // hr_mode: "global" -#line 1467 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2568 "dhcp4_parser.cc" + case 394: +#line 1476 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } +#line 2518 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 392: // hr_mode: "all" -#line 1468 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2574 "dhcp4_parser.cc" + case 395: +#line 1477 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } +#line 2524 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 393: // id: "id" ":" "integer" -#line 1471 "dhcp4_parser.yy" - { + case 396: +#line 1480 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("id", ctx.loc2pos(yystack_[2].location)); - ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2584 "dhcp4_parser.cc" +#line 2534 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 394: // $@65: %empty -#line 1479 "dhcp4_parser.yy" - { + case 397: +#line 1488 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("shared-networks", l); ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2596 "dhcp4_parser.cc" +#line 2546 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 395: // shared_networks: "shared-networks" $@65 ":" "[" shared_networks_content "]" -#line 1485 "dhcp4_parser.yy" - { + case 398: +#line 1494 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2605 "dhcp4_parser.cc" +#line 2555 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 400: // $@66: %empty -#line 1500 "dhcp4_parser.yy" - { + case 403: +#line 1509 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2615 "dhcp4_parser.cc" +#line 2565 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 401: // shared_network: "{" $@66 shared_network_params "}" -#line 1504 "dhcp4_parser.yy" - { + case 404: +#line 1513 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); } -#line 2623 "dhcp4_parser.cc" +#line 2573 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 440: // $@67: %empty -#line 1554 "dhcp4_parser.yy" - { + case 444: +#line 1564 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-def", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2635 "dhcp4_parser.cc" +#line 2585 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 441: // option_def_list: "option-def" $@67 ":" "[" option_def_list_content "]" -#line 1560 "dhcp4_parser.yy" - { + case 445: +#line 1570 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2644 "dhcp4_parser.cc" +#line 2594 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 442: // $@68: %empty -#line 1568 "dhcp4_parser.yy" - { + case 446: +#line 1578 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2653 "dhcp4_parser.cc" +#line 2603 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 443: // sub_option_def_list: "{" $@68 option_def_list "}" -#line 1571 "dhcp4_parser.yy" - { + case 447: +#line 1581 "dhcp4_parser.yy" // lalr1.cc:859 + { // parsing completed } -#line 2661 "dhcp4_parser.cc" +#line 2611 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 448: // $@69: %empty -#line 1587 "dhcp4_parser.yy" - { + case 452: +#line 1597 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2671 "dhcp4_parser.cc" +#line 2621 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 449: // option_def_entry: "{" $@69 option_def_params "}" -#line 1591 "dhcp4_parser.yy" - { + case 453: +#line 1601 "dhcp4_parser.yy" // lalr1.cc:859 + { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("code", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2683 "dhcp4_parser.cc" +#line 2633 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 450: // $@70: %empty -#line 1602 "dhcp4_parser.yy" - { + case 454: +#line 1612 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2693 "dhcp4_parser.cc" +#line 2643 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 451: // sub_option_def: "{" $@70 option_def_params "}" -#line 1606 "dhcp4_parser.yy" - { + case 455: +#line 1616 "dhcp4_parser.yy" // lalr1.cc:859 + { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("code", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2705 "dhcp4_parser.cc" +#line 2655 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 467: // code: "code" ":" "integer" -#line 1638 "dhcp4_parser.yy" - { + case 471: +#line 1648 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("code", ctx.loc2pos(yystack_[2].location)); - ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 2715 "dhcp4_parser.cc" +#line 2665 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 469: // $@71: %empty -#line 1646 "dhcp4_parser.yy" - { + case 473: +#line 1656 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2724 "dhcp4_parser.cc" +#line 2674 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 470: // option_def_type: "type" $@71 ":" "constant string" -#line 1649 "dhcp4_parser.yy" - { - ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 474: +#line 1659 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 2734 "dhcp4_parser.cc" +#line 2684 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 471: // $@72: %empty -#line 1655 "dhcp4_parser.yy" - { + case 475: +#line 1665 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2743 "dhcp4_parser.cc" +#line 2693 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 472: // option_def_record_types: "record-types" $@72 ":" "constant string" -#line 1658 "dhcp4_parser.yy" - { - ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 476: +#line 1668 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 2753 "dhcp4_parser.cc" +#line 2703 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 473: // $@73: %empty -#line 1664 "dhcp4_parser.yy" - { + case 477: +#line 1674 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2762 "dhcp4_parser.cc" +#line 2712 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 474: // space: "space" $@73 ":" "constant string" -#line 1667 "dhcp4_parser.yy" - { - ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 478: +#line 1677 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 2772 "dhcp4_parser.cc" +#line 2722 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 476: // $@74: %empty -#line 1675 "dhcp4_parser.yy" - { + case 480: +#line 1685 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2781 "dhcp4_parser.cc" +#line 2731 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 477: // option_def_encapsulate: "encapsulate" $@74 ":" "constant string" -#line 1678 "dhcp4_parser.yy" - { - ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 481: +#line 1688 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 2791 "dhcp4_parser.cc" +#line 2741 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 478: // option_def_array: "array" ":" "boolean" -#line 1684 "dhcp4_parser.yy" - { + case 482: +#line 1694 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); - ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 2801 "dhcp4_parser.cc" +#line 2751 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 479: // $@75: %empty -#line 1694 "dhcp4_parser.yy" - { + case 483: +#line 1704 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-data", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 2813 "dhcp4_parser.cc" +#line 2763 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 480: // option_data_list: "option-data" $@75 ":" "[" option_data_list_content "]" -#line 1700 "dhcp4_parser.yy" - { + case 484: +#line 1710 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2822 "dhcp4_parser.cc" +#line 2772 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 485: // $@76: %empty -#line 1719 "dhcp4_parser.yy" - { + case 489: +#line 1729 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2832 "dhcp4_parser.cc" +#line 2782 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 486: // option_data_entry: "{" $@76 option_data_params "}" -#line 1723 "dhcp4_parser.yy" - { + case 490: +#line 1733 "dhcp4_parser.yy" // lalr1.cc:859 + { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 2841 "dhcp4_parser.cc" +#line 2791 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 487: // $@77: %empty -#line 1731 "dhcp4_parser.yy" - { + case 491: +#line 1741 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2851 "dhcp4_parser.cc" +#line 2801 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 488: // sub_option_data: "{" $@77 option_data_params "}" -#line 1735 "dhcp4_parser.yy" - { + case 492: +#line 1745 "dhcp4_parser.yy" // lalr1.cc:859 + { /// @todo: the code or name parameters are required. // parsing completed } -#line 2860 "dhcp4_parser.cc" +#line 2810 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 503: // $@78: %empty -#line 1768 "dhcp4_parser.yy" - { + case 507: +#line 1778 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2869 "dhcp4_parser.cc" +#line 2819 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 504: // option_data_data: "data" $@78 ":" "constant string" -#line 1771 "dhcp4_parser.yy" - { - ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 508: +#line 1781 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 2879 "dhcp4_parser.cc" +#line 2829 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 507: // option_data_csv_format: "csv-format" ":" "boolean" -#line 1781 "dhcp4_parser.yy" - { + case 511: +#line 1791 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); - ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 2889 "dhcp4_parser.cc" +#line 2839 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 508: // option_data_always_send: "always-send" ":" "boolean" -#line 1787 "dhcp4_parser.yy" - { + case 512: +#line 1797 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); - ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr persist(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 2899 "dhcp4_parser.cc" +#line 2849 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 509: // $@79: %empty -#line 1796 "dhcp4_parser.yy" - { + case 513: +#line 1806 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 2911 "dhcp4_parser.cc" +#line 2861 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 510: // pools_list: "pools" $@79 ":" "[" pools_list_content "]" -#line 1802 "dhcp4_parser.yy" - { + case 514: +#line 1812 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2920 "dhcp4_parser.cc" +#line 2870 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 515: // $@80: %empty -#line 1817 "dhcp4_parser.yy" - { + case 519: +#line 1827 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2930 "dhcp4_parser.cc" +#line 2880 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 516: // pool_list_entry: "{" $@80 pool_params "}" -#line 1821 "dhcp4_parser.yy" - { + case 520: +#line 1831 "dhcp4_parser.yy" // lalr1.cc:859 + { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2940 "dhcp4_parser.cc" +#line 2890 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 517: // $@81: %empty -#line 1827 "dhcp4_parser.yy" - { + case 521: +#line 1837 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2950 "dhcp4_parser.cc" +#line 2900 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 518: // sub_pool4: "{" $@81 pool_params "}" -#line 1831 "dhcp4_parser.yy" - { + case 522: +#line 1841 "dhcp4_parser.yy" // lalr1.cc:859 + { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2960 "dhcp4_parser.cc" +#line 2910 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 528: // $@82: %empty -#line 1850 "dhcp4_parser.yy" - { + case 532: +#line 1860 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2969 "dhcp4_parser.cc" +#line 2919 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 529: // pool_entry: "pool" $@82 ":" "constant string" -#line 1853 "dhcp4_parser.yy" - { - ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 533: +#line 1863 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 2979 "dhcp4_parser.cc" +#line 2929 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 530: // $@83: %empty -#line 1859 "dhcp4_parser.yy" - { + case 534: +#line 1869 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2987 "dhcp4_parser.cc" +#line 2937 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 531: // user_context: "user-context" $@83 ":" map_value -#line 1861 "dhcp4_parser.yy" - { + case 535: +#line 1871 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr parent = ctx.stack_.back(); - ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); + ElementPtr user_context = yystack_[0].value.as< ElementPtr > (); ConstElementPtr old = parent->get("user-context"); // Handle already existing user context @@ -3010,23 +2960,23 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3014 "dhcp4_parser.cc" +#line 2964 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 532: // $@84: %empty -#line 1884 "dhcp4_parser.yy" - { + case 536: +#line 1894 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 3022 "dhcp4_parser.cc" +#line 2972 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 533: // comment: "comment" $@84 ":" "constant string" -#line 1886 "dhcp4_parser.yy" - { + case 537: +#line 1896 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); - ElementPtr comment(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr comment(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); user_context->set("comment", comment); // Handle already existing user context @@ -3047,1096 +2997,1092 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3051 "dhcp4_parser.cc" +#line 3001 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 534: // $@85: %empty -#line 1914 "dhcp4_parser.yy" - { + case 538: +#line 1924 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations", l); ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3063 "dhcp4_parser.cc" +#line 3013 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 535: // reservations: "reservations" $@85 ":" "[" reservations_list "]" -#line 1920 "dhcp4_parser.yy" - { + case 539: +#line 1930 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3072 "dhcp4_parser.cc" +#line 3022 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 540: // $@86: %empty -#line 1933 "dhcp4_parser.yy" - { + case 544: +#line 1943 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3082 "dhcp4_parser.cc" +#line 3032 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 541: // reservation: "{" $@86 reservation_params "}" -#line 1937 "dhcp4_parser.yy" - { + case 545: +#line 1947 "dhcp4_parser.yy" // lalr1.cc:859 + { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3091 "dhcp4_parser.cc" +#line 3041 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 542: // $@87: %empty -#line 1942 "dhcp4_parser.yy" - { + case 546: +#line 1952 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3101 "dhcp4_parser.cc" +#line 3051 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 543: // sub_reservation: "{" $@87 reservation_params "}" -#line 1946 "dhcp4_parser.yy" - { + case 547: +#line 1956 "dhcp4_parser.yy" // lalr1.cc:859 + { /// @todo: an identifier parameter is required. // parsing completed } -#line 3110 "dhcp4_parser.cc" +#line 3060 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 563: // $@88: %empty -#line 1977 "dhcp4_parser.yy" - { + case 567: +#line 1987 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("next-server", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3119 "dhcp4_parser.cc" +#line 3069 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 564: // next_server: "next-server" $@88 ":" "constant string" -#line 1980 "dhcp4_parser.yy" - { - ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 568: +#line 1990 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3129 "dhcp4_parser.cc" +#line 3079 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 565: // $@89: %empty -#line 1986 "dhcp4_parser.yy" - { + case 569: +#line 1996 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("server-hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3138 "dhcp4_parser.cc" +#line 3088 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 566: // server_hostname: "server-hostname" $@89 ":" "constant string" -#line 1989 "dhcp4_parser.yy" - { - ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 570: +#line 1999 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3148 "dhcp4_parser.cc" +#line 3098 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 567: // $@90: %empty -#line 1995 "dhcp4_parser.yy" - { + case 571: +#line 2005 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("boot-file-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3157 "dhcp4_parser.cc" +#line 3107 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 568: // boot_file_name: "boot-file-name" $@90 ":" "constant string" -#line 1998 "dhcp4_parser.yy" - { - ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 572: +#line 2008 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3167 "dhcp4_parser.cc" +#line 3117 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 569: // $@91: %empty -#line 2004 "dhcp4_parser.yy" - { + case 573: +#line 2014 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3176 "dhcp4_parser.cc" +#line 3126 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 570: // ip_address: "ip-address" $@91 ":" "constant string" -#line 2007 "dhcp4_parser.yy" - { - ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 574: +#line 2017 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3186 "dhcp4_parser.cc" +#line 3136 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 571: // $@92: %empty -#line 2013 "dhcp4_parser.yy" - { + case 575: +#line 2023 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-addresses", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3198 "dhcp4_parser.cc" +#line 3148 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 572: // ip_addresses: "ip-addresses" $@92 ":" list_strings -#line 2019 "dhcp4_parser.yy" - { + case 576: +#line 2029 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3207 "dhcp4_parser.cc" +#line 3157 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 573: // $@93: %empty -#line 2024 "dhcp4_parser.yy" - { + case 577: +#line 2034 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3216 "dhcp4_parser.cc" +#line 3166 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 574: // duid: "duid" $@93 ":" "constant string" -#line 2027 "dhcp4_parser.yy" - { - ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 578: +#line 2037 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 3226 "dhcp4_parser.cc" +#line 3176 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 575: // $@94: %empty -#line 2033 "dhcp4_parser.yy" - { + case 579: +#line 2043 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3235 "dhcp4_parser.cc" +#line 3185 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 576: // hw_address: "hw-address" $@94 ":" "constant string" -#line 2036 "dhcp4_parser.yy" - { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 580: +#line 2046 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3245 "dhcp4_parser.cc" +#line 3195 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 577: // $@95: %empty -#line 2042 "dhcp4_parser.yy" - { + case 581: +#line 2052 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("client-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3254 "dhcp4_parser.cc" +#line 3204 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 578: // client_id_value: "client-id" $@95 ":" "constant string" -#line 2045 "dhcp4_parser.yy" - { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 582: +#line 2055 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3264 "dhcp4_parser.cc" +#line 3214 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 579: // $@96: %empty -#line 2051 "dhcp4_parser.yy" - { + case 583: +#line 2061 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3273 "dhcp4_parser.cc" +#line 3223 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 580: // circuit_id_value: "circuit-id" $@96 ":" "constant string" -#line 2054 "dhcp4_parser.yy" - { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 584: +#line 2064 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3283 "dhcp4_parser.cc" +#line 3233 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 581: // $@97: %empty -#line 2060 "dhcp4_parser.yy" - { + case 585: +#line 2070 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3292 "dhcp4_parser.cc" +#line 3242 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 582: // flex_id_value: "flex-id" $@97 ":" "constant string" -#line 2063 "dhcp4_parser.yy" - { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 586: +#line 2073 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3302 "dhcp4_parser.cc" +#line 3252 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 583: // $@98: %empty -#line 2069 "dhcp4_parser.yy" - { + case 587: +#line 2079 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3311 "dhcp4_parser.cc" +#line 3261 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 584: // hostname: "hostname" $@98 ":" "constant string" -#line 2072 "dhcp4_parser.yy" - { - ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 588: +#line 2082 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 3321 "dhcp4_parser.cc" +#line 3271 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 585: // $@99: %empty -#line 2078 "dhcp4_parser.yy" - { + case 589: +#line 2088 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3333 "dhcp4_parser.cc" +#line 3283 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 586: // reservation_client_classes: "client-classes" $@99 ":" list_strings -#line 2084 "dhcp4_parser.yy" - { + case 590: +#line 2094 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3342 "dhcp4_parser.cc" +#line 3292 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 587: // $@100: %empty -#line 2092 "dhcp4_parser.yy" - { + case 591: +#line 2102 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay", m); ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3354 "dhcp4_parser.cc" +#line 3304 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 588: // relay: "relay" $@100 ":" "{" relay_map "}" -#line 2098 "dhcp4_parser.yy" - { + case 592: +#line 2108 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3363 "dhcp4_parser.cc" +#line 3313 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 591: // $@101: %empty -#line 2110 "dhcp4_parser.yy" - { + case 595: +#line 2120 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", l); ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3375 "dhcp4_parser.cc" +#line 3325 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 592: // client_classes: "client-classes" $@101 ":" "[" client_classes_list "]" -#line 2116 "dhcp4_parser.yy" - { + case 596: +#line 2126 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3384 "dhcp4_parser.cc" +#line 3334 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 595: // $@102: %empty -#line 2125 "dhcp4_parser.yy" - { + case 599: +#line 2135 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3394 "dhcp4_parser.cc" +#line 3344 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 596: // client_class_entry: "{" $@102 client_class_params "}" -#line 2129 "dhcp4_parser.yy" - { + case 600: +#line 2139 "dhcp4_parser.yy" // lalr1.cc:859 + { // 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 3404 "dhcp4_parser.cc" +#line 3354 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 613: // $@103: %empty -#line 2158 "dhcp4_parser.yy" - { + case 617: +#line 2168 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3413 "dhcp4_parser.cc" +#line 3363 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 614: // client_class_test: "test" $@103 ":" "constant string" -#line 2161 "dhcp4_parser.yy" - { - ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 618: +#line 2171 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3423 "dhcp4_parser.cc" +#line 3373 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 615: // only_if_required: "only-if-required" ":" "boolean" -#line 2167 "dhcp4_parser.yy" - { + case 619: +#line 2177 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3433 "dhcp4_parser.cc" +#line 3383 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 616: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2175 "dhcp4_parser.yy" - { + case 620: +#line 2185 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); - ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 3443 "dhcp4_parser.cc" +#line 3393 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 617: // $@104: %empty -#line 2183 "dhcp4_parser.yy" - { + case 621: +#line 2193 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("control-socket", m); ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 3455 "dhcp4_parser.cc" +#line 3405 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 618: // control_socket: "control-socket" $@104 ":" "{" control_socket_params "}" -#line 2189 "dhcp4_parser.yy" - { + case 622: +#line 2199 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3464 "dhcp4_parser.cc" +#line 3414 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 626: // $@105: %empty -#line 2205 "dhcp4_parser.yy" - { + case 630: +#line 2215 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3473 "dhcp4_parser.cc" +#line 3423 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 627: // control_socket_type: "socket-type" $@105 ":" "constant string" -#line 2208 "dhcp4_parser.yy" - { - ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 631: +#line 2218 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3483 "dhcp4_parser.cc" +#line 3433 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 628: // $@106: %empty -#line 2214 "dhcp4_parser.yy" - { + case 632: +#line 2224 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3492 "dhcp4_parser.cc" +#line 3442 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 629: // control_socket_name: "socket-name" $@106 ":" "constant string" -#line 2217 "dhcp4_parser.yy" - { - ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 633: +#line 2227 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3502 "dhcp4_parser.cc" +#line 3452 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 630: // $@107: %empty -#line 2226 "dhcp4_parser.yy" - { + case 634: +#line 2236 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-queue-control", qc); ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 3514 "dhcp4_parser.cc" +#line 3464 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 631: // dhcp_queue_control: "dhcp-queue-control" $@107 ":" "{" queue_control_params "}" -#line 2232 "dhcp4_parser.yy" - { + case 635: +#line 2242 "dhcp4_parser.yy" // lalr1.cc:859 + { // 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 3525 "dhcp4_parser.cc" +#line 3475 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 640: // enable_queue: "enable-queue" ":" "boolean" -#line 2251 "dhcp4_parser.yy" - { + case 644: +#line 2261 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 3535 "dhcp4_parser.cc" +#line 3485 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 641: // $@108: %empty -#line 2257 "dhcp4_parser.yy" - { + case 645: +#line 2267 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3544 "dhcp4_parser.cc" +#line 3494 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 642: // queue_type: "queue-type" $@108 ":" "constant string" -#line 2260 "dhcp4_parser.yy" - { - ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 646: +#line 2270 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3554 "dhcp4_parser.cc" +#line 3504 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 643: // capacity: "capacity" ":" "integer" -#line 2266 "dhcp4_parser.yy" - { + case 647: +#line 2276 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); - ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr c(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 3564 "dhcp4_parser.cc" +#line 3514 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 644: // $@109: %empty -#line 2272 "dhcp4_parser.yy" - { - ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); + case 648: +#line 2282 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.unique(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3573 "dhcp4_parser.cc" +#line 3523 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 645: // arbitrary_map_entry: "constant string" $@109 ":" value -#line 2275 "dhcp4_parser.yy" - { - ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + case 649: +#line 2285 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set(yystack_[3].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3582 "dhcp4_parser.cc" +#line 3532 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 646: // $@110: %empty -#line 2282 "dhcp4_parser.yy" - { + case 650: +#line 2292 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-ddns", m); ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 3594 "dhcp4_parser.cc" +#line 3544 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 647: // dhcp_ddns: "dhcp-ddns" $@110 ":" "{" dhcp_ddns_params "}" -#line 2288 "dhcp4_parser.yy" - { + case 651: +#line 2298 "dhcp4_parser.yy" // lalr1.cc:859 + { // 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 3605 "dhcp4_parser.cc" +#line 3555 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 648: // $@111: %empty -#line 2295 "dhcp4_parser.yy" - { + case 652: +#line 2305 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3615 "dhcp4_parser.cc" +#line 3565 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 649: // sub_dhcp_ddns: "{" $@111 dhcp_ddns_params "}" -#line 2299 "dhcp4_parser.yy" - { + case 653: +#line 2309 "dhcp4_parser.yy" // lalr1.cc:859 + { // 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 3625 "dhcp4_parser.cc" +#line 3575 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 670: // enable_updates: "enable-updates" ":" "boolean" -#line 2329 "dhcp4_parser.yy" - { + case 674: +#line 2339 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 3635 "dhcp4_parser.cc" +#line 3585 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 671: // $@112: %empty -#line 2335 "dhcp4_parser.yy" - { + case 675: +#line 2345 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3644 "dhcp4_parser.cc" +#line 3594 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 672: // server_ip: "server-ip" $@112 ":" "constant string" -#line 2338 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 676: +#line 2348 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3654 "dhcp4_parser.cc" +#line 3604 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 673: // server_port: "server-port" ":" "integer" -#line 2344 "dhcp4_parser.yy" - { + case 677: +#line 2354 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); - ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 3664 "dhcp4_parser.cc" +#line 3614 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 674: // $@113: %empty -#line 2350 "dhcp4_parser.yy" - { + case 678: +#line 2360 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3673 "dhcp4_parser.cc" +#line 3623 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 675: // sender_ip: "sender-ip" $@113 ":" "constant string" -#line 2353 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 679: +#line 2363 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3683 "dhcp4_parser.cc" +#line 3633 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 676: // sender_port: "sender-port" ":" "integer" -#line 2359 "dhcp4_parser.yy" - { + case 680: +#line 2369 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); - ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 3693 "dhcp4_parser.cc" +#line 3643 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 677: // max_queue_size: "max-queue-size" ":" "integer" -#line 2365 "dhcp4_parser.yy" - { + case 681: +#line 2375 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 3703 "dhcp4_parser.cc" +#line 3653 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 678: // $@114: %empty -#line 2371 "dhcp4_parser.yy" - { + case 682: +#line 2381 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 3712 "dhcp4_parser.cc" +#line 3662 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 679: // ncr_protocol: "ncr-protocol" $@114 ":" ncr_protocol_value -#line 2374 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); + case 683: +#line 2384 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3721 "dhcp4_parser.cc" +#line 3671 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 680: // ncr_protocol_value: "udp" -#line 2380 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 3727 "dhcp4_parser.cc" + case 684: +#line 2390 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } +#line 3677 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 681: // ncr_protocol_value: "tcp" -#line 2381 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 3733 "dhcp4_parser.cc" + case 685: +#line 2391 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } +#line 3683 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 682: // $@115: %empty -#line 2384 "dhcp4_parser.yy" - { + case 686: +#line 2394 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 3742 "dhcp4_parser.cc" +#line 3692 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 683: // ncr_format: "ncr-format" $@115 ":" "JSON" -#line 2387 "dhcp4_parser.yy" - { + case 687: +#line 2397 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 3752 "dhcp4_parser.cc" +#line 3702 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 684: // $@116: %empty -#line 2394 "dhcp4_parser.yy" - { + case 688: +#line 2404 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3761 "dhcp4_parser.cc" +#line 3711 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 685: // dep_qualifying_suffix: "qualifying-suffix" $@116 ":" "constant string" -#line 2397 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 689: +#line 2407 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3771 "dhcp4_parser.cc" +#line 3721 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 686: // dep_override_no_update: "override-no-update" ":" "boolean" -#line 2404 "dhcp4_parser.yy" - { + case 690: +#line 2414 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 3781 "dhcp4_parser.cc" +#line 3731 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 687: // dep_override_client_update: "override-client-update" ":" "boolean" -#line 2411 "dhcp4_parser.yy" - { + case 691: +#line 2421 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 3791 "dhcp4_parser.cc" +#line 3741 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 688: // $@117: %empty -#line 2418 "dhcp4_parser.yy" - { + case 692: +#line 2428 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 3800 "dhcp4_parser.cc" +#line 3750 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 689: // dep_replace_client_name: "replace-client-name" $@117 ":" ddns_replace_client_name_value -#line 2421 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); + case 693: +#line 2431 "dhcp4_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3809 "dhcp4_parser.cc" +#line 3759 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 690: // $@118: %empty -#line 2427 "dhcp4_parser.yy" - { + case 694: +#line 2437 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3818 "dhcp4_parser.cc" +#line 3768 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 691: // dep_generated_prefix: "generated-prefix" $@118 ":" "constant string" -#line 2430 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 695: +#line 2440 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3828 "dhcp4_parser.cc" +#line 3778 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 692: // $@119: %empty -#line 2437 "dhcp4_parser.yy" - { + case 696: +#line 2447 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3837 "dhcp4_parser.cc" +#line 3787 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 693: // dep_hostname_char_set: "hostname-char-set" $@119 ":" "constant string" -#line 2440 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 697: +#line 2450 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3847 "dhcp4_parser.cc" +#line 3797 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 694: // $@120: %empty -#line 2447 "dhcp4_parser.yy" - { + case 698: +#line 2457 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3856 "dhcp4_parser.cc" +#line 3806 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 695: // dep_hostname_char_replacement: "hostname-char-replacement" $@120 ":" "constant string" -#line 2450 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 699: +#line 2460 "dhcp4_parser.yy" // lalr1.cc:859 + { + 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 3866 "dhcp4_parser.cc" +#line 3816 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 696: // $@121: %empty -#line 2459 "dhcp4_parser.yy" - { + case 700: +#line 2469 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-control", i); ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 3878 "dhcp4_parser.cc" +#line 3828 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 697: // config_control: "config-control" $@121 ":" "{" config_control_params "}" -#line 2465 "dhcp4_parser.yy" - { + case 701: +#line 2475 "dhcp4_parser.yy" // lalr1.cc:859 + { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 3888 "dhcp4_parser.cc" +#line 3838 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 698: // $@122: %empty -#line 2471 "dhcp4_parser.yy" - { + case 702: +#line 2481 "dhcp4_parser.yy" // lalr1.cc:859 + { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3898 "dhcp4_parser.cc" +#line 3848 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 699: // sub_config_control: "{" $@122 config_control_params "}" -#line 2475 "dhcp4_parser.yy" - { + case 703: +#line 2485 "dhcp4_parser.yy" // lalr1.cc:859 + { // No config_control params are required // parsing completed } -#line 3907 "dhcp4_parser.cc" +#line 3857 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 704: // $@123: %empty -#line 2490 "dhcp4_parser.yy" - { + case 708: +#line 2500 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 3919 "dhcp4_parser.cc" +#line 3869 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 705: // config_databases: "config-databases" $@123 ":" "[" database_list "]" -#line 2496 "dhcp4_parser.yy" - { + case 709: +#line 2506 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3928 "dhcp4_parser.cc" +#line 3878 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 706: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 2501 "dhcp4_parser.yy" - { + case 710: +#line 2511 "dhcp4_parser.yy" // lalr1.cc:859 + { 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))); + 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 3938 "dhcp4_parser.cc" +#line 3888 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 707: // $@124: %empty -#line 2509 "dhcp4_parser.yy" - { + case 711: +#line 2519 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 3950 "dhcp4_parser.cc" +#line 3900 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 708: // loggers: "loggers" $@124 ":" "[" loggers_entries "]" -#line 2515 "dhcp4_parser.yy" - { + case 712: +#line 2525 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3959 "dhcp4_parser.cc" +#line 3909 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 711: // $@125: %empty -#line 2527 "dhcp4_parser.yy" - { + case 715: +#line 2537 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 3969 "dhcp4_parser.cc" +#line 3919 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 712: // logger_entry: "{" $@125 logger_params "}" -#line 2531 "dhcp4_parser.yy" - { + case 716: +#line 2541 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); } -#line 3977 "dhcp4_parser.cc" +#line 3927 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 722: // debuglevel: "debuglevel" ":" "integer" -#line 2548 "dhcp4_parser.yy" - { + case 726: +#line 2558 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); - ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 3987 "dhcp4_parser.cc" +#line 3937 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 723: // $@126: %empty -#line 2554 "dhcp4_parser.yy" - { + case 727: +#line 2564 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3996 "dhcp4_parser.cc" +#line 3946 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 724: // severity: "severity" $@126 ":" "constant string" -#line 2557 "dhcp4_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 728: +#line 2567 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 4006 "dhcp4_parser.cc" +#line 3956 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 725: // $@127: %empty -#line 2563 "dhcp4_parser.yy" - { + case 729: +#line 2573 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("output_options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4018 "dhcp4_parser.cc" +#line 3968 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 726: // output_options_list: "output_options" $@127 ":" "[" output_options_list_content "]" -#line 2569 "dhcp4_parser.yy" - { + case 730: +#line 2579 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 4027 "dhcp4_parser.cc" +#line 3977 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 729: // $@128: %empty -#line 2578 "dhcp4_parser.yy" - { + case 733: +#line 2588 "dhcp4_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4037 "dhcp4_parser.cc" +#line 3987 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 730: // output_entry: "{" $@128 output_params_list "}" -#line 2582 "dhcp4_parser.yy" - { + case 734: +#line 2592 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); } -#line 4045 "dhcp4_parser.cc" +#line 3995 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 738: // $@129: %empty -#line 2597 "dhcp4_parser.yy" - { + case 742: +#line 2607 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4054 "dhcp4_parser.cc" +#line 4004 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 739: // output: "output" $@129 ":" "constant string" -#line 2600 "dhcp4_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 743: +#line 2610 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 4064 "dhcp4_parser.cc" +#line 4014 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 740: // flush: "flush" ":" "boolean" -#line 2606 "dhcp4_parser.yy" - { + case 744: +#line 2616 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); - ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 4074 "dhcp4_parser.cc" +#line 4024 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 741: // maxsize: "maxsize" ":" "integer" -#line 2612 "dhcp4_parser.yy" - { + case 745: +#line 2622 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); - ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 4084 "dhcp4_parser.cc" +#line 4034 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 742: // maxver: "maxver" ":" "integer" -#line 2618 "dhcp4_parser.yy" - { + case 746: +#line 2628 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); - ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 4094 "dhcp4_parser.cc" +#line 4044 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 743: // $@130: %empty -#line 2624 "dhcp4_parser.yy" - { + case 747: +#line 2634 "dhcp4_parser.yy" // lalr1.cc:859 + { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4103 "dhcp4_parser.cc" +#line 4053 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 744: // pattern: "pattern" $@130 ":" "constant string" -#line 2627 "dhcp4_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 748: +#line 2637 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 4113 "dhcp4_parser.cc" +#line 4063 "dhcp4_parser.cc" // lalr1.cc:859 break; -#line 4117 "dhcp4_parser.cc" - +#line 4067 "dhcp4_parser.cc" // lalr1.cc:859 default: break; } } -#if YY_EXCEPTIONS catch (const syntax_error& yyexc) { - YYCDEBUG << "Caught exception: " << yyexc.what() << '\n'; error (yyexc); YYERROR; } -#endif // YY_EXCEPTIONS YY_SYMBOL_PRINT ("-> $$ =", yylhs); yypop_ (yylen); yylen = 0; + YY_STACK_PRINT (); // Shift the result of the reduction. - yypush_ (YY_NULLPTR, YY_MOVE (yylhs)); + yypush_ (YY_NULLPTR, yylhs); } goto yynewstate; - /*--------------------------------------. | yyerrlab -- here on detecting error. | `--------------------------------------*/ @@ -4145,9 +4091,7 @@ namespace isc { namespace dhcp { if (!yyerrstatus_) { ++yynerrs_; - context yyctx (*this, yyla); - std::string msg = yysyntax_error_ (yyctx); - error (yyla.location, YY_MOVE (msg)); + error (yyla.location, yysyntax_error_ (yystack_[0].state, yyla)); } @@ -4158,7 +4102,7 @@ namespace isc { namespace dhcp { error, discard it. */ // Return failure if at end of input. - if (yyla.kind () == symbol_kind::S_YYEOF) + if (yyla.type_get () == yyeof_) YYABORT; else if (!yyla.empty ()) { @@ -4175,81 +4119,69 @@ namespace isc { namespace dhcp { | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: - /* Pacify compilers when the user code never invokes YYERROR and - the label yyerrorlab therefore never appears in user code. */ - if (false) - YYERROR; + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (false) + goto yyerrorlab; + yyerror_range[1].location = yystack_[yylen - 1].location; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ yypop_ (yylen); yylen = 0; - YY_STACK_PRINT (); goto yyerrlab1; - /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus_ = 3; // Each real token shifted decrements this. - // Pop stack until we find a state that shifts the error token. - for (;;) - { - yyn = yypact_[+yystack_[0].state]; - if (!yy_pact_value_is_default_ (yyn)) - { - yyn += symbol_kind::S_YYerror; - if (0 <= yyn && yyn <= yylast_ - && yycheck_[yyn] == symbol_kind::S_YYerror) - { - yyn = yytable_[yyn]; - if (0 < yyn) - break; - } - } - - // Pop the current state because it cannot handle the error token. - if (yystack_.size () == 1) - YYABORT; - - yyerror_range[1].location = yystack_[0].location; - yy_destroy_ ("Error: popping", yystack_[0]); - yypop_ (); - YY_STACK_PRINT (); - } { stack_symbol_type error_token; + for (;;) + { + yyn = yypact_[yystack_[0].state]; + if (!yy_pact_value_is_default_ (yyn)) + { + yyn += yyterror_; + if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_) + { + yyn = yytable_[yyn]; + if (0 < yyn) + break; + } + } + + // Pop the current state because it cannot handle the error token. + if (yystack_.size () == 1) + YYABORT; + + yyerror_range[1].location = yystack_[0].location; + yy_destroy_ ("Error: popping", yystack_[0]); + yypop_ (); + YY_STACK_PRINT (); + } yyerror_range[2].location = yyla.location; YYLLOC_DEFAULT (error_token.location, yyerror_range, 2); // Shift the error token. - error_token.state = state_type (yyn); - yypush_ ("Shifting", YY_MOVE (error_token)); + error_token.state = yyn; + yypush_ ("Shifting", error_token); } goto yynewstate; - - /*-------------------------------------. - | yyacceptlab -- YYACCEPT comes here. | - `-------------------------------------*/ + // Accept. yyacceptlab: yyresult = 0; goto yyreturn; - - /*-----------------------------------. - | yyabortlab -- YYABORT comes here. | - `-----------------------------------*/ + // Abort. yyabortlab: yyresult = 1; goto yyreturn; - - /*-----------------------------------------------------. - | yyreturn -- parsing is finished, return the result. | - `-----------------------------------------------------*/ yyreturn: if (!yyla.empty ()) yy_destroy_ ("Cleanup: discarding lookahead", yyla); @@ -4257,7 +4189,6 @@ namespace isc { namespace dhcp { /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ yypop_ (yylen); - YY_STACK_PRINT (); while (1 < yystack_.size ()) { yy_destroy_ ("Cleanup: popping", yystack_[0]); @@ -4266,12 +4197,12 @@ namespace isc { namespace dhcp { return yyresult; } -#if YY_EXCEPTIONS catch (...) { - YYCDEBUG << "Exception caught: cleaning lookahead and stack\n"; + YYCDEBUG << "Exception caught: cleaning lookahead and stack" + << std::endl; // Do not try to display the values of the reclaimed symbols, - // as their printers might throw an exception. + // as their printer might throw an exception. if (!yyla.empty ()) yy_destroy_ (YY_NULLPTR, yyla); @@ -4282,109 +4213,26 @@ namespace isc { namespace dhcp { } throw; } -#endif // YY_EXCEPTIONS } void Dhcp4Parser::error (const syntax_error& yyexc) { - error (yyexc.location, yyexc.what ()); - } - - /* Return YYSTR after stripping away unnecessary quotes and - backslashes, so that it's suitable for yyerror. The heuristic is - that double-quoting is unnecessary unless the string contains an - apostrophe, a comma, or backslash (other than backslash-backslash). - YYSTR is taken from yytname. */ - std::string - Dhcp4Parser::yytnamerr_ (const char *yystr) - { - if (*yystr == '"') - { - std::string yyr; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - yyr += *yyp; - break; - - case '"': - return yyr; - } - do_not_strip_quotes: ; - } - - return yystr; + error (yyexc.location, yyexc.what()); } + // Generate an error message. std::string - Dhcp4Parser::symbol_name (symbol_kind_type yysymbol) + Dhcp4Parser::yysyntax_error_ (state_type yystate, const symbol_type& yyla) const { - return yytnamerr_ (yytname_[yysymbol]); - } - - - - // Dhcp4Parser::context. - Dhcp4Parser::context::context (const Dhcp4Parser& yyparser, const symbol_type& yyla) - : yyparser_ (yyparser) - , yyla_ (yyla) - {} - - int - Dhcp4Parser::context::expected_tokens (symbol_kind_type yyarg[], int yyargn) const - { - // Actual number of expected tokens - int yycount = 0; - - int yyn = yypact_[+yyparser_.yystack_[0].state]; - if (!yy_pact_value_is_default_ (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - // Stay within bounds of both yycheck and yytname. - int yychecklim = yylast_ - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - for (int yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror - && !yy_table_value_is_error_ (yytable_[yyx + yyn])) - { - if (!yyarg) - ++yycount; - else if (yycount == yyargn) - return 0; - else - yyarg[yycount++] = YY_CAST (symbol_kind_type, yyx); - } - } - - if (yyarg && yycount == 0 && 0 < yyargn) - yyarg[0] = symbol_kind::S_YYEMPTY; - return yycount; - } - - + // Number of reported tokens (one for the "unexpected", one per + // "expected"). + size_t yycount = 0; + // Its maximum. + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + // Arguments of yyformat. + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int - Dhcp4Parser::yy_syntax_error_arguments_ (const context& yyctx, - symbol_kind_type yyarg[], int yyargn) const - { /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action @@ -4403,32 +4251,41 @@ namespace isc { namespace dhcp { - Of course, the expected token list depends on states to have correct lookahead information, and it depends on the parser not to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. + scanner and before detecting a syntax error. Thus, state + merging (from LALR or IELR) and default reductions corrupt the + expected token list. However, the list is correct for + canonical LR with one exception: it will still contain any + token that will not be accepted due to an error action in a + later state. */ - - if (!yyctx.lookahead ().empty ()) + if (!yyla.empty ()) { - if (yyarg) - yyarg[0] = yyctx.token (); - int yyn = yyctx.expected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1); - return yyn + 1; + int yytoken = yyla.type_get (); + yyarg[yycount++] = yytname_[yytoken]; + int yyn = yypact_[yystate]; + if (!yy_pact_value_is_default_ (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + // Stay within bounds of both yycheck and yytname. + int yychecklim = yylast_ - yyn + 1; + int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_; + for (int yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_ + && !yy_table_value_is_error_ (yytable_[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + break; + } + else + yyarg[yycount++] = yytname_[yyx]; + } + } } - return 0; - } - - // Generate an error message. - std::string - Dhcp4Parser::yysyntax_error_ (const context& yyctx) const - { - // Its maximum. - enum { YYARGS_MAX = 5 }; - // Arguments of yyformat. - symbol_kind_type yyarg[YYARGS_MAX]; - int yycount = yy_syntax_error_arguments_ (yyctx, yyarg, YYARGS_MAX); char const* yyformat = YY_NULLPTR; switch (yycount) @@ -4437,23 +4294,22 @@ namespace isc { namespace dhcp { case N: \ yyformat = S; \ break - default: // Avoid compiler warnings. - YYCASE_ (0, YY_("syntax error")); - YYCASE_ (1, YY_("syntax error, unexpected %s")); - YYCASE_ (2, YY_("syntax error, unexpected %s, expecting %s")); - YYCASE_ (3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_ (4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_ (5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); #undef YYCASE_ } std::string yyres; // Argument number. - std::ptrdiff_t yyi = 0; + size_t yyi = 0; for (char const* yyp = yyformat; *yyp; ++yyp) if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount) { - yyres += symbol_name (yyarg[yyi++]); + yyres += yytnamerr_ (yyarg[yyi++]); ++yyp; } else @@ -4462,806 +4318,808 @@ namespace isc { namespace dhcp { } - const short Dhcp4Parser::yypact_ninf_ = -910; + const short int Dhcp4Parser::yypact_ninf_ = -924; const signed char Dhcp4Parser::yytable_ninf_ = -1; - const short + const short int Dhcp4Parser::yypact_[] = { - 529, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, 33, 41, 36, 49, 54, 59, - 66, 82, 86, 121, 131, 133, 145, 215, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, 41, -143, 101, 104, 88, 224, - -45, 231, 67, 56, 177, -94, 403, 42, -910, 178, - 204, 239, 211, 244, -910, 247, -910, -910, -910, 254, - 273, 276, -910, -910, -910, -910, -910, -910, 289, 299, - 316, 330, 336, 347, 349, 364, 366, 376, 377, -910, - 396, 397, 399, 400, 401, -910, -910, -910, 404, 408, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, 409, -910, -910, -910, -910, -910, -910, 411, - -910, 412, -910, 69, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, 413, -910, 78, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, 415, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, 84, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, 94, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, 323, 390, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, 387, -910, -910, 419, -910, -910, -910, 420, - -910, -910, 423, 434, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, 436, 438, -910, - -910, -910, -910, 435, 441, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, 118, -910, -910, - -910, 443, -910, -910, 449, -910, 450, 452, -910, -910, - 453, 454, -910, -910, -910, -910, -910, -910, -910, 143, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, 455, 188, -910, - -910, -910, -910, 41, 41, -910, 217, 457, -910, 459, - 460, 463, 275, 277, 282, 465, 473, 475, 477, 478, - 479, 294, 297, 298, 302, 305, 304, 312, 314, 315, - 317, 318, 486, 321, 328, 322, 329, 334, 510, 544, - 558, 370, 371, 561, 562, 563, 566, 567, 568, 569, - 570, 571, 573, 574, 575, 393, 576, 577, 578, 582, - 583, 584, 398, 586, -910, 104, -910, 588, 590, 591, - 405, 88, -910, 592, 595, 596, 598, 599, 600, 414, - 602, 603, 604, 224, -910, 605, -45, -910, 606, 612, - 613, 614, 617, 619, 620, 621, -910, 231, -910, 622, - 623, 437, 625, 626, 627, 439, -910, 56, 629, 446, - 447, -910, 177, 630, 648, -50, -910, 461, 649, 651, - 474, 662, 476, 480, 664, 668, 481, 487, 669, 675, - 680, 682, 403, -910, 684, 498, 42, -910, -910, -910, - 686, 685, 688, 689, 691, -910, -910, -910, 501, 503, - 509, 693, 694, 697, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, 513, -910, -910, -910, -910, - -910, -4, 514, 530, -910, -910, 714, 716, 717, 718, - 719, 534, 208, 720, 722, 723, 724, 725, -910, 726, - 727, 728, 729, 540, 541, -910, 732, -910, 733, 192, - 205, -910, -910, 549, 550, 551, 737, 553, 554, -910, - 733, 555, 739, -910, 557, -910, 733, 559, 564, 565, - 572, 579, 580, 581, -910, 587, 589, -910, 593, 594, - 597, -910, -910, 601, -910, -910, -910, 607, 719, -910, - -910, 608, 609, -910, 610, -910, -910, 31, 429, -910, - -910, -4, 611, 615, 616, -910, 743, -910, -910, 41, - 104, 42, 88, 734, -910, -910, -910, 491, 491, 745, - -910, -910, -910, -910, -910, -910, -910, -910, -910, 746, - 749, 750, 752, -910, -910, -910, -910, -910, -910, -910, - -910, 260, 753, 754, 756, 230, 58, 117, 212, 403, - -910, -910, 757, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, 758, -910, -910, -910, -910, 107, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, 745, -910, - 189, 196, 197, -910, 200, -910, -910, -910, -910, -910, - -910, 762, 763, 764, 768, 769, -910, -910, -910, -910, - 770, 772, 774, 776, 777, 778, -910, 210, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, 213, - -910, 779, 783, -910, -910, 782, 786, -910, -910, 784, - 789, -910, -910, 787, 791, -910, -910, 790, 792, -910, - -910, -910, -910, -910, -910, 34, -910, -910, -910, -910, - -910, -910, -910, 102, -910, -910, 796, 800, -910, -910, - 798, 804, -910, 805, 806, 807, 808, 809, 810, 232, - -910, -910, -910, -910, -910, -910, -910, 811, 812, 813, - -910, 233, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, 236, -910, -910, -910, 814, -910, 815, - -910, -910, -910, 265, -910, -910, -910, -910, -910, 324, - -910, 119, -910, 618, -910, 816, 817, -910, -910, -910, - -910, 818, 819, -910, -910, -910, 820, 734, -910, 823, - 824, 825, 826, 632, 628, 640, 639, 642, 830, 831, - 832, 833, 647, 650, 652, 653, 646, 654, 491, -910, - -910, 491, -910, 745, 224, -910, 746, 56, -910, 749, - 177, -910, 750, 585, -910, 752, 260, -910, 288, 753, - -910, 231, -910, 754, -94, -910, 756, 655, 656, 657, - 658, 659, 660, 230, -910, 661, 665, 667, 58, -910, - 836, 838, 117, -910, 666, 848, 670, 849, 212, -910, - -910, 194, 757, -910, -910, 856, 852, -45, -910, 758, - 861, -910, -910, 690, -910, 391, 695, 707, 711, -910, - -910, -910, -910, -910, 712, 731, 738, 747, -910, -910, - -910, -910, -910, -910, -910, 327, -910, 335, -910, 864, - -910, 873, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, 361, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, 910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, 907, 915, -910, -910, -910, -910, - -910, 921, -910, 375, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, 795, 797, -910, -910, - 799, -910, 41, -910, -910, 932, -910, -910, -910, -910, - -910, 379, -910, -910, -910, -910, -910, -910, 801, 388, - -910, 733, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, 585, - -910, 935, 802, -910, 288, -910, -910, -910, -910, -910, - -910, 978, 803, 986, 194, -910, -910, -910, -910, -910, - 821, -910, -910, 987, -910, 822, -910, -910, 989, -910, - -910, 136, -910, -91, 989, -910, -910, 993, 994, 995, - -910, 389, -910, -910, -910, -910, -910, -910, -910, 996, - 827, 828, 834, 997, -91, -910, 837, -910, -910, -910, - 839, -910, -910, -910 + 168, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, 31, 41, 36, 54, 57, 70, + 72, 74, 89, 104, 111, 121, 128, 135, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, 41, -158, 27, 122, 67, 306, + 59, 185, -37, 482, 230, -86, 573, 162, -924, 101, + 161, 49, 152, 164, -924, 163, -924, -924, -924, 172, + 215, 222, -924, -924, -924, -924, -924, -924, 225, 233, + 241, 249, 255, 261, 265, 278, 291, 295, 302, -924, + 308, 310, 311, 337, 369, -924, -924, -924, 370, 371, + 382, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, 389, -924, -924, -924, -924, -924, -924, + 396, -924, 407, -924, 84, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, 414, -924, 94, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, 419, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, 100, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, 107, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, 208, 260, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, 331, -924, -924, 421, -924, + -924, -924, 424, -924, -924, 422, 394, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + 427, 428, -924, -924, -924, -924, 425, 438, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + 118, -924, -924, -924, 431, -924, -924, 440, -924, 442, + 443, -924, -924, 444, 447, -924, -924, -924, -924, -924, + -924, -924, 129, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + 453, 131, -924, -924, -924, -924, 41, 41, -924, -140, + 454, -924, 456, 457, 458, 269, 271, 273, 464, 467, + 470, 475, 477, 478, 293, 294, 297, 300, 301, 289, + 307, 312, 315, 309, 318, 483, 320, 321, 317, 325, + 329, 490, 500, 514, 332, 336, 340, 525, 527, 534, + 535, 536, 537, 562, 563, 565, 568, 569, 574, 385, + 575, 578, 579, 580, 581, 582, 397, 583, -924, 122, + -924, 588, 589, 591, 400, 67, -924, 592, 593, 594, + 595, 596, 597, 411, 600, 601, 603, 306, -924, 604, + 59, -924, 605, 606, 607, 608, 609, 610, 611, 617, + -924, 185, -924, 618, 619, 434, 624, 625, 626, 437, + -924, 482, 628, 439, 441, -924, 230, 630, 632, -70, + -924, 445, 633, 634, 452, 641, 465, 466, 655, 656, + 480, 484, 673, 675, 680, 681, 573, -924, 682, 495, + 162, -924, -924, -924, 686, 685, 688, 689, 690, -924, + -924, -924, 507, 508, 510, 695, 697, 700, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, 515, + -924, -924, -924, -924, -924, -90, 516, 517, -924, -924, + -924, 704, 705, 707, 708, 709, 523, 174, 710, 712, + 713, 714, 726, -924, 727, 728, 729, 730, 547, 550, + -924, 737, -924, 738, 234, 272, -924, -924, 553, 554, + 555, 742, 557, 558, -924, 738, 559, 744, -924, 561, + -924, 738, 564, 567, 570, 571, 572, 576, 577, -924, + 584, 585, -924, 586, 587, 598, -924, -924, 599, -924, + -924, -924, 602, 709, -924, -924, 612, 613, -924, 614, + -924, -924, 10, 621, -924, -924, -90, 615, 616, 620, + -924, 748, -924, -924, 41, 122, 162, 67, 735, -924, + -924, -924, 503, 503, 747, -924, -924, -924, -924, -924, + -924, -924, -924, -924, 753, 758, 759, 762, -924, -924, + -924, -924, -924, -924, -924, -924, 157, 763, 764, 765, + 432, 149, 63, -14, 573, -924, -924, 766, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, 767, + -924, -924, -924, -924, 186, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, 747, -924, 160, 170, 219, -924, 220, + -924, -924, -924, -924, -924, -924, 775, 776, 779, 780, + 781, -924, -924, -924, -924, 782, 783, 784, 787, 788, + 790, -924, 235, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, 236, -924, 789, 793, -924, -924, + 791, 795, -924, -924, 794, 796, -924, -924, 802, 798, + -924, -924, 803, 799, -924, -924, -924, -924, -924, -924, + 46, -924, -924, -924, -924, -924, -924, -924, 87, -924, + -924, 804, 809, -924, -924, 807, 811, -924, 812, 813, + 814, 815, 816, 817, 252, -924, -924, -924, -924, -924, + -924, -924, 818, 819, 820, -924, 259, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, 263, -924, + -924, -924, 821, -924, 822, -924, -924, -924, 319, -924, + -924, -924, -924, -924, 322, -924, 119, -924, 636, -924, + 823, 825, -924, -924, -924, -924, 824, 827, -924, -924, + -924, 826, 735, -924, 830, 831, 832, 833, 623, 637, + 646, 645, 648, 837, 838, 839, 840, 653, 654, 657, + 658, 659, 660, 503, -924, -924, 503, -924, 747, 306, + -924, 753, 482, -924, 758, 230, -924, 759, 590, -924, + 762, 157, -924, 212, 763, -924, 185, -924, 764, -86, + -924, 765, 662, 663, 664, 665, 666, 667, 432, -924, + 669, 668, 672, 149, -924, 843, 844, 63, -924, 676, + 847, 674, 857, -14, -924, -924, -32, 766, -924, -924, + 861, 874, 59, -924, 767, 881, -924, -924, 699, -924, + 324, 711, 715, 716, -924, -924, -924, -924, -924, 732, + 743, 750, 751, -924, -924, -924, -924, -924, -924, -924, + 323, -924, 334, -924, 878, -924, 911, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, 335, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + 916, -924, -924, -924, -924, -924, -924, -924, -924, -924, + 918, 930, -924, -924, -924, -924, -924, 936, -924, 387, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, 801, 806, -924, -924, 808, -924, 41, -924, + -924, 986, -924, -924, -924, -924, -924, 391, -924, -924, + -924, -924, -924, -924, 810, 393, -924, 738, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, 590, -924, 990, 828, -924, + 212, -924, -924, -924, -924, -924, -924, 991, 829, 994, + -32, -924, -924, -924, -924, -924, 834, -924, -924, 995, + -924, 835, -924, -924, 996, -924, -924, 140, -924, 34, + 996, -924, -924, 998, 1000, 1001, -924, 409, -924, -924, + -924, -924, -924, -924, -924, 1002, 836, 841, 842, 1003, + 34, -924, 845, -924, -924, -924, 846, -924, -924, -924 }; - const short + const unsigned short int Dhcp4Parser::yydefact_[] = { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 43, 36, 32, 31, 28, 29, 30, 35, 3, 33, 34, - 56, 5, 60, 7, 170, 9, 328, 11, 517, 13, - 542, 15, 442, 17, 450, 19, 487, 21, 293, 23, - 648, 25, 698, 27, 45, 39, 0, 0, 0, 0, - 0, 544, 0, 452, 489, 0, 0, 0, 47, 0, - 46, 0, 0, 40, 58, 0, 696, 159, 185, 0, - 0, 0, 563, 565, 567, 183, 192, 194, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, - 0, 0, 0, 0, 0, 139, 146, 148, 0, 0, - 320, 440, 479, 394, 530, 532, 387, 258, 591, 534, - 285, 304, 0, 272, 617, 630, 646, 151, 153, 0, - 707, 0, 119, 0, 62, 64, 65, 66, 67, 68, - 99, 100, 101, 102, 103, 69, 97, 86, 87, 88, - 107, 108, 109, 110, 111, 112, 113, 105, 106, 114, - 115, 116, 118, 72, 73, 94, 74, 75, 76, 117, - 80, 81, 70, 98, 71, 78, 79, 92, 93, 95, - 89, 90, 91, 77, 82, 83, 84, 85, 96, 104, - 172, 174, 178, 0, 169, 0, 161, 163, 164, 165, - 166, 167, 168, 375, 377, 379, 509, 373, 381, 0, - 385, 383, 587, 372, 332, 333, 334, 335, 336, 357, - 358, 359, 360, 361, 347, 348, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 0, 330, 339, 352, - 353, 354, 340, 342, 343, 345, 341, 337, 338, 355, - 356, 344, 349, 350, 351, 346, 528, 527, 523, 524, - 522, 0, 519, 521, 525, 526, 585, 573, 575, 579, - 577, 583, 581, 569, 562, 556, 560, 561, 0, 545, - 546, 557, 558, 559, 553, 548, 554, 550, 551, 552, - 555, 549, 0, 469, 238, 0, 473, 471, 476, 0, - 465, 466, 0, 453, 454, 456, 468, 457, 458, 459, - 475, 460, 461, 462, 463, 464, 503, 0, 0, 501, - 502, 505, 506, 0, 490, 491, 493, 494, 495, 496, - 497, 498, 499, 500, 300, 302, 297, 0, 295, 298, - 299, 0, 684, 671, 0, 674, 0, 0, 678, 682, - 0, 0, 688, 690, 692, 694, 669, 667, 668, 0, - 650, 652, 653, 654, 655, 656, 657, 658, 659, 664, - 660, 661, 662, 663, 665, 666, 704, 0, 0, 700, - 702, 703, 44, 0, 0, 37, 0, 0, 57, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 5, 60, 7, 172, 9, 330, 11, 521, 13, + 546, 15, 446, 17, 454, 19, 491, 21, 295, 23, + 652, 25, 702, 27, 45, 39, 0, 0, 0, 0, + 0, 548, 0, 456, 493, 0, 0, 0, 47, 0, + 46, 0, 0, 40, 58, 0, 700, 161, 187, 0, + 0, 0, 567, 569, 571, 185, 194, 196, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, + 0, 0, 0, 0, 0, 140, 147, 149, 0, 0, + 0, 322, 444, 483, 397, 534, 536, 390, 260, 595, + 538, 287, 306, 0, 274, 621, 634, 650, 153, 155, + 0, 711, 0, 120, 0, 62, 64, 65, 66, 67, + 68, 99, 100, 101, 102, 103, 69, 97, 86, 87, + 88, 107, 108, 109, 110, 111, 112, 113, 114, 105, + 106, 115, 116, 117, 119, 72, 73, 94, 74, 75, + 76, 118, 80, 81, 70, 98, 71, 78, 79, 92, + 93, 95, 89, 90, 91, 77, 82, 83, 84, 85, + 96, 104, 174, 176, 180, 0, 171, 0, 163, 165, + 166, 167, 168, 169, 170, 378, 380, 382, 513, 376, + 384, 0, 388, 386, 591, 375, 334, 335, 336, 337, + 338, 359, 360, 361, 362, 363, 349, 350, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 0, + 332, 341, 354, 355, 356, 342, 344, 345, 347, 343, + 339, 340, 357, 358, 346, 351, 352, 353, 348, 532, + 531, 527, 528, 526, 0, 523, 525, 529, 530, 589, + 577, 579, 583, 581, 587, 585, 573, 566, 560, 564, + 565, 0, 549, 550, 561, 562, 563, 557, 552, 558, + 554, 555, 556, 559, 553, 0, 473, 240, 0, 477, + 475, 480, 0, 469, 470, 0, 457, 458, 460, 472, + 461, 462, 463, 479, 464, 465, 466, 467, 468, 507, + 0, 0, 505, 506, 509, 510, 0, 494, 495, 497, + 498, 499, 500, 501, 502, 503, 504, 302, 304, 299, + 0, 297, 300, 301, 0, 688, 675, 0, 678, 0, + 0, 682, 686, 0, 0, 692, 694, 696, 698, 673, + 671, 672, 0, 654, 656, 657, 658, 659, 660, 661, + 662, 663, 668, 664, 665, 666, 667, 669, 670, 708, + 0, 0, 704, 706, 707, 44, 0, 0, 37, 0, + 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 0, 61, 0, 0, 0, - 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 329, 0, 0, 518, 0, 0, - 0, 0, 0, 0, 0, 0, 543, 0, 443, 0, - 0, 0, 0, 0, 0, 0, 451, 0, 0, 0, - 0, 488, 0, 0, 0, 0, 294, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, + 61, 0, 0, 0, 0, 0, 173, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, + 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, + 547, 0, 447, 0, 0, 0, 0, 0, 0, 0, + 455, 0, 0, 0, 0, 492, 0, 0, 0, 0, + 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 653, 0, 0, + 0, 703, 48, 41, 0, 0, 0, 0, 0, 134, + 135, 136, 0, 0, 0, 0, 0, 0, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 0, + 158, 159, 137, 138, 139, 0, 0, 0, 151, 152, + 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 620, 0, 0, 0, 0, 0, 0, + 160, 0, 63, 0, 0, 0, 184, 164, 0, 0, + 0, 0, 0, 0, 396, 0, 0, 0, 333, 0, + 524, 0, 0, 0, 0, 0, 0, 0, 0, 551, + 0, 0, 471, 0, 0, 0, 482, 459, 0, 511, + 512, 496, 0, 0, 298, 674, 0, 0, 677, 0, + 680, 681, 0, 0, 690, 691, 0, 0, 0, 0, + 655, 0, 710, 705, 0, 0, 0, 0, 0, 568, + 570, 572, 0, 0, 198, 133, 142, 143, 144, 145, + 146, 141, 148, 150, 324, 448, 485, 399, 38, 535, + 537, 392, 393, 394, 395, 391, 0, 0, 540, 289, + 0, 0, 0, 0, 0, 154, 156, 0, 49, 175, + 178, 179, 177, 182, 183, 181, 379, 381, 383, 515, + 377, 385, 389, 387, 0, 533, 590, 578, 580, 584, + 582, 588, 586, 574, 474, 241, 478, 476, 481, 508, + 303, 305, 689, 676, 679, 684, 685, 683, 687, 693, + 695, 697, 699, 198, 42, 0, 0, 0, 192, 0, + 189, 191, 227, 233, 235, 237, 0, 0, 0, 0, + 0, 249, 251, 253, 255, 0, 0, 0, 0, 0, + 0, 226, 0, 204, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 219, 220, 221, 216, 222, 223, + 224, 217, 218, 225, 0, 202, 0, 199, 200, 328, + 0, 325, 326, 452, 0, 449, 450, 489, 0, 486, + 487, 403, 0, 400, 401, 269, 270, 271, 272, 273, + 0, 262, 264, 265, 266, 267, 268, 599, 0, 597, + 544, 0, 541, 542, 293, 0, 290, 291, 0, 0, + 0, 0, 0, 0, 0, 308, 310, 311, 312, 313, + 314, 315, 0, 0, 0, 283, 0, 276, 278, 279, + 280, 281, 282, 630, 632, 629, 627, 628, 0, 623, + 625, 626, 0, 645, 0, 648, 641, 642, 0, 636, + 638, 639, 640, 643, 0, 715, 0, 713, 51, 519, + 0, 516, 517, 575, 593, 594, 0, 0, 59, 701, + 162, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 649, 0, 0, 0, 699, 48, 41, - 0, 0, 0, 0, 0, 133, 134, 135, 0, 0, - 0, 0, 0, 0, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 0, 156, 157, 136, 137, - 138, 0, 0, 0, 150, 155, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 616, 0, - 0, 0, 0, 0, 0, 158, 0, 63, 0, 0, - 0, 182, 162, 0, 0, 0, 0, 0, 0, 393, - 0, 0, 0, 331, 0, 520, 0, 0, 0, 0, - 0, 0, 0, 0, 547, 0, 0, 467, 0, 0, - 0, 478, 455, 0, 507, 508, 492, 0, 0, 296, - 670, 0, 0, 673, 0, 676, 677, 0, 0, 686, - 687, 0, 0, 0, 0, 651, 0, 706, 701, 0, - 0, 0, 0, 0, 564, 566, 568, 0, 0, 196, - 132, 141, 142, 143, 144, 145, 140, 147, 149, 322, - 444, 481, 396, 38, 531, 533, 389, 390, 391, 392, - 388, 0, 0, 536, 287, 0, 0, 0, 0, 0, - 152, 154, 0, 49, 173, 176, 177, 175, 180, 181, - 179, 376, 378, 380, 511, 374, 382, 386, 384, 0, - 529, 586, 574, 576, 580, 578, 584, 582, 570, 470, - 239, 474, 472, 477, 504, 301, 303, 685, 672, 675, - 680, 681, 679, 683, 689, 691, 693, 695, 196, 42, - 0, 0, 0, 190, 0, 187, 189, 225, 231, 233, - 235, 0, 0, 0, 0, 0, 247, 249, 251, 253, - 0, 0, 0, 0, 0, 0, 224, 0, 202, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 217, - 218, 219, 214, 220, 221, 222, 215, 216, 223, 0, - 200, 0, 197, 198, 326, 0, 323, 324, 448, 0, - 445, 446, 485, 0, 482, 483, 400, 0, 397, 398, - 267, 268, 269, 270, 271, 0, 260, 262, 263, 264, - 265, 266, 595, 0, 593, 540, 0, 537, 538, 291, - 0, 288, 289, 0, 0, 0, 0, 0, 0, 0, - 306, 308, 309, 310, 311, 312, 313, 0, 0, 0, - 281, 0, 274, 276, 277, 278, 279, 280, 626, 628, - 625, 623, 624, 0, 619, 621, 622, 0, 641, 0, - 644, 637, 638, 0, 632, 634, 635, 636, 639, 0, - 711, 0, 709, 51, 515, 0, 512, 513, 571, 589, - 590, 0, 0, 59, 697, 160, 0, 0, 186, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, - 193, 0, 195, 0, 0, 321, 0, 452, 441, 0, - 489, 480, 0, 0, 395, 0, 0, 259, 597, 0, - 592, 544, 535, 0, 0, 286, 0, 0, 0, 0, - 0, 0, 0, 0, 305, 0, 0, 0, 0, 273, - 0, 0, 0, 618, 0, 0, 0, 0, 0, 631, - 647, 0, 0, 708, 53, 0, 52, 0, 510, 0, - 0, 588, 705, 0, 188, 0, 0, 0, 0, 237, - 240, 241, 242, 243, 0, 0, 0, 0, 255, 256, - 244, 245, 246, 257, 203, 0, 199, 0, 325, 0, - 447, 0, 484, 439, 419, 420, 421, 407, 408, 424, - 425, 426, 427, 428, 410, 411, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 404, 405, 406, 417, - 418, 416, 0, 402, 409, 422, 423, 412, 413, 414, - 415, 399, 261, 613, 0, 611, 612, 604, 605, 609, - 610, 606, 607, 608, 0, 598, 599, 601, 602, 603, - 594, 0, 539, 0, 290, 314, 315, 316, 317, 318, - 319, 307, 282, 283, 284, 275, 0, 0, 620, 640, - 0, 643, 0, 633, 725, 0, 723, 721, 715, 719, - 720, 0, 713, 717, 718, 716, 710, 50, 0, 0, - 514, 0, 191, 227, 228, 229, 230, 226, 232, 234, - 236, 248, 250, 252, 254, 201, 327, 449, 486, 0, - 401, 0, 0, 596, 0, 541, 292, 627, 629, 642, - 645, 0, 0, 0, 0, 712, 54, 516, 572, 403, - 0, 615, 600, 0, 722, 0, 714, 614, 0, 724, - 729, 0, 727, 0, 0, 726, 738, 0, 0, 0, - 743, 0, 731, 733, 734, 735, 736, 737, 728, 0, - 0, 0, 0, 0, 0, 730, 0, 740, 741, 742, - 0, 732, 739, 744 + 0, 0, 0, 0, 186, 195, 0, 197, 0, 0, + 323, 0, 456, 445, 0, 493, 484, 0, 0, 398, + 0, 0, 261, 601, 0, 596, 548, 539, 0, 0, + 288, 0, 0, 0, 0, 0, 0, 0, 0, 307, + 0, 0, 0, 0, 275, 0, 0, 0, 622, 0, + 0, 0, 0, 0, 635, 651, 0, 0, 712, 53, + 0, 52, 0, 514, 0, 0, 592, 709, 0, 190, + 0, 0, 0, 0, 239, 242, 243, 244, 245, 0, + 0, 0, 0, 257, 258, 246, 247, 248, 259, 205, + 0, 201, 0, 327, 0, 451, 0, 488, 443, 422, + 423, 424, 410, 411, 427, 428, 429, 430, 431, 413, + 414, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 407, 408, 409, 420, 421, 419, 0, 405, + 412, 425, 426, 415, 416, 417, 418, 402, 263, 617, + 0, 615, 616, 608, 609, 613, 614, 610, 611, 612, + 0, 602, 603, 605, 606, 607, 598, 0, 543, 0, + 292, 316, 317, 318, 319, 320, 321, 309, 284, 285, + 286, 277, 0, 0, 624, 644, 0, 647, 0, 637, + 729, 0, 727, 725, 719, 723, 724, 0, 717, 721, + 722, 720, 714, 50, 0, 0, 518, 0, 193, 229, + 230, 231, 232, 228, 234, 236, 238, 250, 252, 254, + 256, 203, 329, 453, 490, 0, 404, 0, 0, 600, + 0, 545, 294, 631, 633, 646, 649, 0, 0, 0, + 0, 716, 54, 520, 576, 406, 0, 619, 604, 0, + 726, 0, 718, 618, 0, 728, 733, 0, 731, 0, + 0, 730, 742, 0, 0, 0, 747, 0, 735, 737, + 738, 739, 740, 741, 732, 0, 0, 0, 0, 0, + 0, 734, 0, 744, 745, 746, 0, 736, 743, 748 }; - const short + const short int Dhcp4Parser::yypgoto_[] = { - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -52, -910, -528, -910, 365, - -910, -910, -910, -910, -910, -910, -585, -910, -910, -910, - -67, -910, -910, -910, -910, -910, -910, 352, 548, -40, - -28, -24, -1, 1, 11, 19, 22, 25, 26, -910, - -910, -910, -910, 29, 30, 32, 37, 40, 43, -910, - 363, 44, -910, 45, -910, 47, 48, -910, 50, -910, - 51, -910, -910, -910, -910, -910, 353, 545, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, 110, -910, -910, -910, -910, -910, - -910, 270, -910, 87, -910, -645, 91, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -63, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - 77, -910, -910, -910, -910, -910, -910, -910, -910, 57, - -910, -910, -910, -910, -910, -910, -910, 68, -910, -910, - -910, 72, 512, -910, -910, -910, -910, -910, -910, -910, - 65, -910, -910, -910, -910, -910, -910, -909, -910, -910, - -910, 95, -910, -910, -910, 98, 560, -910, -910, -910, - -910, -910, -910, -910, -910, -906, -910, -65, -910, 53, - -910, 55, -910, -910, -910, -910, -910, -910, -910, 89, - -910, -910, -106, -46, -910, -910, -910, -910, -910, 97, - -910, -910, -910, 105, -910, 531, -910, -42, -910, -910, - -910, -910, -910, -36, -910, -910, -910, -910, -910, -35, - -910, -910, -910, 99, -910, -910, -910, 106, -910, 532, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, 60, -910, -910, -910, 61, 624, -910, -910, -51, - -910, -11, -910, -25, -910, -910, -910, 92, -910, -910, - -910, 96, -910, 556, -55, -910, 0, -910, 7, -910, - 332, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -905, -910, - -910, -910, -910, -910, 103, -910, -910, -910, -90, -910, - -910, -910, -910, -910, -910, -910, -910, 83, -910, -910, - -910, -910, -910, -910, -910, 79, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, 357, 526, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, -910, -910, -910, - -910, -910, -910, -910, -910, -910, -910, 402, 523, -910, - -910, -910, -910, -910, -910, 80, -910, -910, -93, -910, - -910, -910, -910, -910, -910, -114, -910, -910, -130, -910, - -910, -910, -910, -910, -910, -910 + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -52, -924, -533, -924, 375, + -924, -924, -924, -924, -924, -924, -581, -924, -924, -924, + -67, -924, -924, -924, -924, -924, -924, 354, 551, -40, + -28, -24, -1, 1, 11, 19, 22, 25, 26, -924, + -924, -924, -924, 29, 30, 32, 37, 40, 43, -924, + 365, 44, -924, 45, -924, 47, 48, 50, -924, 51, + -924, 55, -924, -924, -924, -924, -924, 355, 548, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, 112, -924, -924, -924, -924, + -924, -924, 274, -924, 88, -924, -650, 92, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -63, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, 77, -924, -924, -924, -924, -924, -924, -924, -924, + 56, -924, -924, -924, -924, -924, -924, -924, 69, -924, + -924, -924, 75, 518, -924, -924, -924, -924, -924, -924, + -924, 65, -924, -924, -924, -924, -924, -924, -923, -924, + -924, -924, 97, -924, -924, -924, 102, 552, -924, -924, + -924, -924, -924, -924, -924, -924, -917, -924, -65, -924, + 53, -924, 58, -924, -924, -924, -924, -924, -924, -924, + 98, -924, -924, -103, -46, -924, -924, -924, -924, -924, + 105, -924, -924, -924, 108, -924, 540, -924, -42, -924, + -924, -924, -924, -924, -36, -924, -924, -924, -924, -924, + -35, -924, -924, -924, 106, -924, -924, -924, 109, -924, + 539, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, 64, -924, -924, -924, 60, 622, -924, -924, + -51, -924, -11, -924, -25, -924, -924, -924, 99, -924, + -924, -924, 103, -924, 560, -55, -924, 0, -924, 7, + -924, 338, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -911, + -924, -924, -924, -924, -924, 110, -924, -924, -924, -87, + -924, -924, -924, -924, -924, -924, -924, -924, 83, -924, + -924, -924, -924, -924, -924, -924, 82, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, 362, 531, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, -924, -924, + -924, -924, -924, -924, -924, -924, -924, -924, 402, 529, + -924, -924, -924, -924, -924, -924, 85, -924, -924, -89, + -924, -924, -924, -924, -924, -924, -110, -924, -924, -127, + -924, -924, -924, -924, -924, -924, -924 }; - const short + const short int Dhcp4Parser::yydefgoto_[] = { -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 36, 37, 38, 65, 674, - 82, 83, 39, 64, 79, 80, 694, 883, 975, 976, - 766, 41, 66, 85, 397, 43, 67, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 422, 157, 158, 159, 160, 161, 162, 163, 428, - 666, 164, 429, 165, 430, 166, 167, 450, 168, 451, - 169, 170, 171, 172, 173, 400, 205, 206, 45, 68, - 207, 457, 208, 458, 697, 209, 459, 700, 210, 174, - 408, 175, 401, 744, 745, 746, 896, 176, 409, 177, - 410, 791, 792, 793, 921, 767, 768, 769, 899, 1117, - 770, 900, 771, 901, 772, 902, 773, 774, 490, 775, - 776, 777, 778, 779, 780, 781, 782, 908, 783, 909, - 784, 910, 785, 911, 786, 787, 788, 178, 440, 815, - 816, 817, 818, 819, 820, 821, 179, 446, 851, 852, - 853, 854, 855, 180, 443, 830, 831, 832, 944, 59, - 75, 347, 348, 349, 503, 350, 504, 181, 444, 839, - 840, 841, 842, 843, 844, 845, 846, 182, 433, 795, - 796, 797, 924, 47, 69, 246, 247, 248, 467, 249, - 463, 250, 464, 251, 465, 252, 468, 253, 471, 254, - 470, 183, 439, 680, 256, 184, 436, 807, 808, 809, - 933, 1042, 1043, 185, 434, 53, 72, 799, 800, 801, - 927, 55, 73, 312, 313, 314, 315, 316, 317, 318, - 489, 319, 493, 320, 492, 321, 322, 494, 323, 186, - 435, 803, 804, 805, 930, 57, 74, 333, 334, 335, - 336, 337, 498, 338, 339, 340, 341, 258, 466, 885, - 886, 887, 977, 49, 70, 271, 272, 273, 475, 187, - 437, 188, 438, 189, 442, 826, 827, 828, 941, 51, - 71, 288, 289, 290, 190, 405, 191, 406, 192, 407, - 294, 485, 890, 980, 295, 479, 296, 480, 297, 482, - 298, 481, 299, 484, 300, 483, 301, 478, 265, 472, - 891, 193, 441, 823, 824, 938, 1064, 1065, 1066, 1067, - 1068, 1131, 1069, 194, 195, 447, 863, 864, 865, 960, - 866, 961, 196, 448, 873, 874, 875, 876, 965, 877, - 878, 967, 197, 449, 61, 76, 369, 370, 371, 372, - 509, 373, 374, 511, 375, 376, 377, 514, 732, 378, - 515, 379, 508, 380, 381, 382, 518, 383, 519, 384, - 520, 385, 521, 198, 399, 63, 77, 388, 389, 390, - 524, 391, 199, 453, 881, 882, 971, 1101, 1102, 1103, - 1104, 1143, 1105, 1141, 1161, 1162, 1163, 1171, 1172, 1173, - 1179, 1174, 1175, 1176, 1177, 1183 + 23, 24, 25, 26, 27, 36, 37, 38, 65, 679, + 82, 83, 39, 64, 79, 80, 699, 888, 980, 981, + 771, 41, 66, 85, 400, 43, 67, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 425, 158, 159, 160, 161, 162, 163, 164, 431, + 671, 165, 432, 166, 433, 167, 168, 169, 454, 170, + 455, 171, 172, 173, 174, 175, 403, 207, 208, 45, + 68, 209, 461, 210, 462, 702, 211, 463, 705, 212, + 176, 411, 177, 404, 749, 750, 751, 901, 178, 412, + 179, 413, 796, 797, 798, 926, 772, 773, 774, 904, + 1123, 775, 905, 776, 906, 777, 907, 778, 779, 494, + 780, 781, 782, 783, 784, 785, 786, 787, 913, 788, + 914, 789, 915, 790, 916, 791, 792, 793, 180, 444, + 820, 821, 822, 823, 824, 825, 826, 181, 450, 856, + 857, 858, 859, 860, 182, 447, 835, 836, 837, 949, + 59, 75, 350, 351, 352, 507, 353, 508, 183, 448, + 844, 845, 846, 847, 848, 849, 850, 851, 184, 437, + 800, 801, 802, 929, 47, 69, 249, 250, 251, 471, + 252, 467, 253, 468, 254, 469, 255, 472, 256, 475, + 257, 474, 185, 443, 685, 259, 186, 440, 812, 813, + 814, 938, 1048, 1049, 187, 438, 53, 72, 804, 805, + 806, 932, 55, 73, 315, 316, 317, 318, 319, 320, + 321, 493, 322, 497, 323, 496, 324, 325, 498, 326, + 188, 439, 808, 809, 810, 935, 57, 74, 336, 337, + 338, 339, 340, 502, 341, 342, 343, 344, 261, 470, + 890, 891, 892, 982, 49, 70, 274, 275, 276, 479, + 189, 441, 190, 442, 191, 446, 831, 832, 833, 946, + 51, 71, 291, 292, 293, 192, 408, 193, 409, 194, + 410, 297, 489, 895, 985, 298, 483, 299, 484, 300, + 486, 301, 485, 302, 488, 303, 487, 304, 482, 268, + 476, 896, 195, 445, 828, 829, 943, 1070, 1071, 1072, + 1073, 1074, 1137, 1075, 196, 197, 451, 868, 869, 870, + 965, 871, 966, 198, 452, 878, 879, 880, 881, 970, + 882, 883, 972, 199, 453, 61, 76, 372, 373, 374, + 375, 513, 376, 377, 515, 378, 379, 380, 518, 737, + 381, 519, 382, 512, 383, 384, 385, 522, 386, 523, + 387, 524, 388, 525, 200, 402, 63, 77, 391, 392, + 393, 528, 394, 201, 457, 886, 887, 976, 1107, 1108, + 1109, 1110, 1149, 1111, 1147, 1167, 1168, 1169, 1177, 1178, + 1179, 1185, 1180, 1181, 1182, 1183, 1189 }; - const short + const unsigned short int Dhcp4Parser::yytable_[] = { - 142, 204, 223, 267, 284, 268, 310, 329, 346, 366, - 311, 330, 78, 789, 262, 707, 291, 211, 259, 274, - 286, 711, 324, 342, 1037, 367, 302, 1038, 1050, 224, - 344, 345, 331, 28, 257, 270, 285, 936, 332, 122, - 937, 225, 673, 40, 261, 226, 29, 81, 30, 730, - 31, 266, 124, 125, 386, 387, 42, 212, 260, 275, - 287, 44, 325, 343, 220, 368, 46, 221, 227, 263, - 228, 292, 455, 48, 344, 345, 264, 456, 293, 1166, - 229, 461, 1167, 1168, 1169, 1170, 462, 473, 230, 50, - 303, 231, 474, 52, 232, 233, 141, 476, 234, 235, - 673, 236, 477, 200, 201, 939, 237, 202, 940, 238, - 203, 84, 239, 240, 241, 86, 242, 243, 87, 244, - 245, 505, 972, 269, 255, 973, 506, 88, 54, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 56, 1164, - 58, 304, 1165, 305, 306, 141, 522, 307, 308, 309, - 121, 523, 60, 124, 125, 124, 125, 661, 662, 663, - 664, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 392, 124, 125, 121, 122, 665, - 731, 526, 455, 847, 848, 849, 527, 893, 123, 526, - 461, 124, 125, 897, 894, 895, 126, 393, 898, 695, - 696, 127, 128, 918, 124, 125, 918, 129, 919, 395, - 1037, 920, 62, 1038, 1050, 698, 699, 130, 283, 888, - 131, 32, 33, 34, 35, 953, 958, 132, 133, 962, - 954, 959, 134, 394, 963, 135, 141, 396, 141, 136, - 90, 91, 92, 93, 94, 398, 858, 859, 402, 92, - 93, 94, 304, 326, 305, 306, 327, 328, 968, 137, - 138, 139, 140, 969, 124, 125, 1005, 403, 141, 304, - 404, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 124, 125, 411, 141, 112, 113, 114, 115, 116, - 117, 118, 119, 412, 213, 214, 215, 141, 122, 124, - 125, 676, 677, 678, 679, 122, 92, 93, 94, 216, - 413, 124, 125, 217, 218, 219, 126, 522, 124, 125, - 918, 486, 970, 220, 414, 1125, 221, 129, 473, 276, - 415, 528, 529, 1126, 222, 277, 278, 279, 280, 281, - 282, 416, 283, 417, 867, 868, 869, 833, 834, 835, - 836, 837, 838, 1094, 1129, 1095, 1096, 141, 418, 1130, - 419, 121, 122, 304, 810, 811, 812, 813, 505, 814, - 420, 421, 1144, 1136, 141, 124, 125, 1145, 142, 137, - 138, 476, 1184, 487, 204, 488, 1147, 1185, 1053, 1054, - 423, 424, 870, 425, 426, 427, 223, 530, 431, 267, - 211, 268, 432, 445, 141, 452, 454, 460, 262, 469, - 284, 141, 259, 491, 495, 274, 1113, 1114, 1115, 1116, - 310, 496, 291, 224, 311, 329, 286, 497, 257, 330, - 499, 270, 500, 501, 502, 225, 324, 507, 261, 226, - 212, 342, 285, 510, 512, 366, 513, 516, 517, 525, - 331, 531, 260, 532, 533, 275, 332, 534, 535, 538, - 536, 367, 227, 263, 228, 537, 287, 539, 141, 540, - 264, 541, 542, 543, 229, 544, 325, 292, 545, 546, - 555, 343, 230, 547, 293, 231, 548, 549, 232, 233, - 124, 125, 234, 235, 550, 236, 551, 552, 553, 554, - 237, 368, 556, 238, 561, 558, 239, 240, 241, 557, - 242, 243, 559, 244, 245, 747, 1148, 560, 255, 269, - 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, - 758, 759, 760, 761, 762, 763, 764, 765, 562, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 563, 564, 565, 566, 567, 568, 364, 365, - 569, 570, 571, 572, 573, 574, 304, 575, 576, 577, - 579, 580, 581, 142, 578, 204, 582, 583, 584, 733, - 586, 585, 588, 141, 589, 590, 593, 739, 591, 594, - 595, 211, 596, 597, 598, 599, 600, 601, 602, 604, - 606, 90, 91, 92, 93, 94, 607, 608, 609, 850, - 860, 610, 366, 611, 612, 613, 615, 616, 617, 618, - 619, 620, 621, 623, 627, 856, 861, 871, 367, 624, - 625, 212, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 628, 631, 630, 632, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 633, 634, 635, 637, 122, - 304, 636, 638, 641, 639, 857, 862, 872, 368, 642, - 640, 141, 124, 125, 643, 218, 644, 126, 646, 647, - 649, 654, 650, 655, 220, 651, 652, 221, 653, 656, - 657, 658, 659, 660, 667, 222, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 669, - 668, 670, 671, 672, 675, 681, 30, 682, 683, 684, - 690, 691, 685, 686, 687, 688, 689, 692, 693, 701, - 702, 703, 704, 705, 706, 708, 709, 710, 738, 712, - 137, 138, 790, 794, 713, 714, 798, 802, 743, 806, - 822, 825, 715, 829, 880, 884, 903, 904, 905, 716, - 717, 718, 906, 907, 912, 141, 913, 719, 914, 720, - 915, 916, 917, 721, 722, 922, 923, 723, 925, 926, - 928, 724, 929, 931, 932, 935, 934, 725, 727, 728, - 729, 735, 942, 943, 945, 736, 737, 946, 974, 947, - 948, 949, 950, 951, 952, 955, 956, 957, 964, 966, - 979, 990, 978, 989, 983, 982, 981, 985, 986, 987, - 988, 991, 992, 993, 994, 995, 996, 997, 998, 1002, - 1086, 999, 1087, 1000, 1001, 1003, 1075, 1076, 1077, 1078, - 1079, 1080, 1090, 1092, 1082, 1108, 1083, 223, 1084, 1089, - 310, 1091, 1107, 329, 311, 1111, 1013, 330, 1039, 262, - 1036, 1055, 1127, 259, 284, 1056, 324, 346, 1047, 342, - 1112, 1128, 1045, 1061, 224, 1118, 291, 1059, 331, 257, - 286, 850, 1057, 1014, 332, 860, 225, 1119, 1044, 261, - 226, 1120, 1121, 1058, 1097, 1015, 285, 856, 1098, 1016, - 267, 861, 268, 260, 1132, 1133, 325, 871, 1134, 343, - 1099, 1122, 1046, 227, 263, 228, 274, 1060, 1123, 1135, - 287, 264, 1017, 1048, 1018, 229, 1142, 1124, 1062, 1150, - 1049, 292, 270, 230, 1019, 1063, 231, 857, 293, 232, - 233, 862, 1020, 234, 235, 1021, 236, 872, 1022, 1023, - 1100, 237, 1024, 1025, 238, 1026, 275, 239, 240, 241, - 1027, 242, 243, 1028, 244, 245, 1029, 1030, 1031, 255, - 1032, 1033, 1153, 1034, 1035, 1137, 1040, 1138, 1041, 1139, - 1155, 1146, 1158, 726, 1154, 1151, 1160, 1180, 1181, 1182, - 1186, 1190, 740, 587, 734, 742, 592, 984, 892, 1004, - 1006, 1157, 1159, 1052, 1074, 1085, 1073, 629, 1081, 1188, - 1187, 1008, 1007, 1149, 1051, 1189, 1010, 1192, 622, 1193, - 269, 1012, 1009, 603, 626, 1072, 1011, 1071, 1109, 1110, - 1140, 889, 1070, 614, 1152, 1088, 879, 1093, 645, 648, - 1178, 1156, 1106, 741, 1191, 0, 0, 0, 0, 0, - 0, 0, 1013, 0, 1039, 0, 1036, 1055, 0, 0, - 0, 1056, 0, 0, 1047, 0, 0, 1097, 1045, 1061, - 0, 1098, 0, 1059, 0, 0, 0, 0, 1057, 1014, - 0, 0, 0, 1099, 1044, 0, 0, 0, 0, 1058, - 605, 1015, 0, 0, 0, 1016, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1046, 0, - 0, 0, 0, 1060, 0, 0, 0, 0, 1017, 1048, - 1018, 0, 0, 1100, 1062, 0, 1049, 0, 0, 0, - 1019, 1063, 0, 0, 0, 0, 0, 0, 1020, 0, - 0, 1021, 0, 0, 1022, 1023, 0, 0, 1024, 1025, - 0, 1026, 0, 0, 0, 0, 1027, 0, 0, 1028, - 0, 0, 1029, 1030, 1031, 0, 1032, 1033, 0, 1034, - 1035, 0, 1040, 0, 1041 + 143, 206, 225, 270, 287, 271, 313, 332, 349, 369, + 314, 333, 78, 794, 265, 1043, 294, 213, 262, 277, + 289, 1044, 327, 345, 712, 370, 305, 1056, 735, 226, + 716, 28, 334, 81, 260, 273, 288, 84, 335, 347, + 348, 227, 678, 40, 264, 228, 29, 122, 30, 941, + 31, 534, 942, 397, 307, 347, 348, 214, 263, 278, + 290, 42, 328, 346, 44, 371, 125, 126, 229, 266, + 230, 295, 666, 667, 668, 669, 267, 46, 296, 48, + 231, 50, 202, 203, 125, 126, 204, 459, 232, 205, + 944, 233, 460, 945, 234, 235, 52, 465, 236, 237, + 678, 238, 466, 477, 670, 142, 239, 395, 478, 240, + 480, 54, 241, 242, 243, 481, 244, 245, 56, 246, + 247, 509, 977, 272, 248, 978, 510, 258, 58, 872, + 873, 874, 526, 86, 530, 60, 87, 527, 1100, 531, + 1101, 1102, 62, 1170, 123, 88, 1171, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 269, 125, 126, 142, + 398, 125, 126, 459, 396, 125, 126, 399, 898, 222, + 736, 401, 223, 530, 389, 390, 405, 875, 899, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 863, 864, 1172, 122, 123, 1173, 1174, + 1175, 1176, 1043, 92, 93, 94, 490, 124, 1044, 406, + 125, 126, 465, 902, 1056, 127, 407, 900, 903, 414, + 128, 129, 32, 33, 34, 35, 130, 415, 923, 923, + 92, 93, 94, 924, 925, 416, 131, 125, 126, 132, + 142, 700, 701, 417, 142, 958, 133, 134, 142, 418, + 959, 135, 963, 491, 136, 419, 967, 964, 137, 420, + 123, 968, 815, 816, 817, 818, 1010, 819, 681, 682, + 683, 684, 421, 125, 126, 852, 853, 854, 138, 139, + 140, 141, 703, 704, 279, 422, 122, 123, 307, 423, + 280, 281, 282, 283, 284, 285, 424, 286, 286, 893, + 125, 126, 426, 142, 427, 428, 307, 329, 308, 309, + 330, 331, 973, 1059, 1060, 526, 923, 974, 125, 126, + 975, 1131, 90, 91, 92, 93, 94, 477, 1135, 492, + 142, 429, 1132, 1136, 532, 533, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 1119, + 1120, 1121, 1122, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 430, 434, 435, 142, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 436, 215, 216, 217, + 509, 123, 143, 449, 1150, 1142, 480, 501, 206, 1151, + 456, 1153, 218, 142, 125, 126, 219, 220, 221, 127, + 225, 458, 1190, 270, 213, 271, 222, 1191, 464, 223, + 130, 142, 265, 473, 287, 495, 262, 224, 499, 277, + 500, 503, 504, 505, 313, 511, 294, 226, 314, 332, + 289, 506, 260, 333, 514, 273, 516, 517, 520, 227, + 327, 521, 264, 228, 214, 345, 288, 529, 535, 369, + 536, 537, 538, 539, 334, 540, 263, 541, 542, 278, + 335, 543, 138, 139, 544, 370, 229, 266, 230, 545, + 290, 546, 547, 553, 267, 548, 549, 559, 231, 550, + 328, 295, 551, 552, 565, 346, 232, 142, 296, 233, + 554, 557, 234, 235, 566, 555, 236, 237, 556, 238, + 558, 562, 560, 561, 239, 371, 306, 240, 567, 563, + 241, 242, 243, 564, 244, 245, 568, 246, 247, 571, + 569, 572, 248, 272, 570, 258, 1154, 752, 573, 574, + 575, 576, 753, 754, 755, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 838, 839, 840, 841, 842, 843, 577, 578, 307, 579, + 308, 309, 580, 581, 310, 311, 312, 583, 582, 584, + 125, 126, 585, 586, 587, 588, 589, 591, 143, 307, + 206, 590, 593, 594, 596, 595, 598, 599, 600, 601, + 602, 603, 744, 604, 605, 606, 213, 607, 609, 611, + 612, 613, 614, 615, 616, 617, 90, 91, 92, 93, + 94, 618, 620, 621, 855, 865, 622, 369, 623, 624, + 625, 626, 628, 629, 632, 630, 633, 636, 637, 635, + 861, 866, 876, 370, 638, 639, 214, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 640, 641, 642, + 643, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 125, 126, 142, 644, 123, 307, 646, 645, 647, + 862, 867, 877, 371, 648, 649, 651, 652, 125, 126, + 654, 220, 655, 127, 142, 656, 657, 658, 659, 660, + 222, 661, 662, 223, 663, 664, 665, 672, 673, 674, + 675, 224, 676, 677, 680, 686, 30, 687, 688, 689, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 690, 691, 692, 693, 694, 695, 367, + 368, 696, 697, 698, 706, 707, 708, 709, 710, 711, + 713, 714, 715, 743, 795, 717, 138, 139, 718, 748, + 799, 719, 720, 721, 142, 803, 807, 722, 723, 811, + 827, 830, 834, 885, 889, 724, 725, 726, 727, 908, + 909, 142, 738, 910, 911, 912, 917, 918, 919, 728, + 729, 920, 921, 730, 922, 927, 928, 930, 931, 934, + 933, 937, 940, 732, 733, 734, 740, 741, 936, 939, + 947, 742, 948, 950, 951, 994, 952, 953, 954, 955, + 956, 957, 960, 961, 962, 969, 971, 979, 984, 983, + 988, 995, 986, 987, 990, 991, 992, 993, 996, 997, + 998, 999, 1000, 1001, 1002, 1003, 1004, 1092, 1093, 1005, + 1006, 1096, 1008, 1007, 1081, 1082, 1083, 1084, 1085, 1086, + 1089, 1098, 225, 1088, 1090, 313, 1097, 1113, 332, 314, + 1095, 1018, 333, 1045, 265, 1042, 1061, 1114, 262, 287, + 1062, 327, 349, 1053, 345, 1117, 1133, 1051, 1067, 226, + 1118, 294, 1065, 334, 260, 289, 855, 1063, 1019, 335, + 865, 227, 1124, 1050, 264, 228, 1125, 1126, 1064, 1103, + 1020, 288, 861, 1104, 1021, 270, 866, 271, 263, 1134, + 1138, 328, 876, 1127, 346, 1105, 1139, 1052, 229, 266, + 230, 277, 1066, 1140, 1128, 290, 267, 1022, 1054, 1023, + 231, 1129, 1130, 1068, 1141, 1055, 295, 273, 232, 1024, + 1069, 233, 862, 296, 234, 235, 867, 1025, 236, 237, + 1026, 238, 877, 1027, 1028, 1106, 239, 1029, 1030, 240, + 1031, 278, 241, 242, 243, 1032, 244, 245, 1033, 246, + 247, 1034, 1035, 1036, 248, 1037, 1038, 258, 1039, 1040, + 1148, 1046, 1143, 1041, 1156, 1159, 1047, 1144, 1161, 1145, + 1164, 1152, 1186, 1166, 1187, 1188, 1192, 1196, 731, 745, + 592, 739, 747, 597, 989, 1009, 1011, 897, 1058, 1091, + 1080, 1160, 1157, 1087, 1079, 1163, 1165, 634, 1013, 608, + 1193, 1012, 1155, 1194, 1195, 272, 1198, 1199, 1057, 1015, + 1014, 627, 1115, 1017, 1016, 631, 1146, 1078, 1116, 1077, + 1094, 619, 894, 1158, 1076, 1099, 884, 650, 746, 653, + 1184, 1162, 1112, 1197, 0, 0, 0, 0, 1018, 0, + 1045, 0, 1042, 1061, 0, 0, 0, 1062, 0, 0, + 1053, 0, 0, 1103, 1051, 1067, 0, 1104, 0, 1065, + 0, 0, 0, 0, 1063, 1019, 0, 0, 0, 1105, + 1050, 0, 610, 0, 0, 1064, 0, 1020, 0, 0, + 0, 1021, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1052, 0, 0, 0, 0, 1066, + 0, 0, 0, 0, 1022, 1054, 1023, 0, 0, 1106, + 1068, 0, 1055, 0, 0, 0, 1024, 1069, 0, 0, + 0, 0, 0, 0, 1025, 0, 0, 1026, 0, 0, + 1027, 1028, 0, 0, 1029, 1030, 0, 1031, 0, 0, + 0, 0, 1032, 0, 0, 1033, 0, 0, 1034, 1035, + 1036, 0, 1037, 1038, 0, 1039, 1040, 0, 1046, 0, + 1041, 0, 0, 1047 }; - const short + const short int Dhcp4Parser::yycheck_[] = { 67, 68, 69, 70, 71, 70, 73, 74, 75, 76, - 73, 74, 64, 658, 69, 600, 71, 68, 69, 70, - 71, 606, 73, 74, 933, 76, 72, 933, 933, 69, - 124, 125, 74, 0, 69, 70, 71, 3, 74, 84, - 6, 69, 570, 7, 69, 69, 5, 190, 7, 18, - 9, 96, 97, 98, 12, 13, 7, 68, 69, 70, - 71, 7, 73, 74, 109, 76, 7, 112, 69, 69, - 69, 71, 3, 7, 124, 125, 69, 8, 71, 170, - 69, 3, 173, 174, 175, 176, 8, 3, 69, 7, - 34, 69, 8, 7, 69, 69, 190, 3, 69, 69, - 628, 69, 8, 15, 16, 3, 69, 19, 6, 69, - 22, 10, 69, 69, 69, 11, 69, 69, 14, 69, - 69, 3, 3, 70, 69, 6, 8, 23, 7, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 7, 3, - 7, 85, 6, 87, 88, 190, 3, 91, 92, 93, - 83, 8, 7, 97, 98, 97, 98, 161, 162, 163, - 164, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 6, 97, 98, 83, 84, 193, - 159, 3, 3, 135, 136, 137, 8, 8, 94, 3, - 3, 97, 98, 3, 8, 8, 102, 3, 8, 17, - 18, 107, 108, 3, 97, 98, 3, 113, 8, 8, - 1129, 8, 7, 1129, 1129, 20, 21, 123, 121, 122, - 126, 190, 191, 192, 193, 3, 3, 133, 134, 3, - 8, 8, 138, 4, 8, 141, 190, 3, 190, 145, - 26, 27, 28, 29, 30, 8, 139, 140, 4, 28, - 29, 30, 85, 86, 87, 88, 89, 90, 3, 165, - 166, 167, 168, 8, 97, 98, 921, 4, 190, 85, - 4, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 97, 98, 4, 190, 71, 72, 73, 74, 75, - 76, 77, 78, 4, 80, 81, 82, 190, 84, 97, - 98, 103, 104, 105, 106, 84, 28, 29, 30, 95, - 4, 97, 98, 99, 100, 101, 102, 3, 97, 98, - 3, 8, 8, 109, 4, 8, 112, 113, 3, 108, - 4, 393, 394, 8, 120, 114, 115, 116, 117, 118, - 119, 4, 121, 4, 142, 143, 144, 127, 128, 129, - 130, 131, 132, 169, 3, 171, 172, 190, 4, 8, - 4, 83, 84, 85, 114, 115, 116, 117, 3, 119, - 4, 4, 3, 8, 190, 97, 98, 8, 455, 165, - 166, 3, 3, 3, 461, 8, 8, 8, 110, 111, - 4, 4, 190, 4, 4, 4, 473, 190, 4, 476, - 461, 476, 4, 4, 190, 4, 4, 4, 473, 4, - 487, 190, 473, 4, 4, 476, 35, 36, 37, 38, - 497, 8, 487, 473, 497, 502, 487, 3, 473, 502, - 4, 476, 4, 8, 3, 473, 497, 4, 473, 473, - 461, 502, 487, 4, 4, 522, 4, 4, 4, 4, - 502, 4, 473, 4, 4, 476, 502, 4, 193, 4, - 193, 522, 473, 473, 473, 193, 487, 4, 190, 4, - 473, 4, 4, 4, 473, 191, 497, 487, 191, 191, - 4, 502, 473, 191, 487, 473, 191, 193, 473, 473, - 97, 98, 473, 473, 192, 473, 192, 192, 191, 191, - 473, 522, 191, 473, 4, 193, 473, 473, 473, 191, - 473, 473, 193, 473, 473, 34, 1111, 193, 473, 476, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 4, 146, + 73, 74, 64, 663, 69, 938, 71, 68, 69, 70, + 71, 938, 73, 74, 605, 76, 72, 938, 18, 69, + 611, 0, 74, 191, 69, 70, 71, 10, 74, 125, + 126, 69, 575, 7, 69, 69, 5, 84, 7, 3, + 9, 191, 6, 4, 86, 125, 126, 68, 69, 70, + 71, 7, 73, 74, 7, 76, 98, 99, 69, 69, + 69, 71, 162, 163, 164, 165, 69, 7, 71, 7, + 69, 7, 15, 16, 98, 99, 19, 3, 69, 22, + 3, 69, 8, 6, 69, 69, 7, 3, 69, 69, + 633, 69, 8, 3, 194, 191, 69, 6, 8, 69, + 3, 7, 69, 69, 69, 8, 69, 69, 7, 69, + 69, 3, 3, 70, 69, 6, 8, 69, 7, 143, + 144, 145, 3, 11, 3, 7, 14, 8, 170, 8, + 172, 173, 7, 3, 85, 23, 6, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 97, 98, 99, 191, + 8, 98, 99, 3, 3, 98, 99, 3, 8, 110, + 160, 8, 113, 3, 12, 13, 4, 191, 8, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 140, 141, 171, 84, 85, 174, 175, + 176, 177, 1135, 28, 29, 30, 8, 95, 1135, 4, + 98, 99, 3, 3, 1135, 103, 4, 8, 8, 4, + 108, 109, 191, 192, 193, 194, 114, 4, 3, 3, + 28, 29, 30, 8, 8, 4, 124, 98, 99, 127, + 191, 17, 18, 4, 191, 3, 134, 135, 191, 4, + 8, 139, 3, 3, 142, 4, 3, 8, 146, 4, + 85, 8, 115, 116, 117, 118, 926, 120, 104, 105, + 106, 107, 4, 98, 99, 136, 137, 138, 166, 167, + 168, 169, 20, 21, 109, 4, 84, 85, 86, 4, + 115, 116, 117, 118, 119, 120, 4, 122, 122, 123, + 98, 99, 4, 191, 4, 4, 86, 87, 88, 89, + 90, 91, 3, 111, 112, 3, 3, 8, 98, 99, + 8, 8, 26, 27, 28, 29, 30, 3, 3, 8, + 191, 4, 8, 8, 396, 397, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 35, + 36, 37, 38, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 4, 4, 4, 191, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 4, 81, 82, 83, + 3, 85, 459, 4, 3, 8, 3, 3, 465, 8, + 4, 8, 96, 191, 98, 99, 100, 101, 102, 103, + 477, 4, 3, 480, 465, 480, 110, 8, 4, 113, + 114, 191, 477, 4, 491, 4, 477, 121, 4, 480, + 8, 4, 4, 8, 501, 4, 491, 477, 501, 506, + 491, 3, 477, 506, 4, 480, 4, 4, 4, 477, + 501, 4, 477, 477, 465, 506, 491, 4, 4, 526, + 4, 4, 4, 194, 506, 194, 477, 194, 4, 480, + 506, 4, 166, 167, 4, 526, 477, 477, 477, 4, + 491, 4, 4, 194, 477, 192, 192, 4, 477, 192, + 501, 491, 192, 192, 4, 506, 477, 191, 491, 477, + 193, 192, 477, 477, 4, 193, 477, 477, 193, 477, + 192, 194, 192, 192, 477, 526, 34, 477, 4, 194, + 477, 477, 477, 194, 477, 477, 194, 477, 477, 4, + 194, 4, 477, 480, 194, 477, 1117, 34, 4, 4, + 4, 4, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 128, 129, 130, 131, 132, 133, 4, 4, 86, 4, + 88, 89, 4, 4, 92, 93, 94, 192, 4, 4, + 98, 99, 4, 4, 4, 4, 4, 4, 655, 86, + 657, 194, 4, 4, 194, 4, 4, 4, 4, 4, + 4, 4, 654, 192, 4, 4, 657, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 26, 27, 28, 29, + 30, 4, 4, 4, 691, 692, 192, 694, 4, 4, + 4, 194, 4, 194, 4, 194, 4, 4, 4, 194, + 691, 692, 693, 694, 192, 4, 657, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 192, 192, 4, + 4, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 98, 99, 191, 194, 85, 86, 4, 194, 4, + 691, 692, 693, 694, 4, 4, 4, 192, 98, 99, + 4, 101, 7, 103, 191, 7, 7, 7, 191, 191, + 110, 191, 7, 113, 7, 5, 191, 191, 191, 5, + 5, 121, 5, 5, 191, 5, 7, 5, 5, 5, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 4, 193, 193, 4, 4, 4, 165, 166, - 4, 4, 4, 4, 4, 4, 85, 4, 4, 4, - 4, 4, 4, 650, 191, 652, 4, 4, 4, 160, - 4, 193, 4, 190, 4, 4, 4, 649, 193, 4, - 4, 652, 4, 4, 4, 191, 4, 4, 4, 4, - 4, 26, 27, 28, 29, 30, 4, 4, 4, 686, - 687, 4, 689, 4, 4, 4, 4, 4, 191, 4, - 4, 4, 193, 4, 4, 686, 687, 688, 689, 193, - 193, 652, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 4, 4, 193, 4, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 191, 4, 191, 4, 84, - 85, 191, 4, 4, 193, 686, 687, 688, 689, 4, - 193, 190, 97, 98, 4, 100, 4, 102, 4, 191, - 4, 190, 7, 190, 109, 7, 7, 112, 7, 190, - 7, 7, 5, 190, 190, 120, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 5, - 190, 5, 5, 5, 190, 5, 7, 5, 5, 5, - 190, 190, 7, 7, 7, 7, 7, 5, 5, 190, - 190, 190, 5, 190, 190, 190, 7, 190, 5, 190, - 165, 166, 7, 7, 190, 190, 7, 7, 24, 7, - 7, 7, 190, 7, 7, 7, 4, 4, 4, 190, - 190, 190, 4, 4, 4, 190, 4, 190, 4, 190, - 4, 4, 4, 190, 190, 6, 3, 190, 6, 3, - 6, 190, 3, 6, 3, 3, 6, 190, 190, 190, - 190, 190, 6, 3, 6, 190, 190, 3, 190, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 3, 193, 6, 191, 4, 6, 8, 4, 4, 4, - 4, 191, 193, 191, 4, 4, 4, 4, 191, 193, - 4, 191, 4, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 4, 4, 193, 3, 191, 924, 191, 193, - 927, 191, 6, 930, 927, 4, 933, 930, 933, 924, - 933, 938, 8, 924, 941, 938, 927, 944, 933, 930, - 190, 8, 933, 938, 924, 190, 941, 938, 930, 924, - 941, 958, 938, 933, 930, 962, 924, 190, 933, 924, - 924, 190, 190, 938, 971, 933, 941, 958, 971, 933, - 977, 962, 977, 924, 4, 8, 927, 968, 3, 930, - 971, 190, 933, 924, 924, 924, 977, 938, 190, 8, - 941, 924, 933, 933, 933, 924, 4, 190, 938, 4, - 933, 941, 977, 924, 933, 938, 924, 958, 941, 924, - 924, 962, 933, 924, 924, 933, 924, 968, 933, 933, - 971, 924, 933, 933, 924, 933, 977, 924, 924, 924, - 933, 924, 924, 933, 924, 924, 933, 933, 933, 924, - 933, 933, 4, 933, 933, 190, 933, 190, 933, 190, - 4, 190, 5, 628, 191, 193, 7, 4, 4, 4, - 4, 4, 650, 455, 641, 652, 461, 897, 738, 918, - 923, 190, 190, 936, 946, 958, 944, 505, 953, 191, - 193, 926, 924, 1129, 935, 191, 929, 190, 497, 190, - 977, 932, 927, 473, 502, 943, 930, 941, 977, 979, - 1092, 709, 939, 487, 1134, 962, 689, 968, 522, 526, - 1164, 1144, 972, 651, 1184, -1, -1, -1, -1, -1, - -1, -1, 1129, -1, 1129, -1, 1129, 1134, -1, -1, - -1, 1134, -1, -1, 1129, -1, -1, 1144, 1129, 1134, - -1, 1144, -1, 1134, -1, -1, -1, -1, 1134, 1129, - -1, -1, -1, 1144, 1129, -1, -1, -1, -1, 1134, - 476, 1129, -1, -1, -1, 1129, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1129, -1, - -1, -1, -1, 1134, -1, -1, -1, -1, 1129, 1129, - 1129, -1, -1, 1144, 1134, -1, 1129, -1, -1, -1, - 1129, 1134, -1, -1, -1, -1, -1, -1, 1129, -1, - -1, 1129, -1, -1, 1129, 1129, -1, -1, 1129, 1129, - -1, 1129, -1, -1, -1, -1, 1129, -1, -1, 1129, - -1, -1, 1129, 1129, 1129, -1, 1129, 1129, -1, 1129, - 1129, -1, 1129, -1, 1129 + 157, 158, 159, 7, 7, 7, 7, 7, 191, 166, + 167, 191, 5, 5, 191, 191, 191, 5, 191, 191, + 191, 7, 191, 5, 7, 191, 166, 167, 191, 24, + 7, 191, 191, 191, 191, 7, 7, 191, 191, 7, + 7, 7, 7, 7, 7, 191, 191, 191, 191, 4, + 4, 191, 161, 4, 4, 4, 4, 4, 4, 191, + 191, 4, 4, 191, 4, 6, 3, 6, 3, 3, + 6, 3, 3, 191, 191, 191, 191, 191, 6, 6, + 6, 191, 3, 6, 3, 192, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 191, 3, 6, + 4, 194, 8, 6, 4, 4, 4, 4, 192, 194, + 192, 4, 4, 4, 4, 192, 192, 4, 4, 192, + 192, 4, 192, 194, 192, 192, 192, 192, 192, 192, + 192, 4, 929, 194, 192, 932, 192, 6, 935, 932, + 194, 938, 935, 938, 929, 938, 943, 3, 929, 946, + 943, 932, 949, 938, 935, 4, 8, 938, 943, 929, + 191, 946, 943, 935, 929, 946, 963, 943, 938, 935, + 967, 929, 191, 938, 929, 929, 191, 191, 943, 976, + 938, 946, 963, 976, 938, 982, 967, 982, 929, 8, + 4, 932, 973, 191, 935, 976, 8, 938, 929, 929, + 929, 982, 943, 3, 191, 946, 929, 938, 938, 938, + 929, 191, 191, 943, 8, 938, 946, 982, 929, 938, + 943, 929, 963, 946, 929, 929, 967, 938, 929, 929, + 938, 929, 973, 938, 938, 976, 929, 938, 938, 929, + 938, 982, 929, 929, 929, 938, 929, 929, 938, 929, + 929, 938, 938, 938, 929, 938, 938, 929, 938, 938, + 4, 938, 191, 938, 4, 4, 938, 191, 4, 191, + 5, 191, 4, 7, 4, 4, 4, 4, 633, 655, + 459, 646, 657, 465, 902, 923, 928, 743, 941, 963, + 951, 192, 194, 958, 949, 191, 191, 509, 931, 477, + 194, 929, 1135, 192, 192, 982, 191, 191, 940, 934, + 932, 501, 982, 937, 935, 506, 1098, 948, 984, 946, + 967, 491, 714, 1140, 944, 973, 694, 526, 656, 530, + 1170, 1150, 977, 1190, -1, -1, -1, -1, 1135, -1, + 1135, -1, 1135, 1140, -1, -1, -1, 1140, -1, -1, + 1135, -1, -1, 1150, 1135, 1140, -1, 1150, -1, 1140, + -1, -1, -1, -1, 1140, 1135, -1, -1, -1, 1150, + 1135, -1, 480, -1, -1, 1140, -1, 1135, -1, -1, + -1, 1135, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1135, -1, -1, -1, -1, 1140, + -1, -1, -1, -1, 1135, 1135, 1135, -1, -1, 1150, + 1140, -1, 1135, -1, -1, -1, 1135, 1140, -1, -1, + -1, -1, -1, -1, 1135, -1, -1, 1135, -1, -1, + 1135, 1135, -1, -1, 1135, 1135, -1, 1135, -1, -1, + -1, -1, 1135, -1, -1, 1135, -1, -1, 1135, 1135, + 1135, -1, 1135, 1135, -1, 1135, 1135, -1, 1135, -1, + 1135, -1, -1, 1135 }; - const short + const unsigned short int Dhcp4Parser::yystos_[] = { - 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 0, 5, - 7, 9, 190, 191, 192, 193, 209, 210, 211, 216, - 7, 225, 7, 229, 7, 272, 7, 377, 7, 457, - 7, 473, 7, 409, 7, 415, 7, 439, 7, 353, - 7, 538, 7, 569, 217, 212, 226, 230, 273, 378, - 458, 474, 410, 416, 440, 354, 539, 570, 209, 218, - 219, 190, 214, 215, 10, 227, 11, 14, 23, 25, + 0, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 0, 5, + 7, 9, 191, 192, 193, 194, 210, 211, 212, 217, + 7, 226, 7, 230, 7, 274, 7, 379, 7, 459, + 7, 475, 7, 411, 7, 417, 7, 441, 7, 355, + 7, 540, 7, 571, 218, 213, 227, 231, 275, 380, + 460, 476, 412, 418, 442, 356, 541, 572, 210, 219, + 220, 191, 215, 216, 10, 228, 11, 14, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 83, 84, 94, 97, 98, 102, 107, 108, 113, - 123, 126, 133, 134, 138, 141, 145, 165, 166, 167, - 168, 190, 224, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 246, 247, 248, - 249, 250, 251, 252, 255, 257, 259, 260, 262, 264, - 265, 266, 267, 268, 283, 285, 291, 293, 331, 340, - 347, 361, 371, 395, 399, 407, 433, 463, 465, 467, - 478, 480, 482, 505, 517, 518, 526, 536, 567, 576, - 15, 16, 19, 22, 224, 270, 271, 274, 276, 279, - 282, 463, 465, 80, 81, 82, 95, 99, 100, 101, - 109, 112, 120, 224, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 247, 248, 249, 250, 251, 252, - 255, 257, 259, 260, 262, 264, 379, 380, 381, 383, - 385, 387, 389, 391, 393, 395, 398, 433, 451, 463, - 465, 467, 478, 480, 482, 502, 96, 224, 391, 393, - 433, 459, 460, 461, 463, 465, 108, 114, 115, 116, - 117, 118, 119, 121, 224, 433, 463, 465, 475, 476, - 477, 478, 480, 482, 484, 488, 490, 492, 494, 496, - 498, 500, 407, 34, 85, 87, 88, 91, 92, 93, - 224, 311, 417, 418, 419, 420, 421, 422, 423, 425, - 427, 429, 430, 432, 463, 465, 86, 89, 90, 224, - 311, 421, 427, 441, 442, 443, 444, 445, 447, 448, - 449, 450, 463, 465, 124, 125, 224, 355, 356, 357, - 359, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 165, 166, 224, 463, 465, 540, - 541, 542, 543, 545, 546, 548, 549, 550, 553, 555, - 557, 558, 559, 561, 563, 565, 12, 13, 571, 572, - 573, 575, 6, 3, 4, 8, 3, 228, 8, 568, - 269, 286, 4, 4, 4, 479, 481, 483, 284, 292, - 294, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 245, 4, 4, 4, 4, 4, 253, 256, - 258, 4, 4, 372, 408, 434, 400, 464, 466, 396, - 332, 506, 468, 348, 362, 4, 341, 519, 527, 537, - 261, 263, 4, 577, 4, 3, 8, 275, 277, 280, - 4, 3, 8, 384, 386, 388, 452, 382, 390, 4, - 394, 392, 503, 3, 8, 462, 3, 8, 501, 489, - 491, 495, 493, 499, 497, 485, 8, 3, 8, 424, - 312, 4, 428, 426, 431, 4, 8, 3, 446, 4, - 4, 8, 3, 358, 360, 3, 8, 4, 556, 544, - 4, 547, 4, 4, 551, 554, 4, 4, 560, 562, - 564, 566, 3, 8, 574, 4, 3, 8, 209, 209, - 190, 4, 4, 4, 4, 193, 193, 193, 4, 4, - 4, 4, 4, 4, 191, 191, 191, 191, 191, 193, - 192, 192, 192, 191, 191, 4, 191, 191, 193, 193, - 193, 4, 4, 4, 193, 193, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 191, 4, - 4, 4, 4, 4, 4, 193, 4, 232, 4, 4, - 4, 193, 271, 4, 4, 4, 4, 4, 4, 191, - 4, 4, 4, 380, 4, 460, 4, 4, 4, 4, - 4, 4, 4, 4, 477, 4, 4, 191, 4, 4, - 4, 193, 419, 4, 193, 193, 443, 4, 4, 356, - 193, 4, 4, 191, 4, 191, 191, 4, 4, 193, - 193, 4, 4, 4, 4, 541, 4, 191, 572, 4, - 7, 7, 7, 7, 190, 190, 190, 7, 7, 5, - 190, 161, 162, 163, 164, 193, 254, 190, 190, 5, - 5, 5, 5, 211, 213, 190, 103, 104, 105, 106, - 397, 5, 5, 5, 5, 7, 7, 7, 7, 7, - 190, 190, 5, 5, 220, 17, 18, 278, 20, 21, - 281, 190, 190, 190, 5, 190, 190, 220, 190, 7, - 190, 220, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 213, 190, 190, 190, - 18, 159, 552, 160, 254, 190, 190, 190, 5, 209, - 231, 571, 270, 24, 287, 288, 289, 34, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 224, 299, 300, 301, - 304, 306, 308, 310, 311, 313, 314, 315, 316, 317, - 318, 319, 320, 322, 324, 326, 328, 329, 330, 299, - 7, 295, 296, 297, 7, 373, 374, 375, 7, 411, - 412, 413, 7, 435, 436, 437, 7, 401, 402, 403, - 114, 115, 116, 117, 119, 333, 334, 335, 336, 337, - 338, 339, 7, 507, 508, 7, 469, 470, 471, 7, - 349, 350, 351, 127, 128, 129, 130, 131, 132, 363, - 364, 365, 366, 367, 368, 369, 370, 135, 136, 137, - 224, 342, 343, 344, 345, 346, 463, 465, 139, 140, - 224, 463, 465, 520, 521, 522, 524, 142, 143, 144, - 190, 463, 465, 528, 529, 530, 531, 533, 534, 540, - 7, 578, 579, 221, 7, 453, 454, 455, 122, 484, - 486, 504, 295, 8, 8, 8, 290, 3, 8, 302, - 305, 307, 309, 4, 4, 4, 4, 4, 321, 323, - 325, 327, 4, 4, 4, 4, 4, 4, 3, 8, - 8, 298, 6, 3, 376, 6, 3, 414, 6, 3, - 438, 6, 3, 404, 6, 3, 3, 6, 509, 3, - 6, 472, 6, 3, 352, 6, 3, 4, 4, 4, - 4, 4, 4, 3, 8, 4, 4, 4, 3, 8, - 523, 525, 3, 8, 4, 532, 4, 535, 3, 8, - 8, 580, 3, 6, 190, 222, 223, 456, 6, 3, - 487, 8, 6, 4, 288, 4, 4, 4, 4, 191, - 193, 191, 193, 191, 4, 4, 4, 4, 191, 191, - 191, 191, 193, 191, 300, 299, 297, 379, 375, 417, - 413, 441, 437, 224, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 247, 248, 249, 250, 251, 252, - 255, 257, 259, 260, 262, 264, 311, 371, 389, 391, - 393, 395, 405, 406, 433, 463, 465, 478, 480, 482, - 502, 403, 334, 110, 111, 224, 311, 407, 433, 463, - 465, 478, 480, 482, 510, 511, 512, 513, 514, 516, - 508, 475, 471, 355, 351, 191, 191, 191, 191, 191, - 191, 364, 193, 191, 191, 343, 4, 4, 521, 193, - 4, 191, 4, 529, 169, 171, 172, 224, 311, 463, - 465, 581, 582, 583, 584, 586, 579, 6, 3, 459, - 455, 4, 190, 35, 36, 37, 38, 303, 190, 190, - 190, 190, 190, 190, 190, 8, 8, 8, 8, 3, - 8, 515, 4, 8, 3, 8, 8, 190, 190, 190, - 209, 587, 4, 585, 3, 8, 190, 8, 220, 406, - 4, 193, 512, 4, 191, 4, 582, 190, 5, 190, - 7, 588, 589, 590, 3, 6, 170, 173, 174, 175, - 176, 591, 592, 593, 595, 596, 597, 598, 589, 594, - 4, 4, 4, 599, 3, 8, 4, 193, 191, 191, - 4, 592, 190, 190 + 79, 80, 84, 85, 95, 98, 99, 103, 108, 109, + 114, 124, 127, 134, 135, 139, 142, 146, 166, 167, + 168, 169, 191, 225, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 247, 248, + 249, 250, 251, 252, 253, 256, 258, 260, 261, 262, + 264, 266, 267, 268, 269, 270, 285, 287, 293, 295, + 333, 342, 349, 363, 373, 397, 401, 409, 435, 465, + 467, 469, 480, 482, 484, 507, 519, 520, 528, 538, + 569, 578, 15, 16, 19, 22, 225, 272, 273, 276, + 278, 281, 284, 465, 467, 81, 82, 83, 96, 100, + 101, 102, 110, 113, 121, 225, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 248, 249, 250, 251, + 252, 253, 256, 258, 260, 261, 262, 264, 266, 381, + 382, 383, 385, 387, 389, 391, 393, 395, 397, 400, + 435, 453, 465, 467, 469, 480, 482, 484, 504, 97, + 225, 393, 395, 435, 461, 462, 463, 465, 467, 109, + 115, 116, 117, 118, 119, 120, 122, 225, 435, 465, + 467, 477, 478, 479, 480, 482, 484, 486, 490, 492, + 494, 496, 498, 500, 502, 409, 34, 86, 88, 89, + 92, 93, 94, 225, 313, 419, 420, 421, 422, 423, + 424, 425, 427, 429, 431, 432, 434, 465, 467, 87, + 90, 91, 225, 313, 423, 429, 443, 444, 445, 446, + 447, 449, 450, 451, 452, 465, 467, 125, 126, 225, + 357, 358, 359, 361, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 166, 167, 225, + 465, 467, 542, 543, 544, 545, 547, 548, 550, 551, + 552, 555, 557, 559, 560, 561, 563, 565, 567, 12, + 13, 573, 574, 575, 577, 6, 3, 4, 8, 3, + 229, 8, 570, 271, 288, 4, 4, 4, 481, 483, + 485, 286, 294, 296, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 246, 4, 4, 4, 4, + 4, 254, 257, 259, 4, 4, 4, 374, 410, 436, + 402, 466, 468, 398, 334, 508, 470, 350, 364, 4, + 343, 521, 529, 539, 263, 265, 4, 579, 4, 3, + 8, 277, 279, 282, 4, 3, 8, 386, 388, 390, + 454, 384, 392, 4, 396, 394, 505, 3, 8, 464, + 3, 8, 503, 491, 493, 497, 495, 501, 499, 487, + 8, 3, 8, 426, 314, 4, 430, 428, 433, 4, + 8, 3, 448, 4, 4, 8, 3, 360, 362, 3, + 8, 4, 558, 546, 4, 549, 4, 4, 553, 556, + 4, 4, 562, 564, 566, 568, 3, 8, 576, 4, + 3, 8, 210, 210, 191, 4, 4, 4, 4, 194, + 194, 194, 4, 4, 4, 4, 4, 4, 192, 192, + 192, 192, 192, 194, 193, 193, 193, 192, 192, 4, + 192, 192, 194, 194, 194, 4, 4, 4, 194, 194, + 194, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 192, 4, 4, 4, 4, 4, 4, + 194, 4, 233, 4, 4, 4, 194, 273, 4, 4, + 4, 4, 4, 4, 192, 4, 4, 4, 382, 4, + 462, 4, 4, 4, 4, 4, 4, 4, 4, 479, + 4, 4, 192, 4, 4, 4, 194, 421, 4, 194, + 194, 445, 4, 4, 358, 194, 4, 4, 192, 4, + 192, 192, 4, 4, 194, 194, 4, 4, 4, 4, + 543, 4, 192, 574, 4, 7, 7, 7, 7, 191, + 191, 191, 7, 7, 5, 191, 162, 163, 164, 165, + 194, 255, 191, 191, 5, 5, 5, 5, 212, 214, + 191, 104, 105, 106, 107, 399, 5, 5, 5, 5, + 7, 7, 7, 7, 7, 191, 191, 5, 5, 221, + 17, 18, 280, 20, 21, 283, 191, 191, 191, 5, + 191, 191, 221, 191, 7, 191, 221, 191, 191, 191, + 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, + 191, 214, 191, 191, 191, 18, 160, 554, 161, 255, + 191, 191, 191, 5, 210, 232, 573, 272, 24, 289, + 290, 291, 34, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 225, 301, 302, 303, 306, 308, 310, 312, 313, + 315, 316, 317, 318, 319, 320, 321, 322, 324, 326, + 328, 330, 331, 332, 301, 7, 297, 298, 299, 7, + 375, 376, 377, 7, 413, 414, 415, 7, 437, 438, + 439, 7, 403, 404, 405, 115, 116, 117, 118, 120, + 335, 336, 337, 338, 339, 340, 341, 7, 509, 510, + 7, 471, 472, 473, 7, 351, 352, 353, 128, 129, + 130, 131, 132, 133, 365, 366, 367, 368, 369, 370, + 371, 372, 136, 137, 138, 225, 344, 345, 346, 347, + 348, 465, 467, 140, 141, 225, 465, 467, 522, 523, + 524, 526, 143, 144, 145, 191, 465, 467, 530, 531, + 532, 533, 535, 536, 542, 7, 580, 581, 222, 7, + 455, 456, 457, 123, 486, 488, 506, 297, 8, 8, + 8, 292, 3, 8, 304, 307, 309, 311, 4, 4, + 4, 4, 4, 323, 325, 327, 329, 4, 4, 4, + 4, 4, 4, 3, 8, 8, 300, 6, 3, 378, + 6, 3, 416, 6, 3, 440, 6, 3, 406, 6, + 3, 3, 6, 511, 3, 6, 474, 6, 3, 354, + 6, 3, 4, 4, 4, 4, 4, 4, 3, 8, + 4, 4, 4, 3, 8, 525, 527, 3, 8, 4, + 534, 4, 537, 3, 8, 8, 582, 3, 6, 191, + 223, 224, 458, 6, 3, 489, 8, 6, 4, 290, + 4, 4, 4, 4, 192, 194, 192, 194, 192, 4, + 4, 4, 4, 192, 192, 192, 192, 194, 192, 302, + 301, 299, 381, 377, 419, 415, 443, 439, 225, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 248, + 249, 250, 251, 252, 253, 256, 258, 260, 261, 262, + 264, 266, 313, 373, 391, 393, 395, 397, 407, 408, + 435, 465, 467, 480, 482, 484, 504, 405, 336, 111, + 112, 225, 313, 409, 435, 465, 467, 480, 482, 484, + 512, 513, 514, 515, 516, 518, 510, 477, 473, 357, + 353, 192, 192, 192, 192, 192, 192, 366, 194, 192, + 192, 345, 4, 4, 523, 194, 4, 192, 4, 531, + 170, 172, 173, 225, 313, 465, 467, 583, 584, 585, + 586, 588, 581, 6, 3, 461, 457, 4, 191, 35, + 36, 37, 38, 305, 191, 191, 191, 191, 191, 191, + 191, 8, 8, 8, 8, 3, 8, 517, 4, 8, + 3, 8, 8, 191, 191, 191, 210, 589, 4, 587, + 3, 8, 191, 8, 221, 408, 4, 194, 514, 4, + 192, 4, 584, 191, 5, 191, 7, 590, 591, 592, + 3, 6, 171, 174, 175, 176, 177, 593, 594, 595, + 597, 598, 599, 600, 591, 596, 4, 4, 4, 601, + 3, 8, 4, 194, 192, 192, 4, 594, 191, 191 }; - const short + const unsigned short int Dhcp4Parser::yyr1_[] = { - 0, 194, 196, 195, 197, 195, 198, 195, 199, 195, - 200, 195, 201, 195, 202, 195, 203, 195, 204, 195, - 205, 195, 206, 195, 207, 195, 208, 195, 209, 209, - 209, 209, 209, 209, 209, 210, 212, 211, 213, 214, - 214, 215, 215, 217, 216, 218, 218, 219, 219, 221, - 220, 222, 222, 223, 223, 224, 226, 225, 228, 227, - 230, 229, 231, 231, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 0, 195, 197, 196, 198, 196, 199, 196, 200, 196, + 201, 196, 202, 196, 203, 196, 204, 196, 205, 196, + 206, 196, 207, 196, 208, 196, 209, 196, 210, 210, + 210, 210, 210, 210, 210, 211, 213, 212, 214, 215, + 215, 216, 216, 218, 217, 219, 219, 220, 220, 222, + 221, 223, 223, 224, 224, 225, 227, 226, 229, 228, + 231, 230, 232, 232, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 245, 244, 246, 247, 248, 249, 250, 251, 253, - 252, 254, 254, 254, 254, 254, 256, 255, 258, 257, - 259, 261, 260, 263, 262, 264, 265, 266, 267, 269, - 268, 270, 270, 271, 271, 271, 271, 271, 271, 271, - 273, 272, 275, 274, 277, 276, 278, 278, 280, 279, - 281, 281, 282, 284, 283, 286, 285, 287, 287, 288, - 290, 289, 292, 291, 294, 293, 295, 295, 296, 296, - 298, 297, 299, 299, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 302, 301, 303, 303, 303, - 303, 305, 304, 307, 306, 309, 308, 310, 312, 311, - 313, 314, 315, 316, 317, 318, 319, 321, 320, 323, - 322, 325, 324, 327, 326, 328, 329, 330, 332, 331, - 333, 333, 334, 334, 334, 334, 334, 335, 336, 337, - 338, 339, 341, 340, 342, 342, 343, 343, 343, 343, - 343, 343, 344, 345, 346, 348, 347, 349, 349, 350, - 350, 352, 351, 354, 353, 355, 355, 355, 356, 356, - 358, 357, 360, 359, 362, 361, 363, 363, 364, 364, - 364, 364, 364, 364, 365, 366, 367, 368, 369, 370, - 372, 371, 373, 373, 374, 374, 376, 375, 378, 377, - 379, 379, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 382, 381, 384, 383, 386, 385, 388, - 387, 390, 389, 392, 391, 394, 393, 396, 395, 397, - 397, 397, 397, 398, 400, 399, 401, 401, 402, 402, - 404, 403, 405, 405, 406, 406, 406, 406, 406, 406, - 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, - 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, - 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, - 408, 407, 410, 409, 411, 411, 412, 412, 414, 413, - 416, 415, 417, 417, 418, 418, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 420, 421, 422, 424, - 423, 426, 425, 428, 427, 429, 431, 430, 432, 434, - 433, 435, 435, 436, 436, 438, 437, 440, 439, 441, - 441, 442, 442, 443, 443, 443, 443, 443, 443, 443, - 443, 443, 444, 446, 445, 447, 448, 449, 450, 452, - 451, 453, 453, 454, 454, 456, 455, 458, 457, 459, - 459, 460, 460, 460, 460, 460, 460, 460, 462, 461, - 464, 463, 466, 465, 468, 467, 469, 469, 470, 470, - 472, 471, 474, 473, 475, 475, 476, 476, 477, 477, - 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, - 477, 477, 477, 479, 478, 481, 480, 483, 482, 485, - 484, 487, 486, 489, 488, 491, 490, 493, 492, 495, - 494, 497, 496, 499, 498, 501, 500, 503, 502, 504, - 504, 506, 505, 507, 507, 509, 508, 510, 510, 511, - 511, 512, 512, 512, 512, 512, 512, 512, 512, 512, - 512, 512, 513, 515, 514, 516, 517, 519, 518, 520, - 520, 521, 521, 521, 521, 521, 523, 522, 525, 524, - 527, 526, 528, 528, 529, 529, 529, 529, 529, 529, - 530, 532, 531, 533, 535, 534, 537, 536, 539, 538, - 540, 540, 541, 541, 541, 541, 541, 541, 541, 541, - 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, - 542, 544, 543, 545, 547, 546, 548, 549, 551, 550, - 552, 552, 554, 553, 556, 555, 557, 558, 560, 559, - 562, 561, 564, 563, 566, 565, 568, 567, 570, 569, - 571, 571, 572, 572, 574, 573, 575, 577, 576, 578, - 578, 580, 579, 581, 581, 582, 582, 582, 582, 582, - 582, 582, 583, 585, 584, 587, 586, 588, 588, 590, - 589, 591, 591, 592, 592, 592, 592, 592, 594, 593, - 595, 596, 597, 599, 598 + 243, 244, 246, 245, 247, 248, 249, 250, 251, 252, + 254, 253, 255, 255, 255, 255, 255, 257, 256, 259, + 258, 260, 261, 263, 262, 265, 264, 266, 267, 268, + 269, 271, 270, 272, 272, 273, 273, 273, 273, 273, + 273, 273, 275, 274, 277, 276, 279, 278, 280, 280, + 282, 281, 283, 283, 284, 286, 285, 288, 287, 289, + 289, 290, 292, 291, 294, 293, 296, 295, 297, 297, + 298, 298, 300, 299, 301, 301, 302, 302, 302, 302, + 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, + 302, 302, 302, 302, 302, 302, 302, 304, 303, 305, + 305, 305, 305, 307, 306, 309, 308, 311, 310, 312, + 314, 313, 315, 316, 317, 318, 319, 320, 321, 323, + 322, 325, 324, 327, 326, 329, 328, 330, 331, 332, + 334, 333, 335, 335, 336, 336, 336, 336, 336, 337, + 338, 339, 340, 341, 343, 342, 344, 344, 345, 345, + 345, 345, 345, 345, 346, 347, 348, 350, 349, 351, + 351, 352, 352, 354, 353, 356, 355, 357, 357, 357, + 358, 358, 360, 359, 362, 361, 364, 363, 365, 365, + 366, 366, 366, 366, 366, 366, 367, 368, 369, 370, + 371, 372, 374, 373, 375, 375, 376, 376, 378, 377, + 380, 379, 381, 381, 382, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 384, 383, 386, 385, + 388, 387, 390, 389, 392, 391, 394, 393, 396, 395, + 398, 397, 399, 399, 399, 399, 400, 402, 401, 403, + 403, 404, 404, 406, 405, 407, 407, 408, 408, 408, + 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, + 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, + 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, + 408, 408, 408, 408, 410, 409, 412, 411, 413, 413, + 414, 414, 416, 415, 418, 417, 419, 419, 420, 420, + 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, + 422, 423, 424, 426, 425, 428, 427, 430, 429, 431, + 433, 432, 434, 436, 435, 437, 437, 438, 438, 440, + 439, 442, 441, 443, 443, 444, 444, 445, 445, 445, + 445, 445, 445, 445, 445, 445, 446, 448, 447, 449, + 450, 451, 452, 454, 453, 455, 455, 456, 456, 458, + 457, 460, 459, 461, 461, 462, 462, 462, 462, 462, + 462, 462, 464, 463, 466, 465, 468, 467, 470, 469, + 471, 471, 472, 472, 474, 473, 476, 475, 477, 477, + 478, 478, 479, 479, 479, 479, 479, 479, 479, 479, + 479, 479, 479, 479, 479, 479, 479, 481, 480, 483, + 482, 485, 484, 487, 486, 489, 488, 491, 490, 493, + 492, 495, 494, 497, 496, 499, 498, 501, 500, 503, + 502, 505, 504, 506, 506, 508, 507, 509, 509, 511, + 510, 512, 512, 513, 513, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 515, 517, 516, 518, + 519, 521, 520, 522, 522, 523, 523, 523, 523, 523, + 525, 524, 527, 526, 529, 528, 530, 530, 531, 531, + 531, 531, 531, 531, 532, 534, 533, 535, 537, 536, + 539, 538, 541, 540, 542, 542, 543, 543, 543, 543, + 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, + 543, 543, 543, 543, 544, 546, 545, 547, 549, 548, + 550, 551, 553, 552, 554, 554, 556, 555, 558, 557, + 559, 560, 562, 561, 564, 563, 566, 565, 568, 567, + 570, 569, 572, 571, 573, 573, 574, 574, 576, 575, + 577, 579, 578, 580, 580, 582, 581, 583, 583, 584, + 584, 584, 584, 584, 584, 584, 585, 587, 586, 589, + 588, 590, 590, 592, 591, 593, 593, 594, 594, 594, + 594, 594, 596, 595, 597, 598, 599, 601, 600 }; - const signed char + const unsigned char Dhcp4Parser::yyr2_[] = { 0, 2, 0, 3, 0, 3, 0, 3, 0, 3, @@ -5276,107 +5134,107 @@ 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, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 0, 4, 3, 3, 3, 3, 3, 3, 0, - 4, 1, 1, 1, 1, 1, 0, 4, 0, 4, - 3, 0, 4, 0, 4, 3, 3, 3, 3, 0, - 6, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 0, 4, 0, 4, 1, 1, 0, 4, - 1, 1, 3, 0, 6, 0, 6, 1, 3, 1, - 0, 4, 0, 6, 0, 6, 0, 1, 1, 3, - 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 0, 4, 3, 3, 3, 3, 3, 3, + 0, 4, 1, 1, 1, 1, 1, 0, 4, 0, + 4, 3, 3, 0, 4, 0, 4, 3, 3, 3, + 3, 0, 6, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 0, 4, 0, 4, 1, 1, + 0, 4, 1, 1, 3, 0, 6, 0, 6, 1, + 3, 1, 0, 4, 0, 6, 0, 6, 0, 1, + 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 1, 1, 1, - 1, 0, 4, 0, 4, 0, 4, 3, 0, 4, - 3, 3, 3, 3, 3, 3, 3, 0, 4, 0, - 4, 0, 4, 0, 4, 3, 3, 3, 0, 6, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 6, 1, 3, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, - 0, 4, 0, 4, 0, 6, 1, 3, 1, 1, - 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, - 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, + 1, 1, 1, 0, 4, 0, 4, 0, 4, 3, + 0, 4, 3, 3, 3, 3, 3, 3, 3, 0, + 4, 0, 4, 0, 4, 0, 4, 3, 3, 3, + 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 6, 1, 3, 1, 1, + 1, 1, 1, 1, 3, 3, 3, 0, 6, 0, + 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, + 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, + 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, + 3, 3, 0, 6, 0, 1, 1, 3, 0, 4, + 0, 4, 1, 3, 1, 1, 1, 1, 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, 0, 4, 1, - 1, 1, 1, 3, 0, 6, 0, 1, 1, 3, - 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 1, 1, 1, 1, 3, 0, 6, 0, + 1, 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 6, 0, 4, 0, 1, 1, 3, 0, 4, - 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 1, 0, - 4, 0, 4, 0, 4, 1, 0, 4, 3, 0, - 6, 0, 1, 1, 3, 0, 4, 0, 4, 0, - 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 1, 1, 3, 3, 0, - 6, 0, 1, 1, 3, 0, 4, 0, 4, 1, - 3, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 0, 4, 0, 4, 0, 6, 0, 1, 1, 3, - 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, + 1, 1, 1, 1, 0, 6, 0, 4, 0, 1, + 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 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, 0, 4, 0, 1, 1, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 3, 3, 0, 6, 1, - 3, 1, 1, 1, 1, 1, 0, 4, 0, 4, - 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, - 3, 0, 4, 3, 0, 4, 0, 6, 0, 4, + 1, 3, 1, 0, 4, 0, 4, 0, 4, 1, + 0, 4, 3, 0, 6, 0, 1, 1, 3, 0, + 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, + 1, 3, 3, 0, 6, 0, 1, 1, 3, 0, + 4, 0, 4, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 0, 4, 0, 4, 0, 6, + 0, 1, 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, + 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 6, 1, 1, 0, 6, 1, 3, 0, + 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 3, + 3, 0, 6, 1, 3, 1, 1, 1, 1, 1, + 0, 4, 0, 4, 0, 6, 1, 3, 1, 1, + 1, 1, 1, 1, 3, 0, 4, 3, 0, 4, + 0, 6, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 0, 4, 3, 0, 4, 3, 3, 0, 4, - 1, 1, 0, 4, 0, 4, 3, 3, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 6, 0, 4, - 1, 3, 1, 1, 0, 6, 3, 0, 6, 1, - 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 3, 0, 4, 0, 6, 1, 3, 0, - 4, 1, 3, 1, 1, 1, 1, 1, 0, 4, - 3, 3, 3, 0, 4 + 1, 1, 1, 1, 3, 0, 4, 3, 0, 4, + 3, 3, 0, 4, 1, 1, 0, 4, 0, 4, + 3, 3, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 6, 0, 4, 1, 3, 1, 1, 0, 6, + 3, 0, 6, 1, 3, 0, 4, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 3, 0, 4, 0, + 6, 1, 3, 0, 4, 1, 3, 1, 1, 1, + 1, 1, 0, 4, 3, 3, 3, 0, 4 }; -#if PARSER4_DEBUG || 1 + // YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - // First, the terminals, then, starting at \a YYNTOKENS, nonterminals. + // First, the terminals, then, starting at \a yyntokens_, nonterminals. const char* const Dhcp4Parser::yytname_[] = { - "\"end of file\"", "error", "\"invalid token\"", "\",\"", "\":\"", - "\"[\"", "\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Dhcp4\"", - "\"config-control\"", "\"config-databases\"", - "\"config-fetch-wait-time\"", "\"interfaces-config\"", "\"interfaces\"", - "\"dhcp-socket-type\"", "\"raw\"", "\"udp\"", "\"outbound-interface\"", - "\"same-as-inbound\"", "\"use-routing\"", "\"re-detect\"", - "\"sanity-checks\"", "\"lease-checks\"", "\"echo-client-id\"", - "\"match-client-id\"", "\"authoritative\"", "\"next-server\"", - "\"server-hostname\"", "\"boot-file-name\"", "\"lease-database\"", - "\"hosts-database\"", "\"hosts-databases\"", "\"type\"", "\"memfile\"", - "\"mysql\"", "\"postgresql\"", "\"cql\"", "\"user\"", "\"password\"", - "\"host\"", "\"port\"", "\"persist\"", "\"lfc-interval\"", - "\"readonly\"", "\"connect-timeout\"", "\"contact-points\"", - "\"keyspace\"", "\"consistency\"", "\"serial-consistency\"", - "\"max-reconnect-tries\"", "\"reconnect-wait-time\"", - "\"request-timeout\"", "\"tcp-keepalive\"", "\"tcp-nodelay\"", - "\"max-row-errors\"", "\"valid-lifetime\"", "\"min-valid-lifetime\"", - "\"max-valid-lifetime\"", "\"renew-timer\"", "\"rebind-timer\"", - "\"calculate-tee-times\"", "\"t1-percent\"", "\"t2-percent\"", - "\"cache-threshold\"", "\"cache-max-age\"", + "\"end of file\"", "error", "$undefined", "\",\"", "\":\"", "\"[\"", + "\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Dhcp4\"", "\"config-control\"", + "\"config-databases\"", "\"config-fetch-wait-time\"", + "\"interfaces-config\"", "\"interfaces\"", "\"dhcp-socket-type\"", + "\"raw\"", "\"udp\"", "\"outbound-interface\"", "\"same-as-inbound\"", + "\"use-routing\"", "\"re-detect\"", "\"sanity-checks\"", + "\"lease-checks\"", "\"echo-client-id\"", "\"match-client-id\"", + "\"authoritative\"", "\"next-server\"", "\"server-hostname\"", + "\"boot-file-name\"", "\"lease-database\"", "\"hosts-database\"", + "\"hosts-databases\"", "\"type\"", "\"memfile\"", "\"mysql\"", + "\"postgresql\"", "\"cql\"", "\"user\"", "\"password\"", "\"host\"", + "\"port\"", "\"persist\"", "\"lfc-interval\"", "\"readonly\"", + "\"connect-timeout\"", "\"contact-points\"", "\"keyspace\"", + "\"consistency\"", "\"serial-consistency\"", "\"max-reconnect-tries\"", + "\"reconnect-wait-time\"", "\"request-timeout\"", "\"tcp-keepalive\"", + "\"tcp-nodelay\"", "\"max-row-errors\"", "\"valid-lifetime\"", + "\"min-valid-lifetime\"", "\"max-valid-lifetime\"", "\"renew-timer\"", + "\"rebind-timer\"", "\"calculate-tee-times\"", "\"t1-percent\"", + "\"t2-percent\"", "\"cache-threshold\"", "\"cache-max-age\"", "\"decline-probation-period\"", "\"server-tag\"", "\"statistic-default-sample-count\"", "\"statistic-default-sample-age\"", "\"ddns-send-updates\"", "\"ddns-override-no-update\"", "\"ddns-override-client-update\"", "\"ddns-replace-client-name\"", "\"ddns-generated-prefix\"", "\"ddns-qualifying-suffix\"", - "\"ddns-update-on-renew\"", "\"store-extended-info\"", "\"subnet4\"", - "\"4o6-interface\"", "\"4o6-interface-id\"", "\"4o6-subnet\"", - "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", - "\"space\"", "\"csv-format\"", "\"always-send\"", "\"record-types\"", + "\"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\"", "\"record-types\"", "\"encapsulate\"", "\"array\"", "\"shared-networks\"", "\"pools\"", "\"pool\"", "\"user-context\"", "\"comment\"", "\"subnet\"", "\"interface\"", "\"id\"", "\"reservation-mode\"", "\"disabled\"", @@ -5424,22 +5282,22 @@ namespace isc { namespace dhcp { "ddns_override_client_update", "ddns_replace_client_name", "$@21", "ddns_replace_client_name_value", "ddns_generated_prefix", "$@22", "ddns_qualifying_suffix", "$@23", "ddns_update_on_renew", - "hostname_char_set", "$@24", "hostname_char_replacement", "$@25", - "store_extended_info", "statistic_default_sample_count", - "statistic_default_sample_age", "ip_reservations_unique", - "interfaces_config", "$@26", "interfaces_config_params", - "interfaces_config_param", "sub_interfaces4", "$@27", "interfaces_list", - "$@28", "dhcp_socket_type", "$@29", "socket_type", "outbound_interface", - "$@30", "outbound_interface_value", "re_detect", "lease_database", - "$@31", "sanity_checks", "$@32", "sanity_checks_params", - "sanity_checks_param", "lease_checks", "$@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", "request_timeout", "tcp_keepalive", - "tcp_nodelay", "contact_points", "$@42", "keyspace", "$@43", - "consistency", "$@44", "serial_consistency", "$@45", + "ddns_use_conflict_resolution", "hostname_char_set", "$@24", + "hostname_char_replacement", "$@25", "store_extended_info", + "statistic_default_sample_count", "statistic_default_sample_age", + "ip_reservations_unique", "interfaces_config", "$@26", + "interfaces_config_params", "interfaces_config_param", "sub_interfaces4", + "$@27", "interfaces_list", "$@28", "dhcp_socket_type", "$@29", + "socket_type", "outbound_interface", "$@30", "outbound_interface_value", + "re_detect", "lease_database", "$@31", "sanity_checks", "$@32", + "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@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", "request_timeout", + "tcp_keepalive", "tcp_nodelay", "contact_points", "$@42", "keyspace", + "$@43", "consistency", "$@44", "serial_consistency", "$@45", "max_reconnect_tries", "reconnect_wait_time", "max_row_errors", "host_reservation_identifiers", "$@46", "host_reservation_identifiers_list", "host_reservation_identifier", @@ -5510,110 +5368,110 @@ namespace isc { namespace dhcp { "output_params_list", "output_params", "output", "$@129", "flush", "maxsize", "maxver", "pattern", "$@130", YY_NULLPTR }; -#endif - #if PARSER4_DEBUG - const short + const unsigned short int Dhcp4Parser::yyrline_[] = { - 0, 281, 281, 281, 282, 282, 283, 283, 284, 284, - 285, 285, 286, 286, 287, 287, 288, 288, 289, 289, - 290, 290, 291, 291, 292, 292, 293, 293, 301, 302, - 303, 304, 305, 306, 307, 310, 315, 315, 326, 329, - 330, 333, 338, 346, 346, 353, 354, 357, 361, 368, - 368, 375, 376, 379, 383, 394, 403, 403, 418, 418, - 435, 435, 444, 445, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 508, 514, 520, 526, 532, 538, 544, 550, 556, 562, - 568, 574, 574, 583, 589, 595, 601, 607, 613, 619, - 619, 628, 631, 634, 637, 640, 646, 646, 655, 655, - 664, 670, 670, 679, 679, 688, 694, 700, 706, 712, - 712, 724, 725, 728, 729, 730, 731, 732, 733, 734, - 737, 737, 746, 746, 757, 757, 765, 766, 769, 769, - 777, 779, 783, 790, 790, 803, 803, 814, 815, 817, - 819, 819, 838, 838, 851, 851, 862, 863, 866, 867, - 870, 870, 880, 881, 884, 885, 886, 887, 888, 889, - 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, - 900, 901, 902, 903, 904, 907, 907, 915, 916, 917, - 918, 921, 921, 930, 930, 939, 939, 948, 954, 954, - 963, 969, 975, 981, 987, 993, 999, 1005, 1005, 1014, - 1014, 1023, 1023, 1032, 1032, 1041, 1047, 1053, 1060, 1060, - 1071, 1072, 1075, 1076, 1077, 1078, 1079, 1082, 1087, 1092, - 1097, 1102, 1109, 1109, 1122, 1123, 1126, 1127, 1128, 1129, - 1130, 1131, 1134, 1140, 1146, 1152, 1152, 1163, 1164, 1167, - 1168, 1171, 1171, 1181, 1181, 1191, 1192, 1193, 1196, 1197, - 1200, 1200, 1209, 1209, 1218, 1218, 1230, 1231, 1234, 1235, - 1236, 1237, 1238, 1239, 1242, 1248, 1254, 1260, 1266, 1272, - 1281, 1281, 1295, 1296, 1299, 1300, 1307, 1307, 1333, 1333, - 1344, 1345, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, - 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, - 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, - 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, - 1387, 1388, 1389, 1392, 1392, 1401, 1401, 1410, 1410, 1419, - 1419, 1428, 1428, 1437, 1437, 1446, 1446, 1457, 1457, 1465, - 1466, 1467, 1468, 1471, 1479, 1479, 1491, 1492, 1496, 1497, - 1500, 1500, 1508, 1509, 1512, 1513, 1514, 1515, 1516, 1517, - 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, - 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, - 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, - 1554, 1554, 1568, 1568, 1577, 1578, 1581, 1582, 1587, 1587, - 1602, 1602, 1616, 1617, 1620, 1621, 1624, 1625, 1626, 1627, - 1628, 1629, 1630, 1631, 1632, 1633, 1636, 1638, 1644, 1646, - 1646, 1655, 1655, 1664, 1664, 1673, 1675, 1675, 1684, 1694, - 1694, 1707, 1708, 1713, 1714, 1719, 1719, 1731, 1731, 1743, - 1744, 1749, 1750, 1755, 1756, 1757, 1758, 1759, 1760, 1761, - 1762, 1763, 1766, 1768, 1768, 1777, 1779, 1781, 1787, 1796, - 1796, 1809, 1810, 1813, 1814, 1817, 1817, 1827, 1827, 1837, - 1838, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1850, 1850, - 1859, 1859, 1884, 1884, 1914, 1914, 1925, 1926, 1929, 1930, - 1933, 1933, 1942, 1942, 1951, 1952, 1955, 1956, 1960, 1961, - 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, - 1972, 1973, 1974, 1977, 1977, 1986, 1986, 1995, 1995, 2004, - 2004, 2013, 2013, 2024, 2024, 2033, 2033, 2042, 2042, 2051, - 2051, 2060, 2060, 2069, 2069, 2078, 2078, 2092, 2092, 2103, - 2104, 2110, 2110, 2121, 2122, 2125, 2125, 2135, 2136, 2139, - 2140, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, - 2152, 2153, 2156, 2158, 2158, 2167, 2175, 2183, 2183, 2194, - 2195, 2198, 2199, 2200, 2201, 2202, 2205, 2205, 2214, 2214, - 2226, 2226, 2239, 2240, 2243, 2244, 2245, 2246, 2247, 2248, - 2251, 2257, 2257, 2266, 2272, 2272, 2282, 2282, 2295, 2295, - 2305, 2306, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, - 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, - 2329, 2335, 2335, 2344, 2350, 2350, 2359, 2365, 2371, 2371, - 2380, 2381, 2384, 2384, 2394, 2394, 2404, 2411, 2418, 2418, - 2427, 2427, 2437, 2437, 2447, 2447, 2459, 2459, 2471, 2471, - 2481, 2482, 2486, 2487, 2490, 2490, 2501, 2509, 2509, 2522, - 2523, 2527, 2527, 2535, 2536, 2539, 2540, 2541, 2542, 2543, - 2544, 2545, 2548, 2554, 2554, 2563, 2563, 2574, 2575, 2578, - 2578, 2586, 2587, 2590, 2591, 2592, 2593, 2594, 2597, 2597, - 2606, 2612, 2618, 2624, 2624 + 0, 282, 282, 282, 283, 283, 284, 284, 285, 285, + 286, 286, 287, 287, 288, 288, 289, 289, 290, 290, + 291, 291, 292, 292, 293, 293, 294, 294, 302, 303, + 304, 305, 306, 307, 308, 311, 316, 316, 327, 330, + 331, 334, 339, 347, 347, 354, 355, 358, 362, 369, + 369, 376, 377, 380, 384, 395, 404, 404, 419, 419, + 436, 436, 445, 446, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 510, 516, 522, 528, 534, 540, 546, 552, 558, + 564, 570, 576, 576, 585, 591, 597, 603, 609, 615, + 621, 621, 630, 633, 636, 639, 642, 648, 648, 657, + 657, 666, 672, 678, 678, 687, 687, 696, 702, 708, + 714, 720, 720, 732, 733, 736, 737, 738, 739, 740, + 741, 742, 745, 745, 754, 754, 765, 765, 773, 774, + 777, 777, 785, 787, 791, 798, 798, 811, 811, 822, + 823, 825, 827, 827, 846, 846, 859, 859, 870, 871, + 874, 875, 878, 878, 888, 889, 892, 893, 894, 895, + 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, + 906, 907, 908, 909, 910, 911, 912, 915, 915, 923, + 924, 925, 926, 929, 929, 938, 938, 947, 947, 956, + 962, 962, 971, 977, 983, 989, 995, 1001, 1007, 1013, + 1013, 1022, 1022, 1031, 1031, 1040, 1040, 1049, 1055, 1061, + 1068, 1068, 1079, 1080, 1083, 1084, 1085, 1086, 1087, 1090, + 1095, 1100, 1105, 1110, 1117, 1117, 1130, 1131, 1134, 1135, + 1136, 1137, 1138, 1139, 1142, 1148, 1154, 1160, 1160, 1171, + 1172, 1175, 1176, 1179, 1179, 1189, 1189, 1199, 1200, 1201, + 1204, 1205, 1208, 1208, 1217, 1217, 1226, 1226, 1238, 1239, + 1242, 1243, 1244, 1245, 1246, 1247, 1250, 1256, 1262, 1268, + 1274, 1280, 1289, 1289, 1303, 1304, 1307, 1308, 1315, 1315, + 1341, 1341, 1352, 1353, 1357, 1358, 1359, 1360, 1361, 1362, + 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, + 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, + 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, + 1393, 1394, 1395, 1396, 1397, 1398, 1401, 1401, 1410, 1410, + 1419, 1419, 1428, 1428, 1437, 1437, 1446, 1446, 1455, 1455, + 1466, 1466, 1474, 1475, 1476, 1477, 1480, 1488, 1488, 1500, + 1501, 1505, 1506, 1509, 1509, 1517, 1518, 1521, 1522, 1523, + 1524, 1525, 1526, 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, 1564, 1564, 1578, 1578, 1587, 1588, + 1591, 1592, 1597, 1597, 1612, 1612, 1626, 1627, 1630, 1631, + 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, + 1646, 1648, 1654, 1656, 1656, 1665, 1665, 1674, 1674, 1683, + 1685, 1685, 1694, 1704, 1704, 1717, 1718, 1723, 1724, 1729, + 1729, 1741, 1741, 1753, 1754, 1759, 1760, 1765, 1766, 1767, + 1768, 1769, 1770, 1771, 1772, 1773, 1776, 1778, 1778, 1787, + 1789, 1791, 1797, 1806, 1806, 1819, 1820, 1823, 1824, 1827, + 1827, 1837, 1837, 1847, 1848, 1851, 1852, 1853, 1854, 1855, + 1856, 1857, 1860, 1860, 1869, 1869, 1894, 1894, 1924, 1924, + 1935, 1936, 1939, 1940, 1943, 1943, 1952, 1952, 1961, 1962, + 1965, 1966, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, + 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1987, 1987, 1996, + 1996, 2005, 2005, 2014, 2014, 2023, 2023, 2034, 2034, 2043, + 2043, 2052, 2052, 2061, 2061, 2070, 2070, 2079, 2079, 2088, + 2088, 2102, 2102, 2113, 2114, 2120, 2120, 2131, 2132, 2135, + 2135, 2145, 2146, 2149, 2150, 2153, 2154, 2155, 2156, 2157, + 2158, 2159, 2160, 2161, 2162, 2163, 2166, 2168, 2168, 2177, + 2185, 2193, 2193, 2204, 2205, 2208, 2209, 2210, 2211, 2212, + 2215, 2215, 2224, 2224, 2236, 2236, 2249, 2250, 2253, 2254, + 2255, 2256, 2257, 2258, 2261, 2267, 2267, 2276, 2282, 2282, + 2292, 2292, 2305, 2305, 2315, 2316, 2319, 2320, 2321, 2322, + 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, + 2333, 2334, 2335, 2336, 2339, 2345, 2345, 2354, 2360, 2360, + 2369, 2375, 2381, 2381, 2390, 2391, 2394, 2394, 2404, 2404, + 2414, 2421, 2428, 2428, 2437, 2437, 2447, 2447, 2457, 2457, + 2469, 2469, 2481, 2481, 2491, 2492, 2496, 2497, 2500, 2500, + 2511, 2519, 2519, 2532, 2533, 2537, 2537, 2545, 2546, 2549, + 2550, 2551, 2552, 2553, 2554, 2555, 2558, 2564, 2564, 2573, + 2573, 2584, 2585, 2588, 2588, 2596, 2597, 2600, 2601, 2602, + 2603, 2604, 2607, 2607, 2616, 2622, 2628, 2634, 2634 }; + // Print the state stack on the debug stream. void - Dhcp4Parser::yy_stack_print_ () const + Dhcp4Parser::yystack_print_ () { *yycdebug_ << "Stack now"; for (stack_type::const_iterator i = yystack_.begin (), i_end = yystack_.end (); i != i_end; ++i) - *yycdebug_ << ' ' << int (i->state); - *yycdebug_ << '\n'; + *yycdebug_ << ' ' << i->state; + *yycdebug_ << std::endl; } + // Report on the debug stream that the rule \a yyrule is going to be reduced. void - Dhcp4Parser::yy_reduce_print_ (int yyrule) const + Dhcp4Parser::yy_reduce_print_ (int yyrule) { - int yylno = yyrline_[yyrule]; + unsigned int yylno = yyrline_[yyrule]; int yynrhs = yyr2_[yyrule]; // Print the symbols being reduced, and their result. *yycdebug_ << "Reducing stack by rule " << yyrule - 1 - << " (line " << yylno << "):\n"; + << " (line " << yylno << "):" << std::endl; // The symbols being reduced. for (int yyi = 0; yyi < yynrhs; yyi++) YY_SYMBOL_PRINT (" $" << yyi + 1 << " =", @@ -5622,11 +5480,10 @@ namespace isc { namespace dhcp { #endif // PARSER4_DEBUG -#line 14 "dhcp4_parser.yy" +#line 14 "dhcp4_parser.yy" // lalr1.cc:1167 } } // isc::dhcp -#line 5628 "dhcp4_parser.cc" - -#line 2633 "dhcp4_parser.yy" +#line 5486 "dhcp4_parser.cc" // lalr1.cc:1167 +#line 2643 "dhcp4_parser.yy" // lalr1.cc:1168 void diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index 71c40c44e2..07083a6ef0 100644 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.7.2. +// A Bison parser, made by GNU Bison 3.0.4. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -30,7 +30,6 @@ // This special exception was added by the Free Software Foundation in // version 2.2 of Bison. - /** ** \file dhcp4_parser.h ** Define the isc::dhcp::parser class. @@ -38,14 +37,10 @@ // C++ LALR(1) parser skeleton written by Akim Demaille. -// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, -// especially those whose name start with YY_ or yy_. They are -// private implementation details that can be changed or removed. - #ifndef YY_PARSER4_DHCP4_PARSER_H_INCLUDED # define YY_PARSER4_DHCP4_PARSER_H_INCLUDED -// "%code requires" blocks. -#line 17 "dhcp4_parser.yy" +// // "%code requires" blocks. +#line 17 "dhcp4_parser.yy" // lalr1.cc:377 #include <string> #include <cc/data.h> @@ -57,7 +52,7 @@ using namespace isc::dhcp; using namespace isc::data; using namespace std; -#line 61 "dhcp4_parser.h" +#line 56 "dhcp4_parser.h" // lalr1.cc:377 # include <cassert> # include <cstdlib> // std::abort @@ -65,64 +60,39 @@ using namespace std; # include <stdexcept> # include <string> # include <vector> - -#if defined __cplusplus -# define YY_CPLUSPLUS __cplusplus -#else -# define YY_CPLUSPLUS 199711L -#endif - -// Support move semantics when possible. -#if 201103L <= YY_CPLUSPLUS -# define YY_MOVE std::move -# define YY_MOVE_OR_COPY move -# define YY_MOVE_REF(Type) Type&& -# define YY_RVREF(Type) Type&& -# define YY_COPY(Type) Type -#else -# define YY_MOVE -# define YY_MOVE_OR_COPY copy -# define YY_MOVE_REF(Type) Type& -# define YY_RVREF(Type) const Type& -# define YY_COPY(Type) const Type& -#endif - -// Support noexcept when possible. -#if 201103L <= YY_CPLUSPLUS -# define YY_NOEXCEPT noexcept -# define YY_NOTHROW -#else -# define YY_NOEXCEPT -# define YY_NOTHROW throw () -#endif - -// Support constexpr when possible. -#if 201703 <= YY_CPLUSPLUS -# define YY_CONSTEXPR constexpr -#else -# define YY_CONSTEXPR -#endif +# include "stack.hh" # include "location.hh" #include <typeinfo> -#ifndef YY_ASSERT +#ifndef YYASSERT # include <cassert> -# define YY_ASSERT assert +# define YYASSERT assert #endif -#ifndef YY_ATTRIBUTE_PURE -# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) # else -# define YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE(Spec) /* empty */ # endif #endif +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + #ifndef YY_ATTRIBUTE_UNUSED -# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) # else -# define YY_ATTRIBUTE_UNUSED +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) # endif #endif @@ -133,13 +103,13 @@ using namespace std; # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -152,39 +122,6 @@ using namespace std; # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif -#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ -# define YY_IGNORE_USELESS_CAST_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") -# define YY_IGNORE_USELESS_CAST_END \ - _Pragma ("GCC diagnostic pop") -#endif -#ifndef YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_END -#endif - -# ifndef YY_CAST -# ifdef __cplusplus -# define YY_CAST(Type, Val) static_cast<Type> (Val) -# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) -# else -# define YY_CAST(Type, Val) ((Type) (Val)) -# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) -# endif -# endif -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - /* Debug traces. */ #ifndef PARSER4_DEBUG # if defined YYDEBUG @@ -198,182 +135,120 @@ using namespace std; # endif /* ! defined YYDEBUG */ #endif /* ! defined PARSER4_DEBUG */ -#line 14 "dhcp4_parser.yy" +#line 14 "dhcp4_parser.yy" // lalr1.cc:377 namespace isc { namespace dhcp { -#line 204 "dhcp4_parser.h" - +#line 141 "dhcp4_parser.h" // lalr1.cc:377 - /// A Bison parser. - class Dhcp4Parser - { - public: -#ifndef PARSER4_STYPE - /// A buffer to store and retrieve objects. + /// A char[S] buffer to store and retrieve objects. /// /// Sort of a variant, but does not keep track of the nature /// of the stored data, since that knowledge is available - /// via the current parser state. - class semantic_type + /// via the current state. + template <size_t S> + struct variant { - public: /// Type of *this. - typedef semantic_type self_type; + typedef variant<S> self_type; /// Empty construction. - semantic_type () YY_NOEXCEPT - : yybuffer_ () - , yytypeid_ (YY_NULLPTR) + variant () + : yytypeid_ (YY_NULLPTR) {} /// Construct and fill. template <typename T> - semantic_type (YY_RVREF (T) t) + variant (const T& t) : yytypeid_ (&typeid (T)) { - YY_ASSERT (sizeof (T) <= size); - new (yyas_<T> ()) T (YY_MOVE (t)); + YYASSERT (sizeof (T) <= S); + new (yyas_<T> ()) T (t); } -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - semantic_type (const self_type&) = delete; - /// Non copyable. - self_type& operator= (const self_type&) = delete; -#endif - /// Destruction, allowed only if empty. - ~semantic_type () YY_NOEXCEPT + ~variant () { - YY_ASSERT (!yytypeid_); + YYASSERT (!yytypeid_); } -# if 201103L <= YY_CPLUSPLUS - /// Instantiate a \a T in here from \a t. - template <typename T, typename... U> - T& - emplace (U&&... u) - { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); - yytypeid_ = & typeid (T); - return *new (yyas_<T> ()) T (std::forward <U>(u)...); - } -# else /// Instantiate an empty \a T in here. template <typename T> T& - emplace () + build () { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); + YYASSERT (!yytypeid_); + YYASSERT (sizeof (T) <= S); yytypeid_ = & typeid (T); - return *new (yyas_<T> ()) T (); + return *new (yyas_<T> ()) T; } /// Instantiate a \a T in here from \a t. template <typename T> T& - emplace (const T& t) + build (const T& t) { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); + YYASSERT (!yytypeid_); + YYASSERT (sizeof (T) <= S); yytypeid_ = & typeid (T); return *new (yyas_<T> ()) T (t); } -# endif - - /// Instantiate an empty \a T in here. - /// Obsolete, use emplace. - template <typename T> - T& - build () - { - return emplace<T> (); - } - - /// Instantiate a \a T in here from \a t. - /// Obsolete, use emplace. - template <typename T> - T& - build (const T& t) - { - return emplace<T> (t); - } /// Accessor to a built \a T. template <typename T> T& - as () YY_NOEXCEPT + as () { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == typeid (T)); - YY_ASSERT (sizeof (T) <= size); + YYASSERT (*yytypeid_ == typeid (T)); + YYASSERT (sizeof (T) <= S); return *yyas_<T> (); } /// Const accessor to a built \a T (for %printer). template <typename T> const T& - as () const YY_NOEXCEPT + as () const { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == typeid (T)); - YY_ASSERT (sizeof (T) <= size); + YYASSERT (*yytypeid_ == typeid (T)); + YYASSERT (sizeof (T) <= S); return *yyas_<T> (); } - /// Swap the content with \a that, of same type. + /// Swap the content with \a other, of same type. /// /// Both variants must be built beforehand, because swapping the actual /// data requires reading it (with as()), and this is not possible on /// unconstructed variants: it would require some dynamic testing, which - /// should not be the variant's responsibility. + /// should not be the variant's responsability. /// Swapping between built and (possibly) non-built is done with - /// self_type::move (). + /// variant::move (). template <typename T> void - swap (self_type& that) YY_NOEXCEPT + swap (self_type& other) { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == *that.yytypeid_); - std::swap (as<T> (), that.as<T> ()); + YYASSERT (yytypeid_); + YYASSERT (*yytypeid_ == *other.yytypeid_); + std::swap (as<T> (), other.as<T> ()); } - /// Move the content of \a that to this. + /// Move the content of \a other to this. /// - /// Destroys \a that. + /// Destroys \a other. template <typename T> void - move (self_type& that) + move (self_type& other) { -# if 201103L <= YY_CPLUSPLUS - emplace<T> (std::move (that.as<T> ())); -# else - emplace<T> (); - swap<T> (that); -# endif - that.destroy<T> (); + build<T> (); + swap<T> (other); + other.destroy<T> (); } -# if 201103L <= YY_CPLUSPLUS - /// Move the content of \a that to this. + /// Copy the content of \a other to this. template <typename T> void - move (self_type&& that) + copy (const self_type& other) { - emplace<T> (std::move (that.as<T> ())); - that.destroy<T> (); - } -#endif - - /// Copy the content of \a that to this. - template <typename T> - void - copy (const self_type& that) - { - emplace<T> (that.as<T> ()); + build<T> (other.as<T> ()); } /// Destroy the stored \a T. @@ -386,17 +261,14 @@ namespace isc { namespace dhcp { } private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. - semantic_type (const self_type&); - /// Non copyable. - self_type& operator= (const self_type&); -#endif + /// Prohibit blind copies. + self_type& operator=(const self_type&); + variant (const self_type&); /// Accessor to raw memory as \a T. template <typename T> T* - yyas_ () YY_NOEXCEPT + yyas_ () { void *yyp = yybuffer_.yyraw; return static_cast<T*> (yyp); @@ -405,12 +277,30 @@ namespace isc { namespace dhcp { /// Const accessor to raw memory as \a T. template <typename T> const T* - yyas_ () const YY_NOEXCEPT + yyas_ () const { const void *yyp = yybuffer_.yyraw; return static_cast<const T*> (yyp); } + union + { + /// Strongest alignment constraints. + long double yyalign_me; + /// A buffer large enough to store any of the semantic values. + char yyraw[S]; + } yybuffer_; + + /// Whether the content is built: if defined, the name of the stored type. + const std::type_info *yytypeid_; + }; + + + /// A Bison parser. + class Dhcp4Parser + { + public: +#ifndef PARSER4_STYPE /// An auxiliary type to compute the largest semantic type. union union_type { @@ -422,37 +312,23 @@ namespace isc { namespace dhcp { // db_type // hr_mode // ncr_protocol_value - char dummy1[sizeof (ElementPtr)]; + char dummy1[sizeof(ElementPtr)]; // "boolean" - char dummy2[sizeof (bool)]; + char dummy2[sizeof(bool)]; // "floating point" - char dummy3[sizeof (double)]; + char dummy3[sizeof(double)]; // "integer" - char dummy4[sizeof (int64_t)]; + char dummy4[sizeof(int64_t)]; // "constant string" - char dummy5[sizeof (std::string)]; - }; - - /// The size of the largest semantic type. - enum { size = sizeof (union_type) }; - - /// A buffer to store semantic values. - union - { - /// Strongest alignment constraints. - long double yyalign_me; - /// A buffer large enough to store any of the semantic values. - char yyraw[size]; - } yybuffer_; - - /// Whether the content is built: if defined, the name of the stored type. - const std::type_info *yytypeid_; - }; + char dummy5[sizeof(std::string)]; +}; + /// Symbol semantic values. + typedef variant<sizeof(union_type)> semantic_type; #else typedef PARSER4_STYPE semantic_type; #endif @@ -462,852 +338,227 @@ namespace isc { namespace dhcp { /// Syntax errors thrown from user actions. struct syntax_error : std::runtime_error { - syntax_error (const location_type& l, const std::string& m) - : std::runtime_error (m) - , location (l) - {} - - syntax_error (const syntax_error& s) - : std::runtime_error (s.what ()) - , location (s.location) - {} - - ~syntax_error () YY_NOEXCEPT YY_NOTHROW; - + syntax_error (const location_type& l, const std::string& m); location_type location; }; - /// Token kinds. + /// Tokens. struct token { - enum token_kind_type - { - TOKEN_PARSER4_EMPTY = -2, - TOKEN_END = 0, // "end of file" - TOKEN_PARSER4_error = 256, // error - TOKEN_PARSER4_UNDEF = 257, // "invalid token" - TOKEN_COMMA = 258, // "," - TOKEN_COLON = 259, // ":" - TOKEN_LSQUARE_BRACKET = 260, // "[" - TOKEN_RSQUARE_BRACKET = 261, // "]" - TOKEN_LCURLY_BRACKET = 262, // "{" - TOKEN_RCURLY_BRACKET = 263, // "}" - TOKEN_NULL_TYPE = 264, // "null" - TOKEN_DHCP4 = 265, // "Dhcp4" - TOKEN_CONFIG_CONTROL = 266, // "config-control" - TOKEN_CONFIG_DATABASES = 267, // "config-databases" - TOKEN_CONFIG_FETCH_WAIT_TIME = 268, // "config-fetch-wait-time" - TOKEN_INTERFACES_CONFIG = 269, // "interfaces-config" - TOKEN_INTERFACES = 270, // "interfaces" - TOKEN_DHCP_SOCKET_TYPE = 271, // "dhcp-socket-type" - TOKEN_RAW = 272, // "raw" - TOKEN_UDP = 273, // "udp" - TOKEN_OUTBOUND_INTERFACE = 274, // "outbound-interface" - TOKEN_SAME_AS_INBOUND = 275, // "same-as-inbound" - TOKEN_USE_ROUTING = 276, // "use-routing" - TOKEN_RE_DETECT = 277, // "re-detect" - TOKEN_SANITY_CHECKS = 278, // "sanity-checks" - TOKEN_LEASE_CHECKS = 279, // "lease-checks" - TOKEN_ECHO_CLIENT_ID = 280, // "echo-client-id" - TOKEN_MATCH_CLIENT_ID = 281, // "match-client-id" - TOKEN_AUTHORITATIVE = 282, // "authoritative" - TOKEN_NEXT_SERVER = 283, // "next-server" - TOKEN_SERVER_HOSTNAME = 284, // "server-hostname" - TOKEN_BOOT_FILE_NAME = 285, // "boot-file-name" - TOKEN_LEASE_DATABASE = 286, // "lease-database" - TOKEN_HOSTS_DATABASE = 287, // "hosts-database" - TOKEN_HOSTS_DATABASES = 288, // "hosts-databases" - TOKEN_TYPE = 289, // "type" - TOKEN_MEMFILE = 290, // "memfile" - TOKEN_MYSQL = 291, // "mysql" - TOKEN_POSTGRESQL = 292, // "postgresql" - TOKEN_CQL = 293, // "cql" - TOKEN_USER = 294, // "user" - TOKEN_PASSWORD = 295, // "password" - TOKEN_HOST = 296, // "host" - TOKEN_PORT = 297, // "port" - TOKEN_PERSIST = 298, // "persist" - TOKEN_LFC_INTERVAL = 299, // "lfc-interval" - TOKEN_READONLY = 300, // "readonly" - TOKEN_CONNECT_TIMEOUT = 301, // "connect-timeout" - TOKEN_CONTACT_POINTS = 302, // "contact-points" - TOKEN_KEYSPACE = 303, // "keyspace" - TOKEN_CONSISTENCY = 304, // "consistency" - TOKEN_SERIAL_CONSISTENCY = 305, // "serial-consistency" - TOKEN_MAX_RECONNECT_TRIES = 306, // "max-reconnect-tries" - TOKEN_RECONNECT_WAIT_TIME = 307, // "reconnect-wait-time" - TOKEN_REQUEST_TIMEOUT = 308, // "request-timeout" - TOKEN_TCP_KEEPALIVE = 309, // "tcp-keepalive" - TOKEN_TCP_NODELAY = 310, // "tcp-nodelay" - TOKEN_MAX_ROW_ERRORS = 311, // "max-row-errors" - TOKEN_VALID_LIFETIME = 312, // "valid-lifetime" - TOKEN_MIN_VALID_LIFETIME = 313, // "min-valid-lifetime" - TOKEN_MAX_VALID_LIFETIME = 314, // "max-valid-lifetime" - TOKEN_RENEW_TIMER = 315, // "renew-timer" - TOKEN_REBIND_TIMER = 316, // "rebind-timer" - TOKEN_CALCULATE_TEE_TIMES = 317, // "calculate-tee-times" - TOKEN_T1_PERCENT = 318, // "t1-percent" - TOKEN_T2_PERCENT = 319, // "t2-percent" - TOKEN_CACHE_THRESHOLD = 320, // "cache-threshold" - TOKEN_CACHE_MAX_AGE = 321, // "cache-max-age" - TOKEN_DECLINE_PROBATION_PERIOD = 322, // "decline-probation-period" - TOKEN_SERVER_TAG = 323, // "server-tag" - TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 324, // "statistic-default-sample-count" - TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 325, // "statistic-default-sample-age" - TOKEN_DDNS_SEND_UPDATES = 326, // "ddns-send-updates" - TOKEN_DDNS_OVERRIDE_NO_UPDATE = 327, // "ddns-override-no-update" - TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 328, // "ddns-override-client-update" - TOKEN_DDNS_REPLACE_CLIENT_NAME = 329, // "ddns-replace-client-name" - TOKEN_DDNS_GENERATED_PREFIX = 330, // "ddns-generated-prefix" - TOKEN_DDNS_QUALIFYING_SUFFIX = 331, // "ddns-qualifying-suffix" - TOKEN_DDNS_UPDATE_ON_RENEW = 332, // "ddns-update-on-renew" - TOKEN_STORE_EXTENDED_INFO = 333, // "store-extended-info" - TOKEN_SUBNET4 = 334, // "subnet4" - TOKEN_SUBNET_4O6_INTERFACE = 335, // "4o6-interface" - TOKEN_SUBNET_4O6_INTERFACE_ID = 336, // "4o6-interface-id" - TOKEN_SUBNET_4O6_SUBNET = 337, // "4o6-subnet" - TOKEN_OPTION_DEF = 338, // "option-def" - TOKEN_OPTION_DATA = 339, // "option-data" - TOKEN_NAME = 340, // "name" - TOKEN_DATA = 341, // "data" - TOKEN_CODE = 342, // "code" - TOKEN_SPACE = 343, // "space" - TOKEN_CSV_FORMAT = 344, // "csv-format" - TOKEN_ALWAYS_SEND = 345, // "always-send" - TOKEN_RECORD_TYPES = 346, // "record-types" - TOKEN_ENCAPSULATE = 347, // "encapsulate" - TOKEN_ARRAY = 348, // "array" - TOKEN_SHARED_NETWORKS = 349, // "shared-networks" - TOKEN_POOLS = 350, // "pools" - TOKEN_POOL = 351, // "pool" - TOKEN_USER_CONTEXT = 352, // "user-context" - TOKEN_COMMENT = 353, // "comment" - TOKEN_SUBNET = 354, // "subnet" - TOKEN_INTERFACE = 355, // "interface" - TOKEN_ID = 356, // "id" - TOKEN_RESERVATION_MODE = 357, // "reservation-mode" - TOKEN_DISABLED = 358, // "disabled" - TOKEN_OUT_OF_POOL = 359, // "out-of-pool" - TOKEN_GLOBAL = 360, // "global" - TOKEN_ALL = 361, // "all" - TOKEN_HOST_RESERVATION_IDENTIFIERS = 362, // "host-reservation-identifiers" - TOKEN_CLIENT_CLASSES = 363, // "client-classes" - TOKEN_REQUIRE_CLIENT_CLASSES = 364, // "require-client-classes" - TOKEN_TEST = 365, // "test" - TOKEN_ONLY_IF_REQUIRED = 366, // "only-if-required" - TOKEN_CLIENT_CLASS = 367, // "client-class" - TOKEN_RESERVATIONS = 368, // "reservations" - TOKEN_DUID = 369, // "duid" - TOKEN_HW_ADDRESS = 370, // "hw-address" - TOKEN_CIRCUIT_ID = 371, // "circuit-id" - TOKEN_CLIENT_ID = 372, // "client-id" - TOKEN_HOSTNAME = 373, // "hostname" - TOKEN_FLEX_ID = 374, // "flex-id" - TOKEN_RELAY = 375, // "relay" - TOKEN_IP_ADDRESS = 376, // "ip-address" - TOKEN_IP_ADDRESSES = 377, // "ip-addresses" - TOKEN_HOOKS_LIBRARIES = 378, // "hooks-libraries" - TOKEN_LIBRARY = 379, // "library" - TOKEN_PARAMETERS = 380, // "parameters" - TOKEN_EXPIRED_LEASES_PROCESSING = 381, // "expired-leases-processing" - TOKEN_RECLAIM_TIMER_WAIT_TIME = 382, // "reclaim-timer-wait-time" - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 383, // "flush-reclaimed-timer-wait-time" - TOKEN_HOLD_RECLAIMED_TIME = 384, // "hold-reclaimed-time" - TOKEN_MAX_RECLAIM_LEASES = 385, // "max-reclaim-leases" - TOKEN_MAX_RECLAIM_TIME = 386, // "max-reclaim-time" - TOKEN_UNWARNED_RECLAIM_CYCLES = 387, // "unwarned-reclaim-cycles" - TOKEN_DHCP4O6_PORT = 388, // "dhcp4o6-port" - TOKEN_DHCP_MULTI_THREADING = 389, // "multi-threading" - TOKEN_ENABLE_MULTI_THREADING = 390, // "enable-multi-threading" - TOKEN_THREAD_POOL_SIZE = 391, // "thread-pool-size" - TOKEN_PACKET_QUEUE_SIZE = 392, // "packet-queue-size" - TOKEN_CONTROL_SOCKET = 393, // "control-socket" - TOKEN_SOCKET_TYPE = 394, // "socket-type" - TOKEN_SOCKET_NAME = 395, // "socket-name" - TOKEN_DHCP_QUEUE_CONTROL = 396, // "dhcp-queue-control" - TOKEN_ENABLE_QUEUE = 397, // "enable-queue" - TOKEN_QUEUE_TYPE = 398, // "queue-type" - TOKEN_CAPACITY = 399, // "capacity" - TOKEN_DHCP_DDNS = 400, // "dhcp-ddns" - TOKEN_ENABLE_UPDATES = 401, // "enable-updates" - TOKEN_QUALIFYING_SUFFIX = 402, // "qualifying-suffix" - TOKEN_SERVER_IP = 403, // "server-ip" - TOKEN_SERVER_PORT = 404, // "server-port" - TOKEN_SENDER_IP = 405, // "sender-ip" - TOKEN_SENDER_PORT = 406, // "sender-port" - TOKEN_MAX_QUEUE_SIZE = 407, // "max-queue-size" - TOKEN_NCR_PROTOCOL = 408, // "ncr-protocol" - TOKEN_NCR_FORMAT = 409, // "ncr-format" - TOKEN_OVERRIDE_NO_UPDATE = 410, // "override-no-update" - TOKEN_OVERRIDE_CLIENT_UPDATE = 411, // "override-client-update" - TOKEN_REPLACE_CLIENT_NAME = 412, // "replace-client-name" - TOKEN_GENERATED_PREFIX = 413, // "generated-prefix" - TOKEN_TCP = 414, // "tcp" - TOKEN_JSON = 415, // "JSON" - TOKEN_WHEN_PRESENT = 416, // "when-present" - TOKEN_NEVER = 417, // "never" - TOKEN_ALWAYS = 418, // "always" - TOKEN_WHEN_NOT_PRESENT = 419, // "when-not-present" - TOKEN_HOSTNAME_CHAR_SET = 420, // "hostname-char-set" - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 421, // "hostname-char-replacement" - TOKEN_IP_RESERVATIONS_UNIQUE = 422, // "ip-reservations-unique" - TOKEN_LOGGERS = 423, // "loggers" - TOKEN_OUTPUT_OPTIONS = 424, // "output_options" - TOKEN_OUTPUT = 425, // "output" - TOKEN_DEBUGLEVEL = 426, // "debuglevel" - TOKEN_SEVERITY = 427, // "severity" - TOKEN_FLUSH = 428, // "flush" - TOKEN_MAXSIZE = 429, // "maxsize" - TOKEN_MAXVER = 430, // "maxver" - TOKEN_PATTERN = 431, // "pattern" - TOKEN_TOPLEVEL_JSON = 432, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP4 = 433, // TOPLEVEL_DHCP4 - TOKEN_SUB_DHCP4 = 434, // SUB_DHCP4 - TOKEN_SUB_INTERFACES4 = 435, // SUB_INTERFACES4 - TOKEN_SUB_SUBNET4 = 436, // SUB_SUBNET4 - TOKEN_SUB_POOL4 = 437, // SUB_POOL4 - TOKEN_SUB_RESERVATION = 438, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 439, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 440, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 441, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 442, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 443, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 444, // SUB_CONFIG_CONTROL - TOKEN_STRING = 445, // "constant string" - TOKEN_INTEGER = 446, // "integer" - TOKEN_FLOAT = 447, // "floating point" - TOKEN_BOOLEAN = 448 // "boolean" + enum yytokentype + { + TOKEN_END = 0, + TOKEN_COMMA = 258, + TOKEN_COLON = 259, + TOKEN_LSQUARE_BRACKET = 260, + TOKEN_RSQUARE_BRACKET = 261, + TOKEN_LCURLY_BRACKET = 262, + TOKEN_RCURLY_BRACKET = 263, + TOKEN_NULL_TYPE = 264, + TOKEN_DHCP4 = 265, + TOKEN_CONFIG_CONTROL = 266, + TOKEN_CONFIG_DATABASES = 267, + TOKEN_CONFIG_FETCH_WAIT_TIME = 268, + TOKEN_INTERFACES_CONFIG = 269, + TOKEN_INTERFACES = 270, + TOKEN_DHCP_SOCKET_TYPE = 271, + TOKEN_RAW = 272, + TOKEN_UDP = 273, + TOKEN_OUTBOUND_INTERFACE = 274, + TOKEN_SAME_AS_INBOUND = 275, + TOKEN_USE_ROUTING = 276, + TOKEN_RE_DETECT = 277, + TOKEN_SANITY_CHECKS = 278, + TOKEN_LEASE_CHECKS = 279, + TOKEN_ECHO_CLIENT_ID = 280, + TOKEN_MATCH_CLIENT_ID = 281, + TOKEN_AUTHORITATIVE = 282, + TOKEN_NEXT_SERVER = 283, + TOKEN_SERVER_HOSTNAME = 284, + TOKEN_BOOT_FILE_NAME = 285, + TOKEN_LEASE_DATABASE = 286, + TOKEN_HOSTS_DATABASE = 287, + TOKEN_HOSTS_DATABASES = 288, + TOKEN_TYPE = 289, + TOKEN_MEMFILE = 290, + TOKEN_MYSQL = 291, + TOKEN_POSTGRESQL = 292, + TOKEN_CQL = 293, + TOKEN_USER = 294, + TOKEN_PASSWORD = 295, + TOKEN_HOST = 296, + TOKEN_PORT = 297, + TOKEN_PERSIST = 298, + TOKEN_LFC_INTERVAL = 299, + TOKEN_READONLY = 300, + TOKEN_CONNECT_TIMEOUT = 301, + TOKEN_CONTACT_POINTS = 302, + TOKEN_KEYSPACE = 303, + TOKEN_CONSISTENCY = 304, + TOKEN_SERIAL_CONSISTENCY = 305, + TOKEN_MAX_RECONNECT_TRIES = 306, + TOKEN_RECONNECT_WAIT_TIME = 307, + TOKEN_REQUEST_TIMEOUT = 308, + TOKEN_TCP_KEEPALIVE = 309, + TOKEN_TCP_NODELAY = 310, + TOKEN_MAX_ROW_ERRORS = 311, + TOKEN_VALID_LIFETIME = 312, + TOKEN_MIN_VALID_LIFETIME = 313, + TOKEN_MAX_VALID_LIFETIME = 314, + TOKEN_RENEW_TIMER = 315, + TOKEN_REBIND_TIMER = 316, + TOKEN_CALCULATE_TEE_TIMES = 317, + TOKEN_T1_PERCENT = 318, + TOKEN_T2_PERCENT = 319, + TOKEN_CACHE_THRESHOLD = 320, + TOKEN_CACHE_MAX_AGE = 321, + TOKEN_DECLINE_PROBATION_PERIOD = 322, + TOKEN_SERVER_TAG = 323, + TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 324, + TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 325, + TOKEN_DDNS_SEND_UPDATES = 326, + TOKEN_DDNS_OVERRIDE_NO_UPDATE = 327, + TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 328, + TOKEN_DDNS_REPLACE_CLIENT_NAME = 329, + TOKEN_DDNS_GENERATED_PREFIX = 330, + TOKEN_DDNS_QUALIFYING_SUFFIX = 331, + TOKEN_DDNS_UPDATE_ON_RENEW = 332, + TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 333, + TOKEN_STORE_EXTENDED_INFO = 334, + TOKEN_SUBNET4 = 335, + TOKEN_SUBNET_4O6_INTERFACE = 336, + TOKEN_SUBNET_4O6_INTERFACE_ID = 337, + TOKEN_SUBNET_4O6_SUBNET = 338, + TOKEN_OPTION_DEF = 339, + TOKEN_OPTION_DATA = 340, + TOKEN_NAME = 341, + TOKEN_DATA = 342, + TOKEN_CODE = 343, + TOKEN_SPACE = 344, + TOKEN_CSV_FORMAT = 345, + TOKEN_ALWAYS_SEND = 346, + TOKEN_RECORD_TYPES = 347, + TOKEN_ENCAPSULATE = 348, + TOKEN_ARRAY = 349, + TOKEN_SHARED_NETWORKS = 350, + TOKEN_POOLS = 351, + TOKEN_POOL = 352, + TOKEN_USER_CONTEXT = 353, + TOKEN_COMMENT = 354, + TOKEN_SUBNET = 355, + TOKEN_INTERFACE = 356, + TOKEN_ID = 357, + TOKEN_RESERVATION_MODE = 358, + TOKEN_DISABLED = 359, + TOKEN_OUT_OF_POOL = 360, + TOKEN_GLOBAL = 361, + TOKEN_ALL = 362, + TOKEN_HOST_RESERVATION_IDENTIFIERS = 363, + TOKEN_CLIENT_CLASSES = 364, + TOKEN_REQUIRE_CLIENT_CLASSES = 365, + TOKEN_TEST = 366, + TOKEN_ONLY_IF_REQUIRED = 367, + TOKEN_CLIENT_CLASS = 368, + TOKEN_RESERVATIONS = 369, + TOKEN_DUID = 370, + TOKEN_HW_ADDRESS = 371, + TOKEN_CIRCUIT_ID = 372, + TOKEN_CLIENT_ID = 373, + TOKEN_HOSTNAME = 374, + TOKEN_FLEX_ID = 375, + TOKEN_RELAY = 376, + TOKEN_IP_ADDRESS = 377, + TOKEN_IP_ADDRESSES = 378, + TOKEN_HOOKS_LIBRARIES = 379, + TOKEN_LIBRARY = 380, + TOKEN_PARAMETERS = 381, + TOKEN_EXPIRED_LEASES_PROCESSING = 382, + TOKEN_RECLAIM_TIMER_WAIT_TIME = 383, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 384, + TOKEN_HOLD_RECLAIMED_TIME = 385, + TOKEN_MAX_RECLAIM_LEASES = 386, + TOKEN_MAX_RECLAIM_TIME = 387, + TOKEN_UNWARNED_RECLAIM_CYCLES = 388, + TOKEN_DHCP4O6_PORT = 389, + TOKEN_DHCP_MULTI_THREADING = 390, + TOKEN_ENABLE_MULTI_THREADING = 391, + TOKEN_THREAD_POOL_SIZE = 392, + TOKEN_PACKET_QUEUE_SIZE = 393, + TOKEN_CONTROL_SOCKET = 394, + TOKEN_SOCKET_TYPE = 395, + TOKEN_SOCKET_NAME = 396, + TOKEN_DHCP_QUEUE_CONTROL = 397, + TOKEN_ENABLE_QUEUE = 398, + TOKEN_QUEUE_TYPE = 399, + TOKEN_CAPACITY = 400, + TOKEN_DHCP_DDNS = 401, + TOKEN_ENABLE_UPDATES = 402, + TOKEN_QUALIFYING_SUFFIX = 403, + TOKEN_SERVER_IP = 404, + TOKEN_SERVER_PORT = 405, + TOKEN_SENDER_IP = 406, + TOKEN_SENDER_PORT = 407, + TOKEN_MAX_QUEUE_SIZE = 408, + TOKEN_NCR_PROTOCOL = 409, + TOKEN_NCR_FORMAT = 410, + TOKEN_OVERRIDE_NO_UPDATE = 411, + TOKEN_OVERRIDE_CLIENT_UPDATE = 412, + TOKEN_REPLACE_CLIENT_NAME = 413, + TOKEN_GENERATED_PREFIX = 414, + TOKEN_TCP = 415, + TOKEN_JSON = 416, + TOKEN_WHEN_PRESENT = 417, + TOKEN_NEVER = 418, + TOKEN_ALWAYS = 419, + TOKEN_WHEN_NOT_PRESENT = 420, + TOKEN_HOSTNAME_CHAR_SET = 421, + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 422, + TOKEN_IP_RESERVATIONS_UNIQUE = 423, + TOKEN_LOGGERS = 424, + TOKEN_OUTPUT_OPTIONS = 425, + TOKEN_OUTPUT = 426, + TOKEN_DEBUGLEVEL = 427, + TOKEN_SEVERITY = 428, + TOKEN_FLUSH = 429, + TOKEN_MAXSIZE = 430, + TOKEN_MAXVER = 431, + TOKEN_PATTERN = 432, + TOKEN_TOPLEVEL_JSON = 433, + TOKEN_TOPLEVEL_DHCP4 = 434, + TOKEN_SUB_DHCP4 = 435, + TOKEN_SUB_INTERFACES4 = 436, + TOKEN_SUB_SUBNET4 = 437, + TOKEN_SUB_POOL4 = 438, + TOKEN_SUB_RESERVATION = 439, + TOKEN_SUB_OPTION_DEFS = 440, + TOKEN_SUB_OPTION_DEF = 441, + TOKEN_SUB_OPTION_DATA = 442, + TOKEN_SUB_HOOKS_LIBRARY = 443, + TOKEN_SUB_DHCP_DDNS = 444, + TOKEN_SUB_CONFIG_CONTROL = 445, + TOKEN_STRING = 446, + TOKEN_INTEGER = 447, + TOKEN_FLOAT = 448, + TOKEN_BOOLEAN = 449 }; - /// Backward compatibility alias (Bison 3.6). - typedef token_kind_type yytokentype; }; - /// Token kind, as returned by yylex. - typedef token::yytokentype token_kind_type; + /// (External) token type, as returned by yylex. + typedef token::yytokentype token_type; - /// Backward compatibility alias (Bison 3.6). - typedef token_kind_type token_type; - - /// Symbol kinds. - struct symbol_kind - { - enum symbol_kind_type - { - YYNTOKENS = 194, ///< Number of tokens. - S_YYEMPTY = -2, - S_YYEOF = 0, // "end of file" - S_YYerror = 1, // error - S_YYUNDEF = 2, // "invalid token" - S_COMMA = 3, // "," - S_COLON = 4, // ":" - S_LSQUARE_BRACKET = 5, // "[" - S_RSQUARE_BRACKET = 6, // "]" - S_LCURLY_BRACKET = 7, // "{" - S_RCURLY_BRACKET = 8, // "}" - S_NULL_TYPE = 9, // "null" - S_DHCP4 = 10, // "Dhcp4" - S_CONFIG_CONTROL = 11, // "config-control" - S_CONFIG_DATABASES = 12, // "config-databases" - S_CONFIG_FETCH_WAIT_TIME = 13, // "config-fetch-wait-time" - S_INTERFACES_CONFIG = 14, // "interfaces-config" - S_INTERFACES = 15, // "interfaces" - S_DHCP_SOCKET_TYPE = 16, // "dhcp-socket-type" - S_RAW = 17, // "raw" - S_UDP = 18, // "udp" - S_OUTBOUND_INTERFACE = 19, // "outbound-interface" - S_SAME_AS_INBOUND = 20, // "same-as-inbound" - S_USE_ROUTING = 21, // "use-routing" - S_RE_DETECT = 22, // "re-detect" - S_SANITY_CHECKS = 23, // "sanity-checks" - S_LEASE_CHECKS = 24, // "lease-checks" - S_ECHO_CLIENT_ID = 25, // "echo-client-id" - S_MATCH_CLIENT_ID = 26, // "match-client-id" - S_AUTHORITATIVE = 27, // "authoritative" - S_NEXT_SERVER = 28, // "next-server" - S_SERVER_HOSTNAME = 29, // "server-hostname" - S_BOOT_FILE_NAME = 30, // "boot-file-name" - S_LEASE_DATABASE = 31, // "lease-database" - S_HOSTS_DATABASE = 32, // "hosts-database" - S_HOSTS_DATABASES = 33, // "hosts-databases" - S_TYPE = 34, // "type" - S_MEMFILE = 35, // "memfile" - S_MYSQL = 36, // "mysql" - S_POSTGRESQL = 37, // "postgresql" - S_CQL = 38, // "cql" - S_USER = 39, // "user" - S_PASSWORD = 40, // "password" - S_HOST = 41, // "host" - S_PORT = 42, // "port" - S_PERSIST = 43, // "persist" - S_LFC_INTERVAL = 44, // "lfc-interval" - S_READONLY = 45, // "readonly" - S_CONNECT_TIMEOUT = 46, // "connect-timeout" - S_CONTACT_POINTS = 47, // "contact-points" - S_KEYSPACE = 48, // "keyspace" - S_CONSISTENCY = 49, // "consistency" - S_SERIAL_CONSISTENCY = 50, // "serial-consistency" - S_MAX_RECONNECT_TRIES = 51, // "max-reconnect-tries" - S_RECONNECT_WAIT_TIME = 52, // "reconnect-wait-time" - S_REQUEST_TIMEOUT = 53, // "request-timeout" - S_TCP_KEEPALIVE = 54, // "tcp-keepalive" - S_TCP_NODELAY = 55, // "tcp-nodelay" - S_MAX_ROW_ERRORS = 56, // "max-row-errors" - S_VALID_LIFETIME = 57, // "valid-lifetime" - S_MIN_VALID_LIFETIME = 58, // "min-valid-lifetime" - S_MAX_VALID_LIFETIME = 59, // "max-valid-lifetime" - S_RENEW_TIMER = 60, // "renew-timer" - S_REBIND_TIMER = 61, // "rebind-timer" - S_CALCULATE_TEE_TIMES = 62, // "calculate-tee-times" - S_T1_PERCENT = 63, // "t1-percent" - S_T2_PERCENT = 64, // "t2-percent" - S_CACHE_THRESHOLD = 65, // "cache-threshold" - S_CACHE_MAX_AGE = 66, // "cache-max-age" - S_DECLINE_PROBATION_PERIOD = 67, // "decline-probation-period" - S_SERVER_TAG = 68, // "server-tag" - S_STATISTIC_DEFAULT_SAMPLE_COUNT = 69, // "statistic-default-sample-count" - S_STATISTIC_DEFAULT_SAMPLE_AGE = 70, // "statistic-default-sample-age" - S_DDNS_SEND_UPDATES = 71, // "ddns-send-updates" - S_DDNS_OVERRIDE_NO_UPDATE = 72, // "ddns-override-no-update" - S_DDNS_OVERRIDE_CLIENT_UPDATE = 73, // "ddns-override-client-update" - S_DDNS_REPLACE_CLIENT_NAME = 74, // "ddns-replace-client-name" - S_DDNS_GENERATED_PREFIX = 75, // "ddns-generated-prefix" - S_DDNS_QUALIFYING_SUFFIX = 76, // "ddns-qualifying-suffix" - S_DDNS_UPDATE_ON_RENEW = 77, // "ddns-update-on-renew" - S_STORE_EXTENDED_INFO = 78, // "store-extended-info" - S_SUBNET4 = 79, // "subnet4" - S_SUBNET_4O6_INTERFACE = 80, // "4o6-interface" - S_SUBNET_4O6_INTERFACE_ID = 81, // "4o6-interface-id" - S_SUBNET_4O6_SUBNET = 82, // "4o6-subnet" - S_OPTION_DEF = 83, // "option-def" - S_OPTION_DATA = 84, // "option-data" - S_NAME = 85, // "name" - S_DATA = 86, // "data" - S_CODE = 87, // "code" - S_SPACE = 88, // "space" - S_CSV_FORMAT = 89, // "csv-format" - S_ALWAYS_SEND = 90, // "always-send" - S_RECORD_TYPES = 91, // "record-types" - S_ENCAPSULATE = 92, // "encapsulate" - S_ARRAY = 93, // "array" - S_SHARED_NETWORKS = 94, // "shared-networks" - S_POOLS = 95, // "pools" - S_POOL = 96, // "pool" - S_USER_CONTEXT = 97, // "user-context" - S_COMMENT = 98, // "comment" - S_SUBNET = 99, // "subnet" - S_INTERFACE = 100, // "interface" - S_ID = 101, // "id" - S_RESERVATION_MODE = 102, // "reservation-mode" - S_DISABLED = 103, // "disabled" - S_OUT_OF_POOL = 104, // "out-of-pool" - S_GLOBAL = 105, // "global" - S_ALL = 106, // "all" - S_HOST_RESERVATION_IDENTIFIERS = 107, // "host-reservation-identifiers" - S_CLIENT_CLASSES = 108, // "client-classes" - S_REQUIRE_CLIENT_CLASSES = 109, // "require-client-classes" - S_TEST = 110, // "test" - S_ONLY_IF_REQUIRED = 111, // "only-if-required" - S_CLIENT_CLASS = 112, // "client-class" - S_RESERVATIONS = 113, // "reservations" - S_DUID = 114, // "duid" - S_HW_ADDRESS = 115, // "hw-address" - S_CIRCUIT_ID = 116, // "circuit-id" - S_CLIENT_ID = 117, // "client-id" - S_HOSTNAME = 118, // "hostname" - S_FLEX_ID = 119, // "flex-id" - S_RELAY = 120, // "relay" - S_IP_ADDRESS = 121, // "ip-address" - S_IP_ADDRESSES = 122, // "ip-addresses" - S_HOOKS_LIBRARIES = 123, // "hooks-libraries" - S_LIBRARY = 124, // "library" - S_PARAMETERS = 125, // "parameters" - S_EXPIRED_LEASES_PROCESSING = 126, // "expired-leases-processing" - S_RECLAIM_TIMER_WAIT_TIME = 127, // "reclaim-timer-wait-time" - S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 128, // "flush-reclaimed-timer-wait-time" - S_HOLD_RECLAIMED_TIME = 129, // "hold-reclaimed-time" - S_MAX_RECLAIM_LEASES = 130, // "max-reclaim-leases" - S_MAX_RECLAIM_TIME = 131, // "max-reclaim-time" - S_UNWARNED_RECLAIM_CYCLES = 132, // "unwarned-reclaim-cycles" - S_DHCP4O6_PORT = 133, // "dhcp4o6-port" - S_DHCP_MULTI_THREADING = 134, // "multi-threading" - S_ENABLE_MULTI_THREADING = 135, // "enable-multi-threading" - S_THREAD_POOL_SIZE = 136, // "thread-pool-size" - S_PACKET_QUEUE_SIZE = 137, // "packet-queue-size" - S_CONTROL_SOCKET = 138, // "control-socket" - S_SOCKET_TYPE = 139, // "socket-type" - S_SOCKET_NAME = 140, // "socket-name" - S_DHCP_QUEUE_CONTROL = 141, // "dhcp-queue-control" - S_ENABLE_QUEUE = 142, // "enable-queue" - S_QUEUE_TYPE = 143, // "queue-type" - S_CAPACITY = 144, // "capacity" - S_DHCP_DDNS = 145, // "dhcp-ddns" - S_ENABLE_UPDATES = 146, // "enable-updates" - S_QUALIFYING_SUFFIX = 147, // "qualifying-suffix" - S_SERVER_IP = 148, // "server-ip" - S_SERVER_PORT = 149, // "server-port" - S_SENDER_IP = 150, // "sender-ip" - S_SENDER_PORT = 151, // "sender-port" - S_MAX_QUEUE_SIZE = 152, // "max-queue-size" - S_NCR_PROTOCOL = 153, // "ncr-protocol" - S_NCR_FORMAT = 154, // "ncr-format" - S_OVERRIDE_NO_UPDATE = 155, // "override-no-update" - S_OVERRIDE_CLIENT_UPDATE = 156, // "override-client-update" - S_REPLACE_CLIENT_NAME = 157, // "replace-client-name" - S_GENERATED_PREFIX = 158, // "generated-prefix" - S_TCP = 159, // "tcp" - S_JSON = 160, // "JSON" - S_WHEN_PRESENT = 161, // "when-present" - S_NEVER = 162, // "never" - S_ALWAYS = 163, // "always" - S_WHEN_NOT_PRESENT = 164, // "when-not-present" - S_HOSTNAME_CHAR_SET = 165, // "hostname-char-set" - S_HOSTNAME_CHAR_REPLACEMENT = 166, // "hostname-char-replacement" - S_IP_RESERVATIONS_UNIQUE = 167, // "ip-reservations-unique" - S_LOGGERS = 168, // "loggers" - S_OUTPUT_OPTIONS = 169, // "output_options" - S_OUTPUT = 170, // "output" - S_DEBUGLEVEL = 171, // "debuglevel" - S_SEVERITY = 172, // "severity" - S_FLUSH = 173, // "flush" - S_MAXSIZE = 174, // "maxsize" - S_MAXVER = 175, // "maxver" - S_PATTERN = 176, // "pattern" - S_TOPLEVEL_JSON = 177, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP4 = 178, // TOPLEVEL_DHCP4 - S_SUB_DHCP4 = 179, // SUB_DHCP4 - S_SUB_INTERFACES4 = 180, // SUB_INTERFACES4 - S_SUB_SUBNET4 = 181, // SUB_SUBNET4 - S_SUB_POOL4 = 182, // SUB_POOL4 - S_SUB_RESERVATION = 183, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 184, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 185, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 186, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 187, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 188, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 189, // SUB_CONFIG_CONTROL - S_STRING = 190, // "constant string" - S_INTEGER = 191, // "integer" - S_FLOAT = 192, // "floating point" - S_BOOLEAN = 193, // "boolean" - S_YYACCEPT = 194, // $accept - S_start = 195, // start - S_196_1 = 196, // $@1 - S_197_2 = 197, // $@2 - S_198_3 = 198, // $@3 - S_199_4 = 199, // $@4 - S_200_5 = 200, // $@5 - S_201_6 = 201, // $@6 - S_202_7 = 202, // $@7 - S_203_8 = 203, // $@8 - S_204_9 = 204, // $@9 - S_205_10 = 205, // $@10 - S_206_11 = 206, // $@11 - S_207_12 = 207, // $@12 - S_208_13 = 208, // $@13 - S_value = 209, // value - S_sub_json = 210, // sub_json - S_map2 = 211, // map2 - S_212_14 = 212, // $@14 - S_map_value = 213, // map_value - S_map_content = 214, // map_content - S_not_empty_map = 215, // not_empty_map - S_list_generic = 216, // list_generic - S_217_15 = 217, // $@15 - S_list_content = 218, // list_content - S_not_empty_list = 219, // not_empty_list - S_list_strings = 220, // list_strings - S_221_16 = 221, // $@16 - S_list_strings_content = 222, // list_strings_content - S_not_empty_list_strings = 223, // not_empty_list_strings - S_unknown_map_entry = 224, // unknown_map_entry - S_syntax_map = 225, // syntax_map - S_226_17 = 226, // $@17 - S_global_object = 227, // global_object - S_228_18 = 228, // $@18 - S_sub_dhcp4 = 229, // sub_dhcp4 - S_230_19 = 230, // $@19 - S_global_params = 231, // global_params - S_global_param = 232, // global_param - S_valid_lifetime = 233, // valid_lifetime - S_min_valid_lifetime = 234, // min_valid_lifetime - S_max_valid_lifetime = 235, // max_valid_lifetime - S_renew_timer = 236, // renew_timer - S_rebind_timer = 237, // rebind_timer - S_calculate_tee_times = 238, // calculate_tee_times - S_t1_percent = 239, // t1_percent - S_t2_percent = 240, // t2_percent - S_cache_threshold = 241, // cache_threshold - S_cache_max_age = 242, // cache_max_age - S_decline_probation_period = 243, // decline_probation_period - S_server_tag = 244, // server_tag - S_245_20 = 245, // $@20 - S_echo_client_id = 246, // echo_client_id - S_match_client_id = 247, // match_client_id - S_authoritative = 248, // authoritative - S_ddns_send_updates = 249, // ddns_send_updates - S_ddns_override_no_update = 250, // ddns_override_no_update - S_ddns_override_client_update = 251, // ddns_override_client_update - S_ddns_replace_client_name = 252, // ddns_replace_client_name - S_253_21 = 253, // $@21 - S_ddns_replace_client_name_value = 254, // ddns_replace_client_name_value - S_ddns_generated_prefix = 255, // ddns_generated_prefix - S_256_22 = 256, // $@22 - S_ddns_qualifying_suffix = 257, // ddns_qualifying_suffix - S_258_23 = 258, // $@23 - S_ddns_update_on_renew = 259, // ddns_update_on_renew - S_hostname_char_set = 260, // hostname_char_set - S_261_24 = 261, // $@24 - S_hostname_char_replacement = 262, // hostname_char_replacement - S_263_25 = 263, // $@25 - S_store_extended_info = 264, // store_extended_info - S_statistic_default_sample_count = 265, // statistic_default_sample_count - S_statistic_default_sample_age = 266, // statistic_default_sample_age - S_ip_reservations_unique = 267, // ip_reservations_unique - S_interfaces_config = 268, // interfaces_config - S_269_26 = 269, // $@26 - S_interfaces_config_params = 270, // interfaces_config_params - S_interfaces_config_param = 271, // interfaces_config_param - S_sub_interfaces4 = 272, // sub_interfaces4 - S_273_27 = 273, // $@27 - S_interfaces_list = 274, // interfaces_list - S_275_28 = 275, // $@28 - S_dhcp_socket_type = 276, // dhcp_socket_type - S_277_29 = 277, // $@29 - S_socket_type = 278, // socket_type - S_outbound_interface = 279, // outbound_interface - S_280_30 = 280, // $@30 - S_outbound_interface_value = 281, // outbound_interface_value - S_re_detect = 282, // re_detect - S_lease_database = 283, // lease_database - S_284_31 = 284, // $@31 - S_sanity_checks = 285, // sanity_checks - S_286_32 = 286, // $@32 - S_sanity_checks_params = 287, // sanity_checks_params - S_sanity_checks_param = 288, // sanity_checks_param - S_lease_checks = 289, // lease_checks - S_290_33 = 290, // $@33 - S_hosts_database = 291, // hosts_database - S_292_34 = 292, // $@34 - S_hosts_databases = 293, // hosts_databases - S_294_35 = 294, // $@35 - S_database_list = 295, // database_list - S_not_empty_database_list = 296, // not_empty_database_list - S_database = 297, // database - S_298_36 = 298, // $@36 - S_database_map_params = 299, // database_map_params - S_database_map_param = 300, // database_map_param - S_database_type = 301, // database_type - S_302_37 = 302, // $@37 - S_db_type = 303, // db_type - S_user = 304, // user - S_305_38 = 305, // $@38 - S_password = 306, // password - S_307_39 = 307, // $@39 - S_host = 308, // host - S_309_40 = 309, // $@40 - S_port = 310, // port - S_name = 311, // name - S_312_41 = 312, // $@41 - S_persist = 313, // persist - S_lfc_interval = 314, // lfc_interval - S_readonly = 315, // readonly - S_connect_timeout = 316, // connect_timeout - S_request_timeout = 317, // request_timeout - S_tcp_keepalive = 318, // tcp_keepalive - S_tcp_nodelay = 319, // tcp_nodelay - S_contact_points = 320, // contact_points - S_321_42 = 321, // $@42 - S_keyspace = 322, // keyspace - S_323_43 = 323, // $@43 - S_consistency = 324, // consistency - S_325_44 = 325, // $@44 - S_serial_consistency = 326, // serial_consistency - S_327_45 = 327, // $@45 - S_max_reconnect_tries = 328, // max_reconnect_tries - S_reconnect_wait_time = 329, // reconnect_wait_time - S_max_row_errors = 330, // max_row_errors - S_host_reservation_identifiers = 331, // host_reservation_identifiers - S_332_46 = 332, // $@46 - S_host_reservation_identifiers_list = 333, // host_reservation_identifiers_list - S_host_reservation_identifier = 334, // host_reservation_identifier - S_duid_id = 335, // duid_id - S_hw_address_id = 336, // hw_address_id - S_circuit_id = 337, // circuit_id - S_client_id = 338, // client_id - S_flex_id = 339, // flex_id - S_dhcp_multi_threading = 340, // dhcp_multi_threading - S_341_47 = 341, // $@47 - S_multi_threading_params = 342, // multi_threading_params - S_multi_threading_param = 343, // multi_threading_param - S_enable_multi_threading = 344, // enable_multi_threading - S_thread_pool_size = 345, // thread_pool_size - S_packet_queue_size = 346, // packet_queue_size - S_hooks_libraries = 347, // hooks_libraries - S_348_48 = 348, // $@48 - S_hooks_libraries_list = 349, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 350, // not_empty_hooks_libraries_list - S_hooks_library = 351, // hooks_library - S_352_49 = 352, // $@49 - S_sub_hooks_library = 353, // sub_hooks_library - S_354_50 = 354, // $@50 - S_hooks_params = 355, // hooks_params - S_hooks_param = 356, // hooks_param - S_library = 357, // library - S_358_51 = 358, // $@51 - S_parameters = 359, // parameters - S_360_52 = 360, // $@52 - S_expired_leases_processing = 361, // expired_leases_processing - S_362_53 = 362, // $@53 - S_expired_leases_params = 363, // expired_leases_params - S_expired_leases_param = 364, // expired_leases_param - S_reclaim_timer_wait_time = 365, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 366, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 367, // hold_reclaimed_time - S_max_reclaim_leases = 368, // max_reclaim_leases - S_max_reclaim_time = 369, // max_reclaim_time - S_unwarned_reclaim_cycles = 370, // unwarned_reclaim_cycles - S_subnet4_list = 371, // subnet4_list - S_372_54 = 372, // $@54 - S_subnet4_list_content = 373, // subnet4_list_content - S_not_empty_subnet4_list = 374, // not_empty_subnet4_list - S_subnet4 = 375, // subnet4 - S_376_55 = 376, // $@55 - S_sub_subnet4 = 377, // sub_subnet4 - S_378_56 = 378, // $@56 - S_subnet4_params = 379, // subnet4_params - S_subnet4_param = 380, // subnet4_param - S_subnet = 381, // subnet - S_382_57 = 382, // $@57 - S_subnet_4o6_interface = 383, // subnet_4o6_interface - S_384_58 = 384, // $@58 - S_subnet_4o6_interface_id = 385, // subnet_4o6_interface_id - S_386_59 = 386, // $@59 - S_subnet_4o6_subnet = 387, // subnet_4o6_subnet - S_388_60 = 388, // $@60 - S_interface = 389, // interface - S_390_61 = 390, // $@61 - S_client_class = 391, // client_class - S_392_62 = 392, // $@62 - S_require_client_classes = 393, // require_client_classes - S_394_63 = 394, // $@63 - S_reservation_mode = 395, // reservation_mode - S_396_64 = 396, // $@64 - S_hr_mode = 397, // hr_mode - S_id = 398, // id - S_shared_networks = 399, // shared_networks - S_400_65 = 400, // $@65 - S_shared_networks_content = 401, // shared_networks_content - S_shared_networks_list = 402, // shared_networks_list - S_shared_network = 403, // shared_network - S_404_66 = 404, // $@66 - S_shared_network_params = 405, // shared_network_params - S_shared_network_param = 406, // shared_network_param - S_option_def_list = 407, // option_def_list - S_408_67 = 408, // $@67 - S_sub_option_def_list = 409, // sub_option_def_list - S_410_68 = 410, // $@68 - S_option_def_list_content = 411, // option_def_list_content - S_not_empty_option_def_list = 412, // not_empty_option_def_list - S_option_def_entry = 413, // option_def_entry - S_414_69 = 414, // $@69 - S_sub_option_def = 415, // sub_option_def - S_416_70 = 416, // $@70 - S_option_def_params = 417, // option_def_params - S_not_empty_option_def_params = 418, // not_empty_option_def_params - S_option_def_param = 419, // option_def_param - S_option_def_name = 420, // option_def_name - S_code = 421, // code - S_option_def_code = 422, // option_def_code - S_option_def_type = 423, // option_def_type - S_424_71 = 424, // $@71 - S_option_def_record_types = 425, // option_def_record_types - S_426_72 = 426, // $@72 - S_space = 427, // space - S_428_73 = 428, // $@73 - S_option_def_space = 429, // option_def_space - S_option_def_encapsulate = 430, // option_def_encapsulate - S_431_74 = 431, // $@74 - S_option_def_array = 432, // option_def_array - S_option_data_list = 433, // option_data_list - S_434_75 = 434, // $@75 - S_option_data_list_content = 435, // option_data_list_content - S_not_empty_option_data_list = 436, // not_empty_option_data_list - S_option_data_entry = 437, // option_data_entry - S_438_76 = 438, // $@76 - S_sub_option_data = 439, // sub_option_data - S_440_77 = 440, // $@77 - S_option_data_params = 441, // option_data_params - S_not_empty_option_data_params = 442, // not_empty_option_data_params - S_option_data_param = 443, // option_data_param - S_option_data_name = 444, // option_data_name - S_option_data_data = 445, // option_data_data - S_446_78 = 446, // $@78 - S_option_data_code = 447, // option_data_code - S_option_data_space = 448, // option_data_space - S_option_data_csv_format = 449, // option_data_csv_format - S_option_data_always_send = 450, // option_data_always_send - S_pools_list = 451, // pools_list - S_452_79 = 452, // $@79 - S_pools_list_content = 453, // pools_list_content - S_not_empty_pools_list = 454, // not_empty_pools_list - S_pool_list_entry = 455, // pool_list_entry - S_456_80 = 456, // $@80 - S_sub_pool4 = 457, // sub_pool4 - S_458_81 = 458, // $@81 - S_pool_params = 459, // pool_params - S_pool_param = 460, // pool_param - S_pool_entry = 461, // pool_entry - S_462_82 = 462, // $@82 - S_user_context = 463, // user_context - S_464_83 = 464, // $@83 - S_comment = 465, // comment - S_466_84 = 466, // $@84 - S_reservations = 467, // reservations - S_468_85 = 468, // $@85 - S_reservations_list = 469, // reservations_list - S_not_empty_reservations_list = 470, // not_empty_reservations_list - S_reservation = 471, // reservation - S_472_86 = 472, // $@86 - S_sub_reservation = 473, // sub_reservation - S_474_87 = 474, // $@87 - S_reservation_params = 475, // reservation_params - S_not_empty_reservation_params = 476, // not_empty_reservation_params - S_reservation_param = 477, // reservation_param - S_next_server = 478, // next_server - S_479_88 = 479, // $@88 - S_server_hostname = 480, // server_hostname - S_481_89 = 481, // $@89 - S_boot_file_name = 482, // boot_file_name - S_483_90 = 483, // $@90 - S_ip_address = 484, // ip_address - S_485_91 = 485, // $@91 - S_ip_addresses = 486, // ip_addresses - S_487_92 = 487, // $@92 - S_duid = 488, // duid - S_489_93 = 489, // $@93 - S_hw_address = 490, // hw_address - S_491_94 = 491, // $@94 - S_client_id_value = 492, // client_id_value - S_493_95 = 493, // $@95 - S_circuit_id_value = 494, // circuit_id_value - S_495_96 = 495, // $@96 - S_flex_id_value = 496, // flex_id_value - S_497_97 = 497, // $@97 - S_hostname = 498, // hostname - S_499_98 = 499, // $@98 - S_reservation_client_classes = 500, // reservation_client_classes - S_501_99 = 501, // $@99 - S_relay = 502, // relay - S_503_100 = 503, // $@100 - S_relay_map = 504, // relay_map - S_client_classes = 505, // client_classes - S_506_101 = 506, // $@101 - S_client_classes_list = 507, // client_classes_list - S_client_class_entry = 508, // client_class_entry - S_509_102 = 509, // $@102 - S_client_class_params = 510, // client_class_params - S_not_empty_client_class_params = 511, // not_empty_client_class_params - S_client_class_param = 512, // client_class_param - S_client_class_name = 513, // client_class_name - S_client_class_test = 514, // client_class_test - S_515_103 = 515, // $@103 - S_only_if_required = 516, // only_if_required - S_dhcp4o6_port = 517, // dhcp4o6_port - S_control_socket = 518, // control_socket - S_519_104 = 519, // $@104 - S_control_socket_params = 520, // control_socket_params - S_control_socket_param = 521, // control_socket_param - S_control_socket_type = 522, // control_socket_type - S_523_105 = 523, // $@105 - S_control_socket_name = 524, // control_socket_name - S_525_106 = 525, // $@106 - S_dhcp_queue_control = 526, // dhcp_queue_control - S_527_107 = 527, // $@107 - S_queue_control_params = 528, // queue_control_params - S_queue_control_param = 529, // queue_control_param - S_enable_queue = 530, // enable_queue - S_queue_type = 531, // queue_type - S_532_108 = 532, // $@108 - S_capacity = 533, // capacity - S_arbitrary_map_entry = 534, // arbitrary_map_entry - S_535_109 = 535, // $@109 - S_dhcp_ddns = 536, // dhcp_ddns - S_537_110 = 537, // $@110 - S_sub_dhcp_ddns = 538, // sub_dhcp_ddns - S_539_111 = 539, // $@111 - S_dhcp_ddns_params = 540, // dhcp_ddns_params - S_dhcp_ddns_param = 541, // dhcp_ddns_param - S_enable_updates = 542, // enable_updates - S_server_ip = 543, // server_ip - S_544_112 = 544, // $@112 - S_server_port = 545, // server_port - S_sender_ip = 546, // sender_ip - S_547_113 = 547, // $@113 - S_sender_port = 548, // sender_port - S_max_queue_size = 549, // max_queue_size - S_ncr_protocol = 550, // ncr_protocol - S_551_114 = 551, // $@114 - S_ncr_protocol_value = 552, // ncr_protocol_value - S_ncr_format = 553, // ncr_format - S_554_115 = 554, // $@115 - S_dep_qualifying_suffix = 555, // dep_qualifying_suffix - S_556_116 = 556, // $@116 - S_dep_override_no_update = 557, // dep_override_no_update - S_dep_override_client_update = 558, // dep_override_client_update - S_dep_replace_client_name = 559, // dep_replace_client_name - S_560_117 = 560, // $@117 - S_dep_generated_prefix = 561, // dep_generated_prefix - S_562_118 = 562, // $@118 - S_dep_hostname_char_set = 563, // dep_hostname_char_set - S_564_119 = 564, // $@119 - S_dep_hostname_char_replacement = 565, // dep_hostname_char_replacement - S_566_120 = 566, // $@120 - S_config_control = 567, // config_control - S_568_121 = 568, // $@121 - S_sub_config_control = 569, // sub_config_control - S_570_122 = 570, // $@122 - S_config_control_params = 571, // config_control_params - S_config_control_param = 572, // config_control_param - S_config_databases = 573, // config_databases - S_574_123 = 574, // $@123 - S_config_fetch_wait_time = 575, // config_fetch_wait_time - S_loggers = 576, // loggers - S_577_124 = 577, // $@124 - S_loggers_entries = 578, // loggers_entries - S_logger_entry = 579, // logger_entry - S_580_125 = 580, // $@125 - S_logger_params = 581, // logger_params - S_logger_param = 582, // logger_param - S_debuglevel = 583, // debuglevel - S_severity = 584, // severity - S_585_126 = 585, // $@126 - S_output_options_list = 586, // output_options_list - S_587_127 = 587, // $@127 - S_output_options_list_content = 588, // output_options_list_content - S_output_entry = 589, // output_entry - S_590_128 = 590, // $@128 - S_output_params_list = 591, // output_params_list - S_output_params = 592, // output_params - S_output = 593, // output - S_594_129 = 594, // $@129 - S_flush = 595, // flush - S_maxsize = 596, // maxsize - S_maxver = 597, // maxver - S_pattern = 598, // pattern - S_599_130 = 599 // $@130 - }; - }; + /// Symbol type: an internal symbol number. + typedef int symbol_number_type; - /// (Internal) symbol kind. - typedef symbol_kind::symbol_kind_type symbol_kind_type; + /// The symbol type number to denote an empty symbol. + enum { empty_symbol = -2 }; - /// The number of tokens. - static const symbol_kind_type YYNTOKENS = symbol_kind::YYNTOKENS; + /// Internal symbol number for tokens (subsumed by symbol_number_type). + typedef unsigned char token_number_type; /// A complete symbol. /// - /// Expects its Base type to provide access to the symbol kind - /// via kind (). + /// Expects its Base type to provide access to the symbol type + /// via type_get(). /// /// Provide access to semantic value and location. template <typename Base> @@ -1317,202 +568,39 @@ namespace isc { namespace dhcp { typedef Base super_type; /// Default constructor. - basic_symbol () - : value () - , location () - {} - -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - basic_symbol (basic_symbol&& that) - : Base (std::move (that)) - , value () - , location (std::move (that.location)) - { - switch (this->kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.move< ElementPtr > (std::move (that.value)); - break; - - case symbol_kind::S_BOOLEAN: // "boolean" - value.move< bool > (std::move (that.value)); - break; - - case symbol_kind::S_FLOAT: // "floating point" - value.move< double > (std::move (that.value)); - break; - - case symbol_kind::S_INTEGER: // "integer" - value.move< int64_t > (std::move (that.value)); - break; - - case symbol_kind::S_STRING: // "constant string" - value.move< std::string > (std::move (that.value)); - break; - - default: - break; - } - - } -#endif + basic_symbol (); /// Copy constructor. - basic_symbol (const basic_symbol& that); + basic_symbol (const basic_symbol& other); /// Constructor for valueless symbols, and symbols from each type. -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, location_type&& l) - : Base (t) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const location_type& l) - : Base (t) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const double& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif - /// Destroy the symbol. - ~basic_symbol () - { - clear (); - } + basic_symbol (typename Base::kind_type t, const location_type& l); - /// Destroy contents, and record that is empty. - void clear () - { - // User destructor. - symbol_kind_type yykind = this->kind (); - basic_symbol<Base>& yysym = *this; - (void) yysym; - switch (yykind) - { - default: - break; - } - - // Value type destructor. -switch (yykind) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.template destroy< ElementPtr > (); - break; + basic_symbol (typename Base::kind_type t, const ElementPtr v, const location_type& l); - case symbol_kind::S_BOOLEAN: // "boolean" - value.template destroy< bool > (); - break; + basic_symbol (typename Base::kind_type t, const bool v, const location_type& l); - case symbol_kind::S_FLOAT: // "floating point" - value.template destroy< double > (); - break; + basic_symbol (typename Base::kind_type t, const double v, const location_type& l); - case symbol_kind::S_INTEGER: // "integer" - value.template destroy< int64_t > (); - break; + basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l); - case symbol_kind::S_STRING: // "constant string" - value.template destroy< std::string > (); - break; + basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l); - default: - break; - } - Base::clear (); - } + /// Constructor for symbols with semantic value. + basic_symbol (typename Base::kind_type t, + const semantic_type& v, + const location_type& l); - /// The user-facing name of this symbol. - std::string name () const YY_NOEXCEPT - { - return Dhcp4Parser::symbol_name (this->kind ()); - } + /// Destroy the symbol. + ~basic_symbol (); - /// Backward compatibility (Bison 3.6). - symbol_kind_type type_get () const YY_NOEXCEPT; + /// Destroy contents, and record that is empty. + void clear (); /// Whether empty. - bool empty () const YY_NOEXCEPT; + bool empty () const; /// Destructive move, \a s is emptied into this. void move (basic_symbol& s); @@ -1524,145 +612,825 @@ switch (yykind) location_type location; private: -#if YY_CPLUSPLUS < 201103L /// Assignment operator. - basic_symbol& operator= (const basic_symbol& that); -#endif + basic_symbol& operator= (const basic_symbol& other); }; /// Type access provider for token (enum) based symbols. - struct by_kind + struct by_type { /// Default constructor. - by_kind (); - -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - by_kind (by_kind&& that); -#endif + by_type (); /// Copy constructor. - by_kind (const by_kind& that); + by_type (const by_type& other); - /// The symbol kind as needed by the constructor. - typedef token_kind_type kind_type; + /// The symbol type as needed by the constructor. + typedef token_type kind_type; /// Constructor from (external) token numbers. - by_kind (kind_type t); + by_type (kind_type t); /// Record that this symbol is empty. void clear (); - /// Steal the symbol kind from \a that. - void move (by_kind& that); + /// Steal the symbol type from \a that. + void move (by_type& that); /// The (internal) type number (corresponding to \a type). /// \a empty when empty. - symbol_kind_type kind () const YY_NOEXCEPT; + symbol_number_type type_get () const; - /// Backward compatibility (Bison 3.6). - symbol_kind_type type_get () const YY_NOEXCEPT; + /// The token. + token_type token () const; - /// The symbol kind. - /// \a S_YYEMPTY when empty. - symbol_kind_type kind_; + /// The symbol type. + /// \a empty_symbol when empty. + /// An int, not token_number_type, to be able to store empty_symbol. + int type; }; - /// Backward compatibility for a private implementation detail (Bison 3.6). - typedef by_kind by_type; - /// "External" symbols: returned by the scanner. - struct symbol_type : basic_symbol<by_kind> - { - /// Superclass. - typedef basic_symbol<by_kind> super_type; + typedef basic_symbol<by_type> symbol_type; - /// Empty symbol. - symbol_type () {} + // Symbol constructors declarations. + static inline + symbol_type + make_END (const location_type& l); + + static inline + symbol_type + make_COMMA (const location_type& l); + + static inline + symbol_type + make_COLON (const location_type& l); + + static inline + symbol_type + make_LSQUARE_BRACKET (const location_type& l); + + static inline + symbol_type + make_RSQUARE_BRACKET (const location_type& l); + + static inline + symbol_type + make_LCURLY_BRACKET (const location_type& l); + + static inline + symbol_type + make_RCURLY_BRACKET (const location_type& l); + + static inline + symbol_type + make_NULL_TYPE (const location_type& l); + + static inline + symbol_type + make_DHCP4 (const location_type& l); + + static inline + symbol_type + make_CONFIG_CONTROL (const location_type& l); + + static inline + symbol_type + make_CONFIG_DATABASES (const location_type& l); + + static inline + symbol_type + make_CONFIG_FETCH_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_INTERFACES_CONFIG (const location_type& l); + + static inline + symbol_type + make_INTERFACES (const location_type& l); + + static inline + symbol_type + make_DHCP_SOCKET_TYPE (const location_type& l); + + static inline + symbol_type + make_RAW (const location_type& l); + + static inline + symbol_type + make_UDP (const location_type& l); + + static inline + symbol_type + make_OUTBOUND_INTERFACE (const location_type& l); + + static inline + symbol_type + make_SAME_AS_INBOUND (const location_type& l); + + static inline + symbol_type + make_USE_ROUTING (const location_type& l); + + static inline + symbol_type + make_RE_DETECT (const location_type& l); + + static inline + symbol_type + make_SANITY_CHECKS (const location_type& l); + + static inline + symbol_type + make_LEASE_CHECKS (const location_type& l); + + static inline + symbol_type + make_ECHO_CLIENT_ID (const location_type& l); + + static inline + symbol_type + make_MATCH_CLIENT_ID (const location_type& l); + + static inline + symbol_type + make_AUTHORITATIVE (const location_type& l); + + static inline + symbol_type + make_NEXT_SERVER (const location_type& l); + + static inline + symbol_type + make_SERVER_HOSTNAME (const location_type& l); + + static inline + symbol_type + make_BOOT_FILE_NAME (const location_type& l); + + static inline + symbol_type + make_LEASE_DATABASE (const location_type& l); + + static inline + symbol_type + make_HOSTS_DATABASE (const location_type& l); + + static inline + symbol_type + make_HOSTS_DATABASES (const location_type& l); + + static inline + symbol_type + make_TYPE (const location_type& l); + + static inline + symbol_type + make_MEMFILE (const location_type& l); + + static inline + symbol_type + make_MYSQL (const location_type& l); + + static inline + symbol_type + make_POSTGRESQL (const location_type& l); + + static inline + symbol_type + make_CQL (const location_type& l); + + static inline + symbol_type + make_USER (const location_type& l); + + static inline + symbol_type + make_PASSWORD (const location_type& l); + + static inline + symbol_type + make_HOST (const location_type& l); + + static inline + symbol_type + make_PORT (const location_type& l); + + static inline + symbol_type + make_PERSIST (const location_type& l); + + static inline + symbol_type + make_LFC_INTERVAL (const location_type& l); + + static inline + symbol_type + make_READONLY (const location_type& l); + + static inline + symbol_type + make_CONNECT_TIMEOUT (const location_type& l); + + static inline + symbol_type + make_CONTACT_POINTS (const location_type& l); + + static inline + symbol_type + make_KEYSPACE (const location_type& l); + + static inline + symbol_type + make_CONSISTENCY (const location_type& l); + + static inline + symbol_type + make_SERIAL_CONSISTENCY (const location_type& l); + + static inline + symbol_type + make_MAX_RECONNECT_TRIES (const location_type& l); + + static inline + symbol_type + make_RECONNECT_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_REQUEST_TIMEOUT (const location_type& l); + + static inline + symbol_type + make_TCP_KEEPALIVE (const location_type& l); + + static inline + symbol_type + make_TCP_NODELAY (const location_type& l); + + static inline + symbol_type + make_MAX_ROW_ERRORS (const location_type& l); + + static inline + symbol_type + make_VALID_LIFETIME (const location_type& l); + + static inline + symbol_type + make_MIN_VALID_LIFETIME (const location_type& l); + + static inline + symbol_type + make_MAX_VALID_LIFETIME (const location_type& l); + + static inline + symbol_type + make_RENEW_TIMER (const location_type& l); + + static inline + symbol_type + make_REBIND_TIMER (const location_type& l); + + static inline + symbol_type + make_CALCULATE_TEE_TIMES (const location_type& l); + + static inline + symbol_type + make_T1_PERCENT (const location_type& l); + + static inline + symbol_type + make_T2_PERCENT (const location_type& l); + + static inline + symbol_type + make_CACHE_THRESHOLD (const location_type& l); + + static inline + symbol_type + make_CACHE_MAX_AGE (const location_type& l); + + static inline + symbol_type + make_DECLINE_PROBATION_PERIOD (const location_type& l); + + static inline + symbol_type + make_SERVER_TAG (const location_type& l); + + static inline + symbol_type + make_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l); + + static inline + symbol_type + make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l); + + static inline + symbol_type + make_DDNS_SEND_UPDATES (const location_type& l); + + static inline + symbol_type + make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l); + + static inline + symbol_type + make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l); + + static inline + symbol_type + make_DDNS_REPLACE_CLIENT_NAME (const location_type& l); + + static inline + symbol_type + make_DDNS_GENERATED_PREFIX (const location_type& l); + + static inline + symbol_type + make_DDNS_QUALIFYING_SUFFIX (const location_type& l); + + static inline + symbol_type + make_DDNS_UPDATE_ON_RENEW (const location_type& l); + + static inline + symbol_type + make_DDNS_USE_CONFLICT_RESOLUTION (const location_type& l); + + static inline + symbol_type + make_STORE_EXTENDED_INFO (const location_type& l); + + static inline + symbol_type + make_SUBNET4 (const location_type& l); + + static inline + symbol_type + make_SUBNET_4O6_INTERFACE (const location_type& l); + + static inline + symbol_type + make_SUBNET_4O6_INTERFACE_ID (const location_type& l); + + static inline + symbol_type + make_SUBNET_4O6_SUBNET (const location_type& l); + + static inline + symbol_type + make_OPTION_DEF (const location_type& l); + + static inline + symbol_type + make_OPTION_DATA (const location_type& l); + + static inline + symbol_type + make_NAME (const location_type& l); + + static inline + symbol_type + make_DATA (const location_type& l); + + static inline + symbol_type + make_CODE (const location_type& l); + + static inline + symbol_type + make_SPACE (const location_type& l); + + static inline + symbol_type + make_CSV_FORMAT (const location_type& l); + + static inline + symbol_type + make_ALWAYS_SEND (const location_type& l); + + static inline + symbol_type + make_RECORD_TYPES (const location_type& l); + + static inline + symbol_type + make_ENCAPSULATE (const location_type& l); + + static inline + symbol_type + make_ARRAY (const location_type& l); + + static inline + symbol_type + make_SHARED_NETWORKS (const location_type& l); + + static inline + symbol_type + make_POOLS (const location_type& l); + + static inline + symbol_type + make_POOL (const location_type& l); + + static inline + symbol_type + make_USER_CONTEXT (const location_type& l); + + static inline + symbol_type + make_COMMENT (const location_type& l); + + static inline + symbol_type + make_SUBNET (const location_type& l); + + static inline + symbol_type + make_INTERFACE (const location_type& l); + + static inline + symbol_type + make_ID (const location_type& l); + + static inline + symbol_type + make_RESERVATION_MODE (const location_type& l); + + static inline + symbol_type + make_DISABLED (const location_type& l); + + static inline + symbol_type + make_OUT_OF_POOL (const location_type& l); + + static inline + symbol_type + make_GLOBAL (const location_type& l); + + static inline + symbol_type + make_ALL (const location_type& l); + + static inline + symbol_type + make_HOST_RESERVATION_IDENTIFIERS (const location_type& l); + + static inline + symbol_type + make_CLIENT_CLASSES (const location_type& l); + + static inline + symbol_type + make_REQUIRE_CLIENT_CLASSES (const location_type& l); + + static inline + symbol_type + make_TEST (const location_type& l); + + static inline + symbol_type + make_ONLY_IF_REQUIRED (const location_type& l); + + static inline + symbol_type + make_CLIENT_CLASS (const location_type& l); + + static inline + symbol_type + make_RESERVATIONS (const location_type& l); + + static inline + symbol_type + make_DUID (const location_type& l); + + static inline + symbol_type + make_HW_ADDRESS (const location_type& l); + + static inline + symbol_type + make_CIRCUIT_ID (const location_type& l); + + static inline + symbol_type + make_CLIENT_ID (const location_type& l); + + static inline + symbol_type + make_HOSTNAME (const location_type& l); + + static inline + symbol_type + make_FLEX_ID (const location_type& l); + + static inline + symbol_type + make_RELAY (const location_type& l); + + static inline + symbol_type + make_IP_ADDRESS (const location_type& l); + + static inline + symbol_type + make_IP_ADDRESSES (const location_type& l); + + static inline + symbol_type + make_HOOKS_LIBRARIES (const location_type& l); + + static inline + symbol_type + make_LIBRARY (const location_type& l); + + static inline + symbol_type + make_PARAMETERS (const location_type& l); + + static inline + symbol_type + make_EXPIRED_LEASES_PROCESSING (const location_type& l); + + static inline + symbol_type + make_RECLAIM_TIMER_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_HOLD_RECLAIMED_TIME (const location_type& l); + + static inline + symbol_type + make_MAX_RECLAIM_LEASES (const location_type& l); + + static inline + symbol_type + make_MAX_RECLAIM_TIME (const location_type& l); + + static inline + symbol_type + make_UNWARNED_RECLAIM_CYCLES (const location_type& l); + + static inline + symbol_type + make_DHCP4O6_PORT (const location_type& l); + + static inline + symbol_type + make_DHCP_MULTI_THREADING (const location_type& l); + + static inline + symbol_type + make_ENABLE_MULTI_THREADING (const location_type& l); + + static inline + symbol_type + make_THREAD_POOL_SIZE (const location_type& l); + + static inline + symbol_type + make_PACKET_QUEUE_SIZE (const location_type& l); + + static inline + symbol_type + make_CONTROL_SOCKET (const location_type& l); + + static inline + symbol_type + make_SOCKET_TYPE (const location_type& l); + + static inline + symbol_type + make_SOCKET_NAME (const location_type& l); + + static inline + symbol_type + make_DHCP_QUEUE_CONTROL (const location_type& l); + + static inline + symbol_type + make_ENABLE_QUEUE (const location_type& l); + + static inline + symbol_type + make_QUEUE_TYPE (const location_type& l); + + static inline + symbol_type + make_CAPACITY (const location_type& l); + + static inline + symbol_type + make_DHCP_DDNS (const location_type& l); + + static inline + symbol_type + make_ENABLE_UPDATES (const location_type& l); + + static inline + symbol_type + make_QUALIFYING_SUFFIX (const location_type& l); + + static inline + symbol_type + make_SERVER_IP (const location_type& l); + + static inline + symbol_type + make_SERVER_PORT (const location_type& l); + + static inline + symbol_type + make_SENDER_IP (const location_type& l); + + static inline + symbol_type + make_SENDER_PORT (const location_type& l); + + static inline + symbol_type + make_MAX_QUEUE_SIZE (const location_type& l); + + static inline + symbol_type + make_NCR_PROTOCOL (const location_type& l); + + static inline + symbol_type + make_NCR_FORMAT (const location_type& l); + + static inline + symbol_type + make_OVERRIDE_NO_UPDATE (const location_type& l); + + static inline + symbol_type + make_OVERRIDE_CLIENT_UPDATE (const location_type& l); + + static inline + symbol_type + make_REPLACE_CLIENT_NAME (const location_type& l); + + static inline + symbol_type + make_GENERATED_PREFIX (const location_type& l); + + static inline + symbol_type + make_TCP (const location_type& l); + + static inline + symbol_type + make_JSON (const location_type& l); + + static inline + symbol_type + make_WHEN_PRESENT (const location_type& l); + + static inline + symbol_type + make_NEVER (const location_type& l); + + static inline + symbol_type + make_ALWAYS (const location_type& l); + + static inline + symbol_type + make_WHEN_NOT_PRESENT (const location_type& l); + + static inline + symbol_type + make_HOSTNAME_CHAR_SET (const location_type& l); + + static inline + symbol_type + make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l); + + static inline + symbol_type + make_IP_RESERVATIONS_UNIQUE (const location_type& l); + + static inline + symbol_type + make_LOGGERS (const location_type& l); + + static inline + symbol_type + make_OUTPUT_OPTIONS (const location_type& l); + + static inline + symbol_type + make_OUTPUT (const location_type& l); + + static inline + symbol_type + make_DEBUGLEVEL (const location_type& l); + + static inline + symbol_type + make_SEVERITY (const location_type& l); + + static inline + symbol_type + make_FLUSH (const location_type& l); + + static inline + symbol_type + make_MAXSIZE (const location_type& l); + + static inline + symbol_type + make_MAXVER (const location_type& l); + + static inline + symbol_type + make_PATTERN (const location_type& l); + + static inline + symbol_type + make_TOPLEVEL_JSON (const location_type& l); + + static inline + symbol_type + make_TOPLEVEL_DHCP4 (const location_type& l); + + static inline + symbol_type + make_SUB_DHCP4 (const location_type& l); + + static inline + symbol_type + make_SUB_INTERFACES4 (const location_type& l); + + static inline + symbol_type + make_SUB_SUBNET4 (const location_type& l); + + static inline + symbol_type + make_SUB_POOL4 (const location_type& l); + + static inline + symbol_type + make_SUB_RESERVATION (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DEFS (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DEF (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DATA (const location_type& l); + + static inline + symbol_type + make_SUB_HOOKS_LIBRARY (const location_type& l); + + static inline + symbol_type + make_SUB_DHCP_DDNS (const location_type& l); + + static inline + symbol_type + make_SUB_CONFIG_CONTROL (const location_type& l); + + static inline + symbol_type + make_STRING (const std::string& v, const location_type& l); + + static inline + symbol_type + make_INTEGER (const int64_t& v, const location_type& l); + + static inline + symbol_type + make_FLOAT (const double& v, const location_type& l); + + static inline + symbol_type + make_BOOLEAN (const bool& v, const location_type& l); - /// Constructor for valueless symbols, and symbols from each type. -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, location_type l) - : super_type(token_type (tok), std::move (l)) - { - 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_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_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_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); - } -#else - symbol_type (int tok, const location_type& l) - : super_type(token_type (tok), l) - { - 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_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_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_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, bool v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOKEN_BOOLEAN); - } -#else - symbol_type (int tok, const bool& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_ASSERT (tok == token::TOKEN_BOOLEAN); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, double v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOKEN_FLOAT); - } -#else - symbol_type (int tok, const double& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_ASSERT (tok == token::TOKEN_FLOAT); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, int64_t v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOKEN_INTEGER); - } -#else - symbol_type (int tok, const int64_t& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_ASSERT (tok == token::TOKEN_INTEGER); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, std::string v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOKEN_STRING); - } -#else - symbol_type (int tok, const std::string& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_ASSERT (tok == token::TOKEN_STRING); - } -#endif - }; /// Build a parser object. Dhcp4Parser (isc::dhcp::Parser4Context& ctx_yyarg); virtual ~Dhcp4Parser (); -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - Dhcp4Parser (const Dhcp4Parser&) = delete; - /// Non copyable. - Dhcp4Parser& operator= (const Dhcp4Parser&) = delete; -#endif - - /// Parse. An alias for parse (). - /// \returns 0 iff parsing succeeded. - int operator() (); - /// Parse. /// \returns 0 iff parsing succeeded. virtual int parse (); @@ -1689,2964 +1457,24 @@ switch (yykind) /// Report a syntax error. void error (const syntax_error& err); - /// The user-facing name of the symbol whose (internal) number is - /// YYSYMBOL. No bounds checking. - static std::string symbol_name (symbol_kind_type yysymbol); - - // Implementation of make_symbol for each symbol type. -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_END (location_type l) - { - return symbol_type (token::TOKEN_END, std::move (l)); - } -#else - static - symbol_type - make_END (const location_type& l) - { - return symbol_type (token::TOKEN_END, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PARSER4_error (location_type l) - { - return symbol_type (token::TOKEN_PARSER4_error, std::move (l)); - } -#else - static - symbol_type - make_PARSER4_error (const location_type& l) - { - return symbol_type (token::TOKEN_PARSER4_error, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PARSER4_UNDEF (location_type l) - { - return symbol_type (token::TOKEN_PARSER4_UNDEF, std::move (l)); - } -#else - static - symbol_type - make_PARSER4_UNDEF (const location_type& l) - { - return symbol_type (token::TOKEN_PARSER4_UNDEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COMMA (location_type l) - { - return symbol_type (token::TOKEN_COMMA, std::move (l)); - } -#else - static - symbol_type - make_COMMA (const location_type& l) - { - return symbol_type (token::TOKEN_COMMA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COLON (location_type l) - { - return symbol_type (token::TOKEN_COLON, std::move (l)); - } -#else - static - symbol_type - make_COLON (const location_type& l) - { - return symbol_type (token::TOKEN_COLON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LSQUARE_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_LSQUARE_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RSQUARE_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_RSQUARE_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LCURLY_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_LCURLY_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_LCURLY_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RCURLY_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_RCURLY_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_RCURLY_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NULL_TYPE (location_type l) - { - return symbol_type (token::TOKEN_NULL_TYPE, std::move (l)); - } -#else - static - symbol_type - make_NULL_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_NULL_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP4 (location_type l) - { - return symbol_type (token::TOKEN_DHCP4, std::move (l)); - } -#else - static - symbol_type - make_DHCP4 (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_DATABASES (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_DATABASES, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_DATABASES (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_DATABASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_FETCH_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_FETCH_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACES_CONFIG (location_type l) - { - return symbol_type (token::TOKEN_INTERFACES_CONFIG, std::move (l)); - } -#else - static - symbol_type - make_INTERFACES_CONFIG (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACES_CONFIG, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACES (location_type l) - { - return symbol_type (token::TOKEN_INTERFACES, std::move (l)); - } -#else - static - symbol_type - make_INTERFACES (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_SOCKET_TYPE (location_type l) - { - return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, std::move (l)); - } -#else - static - symbol_type - make_DHCP_SOCKET_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RAW (location_type l) - { - return symbol_type (token::TOKEN_RAW, std::move (l)); - } -#else - static - symbol_type - make_RAW (const location_type& l) - { - return symbol_type (token::TOKEN_RAW, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_UDP (location_type l) - { - return symbol_type (token::TOKEN_UDP, std::move (l)); - } -#else - static - symbol_type - make_UDP (const location_type& l) - { - return symbol_type (token::TOKEN_UDP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUTBOUND_INTERFACE (location_type l) - { - return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, std::move (l)); - } -#else - static - symbol_type - make_OUTBOUND_INTERFACE (const location_type& l) - { - return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SAME_AS_INBOUND (location_type l) - { - return symbol_type (token::TOKEN_SAME_AS_INBOUND, std::move (l)); - } -#else - static - symbol_type - make_SAME_AS_INBOUND (const location_type& l) - { - return symbol_type (token::TOKEN_SAME_AS_INBOUND, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_USE_ROUTING (location_type l) - { - return symbol_type (token::TOKEN_USE_ROUTING, std::move (l)); - } -#else - static - symbol_type - make_USE_ROUTING (const location_type& l) - { - return symbol_type (token::TOKEN_USE_ROUTING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RE_DETECT (location_type l) - { - return symbol_type (token::TOKEN_RE_DETECT, std::move (l)); - } -#else - static - symbol_type - make_RE_DETECT (const location_type& l) - { - return symbol_type (token::TOKEN_RE_DETECT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SANITY_CHECKS (location_type l) - { - return symbol_type (token::TOKEN_SANITY_CHECKS, std::move (l)); - } -#else - static - symbol_type - make_SANITY_CHECKS (const location_type& l) - { - return symbol_type (token::TOKEN_SANITY_CHECKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LEASE_CHECKS (location_type l) - { - return symbol_type (token::TOKEN_LEASE_CHECKS, std::move (l)); - } -#else - static - symbol_type - make_LEASE_CHECKS (const location_type& l) - { - return symbol_type (token::TOKEN_LEASE_CHECKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ECHO_CLIENT_ID (location_type l) - { - return symbol_type (token::TOKEN_ECHO_CLIENT_ID, std::move (l)); - } -#else - static - symbol_type - make_ECHO_CLIENT_ID (const location_type& l) - { - return symbol_type (token::TOKEN_ECHO_CLIENT_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MATCH_CLIENT_ID (location_type l) - { - return symbol_type (token::TOKEN_MATCH_CLIENT_ID, std::move (l)); - } -#else - static - symbol_type - make_MATCH_CLIENT_ID (const location_type& l) - { - return symbol_type (token::TOKEN_MATCH_CLIENT_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_AUTHORITATIVE (location_type l) - { - return symbol_type (token::TOKEN_AUTHORITATIVE, std::move (l)); - } -#else - static - symbol_type - make_AUTHORITATIVE (const location_type& l) - { - return symbol_type (token::TOKEN_AUTHORITATIVE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NEXT_SERVER (location_type l) - { - return symbol_type (token::TOKEN_NEXT_SERVER, std::move (l)); - } -#else - static - symbol_type - make_NEXT_SERVER (const location_type& l) - { - return symbol_type (token::TOKEN_NEXT_SERVER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_HOSTNAME (location_type l) - { - return symbol_type (token::TOKEN_SERVER_HOSTNAME, std::move (l)); - } -#else - static - symbol_type - make_SERVER_HOSTNAME (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_HOSTNAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_BOOT_FILE_NAME (location_type l) - { - return symbol_type (token::TOKEN_BOOT_FILE_NAME, std::move (l)); - } -#else - static - symbol_type - make_BOOT_FILE_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_BOOT_FILE_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LEASE_DATABASE (location_type l) - { - return symbol_type (token::TOKEN_LEASE_DATABASE, std::move (l)); - } -#else - static - symbol_type - make_LEASE_DATABASE (const location_type& l) - { - return symbol_type (token::TOKEN_LEASE_DATABASE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTS_DATABASE (location_type l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASE, std::move (l)); - } -#else - static - symbol_type - make_HOSTS_DATABASE (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTS_DATABASES (location_type l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASES, std::move (l)); - } -#else - static - symbol_type - make_HOSTS_DATABASES (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TYPE (location_type l) - { - return symbol_type (token::TOKEN_TYPE, std::move (l)); - } -#else - static - symbol_type - make_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MEMFILE (location_type l) - { - return symbol_type (token::TOKEN_MEMFILE, std::move (l)); - } -#else - static - symbol_type - make_MEMFILE (const location_type& l) - { - return symbol_type (token::TOKEN_MEMFILE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MYSQL (location_type l) - { - return symbol_type (token::TOKEN_MYSQL, std::move (l)); - } -#else - static - symbol_type - make_MYSQL (const location_type& l) - { - return symbol_type (token::TOKEN_MYSQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POSTGRESQL (location_type l) - { - return symbol_type (token::TOKEN_POSTGRESQL, std::move (l)); - } -#else - static - symbol_type - make_POSTGRESQL (const location_type& l) - { - return symbol_type (token::TOKEN_POSTGRESQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CQL (location_type l) - { - return symbol_type (token::TOKEN_CQL, std::move (l)); - } -#else - static - symbol_type - make_CQL (const location_type& l) - { - return symbol_type (token::TOKEN_CQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_USER (location_type l) - { - return symbol_type (token::TOKEN_USER, std::move (l)); - } -#else - static - symbol_type - make_USER (const location_type& l) - { - return symbol_type (token::TOKEN_USER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PASSWORD (location_type l) - { - return symbol_type (token::TOKEN_PASSWORD, std::move (l)); - } -#else - static - symbol_type - make_PASSWORD (const location_type& l) - { - return symbol_type (token::TOKEN_PASSWORD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOST (location_type l) - { - return symbol_type (token::TOKEN_HOST, std::move (l)); - } -#else - static - symbol_type - make_HOST (const location_type& l) - { - return symbol_type (token::TOKEN_HOST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PORT (location_type l) - { - return symbol_type (token::TOKEN_PORT, std::move (l)); - } -#else - static - symbol_type - make_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PERSIST (location_type l) - { - return symbol_type (token::TOKEN_PERSIST, std::move (l)); - } -#else - static - symbol_type - make_PERSIST (const location_type& l) - { - return symbol_type (token::TOKEN_PERSIST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LFC_INTERVAL (location_type l) - { - return symbol_type (token::TOKEN_LFC_INTERVAL, std::move (l)); - } -#else - static - symbol_type - make_LFC_INTERVAL (const location_type& l) - { - return symbol_type (token::TOKEN_LFC_INTERVAL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_READONLY (location_type l) - { - return symbol_type (token::TOKEN_READONLY, std::move (l)); - } -#else - static - symbol_type - make_READONLY (const location_type& l) - { - return symbol_type (token::TOKEN_READONLY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONNECT_TIMEOUT (location_type l) - { - return symbol_type (token::TOKEN_CONNECT_TIMEOUT, std::move (l)); - } -#else - static - symbol_type - make_CONNECT_TIMEOUT (const location_type& l) - { - return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTACT_POINTS (location_type l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, std::move (l)); - } -#else - static - symbol_type - make_CONTACT_POINTS (const location_type& l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_KEYSPACE (location_type l) - { - return symbol_type (token::TOKEN_KEYSPACE, std::move (l)); - } -#else - static - symbol_type - make_KEYSPACE (const location_type& l) - { - return symbol_type (token::TOKEN_KEYSPACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONSISTENCY (location_type l) - { - return symbol_type (token::TOKEN_CONSISTENCY, std::move (l)); - } -#else - static - symbol_type - make_CONSISTENCY (const location_type& l) - { - return symbol_type (token::TOKEN_CONSISTENCY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERIAL_CONSISTENCY (location_type l) - { - return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, std::move (l)); - } -#else - static - symbol_type - make_SERIAL_CONSISTENCY (const location_type& l) - { - return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECONNECT_TRIES (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECONNECT_TRIES (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECONNECT_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_RECONNECT_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REQUEST_TIMEOUT (location_type l) - { - return symbol_type (token::TOKEN_REQUEST_TIMEOUT, std::move (l)); - } -#else - static - symbol_type - make_REQUEST_TIMEOUT (const location_type& l) - { - return symbol_type (token::TOKEN_REQUEST_TIMEOUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP_KEEPALIVE (location_type l) - { - return symbol_type (token::TOKEN_TCP_KEEPALIVE, std::move (l)); - } -#else - static - symbol_type - make_TCP_KEEPALIVE (const location_type& l) - { - return symbol_type (token::TOKEN_TCP_KEEPALIVE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP_NODELAY (location_type l) - { - return symbol_type (token::TOKEN_TCP_NODELAY, std::move (l)); - } -#else - static - symbol_type - make_TCP_NODELAY (const location_type& l) - { - return symbol_type (token::TOKEN_TCP_NODELAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_ROW_ERRORS (location_type l) - { - return symbol_type (token::TOKEN_MAX_ROW_ERRORS, std::move (l)); - } -#else - static - symbol_type - make_MAX_ROW_ERRORS (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_ROW_ERRORS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MIN_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MIN_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MAX_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RENEW_TIMER (location_type l) - { - return symbol_type (token::TOKEN_RENEW_TIMER, std::move (l)); - } -#else - static - symbol_type - make_RENEW_TIMER (const location_type& l) - { - return symbol_type (token::TOKEN_RENEW_TIMER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REBIND_TIMER (location_type l) - { - return symbol_type (token::TOKEN_REBIND_TIMER, std::move (l)); - } -#else - static - symbol_type - make_REBIND_TIMER (const location_type& l) - { - return symbol_type (token::TOKEN_REBIND_TIMER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CALCULATE_TEE_TIMES (location_type l) - { - return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, std::move (l)); - } -#else - static - symbol_type - make_CALCULATE_TEE_TIMES (const location_type& l) - { - return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_T1_PERCENT (location_type l) - { - return symbol_type (token::TOKEN_T1_PERCENT, std::move (l)); - } -#else - static - symbol_type - make_T1_PERCENT (const location_type& l) - { - return symbol_type (token::TOKEN_T1_PERCENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_T2_PERCENT (location_type l) - { - return symbol_type (token::TOKEN_T2_PERCENT, std::move (l)); - } -#else - static - symbol_type - make_T2_PERCENT (const location_type& l) - { - return symbol_type (token::TOKEN_T2_PERCENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CACHE_THRESHOLD (location_type l) - { - return symbol_type (token::TOKEN_CACHE_THRESHOLD, std::move (l)); - } -#else - static - symbol_type - make_CACHE_THRESHOLD (const location_type& l) - { - return symbol_type (token::TOKEN_CACHE_THRESHOLD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CACHE_MAX_AGE (location_type l) - { - return symbol_type (token::TOKEN_CACHE_MAX_AGE, std::move (l)); - } -#else - static - symbol_type - make_CACHE_MAX_AGE (const location_type& l) - { - return symbol_type (token::TOKEN_CACHE_MAX_AGE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DECLINE_PROBATION_PERIOD (location_type l) - { - return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, std::move (l)); - } -#else - static - symbol_type - make_DECLINE_PROBATION_PERIOD (const location_type& l) - { - return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_TAG (location_type l) - { - return symbol_type (token::TOKEN_SERVER_TAG, std::move (l)); - } -#else - static - symbol_type - make_SERVER_TAG (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_TAG, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_COUNT (location_type l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, std::move (l)); - } -#else - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_AGE (location_type l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, std::move (l)); - } -#else - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_SEND_UPDATES (location_type l) - { - return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, std::move (l)); - } -#else - static - symbol_type - make_DDNS_SEND_UPDATES (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_OVERRIDE_NO_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_OVERRIDE_CLIENT_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_REPLACE_CLIENT_NAME (location_type l) - { - return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, std::move (l)); - } -#else - static - symbol_type - make_DDNS_REPLACE_CLIENT_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_GENERATED_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_DDNS_GENERATED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_QUALIFYING_SUFFIX (location_type l) - { - return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, std::move (l)); - } -#else - static - symbol_type - make_DDNS_QUALIFYING_SUFFIX (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_UPDATE_ON_RENEW (location_type l) - { - return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, std::move (l)); - } -#else - static - symbol_type - make_DDNS_UPDATE_ON_RENEW (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, 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)); - } -#else - static - symbol_type - make_STORE_EXTENDED_INFO (const location_type& l) - { - return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET4 (location_type l) - { - return symbol_type (token::TOKEN_SUBNET4, std::move (l)); - } -#else - static - symbol_type - make_SUBNET4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET_4O6_INTERFACE (location_type l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, std::move (l)); - } -#else - static - symbol_type - make_SUBNET_4O6_INTERFACE (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET_4O6_INTERFACE_ID (location_type l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, std::move (l)); - } -#else - static - symbol_type - make_SUBNET_4O6_INTERFACE_ID (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET_4O6_SUBNET (location_type l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, std::move (l)); - } -#else - static - symbol_type - make_SUBNET_4O6_SUBNET (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OPTION_DEF (location_type l) - { - return symbol_type (token::TOKEN_OPTION_DEF, std::move (l)); - } -#else - static - symbol_type - make_OPTION_DEF (const location_type& l) - { - return symbol_type (token::TOKEN_OPTION_DEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OPTION_DATA (location_type l) - { - return symbol_type (token::TOKEN_OPTION_DATA, std::move (l)); - } -#else - static - symbol_type - make_OPTION_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_OPTION_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NAME (location_type l) - { - return symbol_type (token::TOKEN_NAME, std::move (l)); - } -#else - static - symbol_type - make_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DATA (location_type l) - { - return symbol_type (token::TOKEN_DATA, std::move (l)); - } -#else - static - symbol_type - make_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CODE (location_type l) - { - return symbol_type (token::TOKEN_CODE, std::move (l)); - } -#else - static - symbol_type - make_CODE (const location_type& l) - { - return symbol_type (token::TOKEN_CODE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SPACE (location_type l) - { - return symbol_type (token::TOKEN_SPACE, std::move (l)); - } -#else - static - symbol_type - make_SPACE (const location_type& l) - { - return symbol_type (token::TOKEN_SPACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CSV_FORMAT (location_type l) - { - return symbol_type (token::TOKEN_CSV_FORMAT, std::move (l)); - } -#else - static - symbol_type - make_CSV_FORMAT (const location_type& l) - { - return symbol_type (token::TOKEN_CSV_FORMAT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALWAYS_SEND (location_type l) - { - return symbol_type (token::TOKEN_ALWAYS_SEND, std::move (l)); - } -#else - static - symbol_type - make_ALWAYS_SEND (const location_type& l) - { - return symbol_type (token::TOKEN_ALWAYS_SEND, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECORD_TYPES (location_type l) - { - return symbol_type (token::TOKEN_RECORD_TYPES, std::move (l)); - } -#else - static - symbol_type - make_RECORD_TYPES (const location_type& l) - { - return symbol_type (token::TOKEN_RECORD_TYPES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENCAPSULATE (location_type l) - { - return symbol_type (token::TOKEN_ENCAPSULATE, std::move (l)); - } -#else - static - symbol_type - make_ENCAPSULATE (const location_type& l) - { - return symbol_type (token::TOKEN_ENCAPSULATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ARRAY (location_type l) - { - return symbol_type (token::TOKEN_ARRAY, std::move (l)); - } -#else - static - symbol_type - make_ARRAY (const location_type& l) - { - return symbol_type (token::TOKEN_ARRAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SHARED_NETWORKS (location_type l) - { - return symbol_type (token::TOKEN_SHARED_NETWORKS, std::move (l)); - } -#else - static - symbol_type - make_SHARED_NETWORKS (const location_type& l) - { - return symbol_type (token::TOKEN_SHARED_NETWORKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POOLS (location_type l) - { - return symbol_type (token::TOKEN_POOLS, std::move (l)); - } -#else - static - symbol_type - make_POOLS (const location_type& l) - { - return symbol_type (token::TOKEN_POOLS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POOL (location_type l) - { - return symbol_type (token::TOKEN_POOL, std::move (l)); - } -#else - static - symbol_type - make_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_USER_CONTEXT (location_type l) - { - return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l)); - } -#else - static - symbol_type - make_USER_CONTEXT (const location_type& l) - { - return symbol_type (token::TOKEN_USER_CONTEXT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COMMENT (location_type l) - { - return symbol_type (token::TOKEN_COMMENT, std::move (l)); - } -#else - static - symbol_type - make_COMMENT (const location_type& l) - { - return symbol_type (token::TOKEN_COMMENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET (location_type l) - { - return symbol_type (token::TOKEN_SUBNET, std::move (l)); - } -#else - static - symbol_type - make_SUBNET (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACE (location_type l) - { - return symbol_type (token::TOKEN_INTERFACE, std::move (l)); - } -#else - static - symbol_type - make_INTERFACE (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ID (location_type l) - { - return symbol_type (token::TOKEN_ID, std::move (l)); - } -#else - static - symbol_type - make_ID (const location_type& l) - { - return symbol_type (token::TOKEN_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RESERVATION_MODE (location_type l) - { - return symbol_type (token::TOKEN_RESERVATION_MODE, std::move (l)); - } -#else - static - symbol_type - make_RESERVATION_MODE (const location_type& l) - { - return symbol_type (token::TOKEN_RESERVATION_MODE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DISABLED (location_type l) - { - return symbol_type (token::TOKEN_DISABLED, std::move (l)); - } -#else - static - symbol_type - make_DISABLED (const location_type& l) - { - return symbol_type (token::TOKEN_DISABLED, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUT_OF_POOL (location_type l) - { - return symbol_type (token::TOKEN_OUT_OF_POOL, std::move (l)); - } -#else - static - symbol_type - make_OUT_OF_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_OUT_OF_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_GLOBAL (location_type l) - { - return symbol_type (token::TOKEN_GLOBAL, std::move (l)); - } -#else - static - symbol_type - make_GLOBAL (const location_type& l) - { - return symbol_type (token::TOKEN_GLOBAL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALL (location_type l) - { - return symbol_type (token::TOKEN_ALL, std::move (l)); - } -#else - static - symbol_type - make_ALL (const location_type& l) - { - return symbol_type (token::TOKEN_ALL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOST_RESERVATION_IDENTIFIERS (location_type l) - { - return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, std::move (l)); - } -#else - static - symbol_type - make_HOST_RESERVATION_IDENTIFIERS (const location_type& l) - { - return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CLIENT_CLASSES (location_type l) - { - return symbol_type (token::TOKEN_CLIENT_CLASSES, std::move (l)); - } -#else - static - symbol_type - make_CLIENT_CLASSES (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_CLASSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REQUIRE_CLIENT_CLASSES (location_type l) - { - return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, std::move (l)); - } -#else - static - symbol_type - make_REQUIRE_CLIENT_CLASSES (const location_type& l) - { - return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TEST (location_type l) - { - return symbol_type (token::TOKEN_TEST, std::move (l)); - } -#else - static - symbol_type - make_TEST (const location_type& l) - { - return symbol_type (token::TOKEN_TEST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ONLY_IF_REQUIRED (location_type l) - { - return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, std::move (l)); - } -#else - static - symbol_type - make_ONLY_IF_REQUIRED (const location_type& l) - { - return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CLIENT_CLASS (location_type l) - { - return symbol_type (token::TOKEN_CLIENT_CLASS, std::move (l)); - } -#else - static - symbol_type - make_CLIENT_CLASS (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_CLASS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RESERVATIONS (location_type l) - { - return symbol_type (token::TOKEN_RESERVATIONS, std::move (l)); - } -#else - static - symbol_type - make_RESERVATIONS (const location_type& l) - { - return symbol_type (token::TOKEN_RESERVATIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DUID (location_type l) - { - return symbol_type (token::TOKEN_DUID, std::move (l)); - } -#else - static - symbol_type - make_DUID (const location_type& l) - { - return symbol_type (token::TOKEN_DUID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HW_ADDRESS (location_type l) - { - return symbol_type (token::TOKEN_HW_ADDRESS, std::move (l)); - } -#else - static - symbol_type - make_HW_ADDRESS (const location_type& l) - { - return symbol_type (token::TOKEN_HW_ADDRESS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CIRCUIT_ID (location_type l) - { - return symbol_type (token::TOKEN_CIRCUIT_ID, std::move (l)); - } -#else - static - symbol_type - make_CIRCUIT_ID (const location_type& l) - { - return symbol_type (token::TOKEN_CIRCUIT_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CLIENT_ID (location_type l) - { - return symbol_type (token::TOKEN_CLIENT_ID, std::move (l)); - } -#else - static - symbol_type - make_CLIENT_ID (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLEX_ID (location_type l) - { - return symbol_type (token::TOKEN_FLEX_ID, std::move (l)); - } -#else - static - symbol_type - make_FLEX_ID (const location_type& l) - { - return symbol_type (token::TOKEN_FLEX_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RELAY (location_type l) - { - return symbol_type (token::TOKEN_RELAY, std::move (l)); - } -#else - static - symbol_type - make_RELAY (const location_type& l) - { - return symbol_type (token::TOKEN_RELAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IP_ADDRESS (location_type l) - { - return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l)); - } -#else - static - symbol_type - make_IP_ADDRESS (const location_type& l) - { - return symbol_type (token::TOKEN_IP_ADDRESS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IP_ADDRESSES (location_type l) - { - return symbol_type (token::TOKEN_IP_ADDRESSES, std::move (l)); - } -#else - static - symbol_type - make_IP_ADDRESSES (const location_type& l) - { - return symbol_type (token::TOKEN_IP_ADDRESSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOOKS_LIBRARIES (location_type l) - { - return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l)); - } -#else - static - symbol_type - make_HOOKS_LIBRARIES (const location_type& l) - { - return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LIBRARY (location_type l) - { - return symbol_type (token::TOKEN_LIBRARY, std::move (l)); - } -#else - static - symbol_type - make_LIBRARY (const location_type& l) - { - return symbol_type (token::TOKEN_LIBRARY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PARAMETERS (location_type l) - { - return symbol_type (token::TOKEN_PARAMETERS, std::move (l)); - } -#else - static - symbol_type - make_PARAMETERS (const location_type& l) - { - return symbol_type (token::TOKEN_PARAMETERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EXPIRED_LEASES_PROCESSING (location_type l) - { - return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, std::move (l)); - } -#else - static - symbol_type - make_EXPIRED_LEASES_PROCESSING (const location_type& l) - { - return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECLAIM_TIMER_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_RECLAIM_TIMER_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOLD_RECLAIMED_TIME (location_type l) - { - return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, std::move (l)); - } -#else - static - symbol_type - make_HOLD_RECLAIMED_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECLAIM_LEASES (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECLAIM_LEASES (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECLAIM_TIME (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECLAIM_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_UNWARNED_RECLAIM_CYCLES (location_type l) - { - return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, std::move (l)); - } -#else - static - symbol_type - make_UNWARNED_RECLAIM_CYCLES (const location_type& l) - { - return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP4O6_PORT (location_type l) - { - return symbol_type (token::TOKEN_DHCP4O6_PORT, std::move (l)); - } -#else - static - symbol_type - make_DHCP4O6_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP4O6_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_MULTI_THREADING (location_type l) - { - return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, std::move (l)); - } -#else - static - symbol_type - make_DHCP_MULTI_THREADING (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENABLE_MULTI_THREADING (location_type l) - { - return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, std::move (l)); - } -#else - static - symbol_type - make_ENABLE_MULTI_THREADING (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_THREAD_POOL_SIZE (location_type l) - { - return symbol_type (token::TOKEN_THREAD_POOL_SIZE, std::move (l)); - } -#else - static - symbol_type - make_THREAD_POOL_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_THREAD_POOL_SIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PACKET_QUEUE_SIZE (location_type l) - { - return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, std::move (l)); - } -#else - static - symbol_type - make_PACKET_QUEUE_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTROL_SOCKET (location_type l) - { - return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l)); - } -#else - static - symbol_type - make_CONTROL_SOCKET (const location_type& l) - { - return symbol_type (token::TOKEN_CONTROL_SOCKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SOCKET_TYPE (location_type l) - { - return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l)); - } -#else - static - symbol_type - make_SOCKET_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_SOCKET_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SOCKET_NAME (location_type l) - { - return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l)); - } -#else - static - symbol_type - make_SOCKET_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_SOCKET_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_QUEUE_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_DHCP_QUEUE_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENABLE_QUEUE (location_type l) - { - return symbol_type (token::TOKEN_ENABLE_QUEUE, std::move (l)); - } -#else - static - symbol_type - make_ENABLE_QUEUE (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_QUEUE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_QUEUE_TYPE (location_type l) - { - return symbol_type (token::TOKEN_QUEUE_TYPE, std::move (l)); - } -#else - static - symbol_type - make_QUEUE_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_QUEUE_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CAPACITY (location_type l) - { - return symbol_type (token::TOKEN_CAPACITY, std::move (l)); - } -#else - static - symbol_type - make_CAPACITY (const location_type& l) - { - return symbol_type (token::TOKEN_CAPACITY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_DDNS (location_type l) - { - return symbol_type (token::TOKEN_DHCP_DDNS, std::move (l)); - } -#else - static - symbol_type - make_DHCP_DDNS (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_DDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENABLE_UPDATES (location_type l) - { - return symbol_type (token::TOKEN_ENABLE_UPDATES, std::move (l)); - } -#else - static - symbol_type - make_ENABLE_UPDATES (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_UPDATES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_QUALIFYING_SUFFIX (location_type l) - { - return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, std::move (l)); - } -#else - static - symbol_type - make_QUALIFYING_SUFFIX (const location_type& l) - { - return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_IP (location_type l) - { - return symbol_type (token::TOKEN_SERVER_IP, std::move (l)); - } -#else - static - symbol_type - make_SERVER_IP (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_IP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_PORT (location_type l) - { - return symbol_type (token::TOKEN_SERVER_PORT, std::move (l)); - } -#else - static - symbol_type - make_SERVER_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SENDER_IP (location_type l) - { - return symbol_type (token::TOKEN_SENDER_IP, std::move (l)); - } -#else - static - symbol_type - make_SENDER_IP (const location_type& l) - { - return symbol_type (token::TOKEN_SENDER_IP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SENDER_PORT (location_type l) - { - return symbol_type (token::TOKEN_SENDER_PORT, std::move (l)); - } -#else - static - symbol_type - make_SENDER_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_SENDER_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_QUEUE_SIZE (location_type l) - { - return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, std::move (l)); - } -#else - static - symbol_type - make_MAX_QUEUE_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NCR_PROTOCOL (location_type l) - { - return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l)); - } -#else - static - symbol_type - make_NCR_PROTOCOL (const location_type& l) - { - return symbol_type (token::TOKEN_NCR_PROTOCOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NCR_FORMAT (location_type l) - { - return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l)); - } -#else - static - symbol_type - make_NCR_FORMAT (const location_type& l) - { - return symbol_type (token::TOKEN_NCR_FORMAT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OVERRIDE_NO_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_OVERRIDE_NO_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OVERRIDE_CLIENT_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_OVERRIDE_CLIENT_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REPLACE_CLIENT_NAME (location_type l) - { - return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, std::move (l)); - } -#else - static - symbol_type - make_REPLACE_CLIENT_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_GENERATED_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_GENERATED_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_GENERATED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_GENERATED_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP (location_type l) - { - return symbol_type (token::TOKEN_TCP, std::move (l)); - } -#else - static - symbol_type - make_TCP (const location_type& l) - { - return symbol_type (token::TOKEN_TCP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_JSON (location_type l) - { - return symbol_type (token::TOKEN_JSON, std::move (l)); - } -#else - static - symbol_type - make_JSON (const location_type& l) - { - return symbol_type (token::TOKEN_JSON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_WHEN_PRESENT (location_type l) - { - return symbol_type (token::TOKEN_WHEN_PRESENT, std::move (l)); - } -#else - static - symbol_type - make_WHEN_PRESENT (const location_type& l) - { - return symbol_type (token::TOKEN_WHEN_PRESENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NEVER (location_type l) - { - return symbol_type (token::TOKEN_NEVER, std::move (l)); - } -#else - static - symbol_type - make_NEVER (const location_type& l) - { - return symbol_type (token::TOKEN_NEVER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALWAYS (location_type l) - { - return symbol_type (token::TOKEN_ALWAYS, std::move (l)); - } -#else - static - symbol_type - make_ALWAYS (const location_type& l) - { - return symbol_type (token::TOKEN_ALWAYS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_WHEN_NOT_PRESENT (location_type l) - { - return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, std::move (l)); - } -#else - static - symbol_type - make_WHEN_NOT_PRESENT (const location_type& l) - { - return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME_CHAR_SET (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME_CHAR_SET (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME_CHAR_REPLACEMENT (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IP_RESERVATIONS_UNIQUE (location_type l) - { - return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, std::move (l)); - } -#else - static - symbol_type - make_IP_RESERVATIONS_UNIQUE (const location_type& l) - { - return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LOGGERS (location_type l) - { - return symbol_type (token::TOKEN_LOGGERS, std::move (l)); - } -#else - static - symbol_type - make_LOGGERS (const location_type& l) - { - return symbol_type (token::TOKEN_LOGGERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUTPUT_OPTIONS (location_type l) - { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l)); - } -#else - static - symbol_type - make_OUTPUT_OPTIONS (const location_type& l) - { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUTPUT (location_type l) - { - return symbol_type (token::TOKEN_OUTPUT, std::move (l)); - } -#else - static - symbol_type - make_OUTPUT (const location_type& l) - { - return symbol_type (token::TOKEN_OUTPUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DEBUGLEVEL (location_type l) - { - return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l)); - } -#else - static - symbol_type - make_DEBUGLEVEL (const location_type& l) - { - return symbol_type (token::TOKEN_DEBUGLEVEL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SEVERITY (location_type l) - { - return symbol_type (token::TOKEN_SEVERITY, std::move (l)); - } -#else - static - symbol_type - make_SEVERITY (const location_type& l) - { - return symbol_type (token::TOKEN_SEVERITY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLUSH (location_type l) - { - return symbol_type (token::TOKEN_FLUSH, std::move (l)); - } -#else - static - symbol_type - make_FLUSH (const location_type& l) - { - return symbol_type (token::TOKEN_FLUSH, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAXSIZE (location_type l) - { - return symbol_type (token::TOKEN_MAXSIZE, std::move (l)); - } -#else - static - symbol_type - make_MAXSIZE (const location_type& l) - { - return symbol_type (token::TOKEN_MAXSIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAXVER (location_type l) - { - return symbol_type (token::TOKEN_MAXVER, std::move (l)); - } -#else - static - symbol_type - make_MAXVER (const location_type& l) - { - return symbol_type (token::TOKEN_MAXVER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PATTERN (location_type l) - { - return symbol_type (token::TOKEN_PATTERN, std::move (l)); - } -#else - static - symbol_type - make_PATTERN (const location_type& l) - { - return symbol_type (token::TOKEN_PATTERN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TOPLEVEL_JSON (location_type l) - { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l)); - } -#else - static - symbol_type - make_TOPLEVEL_JSON (const location_type& l) - { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TOPLEVEL_DHCP4 (location_type l) - { - return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, std::move (l)); - } -#else - static - symbol_type - make_TOPLEVEL_DHCP4 (const location_type& l) - { - return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_DHCP4 (location_type l) - { - return symbol_type (token::TOKEN_SUB_DHCP4, std::move (l)); - } -#else - static - symbol_type - make_SUB_DHCP4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_DHCP4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_INTERFACES4 (location_type l) - { - return symbol_type (token::TOKEN_SUB_INTERFACES4, std::move (l)); - } -#else - static - symbol_type - make_SUB_INTERFACES4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_INTERFACES4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_SUBNET4 (location_type l) - { - return symbol_type (token::TOKEN_SUB_SUBNET4, std::move (l)); - } -#else - static - symbol_type - make_SUB_SUBNET4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_SUBNET4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_POOL4 (location_type l) - { - return symbol_type (token::TOKEN_SUB_POOL4, std::move (l)); - } -#else - static - symbol_type - make_SUB_POOL4 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_POOL4, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_RESERVATION (location_type l) - { - return symbol_type (token::TOKEN_SUB_RESERVATION, std::move (l)); - } -#else - static - symbol_type - make_SUB_RESERVATION (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_RESERVATION, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DEFS (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEFS, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DEFS (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEFS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DEF (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEF, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DEF (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DATA (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DATA, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_HOOKS_LIBRARY (location_type l) - { - return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, std::move (l)); - } -#else - static - symbol_type - make_SUB_HOOKS_LIBRARY (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_DHCP_DDNS (location_type l) - { - return symbol_type (token::TOKEN_SUB_DHCP_DDNS, std::move (l)); - } -#else - static - symbol_type - make_SUB_DHCP_DDNS (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_CONFIG_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_SUB_CONFIG_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STRING (std::string v, location_type l) - { - return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_STRING (const std::string& v, const location_type& l) - { - return symbol_type (token::TOKEN_STRING, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTEGER (int64_t v, location_type l) - { - return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_INTEGER (const int64_t& v, const location_type& l) - { - return symbol_type (token::TOKEN_INTEGER, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLOAT (double v, location_type l) - { - return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_FLOAT (const double& v, const location_type& l) - { - return symbol_type (token::TOKEN_FLOAT, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_BOOLEAN (bool v, location_type l) - { - return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_BOOLEAN (const bool& v, const location_type& l) - { - return symbol_type (token::TOKEN_BOOLEAN, v, l); - } -#endif - - - class context - { - public: - context (const Dhcp4Parser& yyparser, const symbol_type& yyla); - 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 - /// number of expected tokens (guaranteed to be less than YYNTOKENS). - int expected_tokens (symbol_kind_type yyarg[], int yyargn) const; - - private: - const Dhcp4Parser& yyparser_; - const symbol_type& yyla_; - }; - private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. + /// This class is not copyable. Dhcp4Parser (const Dhcp4Parser&); - /// Non copyable. Dhcp4Parser& operator= (const Dhcp4Parser&); -#endif - - /// Stored state numbers (used for stacks). - typedef short state_type; - - /// The arguments of the error message. - int yy_syntax_error_arguments_ (const context& yyctx, - symbol_kind_type yyarg[], int yyargn) const; + /// State numbers. + typedef int state_type; /// Generate an error message. - /// \param yyctx the context in which the error occurred. - virtual std::string yysyntax_error_ (const context& yyctx) const; + /// \param yystate the state where the error occurred. + /// \param yyla the lookahead token. + virtual std::string yysyntax_error_ (state_type yystate, + const symbol_type& yyla) const; + /// Compute post-reduction state. /// \param yystate the current state /// \param yysym the nonterminal to push on the stack - static state_type yy_lr_goto_state_ (state_type yystate, int yysym); + state_type yy_lr_goto_state_ (state_type yystate, int yysym); /// Whether the given \c yypact_ value indicates a defaulted state. /// \param yyvalue the value to check @@ -4656,69 +1484,65 @@ switch (yykind) /// \param yyvalue the value to check static bool yy_table_value_is_error_ (int yyvalue); - static const short yypact_ninf_; + static const short int 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_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); + /// Convert a scanner token number \a t to a symbol number. + static token_number_type yytranslate_ (token_type t); - /// For a symbol, its name in clear. - static const char* const yytname_[]; + // Tables. + // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + // STATE-NUM. + static const short int yypact_[]; + // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + // Performed when YYTABLE does not specify something else to do. Zero + // means the default is an error. + static const unsigned short int yydefact_[]; - // Tables. - // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - // STATE-NUM. - static const short yypact_[]; + // YYPGOTO[NTERM-NUM]. + static const short int yypgoto_[]; - // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - // Performed when YYTABLE does not specify something else to do. Zero - // means the default is an error. - static const short yydefact_[]; + // YYDEFGOTO[NTERM-NUM]. + static const short int yydefgoto_[]; - // YYPGOTO[NTERM-NUM]. - static const short yypgoto_[]; + // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + // positive, shift that token. If negative, reduce the rule whose + // number is the opposite. If YYTABLE_NINF, syntax error. + static const unsigned short int yytable_[]; - // YYDEFGOTO[NTERM-NUM]. - static const short yydefgoto_[]; + static const short int yycheck_[]; - // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - // positive, shift that token. If negative, reduce the rule whose - // number is the opposite. If YYTABLE_NINF, syntax error. - static const short yytable_[]; + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. + static const unsigned short int yystos_[]; - static const short yycheck_[]; + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. + static const unsigned short int yyr1_[]; - // YYSTOS[STATE-NUM] -- The (internal number of the) accessing - // symbol of state STATE-NUM. - static const short yystos_[]; + // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. + static const unsigned char yyr2_[]; - // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. - static const short yyr1_[]; - // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. - static const signed char yyr2_[]; + /// Convert the symbol name \a n to a form suitable for a diagnostic. + static std::string yytnamerr_ (const char *n); + /// For a symbol, its name in clear. + static const char* const yytname_[]; #if PARSER4_DEBUG - // YYRLINE[YYN] -- Source line where rule number YYN was defined. - static const short yyrline_[]; + // YYRLINE[YYN] -- Source line where rule number YYN was defined. + static const unsigned short int yyrline_[]; /// Report on the debug stream that the rule \a r is going to be reduced. - virtual void yy_reduce_print_ (int r) const; + virtual void yy_reduce_print_ (int r); /// Print the state stack on the debug stream. - virtual void yy_stack_print_ () const; + virtual void yystack_print_ (); - /// Debugging level. + // Debugging. int yydebug_; - /// Debug stream. std::ostream* yycdebug_; - /// \brief Display a symbol kind, value and location. + /// \brief Display a symbol type, value and location. /// \param yyo The output stream. /// \param yysym The symbol. template <typename Base> @@ -4737,30 +1561,29 @@ switch (yykind) struct by_state { /// Default constructor. - by_state () YY_NOEXCEPT; + by_state (); - /// The symbol kind as needed by the constructor. + /// The symbol type as needed by the constructor. typedef state_type kind_type; /// Constructor. - by_state (kind_type s) YY_NOEXCEPT; + by_state (kind_type s); /// Copy constructor. - by_state (const by_state& that) YY_NOEXCEPT; + by_state (const by_state& other); /// Record that this symbol is empty. - void clear () YY_NOEXCEPT; + void clear (); - /// Steal the symbol kind from \a that. + /// Steal the symbol type from \a that. void move (by_state& that); - /// The symbol kind (corresponding to \a state). - /// \a symbol_kind::S_YYEMPTY when empty. - symbol_kind_type kind () const YY_NOEXCEPT; + /// The (internal) type number (corresponding to \a state). + /// \a empty_symbol when empty. + symbol_number_type type_get () const; /// The state number used to denote an empty symbol. - /// We use the initial state, as it does not have a value. - enum { empty_state = 0 }; + enum { empty_state = -1 }; /// The state. /// \a empty when empty. @@ -4774,139 +1597,12 @@ switch (yykind) typedef basic_symbol<by_state> super_type; /// Construct an empty symbol. stack_symbol_type (); - /// Move or copy construction. - stack_symbol_type (YY_RVREF (stack_symbol_type) that); /// Steal the contents from \a sym to build this. - stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym); -#if YY_CPLUSPLUS < 201103L - /// Assignment, needed by push_back by some old implementations. - /// Moves the contents of that. - stack_symbol_type& operator= (stack_symbol_type& that); - - /// Assignment, needed by push_back by other implementations. - /// Needed by some other old implementations. + stack_symbol_type (state_type s, symbol_type& sym); + /// Assignment, needed by push_back. stack_symbol_type& operator= (const stack_symbol_type& that); -#endif }; - /// A stack with random access from its top. - template <typename T, typename S = std::vector<T> > - class stack - { - public: - // Hide our reversed order. - typedef typename S::iterator iterator; - typedef typename S::const_iterator const_iterator; - typedef typename S::size_type size_type; - typedef typename std::ptrdiff_t index_type; - - stack (size_type n = 200) - : seq_ (n) - {} - -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - stack (const stack&) = delete; - /// Non copyable. - stack& operator= (const stack&) = delete; -#endif - - /// Random access. - /// - /// Index 0 returns the topmost element. - const T& - operator[] (index_type i) const - { - return seq_[size_type (size () - 1 - i)]; - } - - /// Random access. - /// - /// Index 0 returns the topmost element. - T& - operator[] (index_type i) - { - return seq_[size_type (size () - 1 - i)]; - } - - /// Steal the contents of \a t. - /// - /// Close to move-semantics. - void - push (YY_MOVE_REF (T) t) - { - seq_.push_back (T ()); - operator[] (0).move (t); - } - - /// Pop elements from the stack. - void - pop (std::ptrdiff_t n = 1) YY_NOEXCEPT - { - for (; 0 < n; --n) - seq_.pop_back (); - } - - /// Pop all elements from the stack. - void - clear () YY_NOEXCEPT - { - seq_.clear (); - } - - /// Number of elements on the stack. - index_type - size () const YY_NOEXCEPT - { - return index_type (seq_.size ()); - } - - /// Iterator on top of the stack (going downwards). - const_iterator - begin () const YY_NOEXCEPT - { - return seq_.begin (); - } - - /// Bottom of the stack. - const_iterator - end () const YY_NOEXCEPT - { - return seq_.end (); - } - - /// Present a slice of the top of a stack. - class slice - { - public: - slice (const stack& stack, index_type range) - : stack_ (stack) - , range_ (range) - {} - - const T& - operator[] (index_type i) const - { - return stack_[range_ - i]; - } - - private: - const stack& stack_; - index_type range_; - }; - - private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. - stack (const stack&); - /// Non copyable. - stack& operator= (const stack&); -#endif - /// The wrapped container. - S seq_; - }; - - /// Stack type. typedef stack<stack_symbol_type> stack_type; @@ -4916,46 +1612,48 @@ switch (yykind) /// Push a new state on the stack. /// \param m a debug message to display /// if null, no trace is output. - /// \param sym the symbol + /// \param s the symbol /// \warning the contents of \a s.value is stolen. - void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); + void yypush_ (const char* m, stack_symbol_type& s); /// Push a new look ahead token on the state on the stack. /// \param m a debug message to display /// if null, no trace is output. /// \param s the state /// \param sym the symbol (for its value and location). - /// \warning the contents of \a sym.value is stolen. - void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym); + /// \warning the contents of \a s.value is stolen. + void yypush_ (const char* m, state_type s, symbol_type& sym); - /// Pop \a n symbols from the stack. - void yypop_ (int n = 1); + /// Pop \a n symbols the three stacks. + void yypop_ (unsigned int n = 1); /// Constants. enum { - yylast_ = 1184, ///< Last index in yytable_. - yynnts_ = 406, ///< Number of nonterminal symbols. - yyfinal_ = 28 ///< Termination state number. + yyeof_ = 0, + yylast_ = 1193, ///< Last index in yytable_. + yynnts_ = 407, ///< Number of nonterminal symbols. + yyfinal_ = 28, ///< Termination state number. + yyterror_ = 1, + yyerrcode_ = 256, + yyntokens_ = 195 ///< Number of tokens. }; // User arguments. isc::dhcp::Parser4Context& ctx; - }; + // Symbol number corresponding to token number t. inline - Dhcp4Parser::symbol_kind_type - Dhcp4Parser::yytranslate_ (int t) + Dhcp4Parser::token_number_type + Dhcp4Parser::yytranslate_ (token_type t) { - // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to - // TOKEN-NUM as returned by yylex. static - const unsigned char + const token_number_type translate_table[] = { - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -4999,53 +1697,66 @@ switch (yykind) 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193 + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194 }; - // Last valid token kind. - const int code_max = 448; + const unsigned int user_token_number_max_ = 449; + const token_number_type undef_token_ = 2; - if (t <= 0) - return symbol_kind::S_YYEOF; - else if (t <= code_max) - return YY_CAST (symbol_kind_type, translate_table[t]); + if (static_cast<int>(t) <= yyeof_) + return yyeof_; + else if (static_cast<unsigned int> (t) <= user_token_number_max_) + return translate_table[t]; else - return symbol_kind::S_YYUNDEF; + return undef_token_; } + inline + Dhcp4Parser::syntax_error::syntax_error (const location_type& l, const std::string& m) + : std::runtime_error (m) + , location (l) + {} + // basic_symbol. template <typename Base> - Dhcp4Parser::basic_symbol<Base>::basic_symbol (const basic_symbol& that) - : Base (that) + inline + Dhcp4Parser::basic_symbol<Base>::basic_symbol () + : value () + {} + + template <typename Base> + inline + Dhcp4Parser::basic_symbol<Base>::basic_symbol (const basic_symbol& other) + : Base (other) , value () - , location (that.location) + , location (other.location) { - switch (this->kind ()) + switch (other.type_get ()) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.copy< ElementPtr > (YY_MOVE (that.value)); + case 210: // value + case 214: // map_value + case 255: // ddns_replace_client_name_value + case 280: // socket_type + case 283: // outbound_interface_value + case 305: // db_type + case 399: // hr_mode + case 554: // ncr_protocol_value + value.copy< ElementPtr > (other.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" - value.copy< bool > (YY_MOVE (that.value)); + case 194: // "boolean" + value.copy< bool > (other.value); break; - case symbol_kind::S_FLOAT: // "floating point" - value.copy< double > (YY_MOVE (that.value)); + case 193: // "floating point" + value.copy< double > (other.value); break; - case symbol_kind::S_INTEGER: // "integer" - value.copy< int64_t > (YY_MOVE (that.value)); + case 192: // "integer" + value.copy< int64_t > (other.value); break; - case symbol_kind::S_STRING: // "constant string" - value.copy< std::string > (YY_MOVE (that.value)); + case 191: // "constant string" + value.copy< std::string > (other.value); break; default: @@ -5055,119 +1766,1437 @@ switch (yykind) } + template <typename Base> + inline + Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const semantic_type& v, const location_type& l) + : Base (t) + , value () + , location (l) + { + (void) v; + switch (this->type_get ()) + { + case 210: // value + case 214: // map_value + case 255: // ddns_replace_client_name_value + case 280: // socket_type + case 283: // outbound_interface_value + case 305: // db_type + case 399: // hr_mode + case 554: // ncr_protocol_value + value.copy< ElementPtr > (v); + break; + + case 194: // "boolean" + value.copy< bool > (v); + break; + + case 193: // "floating point" + value.copy< double > (v); + break; + + case 192: // "integer" + value.copy< int64_t > (v); + break; + + case 191: // "constant string" + value.copy< std::string > (v); + break; + + default: + break; + } +} + + + // Implementation of basic_symbol constructor for each type. + + template <typename Base> + Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const location_type& l) + : Base (t) + , value () + , location (l) + {} + + template <typename Base> + Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const ElementPtr v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template <typename Base> + Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const bool v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template <typename Base> + Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const double v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template <typename Base> + Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} template <typename Base> - Dhcp4Parser::symbol_kind_type - Dhcp4Parser::basic_symbol<Base>::type_get () const YY_NOEXCEPT + Dhcp4Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + + template <typename Base> + inline + Dhcp4Parser::basic_symbol<Base>::~basic_symbol () { - return this->kind (); + clear (); } template <typename Base> + inline + void + Dhcp4Parser::basic_symbol<Base>::clear () + { + // User destructor. + symbol_number_type yytype = this->type_get (); + basic_symbol<Base>& yysym = *this; + (void) yysym; + switch (yytype) + { + default: + break; + } + + // Type destructor. + switch (yytype) + { + case 210: // value + case 214: // map_value + case 255: // ddns_replace_client_name_value + case 280: // socket_type + case 283: // outbound_interface_value + case 305: // db_type + case 399: // hr_mode + case 554: // ncr_protocol_value + value.template destroy< ElementPtr > (); + break; + + case 194: // "boolean" + value.template destroy< bool > (); + break; + + case 193: // "floating point" + value.template destroy< double > (); + break; + + case 192: // "integer" + value.template destroy< int64_t > (); + break; + + case 191: // "constant string" + value.template destroy< std::string > (); + break; + + default: + break; + } + + Base::clear (); + } + + template <typename Base> + inline bool - Dhcp4Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT + Dhcp4Parser::basic_symbol<Base>::empty () const { - return this->kind () == symbol_kind::S_YYEMPTY; + return Base::type_get () == empty_symbol; } template <typename Base> + inline void Dhcp4Parser::basic_symbol<Base>::move (basic_symbol& s) { - super_type::move (s); - switch (this->kind ()) + super_type::move(s); + switch (this->type_get ()) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_socket_type: // socket_type - case symbol_kind::S_outbound_interface_value: // outbound_interface_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.move< ElementPtr > (YY_MOVE (s.value)); + case 210: // value + case 214: // map_value + case 255: // ddns_replace_client_name_value + case 280: // socket_type + case 283: // outbound_interface_value + case 305: // db_type + case 399: // hr_mode + case 554: // ncr_protocol_value + value.move< ElementPtr > (s.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" - value.move< bool > (YY_MOVE (s.value)); + case 194: // "boolean" + value.move< bool > (s.value); break; - case symbol_kind::S_FLOAT: // "floating point" - value.move< double > (YY_MOVE (s.value)); + case 193: // "floating point" + value.move< double > (s.value); break; - case symbol_kind::S_INTEGER: // "integer" - value.move< int64_t > (YY_MOVE (s.value)); + case 192: // "integer" + value.move< int64_t > (s.value); break; - case symbol_kind::S_STRING: // "constant string" - value.move< std::string > (YY_MOVE (s.value)); + case 191: // "constant string" + value.move< std::string > (s.value); break; default: break; } - location = YY_MOVE (s.location); + location = s.location; } - // by_kind. + // by_type. inline - Dhcp4Parser::by_kind::by_kind () - : kind_ (symbol_kind::S_YYEMPTY) + Dhcp4Parser::by_type::by_type () + : type (empty_symbol) {} -#if 201103L <= YY_CPLUSPLUS inline - Dhcp4Parser::by_kind::by_kind (by_kind&& that) - : kind_ (that.kind_) - { - that.clear (); - } -#endif - - inline - Dhcp4Parser::by_kind::by_kind (const by_kind& that) - : kind_ (that.kind_) + Dhcp4Parser::by_type::by_type (const by_type& other) + : type (other.type) {} inline - Dhcp4Parser::by_kind::by_kind (token_kind_type t) - : kind_ (yytranslate_ (t)) + Dhcp4Parser::by_type::by_type (token_type t) + : type (yytranslate_ (t)) {} inline void - Dhcp4Parser::by_kind::clear () + Dhcp4Parser::by_type::clear () { - kind_ = symbol_kind::S_YYEMPTY; + type = empty_symbol; } inline void - Dhcp4Parser::by_kind::move (by_kind& that) + Dhcp4Parser::by_type::move (by_type& that) { - kind_ = that.kind_; + type = that.type; that.clear (); } inline - Dhcp4Parser::symbol_kind_type - Dhcp4Parser::by_kind::kind () const YY_NOEXCEPT + int + Dhcp4Parser::by_type::type_get () const { - return kind_; + return type; } inline - Dhcp4Parser::symbol_kind_type - Dhcp4Parser::by_kind::type_get () const YY_NOEXCEPT + Dhcp4Parser::token_type + Dhcp4Parser::by_type::token () const + { + // YYTOKNUM[NUM] -- (External) token number corresponding to the + // (internal) symbol number NUM (which must be that of a token). */ + static + const unsigned short int + yytoken_number_[] = + { + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449 + }; + return static_cast<token_type> (yytoken_number_[type]); + } + // Implementation of make_symbol for each symbol type. + Dhcp4Parser::symbol_type + Dhcp4Parser::make_END (const location_type& l) + { + return symbol_type (token::TOKEN_END, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_COMMA (const location_type& l) + { + return symbol_type (token::TOKEN_COMMA, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_COLON (const location_type& l) + { + return symbol_type (token::TOKEN_COLON, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LSQUARE_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_LSQUARE_BRACKET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RSQUARE_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_RSQUARE_BRACKET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LCURLY_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_LCURLY_BRACKET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RCURLY_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_RCURLY_BRACKET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_NULL_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_NULL_TYPE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DHCP4 (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP4, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONFIG_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_CONTROL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONFIG_DATABASES (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_DATABASES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONFIG_FETCH_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_INTERFACES_CONFIG (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACES_CONFIG, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_INTERFACES (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DHCP_SOCKET_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_SOCKET_TYPE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RAW (const location_type& l) + { + return symbol_type (token::TOKEN_RAW, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_UDP (const location_type& l) + { + return symbol_type (token::TOKEN_UDP, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OUTBOUND_INTERFACE (const location_type& l) + { + return symbol_type (token::TOKEN_OUTBOUND_INTERFACE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SAME_AS_INBOUND (const location_type& l) + { + return symbol_type (token::TOKEN_SAME_AS_INBOUND, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_USE_ROUTING (const location_type& l) + { + return symbol_type (token::TOKEN_USE_ROUTING, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RE_DETECT (const location_type& l) + { + return symbol_type (token::TOKEN_RE_DETECT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SANITY_CHECKS (const location_type& l) + { + return symbol_type (token::TOKEN_SANITY_CHECKS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LEASE_CHECKS (const location_type& l) + { + return symbol_type (token::TOKEN_LEASE_CHECKS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ECHO_CLIENT_ID (const location_type& l) + { + return symbol_type (token::TOKEN_ECHO_CLIENT_ID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MATCH_CLIENT_ID (const location_type& l) + { + return symbol_type (token::TOKEN_MATCH_CLIENT_ID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_AUTHORITATIVE (const location_type& l) + { + return symbol_type (token::TOKEN_AUTHORITATIVE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_NEXT_SERVER (const location_type& l) + { + return symbol_type (token::TOKEN_NEXT_SERVER, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SERVER_HOSTNAME (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_HOSTNAME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_BOOT_FILE_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_BOOT_FILE_NAME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LEASE_DATABASE (const location_type& l) + { + return symbol_type (token::TOKEN_LEASE_DATABASE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOSTS_DATABASE (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTS_DATABASE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOSTS_DATABASES (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTS_DATABASES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_TYPE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MEMFILE (const location_type& l) + { + return symbol_type (token::TOKEN_MEMFILE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MYSQL (const location_type& l) + { + return symbol_type (token::TOKEN_MYSQL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_POSTGRESQL (const location_type& l) + { + return symbol_type (token::TOKEN_POSTGRESQL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CQL (const location_type& l) + { + return symbol_type (token::TOKEN_CQL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_USER (const location_type& l) + { + return symbol_type (token::TOKEN_USER, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_PASSWORD (const location_type& l) + { + return symbol_type (token::TOKEN_PASSWORD, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOST (const location_type& l) + { + return symbol_type (token::TOKEN_HOST, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_PORT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_PERSIST (const location_type& l) + { + return symbol_type (token::TOKEN_PERSIST, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LFC_INTERVAL (const location_type& l) + { + return symbol_type (token::TOKEN_LFC_INTERVAL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_READONLY (const location_type& l) + { + return symbol_type (token::TOKEN_READONLY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONNECT_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONTACT_POINTS (const location_type& l) + { + return symbol_type (token::TOKEN_CONTACT_POINTS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_KEYSPACE (const location_type& l) + { + return symbol_type (token::TOKEN_KEYSPACE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONSISTENCY (const location_type& l) + { + return symbol_type (token::TOKEN_CONSISTENCY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SERIAL_CONSISTENCY (const location_type& l) + { + return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAX_RECONNECT_TRIES (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RECONNECT_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_REQUEST_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_REQUEST_TIMEOUT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_TCP_KEEPALIVE (const location_type& l) + { + return symbol_type (token::TOKEN_TCP_KEEPALIVE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_TCP_NODELAY (const location_type& l) + { + return symbol_type (token::TOKEN_TCP_NODELAY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAX_ROW_ERRORS (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_ROW_ERRORS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_VALID_LIFETIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MIN_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAX_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RENEW_TIMER (const location_type& l) + { + return symbol_type (token::TOKEN_RENEW_TIMER, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_REBIND_TIMER (const location_type& l) + { + return symbol_type (token::TOKEN_REBIND_TIMER, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CALCULATE_TEE_TIMES (const location_type& l) + { + return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_T1_PERCENT (const location_type& l) + { + return symbol_type (token::TOKEN_T1_PERCENT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_T2_PERCENT (const location_type& l) + { + return symbol_type (token::TOKEN_T2_PERCENT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CACHE_THRESHOLD (const location_type& l) + { + return symbol_type (token::TOKEN_CACHE_THRESHOLD, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CACHE_MAX_AGE (const location_type& l) + { + return symbol_type (token::TOKEN_CACHE_MAX_AGE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DECLINE_PROBATION_PERIOD (const location_type& l) + { + return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SERVER_TAG (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_TAG, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l) + { + return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l) + { + return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DDNS_SEND_UPDATES (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DDNS_REPLACE_CLIENT_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DDNS_GENERATED_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DDNS_QUALIFYING_SUFFIX (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DDNS_UPDATE_ON_RENEW (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DDNS_USE_CONFLICT_RESOLUTION (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_STORE_EXTENDED_INFO (const location_type& l) + { + return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUBNET4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET4, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUBNET_4O6_INTERFACE (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUBNET_4O6_INTERFACE_ID (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET_4O6_INTERFACE_ID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUBNET_4O6_SUBNET (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET_4O6_SUBNET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OPTION_DEF (const location_type& l) + { + return symbol_type (token::TOKEN_OPTION_DEF, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OPTION_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_OPTION_DATA, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_NAME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_DATA, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CODE (const location_type& l) + { + return symbol_type (token::TOKEN_CODE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SPACE (const location_type& l) + { + return symbol_type (token::TOKEN_SPACE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CSV_FORMAT (const location_type& l) + { + return symbol_type (token::TOKEN_CSV_FORMAT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ALWAYS_SEND (const location_type& l) + { + return symbol_type (token::TOKEN_ALWAYS_SEND, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RECORD_TYPES (const location_type& l) + { + return symbol_type (token::TOKEN_RECORD_TYPES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ENCAPSULATE (const location_type& l) + { + return symbol_type (token::TOKEN_ENCAPSULATE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ARRAY (const location_type& l) + { + return symbol_type (token::TOKEN_ARRAY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SHARED_NETWORKS (const location_type& l) + { + return symbol_type (token::TOKEN_SHARED_NETWORKS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_POOLS (const location_type& l) + { + return symbol_type (token::TOKEN_POOLS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_POOL (const location_type& l) + { + return symbol_type (token::TOKEN_POOL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_USER_CONTEXT (const location_type& l) + { + return symbol_type (token::TOKEN_USER_CONTEXT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_COMMENT (const location_type& l) + { + return symbol_type (token::TOKEN_COMMENT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUBNET (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_INTERFACE (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ID (const location_type& l) + { + return symbol_type (token::TOKEN_ID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RESERVATION_MODE (const location_type& l) + { + return symbol_type (token::TOKEN_RESERVATION_MODE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DISABLED (const location_type& l) + { + return symbol_type (token::TOKEN_DISABLED, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OUT_OF_POOL (const location_type& l) + { + return symbol_type (token::TOKEN_OUT_OF_POOL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_GLOBAL (const location_type& l) + { + return symbol_type (token::TOKEN_GLOBAL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ALL (const location_type& l) + { + return symbol_type (token::TOKEN_ALL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOST_RESERVATION_IDENTIFIERS (const location_type& l) + { + return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CLIENT_CLASSES (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENT_CLASSES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_REQUIRE_CLIENT_CLASSES (const location_type& l) + { + return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_TEST (const location_type& l) + { + return symbol_type (token::TOKEN_TEST, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ONLY_IF_REQUIRED (const location_type& l) + { + return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CLIENT_CLASS (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENT_CLASS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RESERVATIONS (const location_type& l) + { + return symbol_type (token::TOKEN_RESERVATIONS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DUID (const location_type& l) + { + return symbol_type (token::TOKEN_DUID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HW_ADDRESS (const location_type& l) { - return this->kind (); + return symbol_type (token::TOKEN_HW_ADDRESS, l); } -#line 14 "dhcp4_parser.yy" + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CIRCUIT_ID (const location_type& l) + { + return symbol_type (token::TOKEN_CIRCUIT_ID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CLIENT_ID (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENT_ID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOSTNAME (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTNAME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_FLEX_ID (const location_type& l) + { + return symbol_type (token::TOKEN_FLEX_ID, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RELAY (const location_type& l) + { + return symbol_type (token::TOKEN_RELAY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_IP_ADDRESS (const location_type& l) + { + return symbol_type (token::TOKEN_IP_ADDRESS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_IP_ADDRESSES (const location_type& l) + { + return symbol_type (token::TOKEN_IP_ADDRESSES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOOKS_LIBRARIES (const location_type& l) + { + return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LIBRARY (const location_type& l) + { + return symbol_type (token::TOKEN_LIBRARY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_PARAMETERS (const location_type& l) + { + return symbol_type (token::TOKEN_PARAMETERS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_EXPIRED_LEASES_PROCESSING (const location_type& l) + { + return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_RECLAIM_TIMER_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOLD_RECLAIMED_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAX_RECLAIM_LEASES (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAX_RECLAIM_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_UNWARNED_RECLAIM_CYCLES (const location_type& l) + { + return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DHCP4O6_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP4O6_PORT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DHCP_MULTI_THREADING (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ENABLE_MULTI_THREADING (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_THREAD_POOL_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_THREAD_POOL_SIZE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_PACKET_QUEUE_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CONTROL_SOCKET (const location_type& l) + { + return symbol_type (token::TOKEN_CONTROL_SOCKET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SOCKET_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_SOCKET_TYPE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SOCKET_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_SOCKET_NAME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DHCP_QUEUE_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ENABLE_QUEUE (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_QUEUE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_QUEUE_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_QUEUE_TYPE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_CAPACITY (const location_type& l) + { + return symbol_type (token::TOKEN_CAPACITY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DHCP_DDNS (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_DDNS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ENABLE_UPDATES (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_UPDATES, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_QUALIFYING_SUFFIX (const location_type& l) + { + return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SERVER_IP (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_IP, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SERVER_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_PORT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SENDER_IP (const location_type& l) + { + return symbol_type (token::TOKEN_SENDER_IP, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SENDER_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_SENDER_PORT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAX_QUEUE_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_NCR_PROTOCOL (const location_type& l) + { + return symbol_type (token::TOKEN_NCR_PROTOCOL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_NCR_FORMAT (const location_type& l) + { + return symbol_type (token::TOKEN_NCR_FORMAT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OVERRIDE_NO_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OVERRIDE_CLIENT_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_REPLACE_CLIENT_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_GENERATED_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_GENERATED_PREFIX, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_TCP (const location_type& l) + { + return symbol_type (token::TOKEN_TCP, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_JSON (const location_type& l) + { + return symbol_type (token::TOKEN_JSON, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_WHEN_PRESENT (const location_type& l) + { + return symbol_type (token::TOKEN_WHEN_PRESENT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_NEVER (const location_type& l) + { + return symbol_type (token::TOKEN_NEVER, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_ALWAYS (const location_type& l) + { + return symbol_type (token::TOKEN_ALWAYS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_WHEN_NOT_PRESENT (const location_type& l) + { + return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOSTNAME_CHAR_SET (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_IP_RESERVATIONS_UNIQUE (const location_type& l) + { + return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_LOGGERS (const location_type& l) + { + return symbol_type (token::TOKEN_LOGGERS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OUTPUT_OPTIONS (const location_type& l) + { + return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_OUTPUT (const location_type& l) + { + return symbol_type (token::TOKEN_OUTPUT, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_DEBUGLEVEL (const location_type& l) + { + return symbol_type (token::TOKEN_DEBUGLEVEL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SEVERITY (const location_type& l) + { + return symbol_type (token::TOKEN_SEVERITY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_FLUSH (const location_type& l) + { + return symbol_type (token::TOKEN_FLUSH, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAXSIZE (const location_type& l) + { + return symbol_type (token::TOKEN_MAXSIZE, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_MAXVER (const location_type& l) + { + return symbol_type (token::TOKEN_MAXVER, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_PATTERN (const location_type& l) + { + return symbol_type (token::TOKEN_PATTERN, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_TOPLEVEL_JSON (const location_type& l) + { + return symbol_type (token::TOKEN_TOPLEVEL_JSON, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_TOPLEVEL_DHCP4 (const location_type& l) + { + return symbol_type (token::TOKEN_TOPLEVEL_DHCP4, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_DHCP4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_DHCP4, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_INTERFACES4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_INTERFACES4, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_SUBNET4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_SUBNET4, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_POOL4 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_POOL4, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_RESERVATION (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_RESERVATION, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_OPTION_DEFS (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DEFS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_OPTION_DEF (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DEF, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_OPTION_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DATA, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_HOOKS_LIBRARY (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_DHCP_DDNS (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_SUB_CONFIG_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_STRING (const std::string& v, const location_type& l) + { + return symbol_type (token::TOKEN_STRING, v, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_INTEGER (const int64_t& v, const location_type& l) + { + return symbol_type (token::TOKEN_INTEGER, v, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_FLOAT (const double& v, const location_type& l) + { + return symbol_type (token::TOKEN_FLOAT, v, l); + } + + Dhcp4Parser::symbol_type + Dhcp4Parser::make_BOOLEAN (const bool& v, const location_type& l) + { + return symbol_type (token::TOKEN_BOOLEAN, v, l); + } + + +#line 14 "dhcp4_parser.yy" // lalr1.cc:377 } } // isc::dhcp -#line 5171 "dhcp4_parser.h" +#line 3200 "dhcp4_parser.h" // lalr1.cc:377 diff --git a/src/bin/dhcp4/dhcp4_parser.yy b/src/bin/dhcp4/dhcp4_parser.yy index 5e625a5bf2..9e27bf6005 100644 --- a/src/bin/dhcp4/dhcp4_parser.yy +++ b/src/bin/dhcp4/dhcp4_parser.yy @@ -123,6 +123,7 @@ using namespace std; DDNS_GENERATED_PREFIX "ddns-generated-prefix" DDNS_QUALIFYING_SUFFIX "ddns-qualifying-suffix" DDNS_UPDATE_ON_RENEW "ddns-update-on-renew" + DDNS_USE_CONFLICT_RESOLUTION "ddns-use-conflict-resolution" STORE_EXTENDED_INFO "store-extended-info" SUBNET4 "subnet4" SUBNET_4O6_INTERFACE "4o6-interface" @@ -497,6 +498,7 @@ global_param: valid_lifetime | ddns_generated_prefix | ddns_qualifying_suffix | ddns_update_on_renew + | ddns_use_conflict_resolution | store_extended_info | statistic_default_sample_count | statistic_default_sample_age @@ -667,6 +669,12 @@ ddns_update_on_renew: DDNS_UPDATE_ON_RENEW COLON BOOLEAN { ctx.stack_.back()->set("ddns-update-on-renew", b); }; +ddns_use_conflict_resolution: DDNS_USE_CONFLICT_RESOLUTION COLON BOOLEAN { + ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(@1)); + ElementPtr b(new BoolElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("ddns-use-conflict-resolution", b); +}; + hostname_char_set: HOSTNAME_CHAR_SET { ctx.unique("hostname-char-set", ctx.loc2pos(@1)); ctx.enter(ctx.NO_KEYWORD); @@ -1383,6 +1391,7 @@ subnet4_param: valid_lifetime | ddns_generated_prefix | ddns_qualifying_suffix | ddns_update_on_renew + | ddns_use_conflict_resolution | hostname_char_set | hostname_char_replacement | store_extended_info @@ -1541,6 +1550,7 @@ shared_network_param: name | ddns_generated_prefix | ddns_qualifying_suffix | ddns_update_on_renew + | ddns_use_conflict_resolution | 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 4c9429ec04..7d005cea6d 100644 --- a/src/bin/dhcp4/json_config_parser.cc +++ b/src/bin/dhcp4/json_config_parser.cc @@ -643,6 +643,7 @@ configureDhcp4Server(Dhcpv4Srv& server, isc::data::ConstElementPtr config_set, (config_pair.first == "ddns-generated-prefix") || (config_pair.first == "ddns-qualifying-suffix") || (config_pair.first == "ddns-update-on-renew") || + (config_pair.first == "ddns-use-conflict-resolution") || (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 3d7f21452a..7e23a2ccac 100644 --- a/src/bin/dhcp4/location.hh +++ b/src/bin/dhcp4/location.hh @@ -1,9 +1,8 @@ -// Generated 202010091455 -// A Bison parser, made by GNU Bison 3.7.2. +// A Bison parser, made by GNU Bison 3.0.4. // Locations for Bison parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 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 @@ -39,164 +38,44 @@ #ifndef YY_PARSER4_LOCATION_HH_INCLUDED # define YY_PARSER4_LOCATION_HH_INCLUDED -# include <iostream> -# include <string> +# include "position.hh" -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - -#line 14 "dhcp4_parser.yy" +#line 14 "dhcp4_parser.yy" // location.cc:296 namespace isc { namespace dhcp { -#line 59 "location.hh" - - /// A point in a source file. - class position - { - public: - /// Type for file name. - typedef const std::string filename_type; - /// Type for line and column numbers. - typedef int counter_type; - - /// Construct a position. - explicit position (filename_type* f = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) - : filename (f) - , line (l) - , column (c) - {} - - - /// Initialization. - void initialize (filename_type* fn = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) - { - filename = fn; - line = l; - column = c; - } - - /** \name Line and Column related manipulators - ** \{ */ - /// (line related) Advance to the COUNT next lines. - void lines (counter_type count = 1) - { - if (count) - { - column = 1; - line = add_ (line, count, 1); - } - } - - /// (column related) Advance to the COUNT next columns. - void columns (counter_type count = 1) - { - column = add_ (column, count, 1); - } - /** \} */ - - /// File name to which this position refers. - filename_type* filename; - /// Current line number. - counter_type line; - /// Current column number. - counter_type column; - - private: - /// Compute max (min, lhs+rhs). - static counter_type add_ (counter_type lhs, counter_type rhs, counter_type min) - { - return lhs + rhs < min ? min : lhs + rhs; - } - }; - - /// Add \a width columns, in place. - inline position& - operator+= (position& res, position::counter_type width) - { - res.columns (width); - return res; - } - - /// Add \a width columns. - inline position - operator+ (position res, position::counter_type width) - { - return res += width; - } - - /// Subtract \a width columns, in place. - inline position& - operator-= (position& res, position::counter_type width) - { - return res += -width; - } - - /// Subtract \a width columns. - inline position - operator- (position res, position::counter_type width) - { - return res -= width; - } - - /** \brief Intercept output stream redirection. - ** \param ostr the destination output stream - ** \param pos a reference to the position to redirect - */ - template <typename YYChar> - std::basic_ostream<YYChar>& - operator<< (std::basic_ostream<YYChar>& ostr, const position& pos) - { - if (pos.filename) - ostr << *pos.filename << ':'; - return ostr << pos.line << '.' << pos.column; - } - - /// Two points in a source file. +#line 46 "location.hh" // location.cc:296 + /// Abstract a location. class location { public: - /// Type for file name. - typedef position::filename_type filename_type; - /// Type for line and column numbers. - typedef position::counter_type counter_type; /// Construct a location from \a b to \a e. location (const position& b, const position& e) : begin (b) , end (e) - {} + { + } /// Construct a 0-width location in \a p. explicit location (const position& p = position ()) : begin (p) , end (p) - {} + { + } /// Construct a 0-width location in \a f, \a l, \a c. - explicit location (filename_type* f, - counter_type l = 1, - counter_type c = 1) + explicit location (std::string* f, + unsigned int l = 1u, + unsigned int c = 1u) : begin (f, l, c) , end (f, l, c) - {} + { + } /// Initialization. - void initialize (filename_type* f = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) + void initialize (std::string* f = YY_NULLPTR, + unsigned int l = 1u, + unsigned int c = 1u) { begin.initialize (f, l, c); end = begin; @@ -212,13 +91,13 @@ namespace isc { namespace dhcp { } /// Extend the current location to the COUNT next columns. - void columns (counter_type count = 1) + void columns (int count = 1) { end += count; } /// Extend the current location to the COUNT next lines. - void lines (counter_type count = 1) + void lines (int count = 1) { end.lines (count); } @@ -233,49 +112,57 @@ namespace isc { namespace dhcp { }; /// Join two locations, in place. - inline location& - operator+= (location& res, const location& end) + inline location& operator+= (location& res, const location& end) { res.end = end.end; return res; } /// Join two locations. - inline location - operator+ (location res, const location& end) + inline location operator+ (location res, const location& end) { return res += end; } /// Add \a width columns to the end position, in place. - inline location& - operator+= (location& res, location::counter_type width) + inline location& operator+= (location& res, int width) { res.columns (width); return res; } /// Add \a width columns to the end position. - inline location - operator+ (location res, location::counter_type width) + inline location operator+ (location res, int width) { return res += width; } /// Subtract \a width columns to the end position, in place. - inline location& - operator-= (location& res, location::counter_type width) + inline location& operator-= (location& res, int width) { return res += -width; } /// Subtract \a width columns to the end position. - inline location - operator- (location res, location::counter_type width) + inline location operator- (location res, int width) { return res -= width; } + /// Compare two location objects. + inline bool + operator== (const location& loc1, const location& loc2) + { + return loc1.begin == loc2.begin && loc1.end == loc2.end; + } + + /// Compare two location objects. + inline bool + operator!= (const location& loc1, const location& loc2) + { + return !(loc1 == loc2); + } + /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param loc a reference to the location to redirect @@ -283,11 +170,10 @@ namespace isc { namespace dhcp { ** Avoid duplicate information. */ template <typename YYChar> - std::basic_ostream<YYChar>& + inline std::basic_ostream<YYChar>& operator<< (std::basic_ostream<YYChar>& ostr, const location& loc) { - location::counter_type end_col - = 0 < loc.end.column ? loc.end.column - 1 : 0; + unsigned int end_col = 0 < loc.end.column ? loc.end.column - 1 : 0; ostr << loc.begin; if (loc.end.filename && (!loc.begin.filename @@ -300,8 +186,7 @@ namespace isc { namespace dhcp { return ostr; } -#line 14 "dhcp4_parser.yy" +#line 14 "dhcp4_parser.yy" // location.cc:296 } } // isc::dhcp -#line 305 "location.hh" - +#line 192 "location.hh" // location.cc:296 #endif // !YY_PARSER4_LOCATION_HH_INCLUDED diff --git a/src/bin/dhcp4/position.hh b/src/bin/dhcp4/position.hh index 48ecfcbf2b..c60fabbdf8 100644 --- a/src/bin/dhcp4/position.hh +++ b/src/bin/dhcp4/position.hh @@ -1,12 +1,180 @@ -// Generated 202010091455 -// A Bison parser, made by GNU Bison 3.7.2. - -// Starting with Bison 3.2, this file is useless: the structure it -// used to define is now defined in "location.hh". -// -// To get rid of this file: -// 1. add '%require "3.2"' (or newer) to your grammar file -// 2. remove references to this file from your build system -// 3. if you used to include it, include "location.hh" instead. - -#include "location.hh" +// A Bison parser, made by GNU Bison 3.0.4. + +// Positions for Bison parsers in C++ + +// Copyright (C) 2002-2015 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 +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// 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 <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 +// under terms of your choice, so long as that work isn't itself a +// parser generator using the skeleton or a modified version thereof +// as a parser skeleton. Alternatively, if you modify or redistribute +// the parser skeleton itself, you may (at your option) remove this +// special exception, which will cause the skeleton and the resulting +// Bison output files to be licensed under the GNU General Public +// License without this special exception. + +// This special exception was added by the Free Software Foundation in +// version 2.2 of Bison. + +/** + ** \file position.hh + ** Define the isc::dhcp::position class. + */ + +#ifndef YY_PARSER4_POSITION_HH_INCLUDED +# define YY_PARSER4_POSITION_HH_INCLUDED + +# include <algorithm> // std::max +# include <iostream> +# include <string> + +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif + +#line 14 "dhcp4_parser.yy" // location.cc:296 +namespace isc { namespace dhcp { +#line 56 "position.hh" // location.cc:296 + /// Abstract a position. + class position + { + public: + /// Construct a position. + explicit position (std::string* f = YY_NULLPTR, + unsigned int l = 1u, + unsigned int c = 1u) + : filename (f) + , line (l) + , column (c) + { + } + + + /// Initialization. + void initialize (std::string* fn = YY_NULLPTR, + unsigned int l = 1u, + unsigned int c = 1u) + { + filename = fn; + line = l; + column = c; + } + + /** \name Line and Column related manipulators + ** \{ */ + /// (line related) Advance to the COUNT next lines. + void lines (int count = 1) + { + if (count) + { + column = 1u; + line = add_ (line, count, 1); + } + } + + /// (column related) Advance to the COUNT next columns. + void columns (int count = 1) + { + column = add_ (column, count, 1); + } + /** \} */ + + /// File name to which this position refers. + std::string* filename; + /// Current line number. + unsigned int line; + /// Current column number. + unsigned int column; + + private: + /// Compute max(min, lhs+rhs) (provided min <= lhs). + static unsigned int add_ (unsigned int lhs, int rhs, unsigned int min) + { + return (0 < rhs || -static_cast<unsigned int>(rhs) < lhs + ? rhs + lhs + : min); + } + }; + + /// Add \a width columns, in place. + inline position& + operator+= (position& res, int width) + { + res.columns (width); + return res; + } + + /// Add \a width columns. + inline position + operator+ (position res, int width) + { + return res += width; + } + + /// Subtract \a width columns, in place. + inline position& + operator-= (position& res, int width) + { + return res += -width; + } + + /// Subtract \a width columns. + inline position + operator- (position res, int width) + { + return res -= width; + } + + /// Compare two position objects. + inline bool + operator== (const position& pos1, const position& pos2) + { + return (pos1.line == pos2.line + && pos1.column == pos2.column + && (pos1.filename == pos2.filename + || (pos1.filename && pos2.filename + && *pos1.filename == *pos2.filename))); + } + + /// Compare two position objects. + inline bool + operator!= (const position& pos1, const position& pos2) + { + return !(pos1 == pos2); + } + + /** \brief Intercept output stream redirection. + ** \param ostr the destination output stream + ** \param pos a reference to the position to redirect + */ + template <typename YYChar> + inline std::basic_ostream<YYChar>& + operator<< (std::basic_ostream<YYChar>& ostr, const position& pos) + { + if (pos.filename) + ostr << *pos.filename << ':'; + return ostr << pos.line << '.' << pos.column; + } + +#line 14 "dhcp4_parser.yy" // location.cc:296 +} } // isc::dhcp +#line 180 "position.hh" // location.cc:296 +#endif // !YY_PARSER4_POSITION_HH_INCLUDED diff --git a/src/bin/dhcp4/stack.hh b/src/bin/dhcp4/stack.hh index 1bd3435eff..3dd2a2a393 100644 --- a/src/bin/dhcp4/stack.hh +++ b/src/bin/dhcp4/stack.hh @@ -1,9 +1,157 @@ -// Generated 202010091455 -// A Bison parser, made by GNU Bison 3.7.2. - -// Starting with Bison 3.2, this file is useless: the structure it -// used to define is now defined with the parser itself. -// -// To get rid of this file: -// 1. add '%require "3.2"' (or newer) to your grammar file -// 2. remove references to this file from your build system. +// A Bison parser, made by GNU Bison 3.0.4. + +// Stack handling for Bison parsers in C++ + +// Copyright (C) 2002-2015 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 +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// 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 <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 +// under terms of your choice, so long as that work isn't itself a +// parser generator using the skeleton or a modified version thereof +// as a parser skeleton. Alternatively, if you modify or redistribute +// the parser skeleton itself, you may (at your option) remove this +// special exception, which will cause the skeleton and the resulting +// Bison output files to be licensed under the GNU General Public +// License without this special exception. + +// This special exception was added by the Free Software Foundation in +// version 2.2 of Bison. + +/** + ** \file stack.hh + ** Define the isc::dhcp::stack class. + */ + +#ifndef YY_PARSER4_STACK_HH_INCLUDED +# define YY_PARSER4_STACK_HH_INCLUDED + +# include <vector> + +#line 14 "dhcp4_parser.yy" // stack.hh:132 +namespace isc { namespace dhcp { +#line 46 "stack.hh" // stack.hh:132 + template <class T, class S = std::vector<T> > + class stack + { + public: + // Hide our reversed order. + typedef typename S::reverse_iterator iterator; + typedef typename S::const_reverse_iterator const_iterator; + + stack () + : seq_ () + { + seq_.reserve (200); + } + + stack (unsigned int n) + : seq_ (n) + {} + + inline + T& + operator[] (unsigned int i) + { + return seq_[seq_.size () - 1 - i]; + } + + inline + const T& + operator[] (unsigned int i) const + { + return seq_[seq_.size () - 1 - i]; + } + + /// Steal the contents of \a t. + /// + /// Close to move-semantics. + inline + void + push (T& t) + { + seq_.push_back (T()); + operator[](0).move (t); + } + + inline + void + pop (unsigned int n = 1) + { + for (; n; --n) + seq_.pop_back (); + } + + void + clear () + { + seq_.clear (); + } + + inline + typename S::size_type + size () const + { + return seq_.size (); + } + + inline + const_iterator + begin () const + { + return seq_.rbegin (); + } + + inline + const_iterator + end () const + { + return seq_.rend (); + } + + private: + stack (const stack&); + stack& operator= (const stack&); + /// The wrapped container. + S seq_; + }; + + /// Present a slice of the top of a stack. + template <class T, class S = stack<T> > + class slice + { + public: + slice (const S& stack, unsigned int range) + : stack_ (stack) + , range_ (range) + {} + + inline + const T& + operator [] (unsigned int i) const + { + return stack_[range_ - i]; + } + + private: + const S& stack_; + unsigned int range_; + }; + +#line 14 "dhcp4_parser.yy" // stack.hh:132 +} } // isc::dhcp +#line 156 "stack.hh" // stack.hh:132 + +#endif // !YY_PARSER4_STACK_HH_INCLUDED diff --git a/src/bin/dhcp4/tests/get_config_unittest.cc b/src/bin/dhcp4/tests/get_config_unittest.cc index e06b409dfa..af2475a5a4 100644 --- a/src/bin/dhcp4/tests/get_config_unittest.cc +++ b/src/bin/dhcp4/tests/get_config_unittest.cc @@ -19,6 +19,7 @@ #include <dhcp4/json_config_parser.h> #include <dhcp4/tests/dhcp4_test_utils.h> #include <dhcp4/tests/get_config_unittest.h> +#include <testutils/gtest_utils.h> #include <boost/algorithm/string.hpp> #include <gtest/gtest.h> @@ -2267,6 +2268,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2343,6 +2345,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2443,6 +2446,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2543,6 +2547,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2649,6 +2654,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2826,6 +2832,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3003,6 +3010,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3105,6 +3113,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3210,6 +3219,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3315,6 +3325,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3417,6 +3428,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3519,6 +3531,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3648,6 +3661,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3776,6 +3790,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3905,6 +3920,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4033,6 +4049,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4139,6 +4156,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4274,6 +4292,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4376,6 +4395,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4460,6 +4480,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4544,6 +4565,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4637,6 +4659,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4721,6 +4744,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4805,6 +4829,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4889,6 +4914,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4973,6 +4999,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5092,6 +5119,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5211,6 +5239,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5340,6 +5369,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5452,6 +5482,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5607,6 +5638,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5735,6 +5767,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5880,6 +5913,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5999,6 +6033,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6123,6 +6158,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6242,6 +6278,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6354,6 +6391,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6500,6 +6538,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6617,6 +6656,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6738,6 +6778,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6814,6 +6855,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6890,6 +6932,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": true,\n" @@ -6992,6 +7035,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"when-present\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": true,\n" @@ -7094,6 +7138,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"always\",\n" " \"ddns-send-updates\": false,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": true,\n" @@ -7196,6 +7241,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7298,6 +7344,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7400,6 +7447,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7580,6 +7628,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7697,6 +7746,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7952,6 +8002,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8084,6 +8135,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8264,6 +8316,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8392,6 +8445,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8466,6 +8520,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8540,6 +8595,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 12345,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8614,6 +8670,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8688,6 +8745,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8790,6 +8848,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8892,6 +8951,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8994,6 +9054,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9096,6 +9157,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9224,6 +9286,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9326,6 +9389,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9428,6 +9492,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9531,6 +9596,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9638,6 +9704,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9745,6 +9812,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9876,6 +9944,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -10056,6 +10125,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -10238,6 +10308,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -10397,6 +10468,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -10524,6 +10596,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -10651,6 +10724,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -10727,6 +10801,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -10801,6 +10876,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -11103,16 +11179,16 @@ TEST_P(Dhcp4GetConfigTest, run) { std::cerr << ",\n"; } std::cerr << " // CONFIGURATION " << config_counter; - ASSERT_NO_THROW(expected = prettyPrint(dhcp)); - ASSERT_NO_THROW(outputFormatted(dhcp->str())); + ASSERT_NO_THROW_LOG(expected = prettyPrint(dhcp)); + ASSERT_NO_THROW_LOG(outputFormatted(dhcp->str())); } else { expected = UNPARSED_CONFIGS[config_counter]; // get the expected config using the dhcpv4 syntax parser ElementPtr jsond; - ASSERT_NO_THROW(jsond = parseDHCP4(expected, true)); + ASSERT_NO_THROW_LOG(jsond = parseDHCP4(expected, true)); ElementPtr jsonj; // get the expected config using the generic JSON syntax parser - ASSERT_NO_THROW(jsonj = parseJSON(expected)); + ASSERT_NO_THROW_LOG(jsonj = parseJSON(expected)); // the generic JSON parser does not handle comments EXPECT_TRUE(isEquivalent(jsond, moveComments(jsonj))); // check that unparsed and expected values match @@ -11133,7 +11209,7 @@ TEST_P(Dhcp4GetConfigTest, run) { // is it a fixed point? ConstSrvConfigPtr extracted2 = CfgMgr::instance().getStagingCfg(); ConstElementPtr unparsed2; - ASSERT_NO_THROW(unparsed2 = extracted2->toElement()); + ASSERT_NO_THROW_LOG(unparsed2 = extracted2->toElement()); ASSERT_TRUE(unparsed2); EXPECT_TRUE(isEquivalent(unparsed, unparsed2)); } diff --git a/src/bin/dhcp4/tests/get_config_unittest.cc.skel b/src/bin/dhcp4/tests/get_config_unittest.cc.skel index 4ffc908e41..cc4a64a349 100644 --- a/src/bin/dhcp4/tests/get_config_unittest.cc.skel +++ b/src/bin/dhcp4/tests/get_config_unittest.cc.skel @@ -19,6 +19,7 @@ #include <dhcp4/json_config_parser.h> #include <dhcp4/tests/dhcp4_test_utils.h> #include <dhcp4/tests/get_config_unittest.h> +#include <testutils/gtest_utils.h> #include <boost/algorithm/string.hpp> #include <gtest/gtest.h> @@ -314,16 +315,16 @@ TEST_P(Dhcp4GetConfigTest, run) { std::cerr << ",\n"; } std::cerr << " // CONFIGURATION " << config_counter; - ASSERT_NO_THROW(expected = prettyPrint(dhcp)); - ASSERT_NO_THROW(outputFormatted(dhcp->str())); + ASSERT_NO_THROW_LOG(expected = prettyPrint(dhcp)); + ASSERT_NO_THROW_LOG(outputFormatted(dhcp->str())); } else { expected = UNPARSED_CONFIGS[config_counter]; // get the expected config using the dhcpv4 syntax parser ElementPtr jsond; - ASSERT_NO_THROW(jsond = parseDHCP4(expected, true)); + ASSERT_NO_THROW_LOG(jsond = parseDHCP4(expected, true)); ElementPtr jsonj; // get the expected config using the generic JSON syntax parser - ASSERT_NO_THROW(jsonj = parseJSON(expected)); + ASSERT_NO_THROW_LOG(jsonj = parseJSON(expected)); // the generic JSON parser does not handle comments EXPECT_TRUE(isEquivalent(jsond, moveComments(jsonj))); // check that unparsed and expected values match @@ -344,7 +345,7 @@ TEST_P(Dhcp4GetConfigTest, run) { // is it a fixed point? ConstSrvConfigPtr extracted2 = CfgMgr::instance().getStagingCfg(); ConstElementPtr unparsed2; - ASSERT_NO_THROW(unparsed2 = extracted2->toElement()); + ASSERT_NO_THROW_LOG(unparsed2 = extracted2->toElement()); ASSERT_TRUE(unparsed2); EXPECT_TRUE(isEquivalent(unparsed, unparsed2)); } diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index 9b213ecc5a..0b794a1fd5 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 208 -#define YY_END_OF_BUFFER 209 +#define YY_NUM_RULES 209 +#define YY_END_OF_BUFFER 210 /* 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[1903] = +static const flex_int16_t yy_accept[1926] = { 0, - 201, 201, 0, 0, 0, 0, 0, 0, 0, 0, - 209, 207, 10, 11, 207, 1, 201, 198, 201, 201, - 207, 200, 199, 207, 207, 207, 207, 207, 194, 195, - 207, 207, 207, 196, 197, 5, 5, 5, 207, 207, - 207, 10, 11, 0, 0, 190, 0, 0, 0, 0, + 202, 202, 0, 0, 0, 0, 0, 0, 0, 0, + 210, 208, 10, 11, 208, 1, 202, 199, 202, 202, + 208, 201, 200, 208, 208, 208, 208, 208, 195, 196, + 208, 208, 208, 197, 198, 5, 5, 5, 208, 208, + 208, 10, 11, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 201, 201, - 0, 200, 201, 3, 2, 6, 0, 201, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 9, 0, 191, + 0, 0, 0, 0, 0, 0, 0, 1, 202, 202, + 0, 201, 202, 3, 2, 6, 0, 202, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 9, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -722,196 +722,198 @@ static const flex_int16_t yy_accept[1903] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 163, 0, 0, 164, 0, 0, + 8, 0, 0, 0, 164, 0, 0, 165, 0, 0, - 0, 0, 0, 0, 0, 192, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 206, 204, 0, - 203, 202, 0, 0, 0, 0, 0, 0, 162, 0, - 28, 0, 27, 0, 0, 120, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 207, 205, 0, + 204, 203, 0, 0, 0, 0, 0, 0, 163, 0, + 28, 0, 27, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 205, 202, 0, 0, 0, 0, 0, 29, + 0, 0, 206, 203, 0, 0, 0, 0, 0, 29, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, - 121, 0, 0, 0, 0, 0, 0, 0, 98, 0, - 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, + 122, 0, 0, 0, 0, 0, 0, 0, 99, 0, + 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 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, 107, 0, 59, 0, 0, 0, 0, 0, 0, + 0, 108, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 142, 0, 167, + 0, 0, 0, 0, 0, 0, 0, 143, 0, 168, 51, 0, 56, 0, 0, 0, 0, 0, 37, 34, - 33, 0, 0, 0, 155, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, - 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, + 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, + 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 119, 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, 0, 0, - 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 136, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 160, 130, - 0, 0, 0, 0, 0, 0, 0, 134, 52, 0, + 0, 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 136, 0, 60, 0, 0, 0, 0, 0, + 161, 131, 0, 0, 0, 0, 0, 0, 0, 135, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 137, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 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, 187, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, - 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - + 0, 150, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 57, 101, 0, 0, 0, 146, 0, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 57, 102, 0, 0, 0, 147, 0, + 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 111, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 161, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 0, 162, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 152, 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, 148, 165, 0, 40, 0, - 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, - 95, 0, 0, 0, 0, 0, 159, 54, 0, 103, - 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, - 0, 0, 0, 126, 127, 0, 0, 0, 0, 0, - 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, - 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, + 0, 0, 153, 0, 0, 0, 0, 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, 122, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, - 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, - 17, 0, 15, 0, 183, 182, 0, 0, 0, 69, - 0, 0, 0, 0, 0, 30, 0, 0, 0, 141, + 149, 166, 0, 40, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 176, 0, 185, + 0, 20, 0, 0, 0, 96, 0, 0, 0, 0, + 0, 160, 54, 0, 104, 0, 187, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 82, 0, 0, 0, 0, 0, 127, 128, + 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, + 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 112, 0, 145, 0, 43, 0, 61, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, - 0, 0, 0, 0, 0, 0, 114, 80, 0, 0, - 153, 0, 0, 0, 0, 0, 144, 0, 0, 0, - 0, 0, 0, 0, 0, 108, 0, 0, 129, 0, + 0, 0, 0, 0, 0, 155, 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, 0, 0, 97, 119, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, + 0, 0, 0, 0, 0, 0, 17, 0, 15, 0, + 184, 183, 0, 0, 0, 69, 0, 0, 0, 0, + 0, 30, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, - 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 177, 0, 186, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, + 146, 0, 43, 0, 61, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, + 0, 0, 0, 115, 80, 0, 0, 154, 0, 0, + 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, + 0, 0, 109, 0, 0, 130, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 107, 0, 0, 0, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, - 0, 0, 68, 0, 0, 0, 0, 0, 0, 139, - 47, 0, 0, 0, 70, 181, 38, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, - 0, 44, 0, 18, 0, 0, 0, 72, 0, 0, - 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 76, 0, 128, 0, 0, 0, 62, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, + 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, + 68, 0, 0, 0, 0, 0, 0, 140, 47, 0, + 0, 0, 70, 182, 38, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, + 44, 0, 18, 0, 0, 0, 72, 0, 0, 0, + 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 76, 0, 129, 0, 0, 0, 62, 0, 0, - 0, 0, 0, 0, 0, 158, 0, 0, 0, 46, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, + 0, 0, 0, 0, 0, 159, 0, 0, 0, 46, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 67, 0, 0, 0, 94, 0, 0, 0, 0, 36, + 67, 0, 0, 0, 95, 0, 0, 0, 0, 36, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, - 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 115, 0, 0, 0, 179, 0, 0, 0, 0, - 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 25, 39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 180, 0, 13, 0, + 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, + 0, 0, 0, 0, 0, 0, 175, 0, 0, 0, + 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 116, 0, 0, 0, 180, 0, 0, 0, + + 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 25, 39, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, + 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 173, 0, 78, - 0, 77, 0, 21, 73, 0, 0, 0, 0, 0, - 65, 0, 0, 0, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 105, 0, 0, 172, 0, 0, - 0, 0, 71, 0, 0, 0, 66, 0, 23, 0, - 0, 93, 0, 0, 0, 0, 0, 0, 0, 91, - + 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 174, 0, 78, 0, 77, 0, 21, 73, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 126, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, + 0, 173, 0, 0, 0, 0, 71, 0, 0, 0, + + 66, 0, 23, 0, 0, 94, 0, 0, 0, 0, + 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, + 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 0, 0, 90, - 0, 0, 178, 0, 0, 0, 0, 189, 75, 74, - 22, 0, 123, 140, 0, 0, 0, 86, 0, 0, - 0, 0, 0, 0, 170, 0, 175, 0, 88, 81, - 0, 0, 0, 0, 0, 0, 169, 0, 0, 26, - 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, - 0, 0, 0, 124, 84, 0, 0, 0, 0, 83, - - 171, 0 + 0, 0, 49, 0, 0, 90, 0, 0, 0, 179, + 0, 0, 0, 0, 190, 75, 74, 22, 0, 124, + 141, 0, 0, 0, 86, 0, 0, 0, 0, 0, + 0, 0, 171, 0, 176, 0, 88, 0, 81, 0, + 0, 0, 0, 0, 0, 0, 170, 0, 0, 26, + + 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, + 0, 0, 0, 0, 92, 0, 125, 84, 0, 0, + 0, 0, 83, 172, 0 } ; static const YY_CHAR yy_ec[256] = @@ -958,445 +960,449 @@ static const YY_CHAR yy_meta[74] = 3, 3, 3 } ; -static const flex_int16_t yy_base[1915] = +static const flex_int16_t yy_base[1938] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 2304, 2305, 34, 2300, 145, 0, 207, 2305, 214, 221, - 13, 228, 2305, 2280, 118, 25, 2, 6, 2305, 2305, - 73, 11, 17, 2305, 2305, 2305, 104, 2288, 2241, 0, - 2278, 108, 2295, 24, 256, 2305, 67, 2244, 2264, 84, - 75, 2264, 88, 226, 91, 89, 284, 196, 203, 279, - 193, 224, 216, 60, 242, 2244, 286, 288, 314, 300, - 319, 2227, 204, 324, 356, 329, 2246, 0, 380, 400, - 420, 427, 406, 2305, 0, 2305, 385, 443, 238, 241, - 310, 269, 299, 314, 2305, 2243, 2284, 2305, 405, 2305, - - 419, 400, 2241, 2282, 326, 10, 262, 407, 224, 409, - 352, 206, 2281, 0, 472, 412, 2223, 415, 2231, 406, - 2227, 2216, 2217, 2222, 444, 2232, 2215, 2224, 327, 433, - 226, 2218, 2216, 445, 2205, 2263, 399, 2208, 2261, 2201, - 2224, 2221, 2221, 2215, 339, 2208, 2206, 2207, 2199, 2204, - 2198, 412, 2209, 2202, 2193, 2192, 2206, 462, 2244, 2191, - 443, 2203, 421, 2191, 482, 2192, 445, 2204, 2201, 2202, - 293, 2200, 2235, 2234, 477, 2180, 2180, 2184, 2180, 2172, - 2189, 2181, 0, 478, 493, 486, 481, 500, 505, 2180, - 2305, 0, 510, 2175, 2305, 498, 505, 2305, 2229, 508, - - 2228, 513, 2227, 515, 2226, 2305, 561, 2225, 525, 2184, - 2176, 2180, 2181, 2176, 2175, 2166, 501, 2217, 2211, 2175, - 2156, 2153, 2161, 2167, 2155, 2169, 2165, 2166, 2166, 2161, - 2153, 2155, 2139, 2143, 2156, 2158, 2155, 2147, 2137, 2140, - 2154, 2305, 2140, 2148, 80, 2133, 2132, 2184, 2131, 2141, - 2181, 505, 2140, 2179, 2124, 2126, 2137, 2175, 532, 2179, - 2114, 2129, 538, 2119, 2125, 2134, 2115, 2113, 2116, 2112, - 2118, 2109, 2108, 2121, 2114, 2104, 2115, 2119, 2118, 2112, - 220, 2119, 2114, 2106, 2096, 2111, 2106, 2110, 500, 2108, - 2094, 2100, 2107, 2089, 2090, 2093, 2090, 2089, 562, 2084, - - 2098, 2097, 2096, 2099, 2081, 2089, 543, 2305, 2305, 553, - 2305, 2305, 2076, 0, 520, 2123, 554, 2134, 2305, 556, - 2305, 2133, 2305, 2127, 606, 2305, 555, 2067, 2086, 2069, - 2086, 2074, 2126, 2081, 2076, 2079, 2074, 537, 2305, 2076, - 586, 2115, 2073, 2070, 2071, 584, 2075, 2115, 2063, 2058, - 2055, 2051, 2053, 2104, 2061, 2050, 2066, 2100, 2046, 607, - 2059, 2059, 2042, 2043, 2056, 2054, 2042, 2052, 2047, 2054, - 2049, 2034, 574, 2043, 2046, 2041, 577, 2040, 2036, 2086, - 422, 563, 2305, 2080, 2030, 2029, 2022, 2024, 2036, 2027, - 2016, 2033, 2022, 2027, 596, 2074, 2027, 589, 2024, 2027, - - 2027, 2025, 2014, 2014, 2026, 583, 2001, 2002, 2023, 595, - 2005, 2002, 2016, 2019, 2014, 2000, 2012, 2011, 2010, 2005, - 2008, 2007, 2006, 2005, 558, 2048, 2007, 2046, 2045, 1987, - 652, 2000, 2305, 2305, 1999, 0, 604, 2041, 2040, 2305, - 2039, 2305, 616, 664, 629, 2038, 2032, 1985, 1987, 1975, - 2305, 1980, 1986, 1989, 1972, 1987, 1974, 1973, 2305, 1983, - 610, 1974, 1971, 1983, 566, 1968, 1970, 2305, 1976, 1961, - 1963, 1974, 1972, 1967, 653, 1974, 1962, 1955, 2006, 2305, - 1953, 1969, 2003, 2007, 1963, 1957, 1959, 1960, 1944, 1961, - 1995, 1946, 1941, 1940, 1942, 1938, 1934, 556, 1953, 1927, - - 1934, 1939, 1932, 1948, 1982, 1986, 2305, 1931, 1927, 1983, - 1934, 1928, 1935, 1920, 1930, 1918, 1932, 1921, 1917, 1919, - 1914, 2305, 1971, 2305, 1913, 1912, 1905, 1922, 1961, 1960, - 1905, 1910, 1919, 1913, 1907, 1916, 688, 1953, 1915, 1898, - 1898, 1893, 1889, 1895, 1900, 1893, 1901, 1905, 1888, 1946, - 1887, 1939, 1884, 1885, 1884, 1896, 1885, 2305, 1895, 2305, - 2305, 1884, 2305, 1894, 1930, 1890, 0, 1933, 2305, 2305, - 2305, 636, 632, 691, 2305, 640, 1892, 1872, 1925, 1870, - 1923, 1868, 1867, 1866, 1873, 1866, 1874, 1877, 1859, 1859, - 1874, 1873, 1861, 1871, 1870, 1854, 1869, 1851, 1898, 1865, - - 1903, 1847, 1849, 1861, 1861, 1860, 2305, 1845, 1842, 1900, - 1855, 1847, 1853, 1844, 1852, 2305, 1837, 1848, 1852, 1834, - 1846, 1847, 635, 1829, 1823, 1828, 1825, 1840, 1839, 1840, - 1819, 1829, 1835, 1878, 1833, 1832, 1824, 1815, 2305, 1816, - 1818, 2305, 1826, 1865, 1864, 16, 1825, 1862, 1807, 1808, - 1811, 1812, 1803, 2305, 1817, 1803, 695, 1795, 1799, 1815, - 1812, 1804, 1849, 1801, 1808, 1846, 2305, 1792, 1790, 1804, - 1788, 1802, 1805, 1839, 1838, 1837, 1836, 1781, 1834, 1833, - 2305, 1778, 1792, 698, 1793, 1792, 1789, 1789, 1826, 1786, - 1775, 1777, 2305, 2305, 663, 658, 1769, 1786, 1778, 1765, - - 1759, 1780, 1821, 669, 1815, 1775, 1813, 1812, 1764, 1758, - 1761, 1769, 1772, 1756, 1757, 1766, 1747, 1802, 1762, 1752, - 1760, 1798, 1759, 661, 1750, 1752, 92, 209, 269, 294, - 313, 2305, 380, 399, 451, 501, 507, 544, 551, 579, - 597, 588, 611, 633, 657, 657, 703, 715, 659, 673, - 659, 669, 719, 677, 726, 2305, 727, 683, 681, 683, - 679, 673, 728, 691, 680, 2305, 682, 693, 682, 696, - 698, 742, 685, 744, 687, 702, 2305, 696, 690, 701, - 686, 697, 710, 689, 695, 750, 714, 698, 698, 711, - 755, 756, 757, 704, 722, 717, 724, 719, 704, 716, - - 717, 723, 710, 2305, 775, 733, 735, 725, 737, 727, - 740, 731, 737, 781, 757, 744, 726, 733, 747, 792, - 742, 2305, 740, 755, 752, 738, 745, 744, 742, 761, - 758, 759, 747, 754, 755, 764, 768, 765, 755, 768, - 754, 753, 759, 816, 757, 758, 764, 780, 763, 817, - 772, 2305, 782, 782, 775, 786, 784, 829, 771, 773, - 788, 789, 777, 775, 837, 794, 780, 783, 2305, 2305, - 799, 798, 799, 804, 792, 802, 804, 2305, 2305, 804, - 806, 793, 811, 798, 796, 814, 801, 801, 852, 799, - 803, 861, 2305, 862, 2305, 807, 821, 821, 866, 814, - - 813, 817, 811, 871, 824, 814, 815, 811, 821, 825, - 836, 820, 838, 833, 835, 828, 830, 831, 843, 833, - 848, 889, 846, 851, 828, 851, 835, 2305, 842, 843, - 857, 848, 846, 896, 843, 858, 876, 884, 853, 902, - 864, 904, 2305, 870, 858, 853, 854, 866, 873, 862, - 863, 859, 877, 863, 864, 874, 883, 919, 866, 875, - 870, 924, 930, 888, 879, 2305, 883, 891, 893, 878, - 894, 884, 896, 890, 937, 903, 887, 888, 2305, 904, - 907, 890, 892, 950, 893, 912, 2305, 911, 914, 895, - 913, 901, 954, 912, 908, 905, 958, 907, 960, 922, - - 908, 926, 925, 911, 926, 918, 914, 932, 931, 918, - 2305, 2305, 926, 973, 926, 2305, 934, 937, 930, 983, - 2305, 932, 938, 982, 933, 934, 946, 940, 944, 942, - 940, 951, 996, 940, 945, 999, 1000, 944, 956, 2305, - 944, 952, 950, 1001, 963, 950, 951, 960, 972, 959, - 957, 971, 972, 988, 993, 975, 980, 963, 963, 965, - 965, 985, 984, 975, 964, 981, 988, 1031, 973, 993, - 986, 990, 994, 977, 994, 1039, 986, 990, 2305, 1037, - 986, 985, 987, 1008, 1005, 1045, 994, 1012, 1013, 999, - 1007, 1016, 996, 1011, 1018, 1060, 1061, 2305, 1014, 1063, - - 1064, 1006, 1016, 1026, 1029, 1012, 1014, 1014, 1021, 1030, - 1018, 1025, 1020, 1027, 1039, 1080, 1027, 1026, 1043, 1084, - 1034, 1038, 1036, 1034, 1029, 1090, 1091, 1041, 1093, 1089, - 1095, 1048, 2305, 1053, 1046, 1037, 1056, 1050, 1045, 1055, - 1052, 1057, 1053, 1065, 2305, 1050, 1052, 2305, 2305, 1052, - 1112, 1051, 1070, 1071, 1073, 1064, 1118, 1119, 1072, 1057, - 1071, 1079, 1061, 1066, 1105, 1096, 1128, 1083, 1083, 1087, - 1074, 1076, 1093, 1088, 1092, 1137, 1085, 1089, 2305, 1086, - 1082, 1099, 1079, 1100, 1090, 1141, 2305, 1106, 1104, 1108, - 1092, 1104, 1109, 1095, 1156, 1109, 1114, 1101, 1112, 1104, - - 1110, 1106, 1124, 1125, 1126, 2305, 2305, 1124, 2305, 1126, - 2305, 1111, 1122, 1113, 1132, 1122, 1174, 1131, 1128, 1172, - 1136, 1125, 1132, 1137, 1134, 1140, 2305, 1133, 1125, 1186, - 2305, 1187, 1134, 1141, 1185, 1147, 2305, 2305, 1144, 2305, - 1135, 2305, 1135, 1138, 1152, 1157, 1140, 1151, 1200, 1157, - 1158, 1159, 1199, 1155, 1206, 1159, 1208, 2305, 1155, 1210, - 1211, 1168, 1170, 2305, 2305, 1153, 1215, 1211, 1175, 1159, - 1171, 1190, 1221, 2305, 1178, 1169, 1180, 1225, 1172, 1187, - 1223, 1175, 2305, 1171, 1187, 1175, 1189, 1190, 1187, 1231, - 1194, 1184, 1199, 1187, 1187, 1242, 1238, 1244, 1201, 2305, - - 1203, 1202, 1205, 1198, 1207, 1208, 1205, 1195, 1198, 1198, - 1258, 1205, 1260, 1207, 1262, 1205, 1264, 2305, 1222, 1201, - 1216, 1209, 1213, 1226, 1229, 1228, 1226, 1276, 1229, 2305, - 2305, 1225, 1235, 1220, 1276, 1237, 1223, 1284, 1285, 1229, - 1239, 1288, 1245, 2305, 1237, 1237, 1239, 1241, 1294, 1237, - 2305, 1238, 2305, 1240, 2305, 2305, 1253, 1255, 1256, 2305, - 1243, 1251, 1303, 1252, 1284, 2305, 1306, 1256, 1303, 2305, - 1251, 1259, 1253, 1250, 1253, 1256, 1256, 1252, 1274, 1313, - 1266, 1278, 1281, 1269, 1264, 1324, 1272, 2305, 1267, 2305, - 1269, 1329, 1282, 1273, 1288, 1288, 1291, 1291, 1288, 1332, - - 1294, 2305, 1286, 2305, 1287, 2305, 1297, 2305, 1337, 1299, - 1300, 1297, 1341, 1289, 1304, 1344, 1306, 1298, 2305, 1295, - 1295, 1301, 1300, 1298, 1313, 1313, 2305, 2305, 1354, 1301, - 2305, 1318, 1303, 1303, 1305, 1311, 2305, 1366, 1308, 1318, - 1329, 1327, 1371, 1324, 1333, 2305, 1330, 1349, 2305, 1333, - 1318, 1378, 1379, 1336, 1341, 1323, 1383, 1384, 1385, 1381, - 1345, 1342, 1338, 1331, 1386, 1344, 2305, 1334, 1347, 1395, - 2305, 1333, 1392, 1356, 1352, 1396, 1345, 1350, 1348, 1407, - 1363, 1351, 1410, 1360, 1412, 1373, 1362, 1356, 1416, 1358, - 1367, 1360, 1374, 1377, 1422, 1364, 1381, 1377, 1367, 1382, - - 1366, 1424, 1425, 1426, 1373, 1428, 1391, 2305, 1391, 1378, - 1377, 1433, 2305, 1374, 1392, 1441, 1411, 1443, 1396, 2305, - 2305, 1387, 1398, 1447, 2305, 2305, 2305, 1393, 1398, 1396, - 1446, 1404, 1409, 1397, 1401, 1399, 1400, 2305, 1458, 1404, - 1455, 1398, 1403, 1464, 1413, 1423, 1424, 2305, 1469, 1423, - 1467, 2305, 1425, 2305, 1416, 1431, 1419, 2305, 1429, 1430, - 1431, 1480, 1438, 2305, 1477, 1443, 1419, 1437, 1438, 1447, - 1429, 1435, 1437, 1491, 1450, 1449, 1441, 1495, 1445, 1449, - 1454, 1447, 2305, 1500, 2305, 1449, 1502, 1444, 2305, 1447, - 1457, 1501, 1449, 1464, 1451, 1466, 1458, 1458, 1469, 2305, - - 1463, 1458, 1457, 1517, 1470, 2305, 1514, 1465, 1462, 2305, - 1476, 1463, 1479, 1481, 1526, 1479, 1476, 1484, 1478, 2305, - 1531, 1472, 1474, 1490, 1483, 1473, 1489, 1490, 1484, 1500, - 2305, 1490, 1542, 1501, 2305, 1485, 1492, 1546, 1542, 2305, - 1504, 2305, 1544, 1506, 1507, 1492, 1493, 1501, 1555, 1503, - 1552, 1507, 1519, 1516, 1507, 1514, 2305, 1511, 1516, 1514, - 1566, 1567, 1515, 1525, 1512, 2305, 1527, 1528, 1529, 1530, - 2305, 1520, 1532, 1577, 1534, 1579, 1521, 1529, 1523, 1531, - 1544, 2305, 1521, 1581, 1542, 2305, 1546, 1531, 1531, 1546, - 1539, 1538, 1549, 1536, 2305, 1552, 1542, 1598, 1556, 1547, - - 1559, 1550, 1559, 1561, 1565, 2305, 2305, 1558, 1548, 1608, - 1551, 1610, 1552, 1612, 1570, 1614, 2305, 1615, 2305, 1611, - 1573, 1570, 1575, 1562, 1621, 1564, 1569, 1560, 1625, 1578, - 1579, 1569, 1586, 1585, 1626, 1570, 1589, 2305, 1586, 1635, - 1592, 1593, 1638, 1595, 1598, 1585, 1594, 2305, 1643, 2305, - 1596, 2305, 1605, 2305, 2305, 1587, 1647, 1594, 1649, 1592, - 2305, 1611, 1652, 1611, 2305, 1602, 1592, 1651, 1617, 1610, - 1606, 1660, 1604, 1609, 2305, 1605, 1607, 2305, 1612, 1622, - 1607, 1616, 2305, 1617, 1611, 1623, 2305, 1619, 2305, 1629, - 1622, 2305, 1624, 1632, 1677, 1618, 1620, 1617, 1641, 2305, - - 1634, 1637, 1626, 1680, 1627, 1635, 1644, 1645, 1646, 1647, - 1640, 1635, 1636, 1640, 1652, 1697, 2305, 1643, 1655, 1700, - 1649, 1648, 1703, 1656, 1643, 1658, 1663, 1708, 1709, 1710, - 1711, 1668, 1713, 1714, 1664, 1658, 2305, 1674, 1718, 2305, - 1675, 1677, 2305, 1668, 1682, 1678, 1671, 2305, 2305, 2305, - 2305, 1725, 2305, 2305, 1682, 1727, 1688, 2305, 1729, 1730, - 1685, 1684, 1685, 1675, 2305, 1730, 2305, 1677, 2305, 2305, - 1737, 1679, 1695, 1740, 1701, 1698, 2305, 1739, 1688, 2305, - 1700, 1693, 1748, 1690, 1692, 1707, 1692, 2305, 1705, 1754, - 1755, 1703, 1705, 2305, 2305, 1699, 1715, 1760, 1761, 2305, - - 2305, 2305, 1767, 1772, 1777, 1782, 1787, 1792, 1797, 1800, - 1774, 1779, 1781, 1794 + 2327, 2328, 34, 2323, 145, 0, 207, 2328, 214, 221, + 13, 228, 2328, 2303, 118, 25, 2, 6, 2328, 2328, + 73, 11, 17, 2328, 2328, 2328, 104, 2311, 2264, 0, + 2301, 108, 2318, 24, 256, 2328, 67, 2267, 2287, 84, + 75, 2287, 88, 226, 91, 89, 284, 196, 203, 279, + 193, 224, 216, 60, 242, 2267, 286, 288, 314, 300, + 319, 2250, 204, 324, 356, 329, 2269, 0, 380, 400, + 420, 427, 406, 2328, 0, 2328, 385, 443, 238, 241, + 310, 269, 299, 314, 2328, 2266, 2307, 2328, 405, 2328, + + 419, 400, 2264, 2305, 326, 10, 262, 407, 224, 409, + 352, 206, 2304, 0, 472, 412, 2246, 415, 2254, 406, + 2250, 2239, 2240, 2245, 444, 2255, 2238, 2247, 327, 433, + 226, 2241, 2239, 445, 2228, 2286, 399, 2231, 2284, 2224, + 2247, 2244, 2244, 2238, 339, 2231, 2229, 2230, 2222, 2227, + 2221, 412, 2232, 2225, 2216, 2215, 2229, 462, 2267, 2214, + 443, 2226, 421, 2214, 482, 2215, 445, 2227, 2224, 2225, + 293, 2223, 2258, 2257, 477, 2203, 2203, 2207, 2203, 2195, + 2212, 2204, 0, 478, 493, 486, 481, 500, 505, 2203, + 2328, 0, 510, 2198, 2328, 498, 505, 2328, 2252, 508, + + 2251, 513, 2250, 515, 2249, 2328, 561, 2248, 525, 2207, + 2199, 2203, 2204, 2199, 2198, 2189, 501, 2240, 2234, 2198, + 2179, 2176, 2184, 2190, 2178, 2192, 2188, 2189, 2189, 2184, + 2176, 2178, 2162, 2166, 2179, 2181, 2178, 2170, 2160, 2163, + 2177, 2328, 2163, 2171, 80, 2156, 2155, 2207, 2154, 2164, + 2204, 505, 2163, 2202, 2147, 2149, 2160, 2198, 532, 2202, + 2137, 2152, 538, 2142, 2148, 2157, 2138, 2136, 2139, 2135, + 2141, 2132, 2131, 2144, 2137, 2127, 2138, 2142, 2141, 2135, + 220, 2142, 2137, 2129, 2119, 2134, 2129, 2133, 500, 2131, + 2117, 2123, 2130, 2112, 2113, 2116, 2113, 2112, 562, 2107, + + 2121, 2120, 2119, 2122, 2104, 2112, 543, 2328, 2328, 553, + 2328, 2328, 2099, 0, 520, 2146, 554, 2157, 2328, 556, + 2328, 2156, 2328, 2150, 606, 2328, 555, 2090, 2109, 2092, + 2109, 2097, 2149, 2104, 2099, 2102, 2097, 537, 2328, 2099, + 586, 2138, 2096, 2093, 2094, 584, 2098, 2138, 2086, 2081, + 2078, 2074, 2076, 2127, 2084, 2073, 2089, 2123, 2069, 607, + 2082, 2082, 2065, 2066, 2079, 2077, 2065, 2075, 2070, 2077, + 2072, 2057, 574, 2066, 2069, 2064, 577, 2063, 2059, 2109, + 422, 563, 2328, 2103, 2053, 2052, 2045, 2047, 2059, 2050, + 2039, 2056, 2045, 2050, 596, 2097, 2050, 589, 2047, 2050, + + 2050, 2048, 2037, 2037, 2049, 583, 2024, 2025, 2046, 595, + 2028, 2025, 2039, 2042, 2037, 2023, 2035, 2034, 2033, 2028, + 2031, 2030, 2029, 2028, 558, 2071, 2030, 2069, 2068, 2010, + 652, 2023, 2328, 2328, 2022, 0, 604, 2064, 2063, 2328, + 2062, 2328, 616, 664, 629, 2061, 2055, 2008, 2010, 1998, + 2328, 2003, 2009, 2012, 1995, 2010, 1997, 1996, 2328, 2006, + 610, 1997, 1994, 2006, 566, 1991, 1993, 2328, 1999, 1984, + 1986, 1997, 1995, 1990, 653, 1997, 1985, 1978, 2029, 2328, + 1976, 1992, 2026, 2030, 1986, 1980, 1982, 1983, 1967, 1984, + 2018, 1969, 1964, 1963, 1965, 1961, 1957, 556, 1976, 1950, + + 1957, 1962, 1955, 1971, 2005, 2009, 2328, 1954, 1950, 2006, + 1957, 1951, 1958, 1943, 1953, 1941, 1955, 1944, 1940, 1942, + 1937, 2328, 1994, 2328, 1936, 1935, 1928, 1945, 1984, 1983, + 1928, 1933, 1942, 1936, 1930, 1939, 688, 1976, 1938, 1921, + 1921, 1916, 1912, 1918, 1923, 1916, 1924, 1928, 1911, 1969, + 1910, 1962, 1907, 1908, 1907, 1919, 1908, 2328, 1918, 2328, + 2328, 1907, 2328, 1917, 1953, 1913, 0, 1956, 2328, 2328, + 2328, 636, 632, 691, 2328, 640, 1915, 1895, 1948, 1893, + 1946, 1891, 1890, 1889, 1896, 1889, 1897, 1900, 1882, 1882, + 1897, 1896, 622, 1895, 1894, 1878, 1893, 1875, 1922, 1889, + + 1927, 1871, 1873, 1885, 1885, 1884, 2328, 1869, 1866, 1924, + 1879, 1871, 1877, 1868, 1876, 2328, 1861, 1872, 1876, 1858, + 1870, 1871, 636, 1853, 1847, 1852, 1849, 1864, 1863, 1864, + 1843, 1853, 1859, 1902, 1857, 1856, 1848, 1839, 2328, 1840, + 1842, 2328, 1850, 1889, 1888, 16, 1849, 1886, 1831, 1832, + 1835, 1836, 1827, 2328, 1841, 1827, 695, 1819, 1823, 1839, + 1836, 1828, 1873, 1825, 1832, 1870, 2328, 1816, 1814, 1828, + 1812, 1826, 1829, 1863, 1862, 1861, 1860, 1805, 1858, 1857, + 2328, 1802, 1816, 698, 1817, 1816, 1813, 1813, 1850, 1810, + 1799, 1801, 2328, 2328, 663, 676, 1793, 1810, 1802, 1789, + + 1783, 1804, 1845, 669, 1839, 1799, 1837, 1836, 1788, 1782, + 1785, 1793, 1796, 1780, 1781, 1790, 1788, 1770, 1825, 1785, + 1775, 1783, 1821, 1782, 661, 1773, 1775, 92, 209, 269, + 294, 313, 2328, 380, 399, 451, 501, 507, 544, 551, + 579, 597, 588, 611, 654, 662, 659, 715, 716, 661, + 674, 663, 673, 720, 678, 728, 2328, 729, 685, 683, + 685, 681, 675, 730, 693, 682, 2328, 684, 696, 685, + 698, 700, 744, 687, 746, 689, 704, 2328, 698, 692, + 703, 688, 699, 712, 691, 697, 752, 716, 700, 700, + 713, 757, 758, 759, 706, 724, 719, 726, 721, 706, + + 718, 719, 725, 712, 2328, 777, 735, 737, 727, 739, + 729, 742, 733, 739, 783, 759, 746, 728, 735, 749, + 794, 744, 2328, 742, 757, 754, 740, 747, 746, 744, + 763, 760, 761, 749, 756, 757, 766, 770, 806, 768, + 758, 771, 757, 756, 763, 819, 760, 761, 767, 783, + 766, 820, 775, 2328, 785, 785, 778, 789, 787, 832, + 774, 776, 791, 792, 780, 778, 840, 797, 783, 786, + 2328, 2328, 802, 801, 802, 807, 795, 805, 807, 2328, + 2328, 807, 809, 796, 814, 801, 799, 817, 804, 804, + 855, 802, 806, 864, 2328, 865, 2328, 810, 824, 824, + + 869, 817, 816, 820, 814, 874, 827, 817, 818, 814, + 824, 828, 839, 823, 841, 836, 838, 831, 833, 834, + 846, 836, 851, 892, 849, 854, 831, 854, 838, 2328, + 845, 846, 860, 851, 849, 899, 846, 861, 879, 887, + 856, 905, 867, 907, 2328, 873, 861, 856, 857, 869, + 876, 865, 866, 862, 880, 866, 867, 877, 886, 922, + 869, 887, 879, 875, 928, 935, 892, 883, 2328, 887, + 895, 897, 882, 898, 888, 900, 894, 941, 907, 891, + 892, 2328, 908, 911, 894, 896, 954, 897, 916, 2328, + 915, 918, 899, 917, 905, 958, 916, 912, 909, 962, + + 911, 964, 926, 912, 930, 929, 915, 930, 922, 918, + 936, 935, 922, 2328, 2328, 930, 977, 930, 2328, 938, + 941, 934, 987, 2328, 936, 942, 986, 937, 938, 950, + 944, 948, 946, 944, 955, 1000, 944, 949, 1003, 1004, + 948, 960, 2328, 948, 956, 954, 1005, 967, 954, 955, + 964, 976, 963, 961, 975, 976, 992, 997, 979, 984, + 967, 967, 969, 969, 989, 988, 979, 968, 985, 992, + 1035, 977, 997, 990, 994, 998, 981, 998, 989, 1044, + 991, 995, 2328, 1042, 991, 992, 992, 1013, 1010, 1050, + 999, 1017, 1018, 1004, 1012, 1021, 1001, 1016, 1023, 1065, + + 1066, 2328, 1019, 1068, 1069, 1011, 1021, 1031, 1034, 1017, + 1019, 1019, 1026, 1035, 1023, 1030, 1025, 1032, 1044, 1085, + 1032, 1031, 1048, 1089, 1039, 1043, 1041, 1039, 1034, 1095, + 1096, 1046, 1098, 1094, 1100, 1053, 2328, 1058, 1051, 1042, + 1061, 1055, 1050, 1060, 1057, 1062, 1058, 1070, 2328, 1055, + 1057, 2328, 2328, 1057, 1117, 1056, 1075, 1076, 1078, 1069, + 1123, 1124, 1077, 1062, 1076, 1084, 1066, 1071, 1110, 1101, + 1133, 1088, 1088, 1092, 1079, 1081, 1098, 1093, 1097, 1142, + 1090, 1094, 2328, 1091, 1087, 1104, 1084, 1105, 1095, 1146, + 1099, 2328, 1112, 1111, 1114, 1098, 1110, 1115, 1102, 1162, + + 1115, 1120, 1107, 1118, 1110, 1116, 1112, 1130, 1131, 1132, + 2328, 2328, 1130, 2328, 1132, 2328, 1117, 1128, 1119, 1138, + 1128, 1180, 1137, 1134, 1178, 1142, 1131, 1138, 1143, 1140, + 1146, 2328, 1139, 1131, 1192, 2328, 1193, 1140, 1147, 1191, + 1153, 2328, 2328, 1150, 2328, 1141, 2328, 1141, 1144, 1158, + 1163, 1146, 1157, 1206, 1163, 1164, 1165, 1205, 1161, 1212, + 1165, 1214, 2328, 1161, 1216, 1217, 1174, 1176, 2328, 2328, + 1159, 1221, 1217, 1181, 1165, 1177, 1196, 1227, 2328, 1184, + 1175, 1186, 1231, 1178, 1193, 1229, 1181, 2328, 1177, 1193, + 1181, 1195, 1196, 1193, 1237, 1200, 1190, 1200, 1206, 1194, + + 1194, 1249, 1245, 1251, 1208, 2328, 1210, 1210, 1212, 1205, + 1214, 1215, 1212, 1202, 1205, 1206, 1265, 1212, 1267, 1214, + 1269, 1212, 1271, 2328, 1229, 1208, 1223, 1217, 1220, 1233, + 1236, 1235, 1233, 1283, 1236, 2328, 2328, 1232, 1242, 1227, + 1283, 1244, 1230, 1291, 1292, 1236, 1246, 1295, 1252, 2328, + 1244, 1244, 1246, 1248, 1301, 1244, 2328, 1245, 2328, 1247, + 2328, 2328, 1260, 1262, 1263, 2328, 1250, 1258, 1310, 1259, + 1291, 2328, 1313, 1263, 1310, 2328, 1258, 1266, 1260, 1257, + 1260, 1263, 1263, 1259, 1281, 1320, 1273, 1285, 1288, 1276, + 1279, 1272, 1332, 1280, 2328, 1275, 2328, 1278, 1337, 1290, + + 1281, 1296, 1296, 1299, 1299, 1296, 1340, 1302, 2328, 1294, + 2328, 1295, 2328, 1305, 2328, 1345, 1307, 1308, 1305, 1349, + 1297, 1312, 1352, 1314, 1306, 2328, 1303, 1303, 1309, 1308, + 1306, 1321, 1321, 2328, 2328, 1362, 1309, 2328, 1326, 1311, + 1311, 1313, 1319, 2328, 1374, 1316, 1326, 1337, 1335, 1379, + 1332, 1341, 2328, 1338, 1357, 2328, 1341, 1326, 1386, 1387, + 1344, 1349, 1331, 1391, 1392, 1393, 1389, 1353, 1350, 1346, + 1339, 1394, 1352, 1353, 2328, 1343, 1356, 1404, 2328, 1342, + 1402, 1365, 1361, 1406, 1354, 1359, 1357, 1416, 1372, 1360, + 1419, 1369, 1421, 1382, 1371, 1365, 1425, 1367, 1376, 1369, + + 1383, 1386, 1431, 1373, 1390, 1386, 1376, 1391, 1375, 1433, + 1434, 1435, 1382, 1437, 1400, 2328, 1400, 1387, 1386, 1442, + 2328, 1383, 1401, 1450, 1420, 1452, 1405, 2328, 2328, 1396, + 1407, 1456, 2328, 2328, 2328, 1402, 1407, 1405, 1455, 1413, + 1418, 1406, 1422, 1411, 1409, 1410, 2328, 1468, 1414, 1465, + 1408, 1413, 1475, 1423, 1433, 1434, 2328, 1480, 1433, 1477, + 2328, 1435, 2328, 1426, 1441, 1429, 2328, 1439, 1440, 1441, + 1490, 1448, 2328, 1487, 1453, 1429, 1447, 1448, 1457, 1439, + 1445, 1447, 1501, 1460, 1459, 1451, 1505, 1455, 1459, 1464, + 1457, 2328, 1510, 2328, 1459, 1512, 1454, 2328, 1457, 1467, + + 1511, 1459, 1474, 1461, 1476, 1462, 1469, 1469, 1480, 2328, + 1474, 1469, 1468, 1528, 1481, 2328, 1525, 1476, 1473, 2328, + 1487, 1474, 1490, 1492, 1537, 1490, 1487, 1495, 1489, 2328, + 1542, 1483, 1485, 1501, 1494, 1484, 1500, 1501, 1495, 1511, + 2328, 1501, 1553, 1512, 2328, 1496, 1503, 1557, 1553, 2328, + 1515, 2328, 1555, 1517, 1518, 1503, 1504, 1512, 1566, 1514, + 1563, 1564, 1519, 1531, 1528, 1519, 1526, 2328, 1523, 1528, + 1526, 1578, 1579, 1527, 1537, 1524, 2328, 1539, 1540, 1541, + 1542, 2328, 1532, 1544, 1589, 1546, 1591, 1533, 1541, 1535, + 1543, 1556, 2328, 1533, 1593, 1554, 2328, 1558, 1543, 1543, + + 1558, 1551, 1550, 1561, 1548, 2328, 1564, 1552, 1555, 1611, + 1569, 1560, 1572, 1563, 1572, 1574, 1578, 2328, 2328, 1571, + 1561, 1621, 1564, 1623, 1565, 1625, 1583, 1627, 2328, 1628, + 2328, 1624, 1586, 1583, 1588, 1575, 1634, 1577, 1582, 1573, + 1638, 1591, 1592, 1582, 1599, 1598, 1639, 1583, 1602, 1603, + 2328, 1600, 1649, 1606, 1607, 1652, 1609, 1612, 1599, 1608, + 2328, 1657, 2328, 1610, 2328, 1619, 2328, 2328, 1601, 1661, + 1608, 1663, 1606, 2328, 1625, 1666, 1625, 2328, 1616, 1606, + 1665, 1631, 1624, 1620, 1674, 1617, 1619, 1624, 2328, 1620, + 1622, 2328, 1627, 1637, 1622, 1631, 2328, 1632, 1626, 1638, + + 2328, 1634, 2328, 1644, 1637, 2328, 1639, 1647, 1692, 1633, + 1635, 1632, 1656, 2328, 1643, 1650, 1653, 1642, 1696, 1643, + 1651, 1660, 1661, 1662, 1663, 1656, 1651, 1652, 1656, 1668, + 1713, 2328, 1659, 1671, 1716, 1665, 1667, 1665, 1720, 1673, + 1660, 1675, 1680, 1725, 1726, 1727, 1728, 1685, 1730, 1731, + 1681, 1675, 2328, 1691, 1735, 2328, 1692, 1677, 1695, 2328, + 1686, 1700, 1696, 1689, 2328, 2328, 2328, 2328, 1743, 2328, + 2328, 1700, 1745, 1706, 2328, 1747, 1689, 1749, 1704, 1703, + 1704, 1694, 2328, 1749, 2328, 1696, 2328, 1708, 2328, 1757, + 1699, 1715, 1760, 1721, 1718, 1710, 2328, 1760, 1709, 2328, + + 1721, 1714, 1769, 1717, 1712, 1714, 1729, 1714, 2328, 1775, + 1728, 1777, 1778, 1726, 2328, 1728, 2328, 2328, 1722, 1738, + 1783, 1784, 2328, 2328, 2328, 1790, 1795, 1800, 1805, 1810, + 1815, 1820, 1823, 1797, 1802, 1804, 1817 } ; -static const flex_int16_t yy_def[1915] = +static const flex_int16_t yy_def[1938] = { 0, - 1903, 1903, 1904, 1904, 1903, 1903, 1903, 1903, 1903, 1903, - 1902, 1902, 1902, 1902, 1902, 1905, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1906, - 1902, 1902, 1902, 1907, 15, 1902, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1908, 45, 45, 45, + 1926, 1926, 1927, 1927, 1926, 1926, 1926, 1926, 1926, 1926, + 1925, 1925, 1925, 1925, 1925, 1928, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1929, + 1925, 1925, 1925, 1930, 15, 1925, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1931, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1905, 1902, 1902, - 1902, 1902, 1902, 1902, 1909, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1906, 1902, 1907, 1902, + 45, 45, 45, 45, 45, 45, 45, 1928, 1925, 1925, + 1925, 1925, 1925, 1925, 1932, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1929, 1925, 1930, 1925, - 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1910, 45, 1908, 45, 45, 45, 45, 45, + 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1933, 45, 1931, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1909, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1911, 45, 45, 1902, 45, 45, 1902, 45, 45, + 45, 45, 1932, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1934, 45, 45, 1925, 45, 45, 1925, 45, 45, - 45, 45, 45, 45, 1910, 1902, 1908, 45, 45, 45, + 45, 45, 45, 45, 1933, 1925, 1931, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1912, 45, 45, 45, 45, 1902, 45, - 1902, 45, 1902, 45, 1908, 1902, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1902, 45, + 45, 45, 45, 45, 45, 45, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1935, 45, 45, 45, 45, 1925, 45, + 1925, 45, 1925, 45, 1931, 1925, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 1902, 1902, 1913, 45, 45, 45, 1902, - 45, 1902, 45, 1908, 45, 45, 45, 45, 45, 45, - 1902, 45, 45, 45, 45, 45, 45, 45, 1902, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1902, + 45, 45, 1925, 1925, 1925, 1936, 45, 45, 45, 1925, + 45, 1925, 45, 1931, 45, 45, 45, 45, 45, 45, + 1925, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1902, 45, 1902, 45, 45, 45, 45, 45, 45, + 45, 1925, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 1902, - 1902, 45, 1902, 45, 45, 1902, 1914, 45, 1902, 1902, - 1902, 45, 45, 45, 1902, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1925, 45, 1925, + 1925, 45, 1925, 45, 45, 1925, 1937, 45, 1925, 1925, + 1925, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, - 45, 45, 45, 45, 45, 1902, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, + 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1902, 45, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1902, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 1902, 45, 45, 45, 45, 45, 45, + 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1902, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1902, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1902, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1902, 1902, - 45, 45, 45, 45, 45, 45, 45, 1902, 1902, 45, + 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 45, 1902, 45, 45, 45, 45, 45, + 1925, 1925, 45, 45, 45, 45, 45, 45, 45, 1925, + 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1925, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1902, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1902, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1902, 1902, 45, 45, 45, 1902, 45, 45, 45, 45, - 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1902, + 45, 45, 45, 1925, 1925, 45, 45, 45, 1925, 45, + 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1902, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1902, 45, 45, 1902, 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 45, 1925, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1902, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1902, 1902, 45, 1902, 45, - 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, - 1902, 45, 45, 45, 45, 45, 1902, 1902, 45, 1902, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 1902, 1902, 45, 45, 45, 45, 45, - 45, 45, 45, 1902, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1902, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1902, - 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1902, 45, 45, 45, 45, 45, 45, - 1902, 45, 1902, 45, 1902, 1902, 45, 45, 45, 1902, - 45, 45, 45, 45, 45, 1902, 45, 45, 45, 1902, + 1925, 1925, 45, 1925, 45, 1925, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1925, 45, 45, 45, 1925, 45, 45, 45, 45, + 45, 1925, 1925, 45, 1925, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 1902, + 45, 45, 1925, 45, 45, 45, 45, 45, 1925, 1925, + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1902, 45, 1902, 45, 1902, 45, 1902, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1902, 45, - 45, 45, 45, 45, 45, 45, 1902, 1902, 45, 45, - 1902, 45, 45, 45, 45, 45, 1902, 45, 45, 45, - 45, 45, 45, 45, 45, 1902, 45, 45, 1902, 45, + 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, - 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1925, 1925, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1925, + 45, 45, 45, 45, 45, 45, 1925, 45, 1925, 45, + 1925, 1925, 45, 45, 45, 1925, 45, 45, 45, 45, + 45, 1925, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1925, 45, 1925, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 1925, 45, 1925, 45, 1925, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, + 45, 45, 45, 1925, 1925, 45, 45, 1925, 45, 45, + 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 1925, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1925, 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 1902, 45, 45, 45, 45, 45, 45, 1902, - 1902, 45, 45, 45, 1902, 1902, 1902, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 1902, 45, 1902, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1902, 45, 1902, 45, 45, 45, 1902, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1902, - 45, 45, 45, 45, 45, 1902, 45, 45, 45, 1902, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1902, 45, 45, 45, 1902, 45, 45, 45, 45, 1902, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, - 45, 45, 45, 45, 45, 1902, 45, 45, 45, 45, - 1902, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1902, 45, 45, 45, 1902, 45, 45, 45, 45, - 45, 45, 45, 45, 1902, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 1902, 1902, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 1902, 45, + 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, + 1925, 45, 45, 45, 45, 45, 45, 1925, 1925, 45, + 45, 45, 1925, 1925, 1925, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, + 1925, 45, 1925, 45, 45, 45, 1925, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 1902, - 45, 1902, 45, 1902, 1902, 45, 45, 45, 45, 45, - 1902, 45, 45, 45, 1902, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1902, 45, 45, 1902, 45, 45, - 45, 45, 1902, 45, 45, 45, 1902, 45, 1902, 45, - 45, 1902, 45, 45, 45, 45, 45, 45, 45, 1902, + 45, 1925, 45, 1925, 45, 45, 45, 1925, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1925, + 45, 45, 45, 45, 45, 1925, 45, 45, 45, 1925, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1925, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1925, 45, 45, 45, 1925, 45, 45, 45, 45, 1925, + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1925, 45, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 45, + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 45, 1925, 45, 45, 45, + + 45, 45, 45, 45, 45, 1925, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1925, 1925, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 45, + 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1925, 45, 1925, 45, 1925, 45, 1925, 1925, 45, 45, + 45, 45, 45, 1925, 45, 45, 45, 1925, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 45, 1925, 45, 45, 45, 45, 1925, 45, 45, 45, + + 1925, 45, 1925, 45, 45, 1925, 45, 45, 45, 45, + 45, 45, 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 1902, - 45, 45, 1902, 45, 45, 45, 45, 1902, 1902, 1902, - 1902, 45, 1902, 1902, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 45, 1902, 45, 1902, 45, 1902, 1902, - 45, 45, 45, 45, 45, 45, 1902, 45, 45, 1902, - 45, 45, 45, 45, 45, 45, 45, 1902, 45, 45, - 45, 45, 45, 1902, 1902, 45, 45, 45, 45, 1902, - - 1902, 0, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902 + 45, 1925, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 45, 1925, 45, 45, 45, 1925, + 45, 45, 45, 45, 1925, 1925, 1925, 1925, 45, 1925, + 1925, 45, 45, 45, 1925, 45, 45, 45, 45, 45, + 45, 45, 1925, 45, 1925, 45, 1925, 45, 1925, 45, + 45, 45, 45, 45, 45, 45, 1925, 45, 45, 1925, + + 45, 45, 45, 45, 45, 45, 45, 45, 1925, 45, + 45, 45, 45, 45, 1925, 45, 1925, 1925, 45, 45, + 45, 45, 1925, 1925, 0, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925 } ; -static const flex_int16_t yy_nxt[2379] = +static const flex_int16_t yy_nxt[2402] = { 0, - 1902, 13, 14, 13, 1902, 15, 16, 1902, 17, 18, + 1925, 13, 14, 13, 1925, 15, 16, 1925, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 84, 766, 37, 14, 37, 85, 25, 26, 38, 100, - 1902, 27, 37, 14, 37, 42, 28, 42, 38, 90, + 84, 767, 37, 14, 37, 85, 25, 26, 38, 100, + 1925, 27, 37, 14, 37, 42, 28, 42, 38, 90, 91, 29, 197, 30, 13, 14, 13, 89, 90, 25, 31, 91, 13, 14, 13, 13, 14, 13, 32, 40, - 767, 13, 14, 13, 33, 40, 101, 90, 91, 197, + 768, 13, 14, 13, 33, 40, 101, 90, 91, 197, 89, 34, 35, 13, 14, 13, 93, 15, 16, 94, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 13, 14, 13, 89, 39, 102, 25, 26, @@ -1405,7 +1411,7 @@ static const flex_int16_t yy_nxt[2379] = 106, 42, 41, 29, 108, 30, 111, 112, 92, 134, 41, 25, 31, 102, 135, 365, 87, 136, 87, 105, 32, 88, 88, 88, 88, 88, 33, 108, 106, 111, - 850, 112, 366, 34, 35, 44, 44, 44, 45, 45, + 852, 112, 366, 34, 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 45, 48, 49, 50, 45, 51, 52, 53, 45, 45, 45, @@ -1413,13 +1419,13 @@ static const flex_int16_t yy_nxt[2379] = 58, 45, 59, 60, 61, 62, 63, 64, 65, 51, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 56, 45, 45, 45, 45, 45, 79, 851, + 76, 77, 56, 45, 45, 45, 45, 45, 79, 853, 80, 80, 80, 80, 80, 79, 102, 82, 82, 82, 82, 82, 204, 81, 83, 83, 83, 83, 83, 79, 81, 82, 82, 82, 82, 82, 105, 81, 118, 164, 109, 129, 116, 165, 81, 204, 81, 201, 117, 119, 110, 130, 120, 81, 121, 132, 122, 198, 184, 105, - 81, 185, 133, 109, 852, 233, 405, 81, 45, 406, + 81, 185, 133, 109, 854, 233, 405, 81, 45, 406, 131, 45, 45, 45, 201, 45, 45, 45, 110, 114, 137, 234, 45, 45, 184, 45, 45, 185, 199, 184, @@ -1427,132 +1433,132 @@ static const flex_int16_t yy_nxt[2379] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 123, 187, 45, 124, 125, 185, 45, 126, 127, 145, 45, 141, 142, 146, 294, 143, - 108, 147, 45, 853, 128, 144, 45, 186, 45, 115, + 108, 147, 45, 855, 128, 144, 45, 186, 45, 115, 153, 186, 295, 148, 111, 188, 196, 149, 154, 150, - 155, 151, 854, 152, 158, 156, 157, 159, 160, 166, + 155, 151, 856, 152, 158, 156, 157, 159, 160, 166, 173, 174, 228, 167, 229, 186, 168, 111, 161, 189, 109, 162, 196, 169, 170, 203, 251, 180, 171, 172, 110, 230, 181, 83, 83, 83, 83, 83, 88, 88, 88, 88, 88, 175, 242, 176, 81, 252, 177, 178, 100, 79, 203, 80, 80, 80, 80, 80, 110, 83, - 83, 83, 83, 83, 99, 179, 81, 855, 87, 81, + 83, 83, 83, 83, 99, 179, 81, 857, 87, 81, 87, 99, 81, 88, 88, 88, 88, 88, 79, 193, 82, 82, 82, 82, 82, 200, 202, 101, 243, 81, - 200, 193, 856, 81, 215, 81, 88, 88, 88, 88, + 200, 193, 858, 81, 215, 81, 88, 88, 88, 88, 88, 99, 211, 216, 217, 99, 275, 193, 208, 99, 276, 212, 508, 200, 202, 213, 81, 99, 259, 209, 231, 99, 509, 99, 192, 207, 207, 207, 207, 207, 222, 223, 278, 232, 207, 207, 207, 207, 207, 207, 224, 237, 271, 288, 238, 272, 273, 289, 239, 265, - 201, 290, 309, 307, 857, 373, 307, 207, 207, 207, + 201, 290, 309, 307, 859, 373, 307, 207, 207, 207, 207, 207, 207, 308, 266, 267, 268, 279, 280, 281, 308, 309, 315, 317, 320, 309, 318, 299, 282, 322, 283, 307, 284, 285, 310, 286, 324, 315, 386, 308, - 858, 335, 859, 414, 312, 315, 311, 320, 320, 336, + 860, 335, 861, 414, 312, 315, 311, 320, 320, 336, 437, 317, 322, 318, 337, 338, 415, 321, 374, 433, 327, 375, 425, 324, 325, 325, 325, 325, 325, 433, 439, 382, 456, 325, 325, 325, 325, 325, 325, 437, - 441, 459, 433, 860, 465, 437, 460, 441, 387, 457, + 441, 459, 433, 862, 465, 437, 460, 441, 387, 457, - 466, 522, 434, 439, 861, 630, 325, 325, 325, 325, + 466, 522, 434, 439, 863, 630, 325, 325, 325, 325, 325, 325, 480, 556, 597, 631, 557, 481, 441, 444, - 444, 444, 444, 444, 445, 510, 862, 598, 444, 444, + 444, 444, 444, 444, 445, 510, 864, 598, 444, 444, 444, 444, 444, 444, 496, 497, 498, 503, 526, 568, - 499, 535, 527, 504, 540, 536, 863, 572, 541, 573, - 864, 444, 444, 444, 444, 444, 444, 563, 607, 523, - 865, 588, 564, 608, 568, 482, 696, 568, 695, 589, + 499, 535, 527, 504, 540, 536, 865, 572, 541, 573, + 866, 444, 444, 444, 444, 444, 444, 563, 607, 523, + 867, 588, 564, 608, 568, 482, 696, 568, 695, 589, 483, 590, 591, 592, 572, 593, 573, 45, 45, 45, - 45, 45, 744, 745, 815, 866, 45, 45, 45, 45, - 45, 45, 574, 667, 696, 695, 694, 698, 668, 814, - - 777, 697, 867, 804, 699, 778, 868, 815, 869, 45, - 45, 45, 45, 45, 45, 805, 823, 824, 845, 825, - 870, 871, 846, 872, 873, 874, 847, 814, 875, 876, - 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, - 887, 888, 889, 890, 779, 891, 892, 893, 894, 895, + 45, 45, 716, 745, 746, 717, 45, 45, 45, 45, + 45, 45, 574, 667, 696, 695, 694, 698, 668, 815, + + 778, 697, 816, 805, 699, 779, 868, 869, 870, 45, + 45, 45, 45, 45, 45, 806, 824, 825, 847, 826, + 871, 872, 848, 873, 874, 816, 849, 815, 875, 876, + 878, 879, 877, 880, 881, 882, 883, 884, 885, 886, + 887, 888, 889, 890, 780, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, - 916, 918, 919, 922, 923, 924, 926, 917, 927, 920, - 928, 925, 929, 921, 930, 931, 932, 933, 934, 935, + 916, 917, 918, 920, 921, 924, 925, 926, 928, 919, + 929, 922, 930, 927, 931, 923, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, - 938, 966, 967, 968, 969, 970, 971, 972, 973, 974, - 975, 976, 977, 978, 979, 981, 982, 983, 984, 980, - 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, + 966, 967, 940, 968, 969, 970, 971, 972, 973, 974, + 975, 976, 977, 978, 979, 980, 981, 982, 984, 985, + 986, 987, 983, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, - 1006, 1007, 1008, 1005, 1009, 1010, 1011, 1012, 1013, 1014, + 1005, 1006, 1007, 1009, 1010, 1011, 1008, 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, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, + 1035, 1036, 1037, 1038, 1039, 1041, 1042, 1043, 1044, 1045, - 1046, 1047, 1048, 1037, 1049, 1050, 1051, 1052, 1053, 1054, + 1046, 1047, 1048, 1049, 1050, 1051, 1040, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, - 1075, 1076, 1077, 1055, 1078, 1079, 1054, 1080, 1081, 1082, + 1075, 1076, 1077, 1078, 1079, 1080, 1058, 1081, 1082, 1057, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, - 1093, 1094, 1095, 1096, 1097, 1098, 1101, 1102, 1103, 1104, - 1099, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, + 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, + 1105, 1106, 1107, 1108, 1103, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, - 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, - 1124, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, + 1124, 1125, 1126, 1127, 1129, 1130, 1131, 1132, 1133, 1134, + 1135, 1136, 1137, 1138, 1128, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, - 1154, 1155, 1156, 1100, 1157, 1158, 1159, 1160, 1161, 1162, - 1163, 1164, 1165, 1167, 1166, 1168, 1169, 1170, 1171, 1172, + 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1104, 1161, 1162, + 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1171, 1170, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, - 1165, 1166, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, - 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1211, - 1213, 1214, 1215, 1210, 1216, 1217, 1218, 1219, 1220, 1221, + 1193, 1194, 1195, 1196, 1169, 1170, 1197, 1198, 1199, 1200, + 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, + 1211, 1212, 1213, 1214, 1216, 1218, 1219, 1220, 1215, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, - 1252, 1253, 1254, 1212, 1255, 1256, 1257, 1258, 1259, 1260, + 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1217, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, - 1291, 1292, 1293, 1294, 1272, 1295, 1296, 1297, 1298, 1299, - 1273, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, + 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1277, + 1300, 1301, 1302, 1303, 1304, 1278, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, - 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, + 1349, 1350, 1351, 1352, 1353, 1354, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, - 1370, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, + 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, - 1391, 1392, 1393, 1365, 1394, 1395, 1396, 1397, 1398, 1399, - 1400, 1401, 1349, 1402, 1403, 1404, 1405, 1406, 1407, 1408, - 1409, 1410, 1411, 1413, 1371, 1414, 1415, 1416, 1417, 1418, - 1412, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, + 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1371, + 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1355, 1408, + 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, + 1377, 1420, 1421, 1422, 1423, 1424, 1425, 1419, 1426, 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, 1448, 1471, 1472, 1473, 1474, 1475, 1476, - 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, + 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, + 1455, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, - 1527, 1528, 1529, 1531, 1532, 1533, 1534, 1535, 1536, 1537, + 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, - 1538, 1539, 1540, 1530, 1541, 1542, 1543, 1517, 1544, 1545, - 1546, 1547, 1548, 1550, 1551, 1552, 1553, 1554, 1555, 1556, - 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, + 1537, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, + 1548, 1538, 1549, 1550, 1551, 1525, 1552, 1553, 1554, 1555, + 1556, 1557, 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, 1600, 1602, 1603, 1604, 1605, 1601, 1606, - 1549, 1607, 1608, 1609, 1610, 1584, 1611, 1612, 1613, 1614, - 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, + 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, + 1607, 1608, 1609, 1610, 1612, 1613, 1614, 1615, 1611, 1558, + 1616, 1617, 1618, 1619, 1593, 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, @@ -1581,79 +1587,83 @@ static const flex_int16_t yy_nxt[2379] = 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, - 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1883, 1882, 1884, + 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, - 1895, 1896, 1897, 1898, 1899, 1900, 1901, 12, 12, 12, - 12, 12, 36, 36, 36, 36, 36, 78, 314, 78, - 78, 78, 97, 436, 97, 567, 97, 99, 99, 99, - 99, 99, 113, 113, 113, 113, 113, 183, 99, 183, - - 183, 183, 205, 205, 205, 849, 848, 844, 843, 842, - 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, - 831, 830, 829, 828, 827, 826, 822, 821, 820, 819, - 818, 817, 816, 813, 812, 811, 810, 809, 808, 807, - 806, 803, 802, 801, 800, 799, 798, 797, 796, 795, - 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, - 784, 783, 782, 781, 780, 776, 775, 774, 773, 772, - 771, 770, 769, 768, 765, 764, 763, 762, 761, 760, - 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, - 749, 748, 747, 746, 743, 742, 741, 740, 739, 738, - - 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, - 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, - 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, - 707, 706, 705, 704, 703, 702, 701, 700, 694, 693, - 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, - 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, - 672, 671, 670, 669, 666, 665, 664, 663, 662, 661, - 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, - 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, - 640, 639, 638, 637, 636, 635, 634, 633, 632, 629, - - 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, - 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, - 606, 605, 604, 603, 602, 601, 600, 599, 596, 595, - 594, 587, 586, 585, 584, 583, 582, 581, 580, 579, - 578, 577, 576, 575, 571, 570, 569, 566, 565, 562, - 561, 560, 559, 558, 555, 554, 553, 552, 551, 550, - 549, 548, 547, 546, 545, 544, 543, 542, 539, 538, - 537, 534, 533, 532, 531, 530, 529, 528, 525, 524, - 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, - 511, 507, 506, 505, 502, 501, 500, 495, 494, 493, - - 492, 491, 490, 489, 488, 487, 486, 485, 484, 479, - 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, - 468, 467, 464, 463, 462, 461, 458, 455, 454, 453, - 452, 451, 450, 449, 448, 447, 446, 443, 442, 440, - 438, 435, 432, 431, 430, 429, 428, 427, 426, 424, - 423, 422, 421, 420, 419, 418, 417, 416, 413, 412, - 411, 410, 409, 408, 407, 404, 403, 402, 401, 400, - 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, - 389, 388, 385, 384, 383, 381, 380, 379, 378, 377, - 376, 372, 371, 370, 369, 368, 367, 364, 363, 362, - - 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, - 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, - 341, 340, 339, 334, 333, 332, 331, 330, 329, 328, - 326, 206, 323, 321, 319, 316, 313, 306, 305, 304, - 303, 302, 301, 300, 298, 297, 296, 293, 292, 291, - 287, 277, 274, 270, 269, 264, 263, 262, 261, 260, - 258, 257, 256, 255, 254, 253, 250, 249, 248, 247, - 246, 245, 244, 241, 240, 236, 235, 227, 226, 225, - 221, 220, 219, 218, 214, 210, 206, 195, 194, 191, - 190, 182, 163, 140, 107, 104, 103, 43, 98, 96, - - 95, 86, 43, 1902, 11, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902 + 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1903, 1902, 1904, + 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, + 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, + 12, 12, 12, 12, 12, 36, 36, 36, 36, 36, + + 78, 314, 78, 78, 78, 97, 436, 97, 567, 97, + 99, 99, 99, 99, 99, 113, 113, 113, 113, 113, + 183, 99, 183, 183, 183, 205, 205, 205, 851, 850, + 846, 845, 844, 843, 842, 841, 840, 839, 838, 837, + 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, + 823, 822, 821, 820, 819, 818, 817, 814, 813, 812, + 811, 810, 809, 808, 807, 804, 803, 802, 801, 800, + 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, + 789, 788, 787, 786, 785, 784, 783, 782, 781, 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, 749, 748, 747, 744, 743, + 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, + 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, + 722, 721, 720, 719, 718, 715, 714, 713, 712, 711, + 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, + 700, 694, 693, 692, 691, 690, 689, 688, 687, 686, + 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, + 675, 674, 673, 672, 671, 670, 669, 666, 665, 664, + 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, + + 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, + 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, + 633, 632, 629, 628, 627, 626, 625, 624, 623, 622, + 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, + 611, 610, 609, 606, 605, 604, 603, 602, 601, 600, + 599, 596, 595, 594, 587, 586, 585, 584, 583, 582, + 581, 580, 579, 578, 577, 576, 575, 571, 570, 569, + 566, 565, 562, 561, 560, 559, 558, 555, 554, 553, + 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, + 542, 539, 538, 537, 534, 533, 532, 531, 530, 529, + + 528, 525, 524, 521, 520, 519, 518, 517, 516, 515, + 514, 513, 512, 511, 507, 506, 505, 502, 501, 500, + 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, + 485, 484, 479, 478, 477, 476, 475, 474, 473, 472, + 471, 470, 469, 468, 467, 464, 463, 462, 461, 458, + 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, + 443, 442, 440, 438, 435, 432, 431, 430, 429, 428, + 427, 426, 424, 423, 422, 421, 420, 419, 418, 417, + 416, 413, 412, 411, 410, 409, 408, 407, 404, 403, + 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, + + 392, 391, 390, 389, 388, 385, 384, 383, 381, 380, + 379, 378, 377, 376, 372, 371, 370, 369, 368, 367, + 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, + 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, + 344, 343, 342, 341, 340, 339, 334, 333, 332, 331, + 330, 329, 328, 326, 206, 323, 321, 319, 316, 313, + 306, 305, 304, 303, 302, 301, 300, 298, 297, 296, + 293, 292, 291, 287, 277, 274, 270, 269, 264, 263, + 262, 261, 260, 258, 257, 256, 255, 254, 253, 250, + 249, 248, 247, 246, 245, 244, 241, 240, 236, 235, + + 227, 226, 225, 221, 220, 219, 218, 214, 210, 206, + 195, 194, 191, 190, 182, 163, 140, 107, 104, 103, + 43, 98, 96, 95, 86, 43, 1925, 11, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + + 1925 } ; -static const flex_int16_t yy_chk[2379] = +static const flex_int16_t yy_chk[2402] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1670,7 +1680,7 @@ static const flex_int16_t yy_chk[2379] = 51, 42, 9, 2, 53, 2, 55, 56, 31, 64, 10, 2, 2, 47, 64, 245, 25, 64, 25, 50, 2, 25, 25, 25, 25, 25, 2, 53, 51, 55, - 727, 56, 245, 2, 2, 15, 15, 15, 15, 15, + 728, 56, 245, 2, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, @@ -1678,13 +1688,13 @@ static const flex_int16_t yy_chk[2379] = 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 17, 728, + 15, 15, 15, 15, 15, 15, 15, 15, 17, 729, 17, 17, 17, 17, 17, 19, 58, 19, 19, 19, 19, 19, 112, 17, 20, 20, 20, 20, 20, 22, 19, 22, 22, 22, 22, 22, 62, 20, 59, 73, 54, 61, 58, 73, 22, 112, 17, 109, 58, 59, 54, 61, 59, 19, 59, 63, 59, 107, 89, 62, - 20, 90, 63, 54, 729, 131, 281, 22, 45, 281, + 20, 90, 63, 54, 730, 131, 281, 22, 45, 281, 62, 45, 45, 45, 109, 45, 45, 45, 54, 57, 65, 131, 45, 45, 89, 45, 57, 90, 107, 92, @@ -1692,230 +1702,234 @@ static const flex_int16_t yy_chk[2379] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 60, 92, 57, 60, 60, 93, 57, 60, 60, 68, 57, 67, 67, 68, 171, 67, - 69, 68, 57, 730, 60, 67, 57, 91, 57, 57, + 69, 68, 57, 731, 60, 67, 57, 91, 57, 57, 70, 94, 171, 68, 76, 93, 105, 68, 70, 69, - 70, 69, 731, 69, 71, 70, 70, 71, 71, 74, + 70, 69, 732, 69, 71, 70, 70, 71, 71, 74, 75, 75, 129, 74, 129, 91, 74, 76, 71, 94, 75, 71, 105, 74, 74, 111, 145, 76, 74, 74, 75, 129, 76, 79, 79, 79, 79, 79, 87, 87, 87, 87, 87, 75, 137, 75, 79, 145, 75, 75, 99, 80, 111, 80, 80, 80, 80, 80, 75, 83, - 83, 83, 83, 83, 101, 75, 80, 733, 81, 79, + 83, 83, 83, 83, 101, 75, 80, 734, 81, 79, 81, 101, 83, 81, 81, 81, 81, 81, 82, 102, 82, 82, 82, 82, 82, 108, 110, 99, 137, 80, - 152, 116, 734, 82, 120, 83, 88, 88, 88, 88, + 152, 116, 735, 82, 120, 83, 88, 88, 88, 88, 88, 101, 118, 120, 120, 101, 163, 102, 116, 101, 163, 118, 381, 108, 110, 118, 82, 101, 152, 116, 130, 101, 381, 101, 101, 115, 115, 115, 115, 115, 125, 125, 165, 130, 115, 115, 115, 115, 115, 115, 125, 134, 161, 167, 134, 161, 161, 167, 134, 158, - 175, 167, 186, 184, 735, 252, 187, 115, 115, 115, + 175, 167, 186, 184, 736, 252, 187, 115, 115, 115, 115, 115, 115, 185, 158, 158, 158, 165, 165, 165, 188, 189, 193, 196, 200, 186, 197, 175, 165, 202, 165, 184, 165, 165, 187, 165, 204, 209, 263, 185, - 736, 217, 737, 289, 189, 193, 188, 200, 259, 217, + 737, 217, 738, 289, 189, 193, 188, 200, 259, 217, 315, 196, 202, 197, 217, 217, 289, 299, 252, 307, 209, 252, 299, 204, 207, 207, 207, 207, 207, 310, 317, 259, 338, 207, 207, 207, 207, 207, 207, 315, - 320, 341, 307, 738, 346, 327, 341, 382, 263, 338, + 320, 341, 307, 739, 346, 327, 341, 382, 263, 338, - 346, 395, 310, 317, 739, 498, 207, 207, 207, 207, + 346, 395, 310, 317, 740, 498, 207, 207, 207, 207, 207, 207, 360, 425, 465, 498, 425, 360, 320, 325, - 325, 325, 325, 325, 327, 382, 740, 465, 325, 325, + 325, 325, 325, 325, 327, 382, 741, 465, 325, 325, 325, 325, 325, 325, 373, 373, 373, 377, 398, 437, - 373, 406, 398, 377, 410, 406, 741, 443, 410, 443, - 742, 325, 325, 325, 325, 325, 325, 431, 475, 395, - 743, 461, 431, 475, 445, 360, 573, 437, 572, 461, + 373, 406, 398, 377, 410, 406, 742, 443, 410, 443, + 743, 325, 325, 325, 325, 325, 325, 431, 475, 395, + 744, 461, 431, 475, 445, 360, 573, 437, 572, 461, 360, 461, 461, 461, 443, 461, 443, 444, 444, 444, - 444, 444, 623, 623, 696, 744, 444, 444, 444, 444, + 444, 444, 593, 623, 623, 593, 444, 444, 444, 444, 444, 444, 445, 537, 573, 572, 574, 576, 537, 695, - 657, 574, 745, 684, 576, 657, 746, 696, 747, 444, - 444, 444, 444, 444, 444, 684, 704, 704, 724, 704, - 748, 749, 724, 750, 751, 752, 724, 695, 752, 753, - 754, 755, 757, 758, 759, 760, 761, 762, 763, 764, - 765, 767, 768, 769, 657, 770, 771, 772, 773, 774, - 775, 776, 778, 779, 780, 781, 782, 783, 784, 785, - 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, - 796, 797, 798, 799, 800, 801, 802, 796, 803, 798, - 805, 801, 806, 798, 807, 808, 809, 810, 811, 812, - 813, 814, 815, 816, 817, 818, 819, 820, 821, 823, - - 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, - 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, - 815, 844, 845, 846, 847, 848, 849, 850, 851, 853, - 854, 855, 856, 857, 858, 859, 860, 861, 862, 858, - 863, 864, 865, 866, 867, 868, 871, 872, 873, 874, - 875, 876, 877, 880, 881, 882, 883, 884, 885, 886, - 887, 888, 889, 886, 890, 891, 892, 894, 896, 897, - 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, - 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, - 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, - - 929, 930, 931, 919, 932, 933, 934, 935, 936, 937, - 938, 939, 940, 941, 942, 944, 945, 946, 947, 948, - 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, - 959, 960, 961, 938, 962, 963, 937, 964, 965, 967, - 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, - 978, 980, 981, 982, 983, 984, 985, 986, 988, 989, - 984, 990, 991, 992, 993, 994, 995, 996, 997, 998, - 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, - 1009, 1010, 1013, 1014, 1015, 1017, 1018, 1019, 1020, 1022, - 1008, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, - - 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1041, 1042, - 1043, 1044, 1045, 984, 1046, 1047, 1048, 1049, 1050, 1051, - 1052, 1053, 1054, 1056, 1055, 1057, 1058, 1059, 1060, 1061, - 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, - 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1080, 1081, 1082, - 1054, 1055, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, - 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1099, 1100, 1101, - 1102, 1103, 1104, 1100, 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, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, - 1142, 1143, 1144, 1101, 1146, 1147, 1150, 1151, 1152, 1153, - 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, - 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, - 1174, 1175, 1176, 1177, 1178, 1180, 1181, 1182, 1183, 1184, - 1185, 1186, 1188, 1189, 1165, 1190, 1191, 1192, 1193, 1194, - 1166, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, - 1204, 1205, 1208, 1210, 1212, 1213, 1214, 1215, 1216, 1217, - 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1228, - 1229, 1230, 1232, 1233, 1234, 1235, 1236, 1239, 1241, 1243, - - 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, - 1254, 1255, 1256, 1257, 1259, 1260, 1261, 1262, 1263, 1266, - 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1275, 1276, 1277, - 1278, 1279, 1280, 1281, 1282, 1284, 1285, 1286, 1287, 1288, - 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, - 1299, 1301, 1302, 1272, 1303, 1304, 1305, 1306, 1307, 1308, - 1309, 1310, 1253, 1311, 1312, 1313, 1314, 1315, 1316, 1317, - 1319, 1320, 1321, 1322, 1278, 1323, 1324, 1325, 1326, 1327, - 1321, 1328, 1329, 1332, 1333, 1334, 1335, 1336, 1337, 1338, - 1339, 1340, 1341, 1342, 1343, 1345, 1346, 1347, 1348, 1349, - - 1350, 1352, 1354, 1357, 1358, 1359, 1361, 1362, 1363, 1364, - 1365, 1367, 1368, 1369, 1371, 1372, 1373, 1374, 1375, 1376, - 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, - 1387, 1389, 1391, 1365, 1392, 1393, 1394, 1395, 1396, 1397, - 1398, 1399, 1400, 1401, 1403, 1405, 1407, 1409, 1410, 1411, - 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1420, 1421, 1422, - 1423, 1424, 1425, 1426, 1429, 1430, 1432, 1433, 1434, 1435, - 1436, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1447, - 1448, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, - 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1468, 1469, - - 1470, 1472, 1473, 1461, 1474, 1475, 1476, 1448, 1477, 1478, - 1479, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, - 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, - 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, - 1509, 1510, 1511, 1512, 1514, 1515, 1516, 1517, 1518, 1519, - 1522, 1523, 1524, 1528, 1529, 1530, 1531, 1532, 1533, 1534, - 1535, 1536, 1537, 1539, 1540, 1541, 1542, 1543, 1539, 1544, - 1480, 1545, 1546, 1547, 1549, 1517, 1550, 1551, 1553, 1555, - 1556, 1557, 1559, 1560, 1561, 1562, 1563, 1565, 1566, 1567, - 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, - - 1578, 1579, 1580, 1581, 1582, 1584, 1586, 1587, 1588, 1590, - 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1601, - 1602, 1603, 1604, 1605, 1607, 1608, 1609, 1611, 1612, 1613, - 1614, 1615, 1616, 1617, 1618, 1619, 1621, 1622, 1623, 1624, - 1625, 1626, 1627, 1628, 1629, 1630, 1632, 1633, 1634, 1636, - 1637, 1638, 1639, 1641, 1643, 1644, 1645, 1646, 1647, 1648, - 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1658, 1659, - 1660, 1661, 1662, 1663, 1664, 1665, 1667, 1668, 1669, 1670, - 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, - 1683, 1684, 1685, 1687, 1688, 1689, 1690, 1691, 1692, 1693, - - 1694, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, - 1705, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, - 1718, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, - 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1739, - 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1749, 1751, - 1753, 1756, 1757, 1758, 1759, 1760, 1762, 1763, 1764, 1766, - 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1776, 1777, - 1779, 1780, 1781, 1782, 1784, 1785, 1786, 1788, 1790, 1791, - 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1801, 1802, 1803, - 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, - - 1814, 1815, 1816, 1818, 1819, 1820, 1821, 1822, 1823, 1824, - 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, - 1835, 1836, 1838, 1839, 1841, 1842, 1844, 1845, 1846, 1847, - 1852, 1855, 1856, 1857, 1859, 1860, 1861, 1862, 1863, 1864, - 1866, 1868, 1871, 1872, 1873, 1874, 1875, 1876, 1875, 1878, - 1879, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1889, 1890, - 1891, 1892, 1893, 1896, 1897, 1898, 1899, 1903, 1903, 1903, - 1903, 1903, 1904, 1904, 1904, 1904, 1904, 1905, 1911, 1905, - 1905, 1905, 1906, 1912, 1906, 1913, 1906, 1907, 1907, 1907, - 1907, 1907, 1908, 1908, 1908, 1908, 1908, 1909, 1914, 1909, - - 1909, 1909, 1910, 1910, 1910, 726, 725, 723, 722, 721, - 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, - 710, 709, 708, 707, 706, 705, 703, 702, 701, 700, - 699, 698, 697, 692, 691, 690, 689, 688, 687, 686, - 685, 683, 682, 680, 679, 678, 677, 676, 675, 674, - 673, 672, 671, 670, 669, 668, 666, 665, 664, 663, - 662, 661, 660, 659, 658, 656, 655, 653, 652, 651, - 650, 649, 648, 647, 645, 644, 643, 641, 640, 638, - 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, - 627, 626, 625, 624, 622, 621, 620, 619, 618, 617, - - 615, 614, 613, 612, 611, 610, 609, 608, 606, 605, - 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, - 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, - 584, 583, 582, 581, 580, 579, 578, 577, 568, 566, - 565, 564, 562, 559, 557, 556, 555, 554, 553, 552, - 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, - 541, 540, 539, 538, 536, 535, 534, 533, 532, 531, - 530, 529, 528, 527, 526, 525, 523, 521, 520, 519, - 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, - 508, 506, 505, 504, 503, 502, 501, 500, 499, 497, - - 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, - 486, 485, 484, 483, 482, 481, 479, 478, 477, 476, - 474, 473, 472, 471, 470, 469, 467, 466, 464, 463, - 462, 460, 458, 457, 456, 455, 454, 453, 452, 450, - 449, 448, 447, 446, 441, 439, 438, 435, 432, 430, - 429, 428, 427, 426, 424, 423, 422, 421, 420, 419, - 418, 417, 416, 415, 414, 413, 412, 411, 409, 408, - 407, 405, 404, 403, 402, 401, 400, 399, 397, 396, - 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, - 384, 380, 379, 378, 376, 375, 374, 372, 371, 370, - - 369, 368, 367, 366, 365, 364, 363, 362, 361, 359, - 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, - 348, 347, 345, 344, 343, 342, 340, 337, 336, 335, - 334, 333, 332, 331, 330, 329, 328, 324, 322, 318, - 316, 313, 306, 305, 304, 303, 302, 301, 300, 298, - 297, 296, 295, 294, 293, 292, 291, 290, 288, 287, - 286, 285, 284, 283, 282, 280, 279, 278, 277, 276, - 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, - 265, 264, 262, 261, 260, 258, 257, 256, 255, 254, - 253, 251, 250, 249, 248, 247, 246, 244, 243, 241, - - 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, - 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, - 220, 219, 218, 216, 215, 214, 213, 212, 211, 210, - 208, 205, 203, 201, 199, 194, 190, 182, 181, 180, - 179, 178, 177, 176, 174, 173, 172, 170, 169, 168, - 166, 164, 162, 160, 159, 157, 156, 155, 154, 153, - 151, 150, 149, 148, 147, 146, 144, 143, 142, 141, - 140, 139, 138, 136, 135, 133, 132, 128, 127, 126, - 124, 123, 122, 121, 119, 117, 113, 104, 103, 97, - 96, 77, 72, 66, 52, 49, 48, 43, 41, 39, - - 38, 24, 14, 11, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, - 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902 + 657, 574, 696, 684, 576, 657, 745, 746, 747, 444, + 444, 444, 444, 444, 444, 684, 704, 704, 725, 704, + 748, 749, 725, 750, 751, 696, 725, 695, 752, 753, + 754, 755, 753, 756, 758, 759, 760, 761, 762, 763, + 764, 765, 766, 768, 657, 769, 770, 771, 772, 773, + 774, 775, 776, 777, 779, 780, 781, 782, 783, 784, + 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, + 795, 796, 797, 798, 799, 800, 801, 802, 803, 797, + 804, 799, 806, 802, 807, 799, 808, 809, 810, 811, + 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, + + 822, 824, 825, 826, 827, 828, 829, 830, 831, 832, + 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, + 843, 844, 816, 845, 846, 847, 848, 849, 850, 851, + 852, 853, 855, 856, 857, 858, 859, 860, 861, 862, + 863, 864, 860, 865, 866, 867, 868, 869, 870, 873, + 874, 875, 876, 877, 878, 879, 882, 883, 884, 885, + 886, 887, 888, 889, 890, 891, 888, 892, 893, 894, + 896, 898, 899, 900, 901, 902, 903, 904, 905, 906, + 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, + 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, + + 927, 928, 929, 931, 932, 933, 921, 934, 935, 936, + 937, 938, 939, 940, 941, 942, 943, 944, 946, 947, + 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, + 958, 959, 960, 961, 962, 963, 940, 964, 965, 939, + 966, 967, 968, 970, 971, 972, 973, 974, 975, 976, + 977, 978, 979, 980, 981, 983, 984, 985, 986, 987, + 988, 989, 991, 992, 987, 993, 994, 995, 996, 997, + 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, + 1008, 1009, 1010, 1011, 1012, 1013, 1016, 1017, 1018, 1020, + 1021, 1022, 1023, 1025, 1011, 1026, 1027, 1028, 1029, 1030, + + 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, + 1041, 1042, 1044, 1045, 1046, 1047, 1048, 987, 1049, 1050, + 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1059, 1058, 1060, + 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, + 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, + 1081, 1082, 1084, 1085, 1057, 1058, 1086, 1087, 1088, 1089, + 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, + 1100, 1101, 1103, 1104, 1105, 1106, 1107, 1108, 1104, 1109, + 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, + 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, + + 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1138, 1139, 1140, + 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1105, 1150, + 1151, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, + 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, + 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, + 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1193, 1169, + 1194, 1195, 1196, 1197, 1198, 1170, 1199, 1200, 1201, 1202, + 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1213, 1215, + 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, + 1227, 1228, 1229, 1230, 1231, 1233, 1234, 1235, 1237, 1238, + + 1239, 1240, 1241, 1244, 1246, 1248, 1249, 1250, 1251, 1252, + 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, + 1264, 1265, 1266, 1267, 1268, 1271, 1272, 1273, 1274, 1275, + 1276, 1277, 1278, 1280, 1281, 1282, 1283, 1284, 1285, 1286, + 1287, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, + 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1307, 1277, + 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1258, 1316, + 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1325, 1326, 1327, + 1283, 1328, 1329, 1330, 1331, 1332, 1333, 1327, 1334, 1335, + 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, + + 1348, 1349, 1351, 1352, 1353, 1354, 1355, 1356, 1358, 1360, + 1363, 1364, 1365, 1367, 1368, 1369, 1370, 1371, 1373, 1374, + 1375, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, + 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1396, + 1371, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, + 1407, 1408, 1410, 1412, 1414, 1416, 1417, 1418, 1419, 1420, + 1421, 1422, 1423, 1424, 1425, 1427, 1428, 1429, 1430, 1431, + 1432, 1433, 1436, 1437, 1439, 1440, 1441, 1442, 1443, 1445, + 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1454, 1455, 1457, + 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, + + 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1476, 1477, 1478, + 1480, 1468, 1481, 1482, 1483, 1455, 1484, 1485, 1486, 1487, + 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, + 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, + 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1517, + 1518, 1519, 1520, 1522, 1523, 1524, 1525, 1526, 1527, 1530, + 1531, 1532, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, + 1544, 1545, 1546, 1548, 1549, 1550, 1551, 1552, 1548, 1488, + 1553, 1554, 1555, 1556, 1525, 1558, 1559, 1560, 1562, 1564, + 1565, 1566, 1568, 1569, 1570, 1571, 1572, 1574, 1575, 1576, + + 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, + 1587, 1588, 1589, 1590, 1591, 1593, 1595, 1596, 1597, 1599, + 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, + 1611, 1612, 1613, 1614, 1615, 1617, 1618, 1619, 1621, 1622, + 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1631, 1632, 1633, + 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1642, 1643, 1644, + 1646, 1647, 1648, 1649, 1651, 1653, 1654, 1655, 1656, 1657, + 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, + 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1678, 1679, + 1680, 1681, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, + + 1691, 1692, 1694, 1695, 1696, 1698, 1699, 1700, 1701, 1702, + 1703, 1704, 1705, 1707, 1708, 1709, 1710, 1711, 1712, 1713, + 1714, 1715, 1716, 1717, 1720, 1721, 1722, 1723, 1724, 1725, + 1726, 1727, 1728, 1730, 1732, 1733, 1734, 1735, 1736, 1737, + 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, + 1748, 1749, 1750, 1752, 1753, 1754, 1755, 1756, 1757, 1758, + 1759, 1760, 1762, 1764, 1766, 1769, 1770, 1771, 1772, 1773, + 1775, 1776, 1777, 1779, 1780, 1781, 1782, 1783, 1784, 1785, + 1786, 1787, 1788, 1790, 1791, 1793, 1794, 1795, 1796, 1798, + 1799, 1800, 1802, 1804, 1805, 1807, 1808, 1809, 1810, 1811, + + 1812, 1813, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, + 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1833, + 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, + 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1854, + 1855, 1857, 1858, 1859, 1861, 1862, 1863, 1864, 1869, 1872, + 1873, 1874, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1884, + 1886, 1888, 1890, 1891, 1892, 1893, 1894, 1895, 1894, 1896, + 1898, 1899, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, + 1910, 1911, 1912, 1913, 1914, 1916, 1919, 1920, 1921, 1922, + 1926, 1926, 1926, 1926, 1926, 1927, 1927, 1927, 1927, 1927, + + 1928, 1934, 1928, 1928, 1928, 1929, 1935, 1929, 1936, 1929, + 1930, 1930, 1930, 1930, 1930, 1931, 1931, 1931, 1931, 1931, + 1932, 1937, 1932, 1932, 1932, 1933, 1933, 1933, 727, 726, + 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, + 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, + 703, 702, 701, 700, 699, 698, 697, 692, 691, 690, + 689, 688, 687, 686, 685, 683, 682, 680, 679, 678, + 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, + 666, 665, 664, 663, 662, 661, 660, 659, 658, 656, + 655, 653, 652, 651, 650, 649, 648, 647, 645, 644, + + 643, 641, 640, 638, 637, 636, 635, 634, 633, 632, + 631, 630, 629, 628, 627, 626, 625, 624, 622, 621, + 620, 619, 618, 617, 615, 614, 613, 612, 611, 610, + 609, 608, 606, 605, 604, 603, 602, 601, 600, 599, + 598, 597, 596, 595, 594, 592, 591, 590, 589, 588, + 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, + 577, 568, 566, 565, 564, 562, 559, 557, 556, 555, + 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, + 544, 543, 542, 541, 540, 539, 538, 536, 535, 534, + 533, 532, 531, 530, 529, 528, 527, 526, 525, 523, + + 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, + 511, 510, 509, 508, 506, 505, 504, 503, 502, 501, + 500, 499, 497, 496, 495, 494, 493, 492, 491, 490, + 489, 488, 487, 486, 485, 484, 483, 482, 481, 479, + 478, 477, 476, 474, 473, 472, 471, 470, 469, 467, + 466, 464, 463, 462, 460, 458, 457, 456, 455, 454, + 453, 452, 450, 449, 448, 447, 446, 441, 439, 438, + 435, 432, 430, 429, 428, 427, 426, 424, 423, 422, + 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, + 411, 409, 408, 407, 405, 404, 403, 402, 401, 400, + + 399, 397, 396, 394, 393, 392, 391, 390, 389, 388, + 387, 386, 385, 384, 380, 379, 378, 376, 375, 374, + 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, + 362, 361, 359, 358, 357, 356, 355, 354, 353, 352, + 351, 350, 349, 348, 347, 345, 344, 343, 342, 340, + 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, + 324, 322, 318, 316, 313, 306, 305, 304, 303, 302, + 301, 300, 298, 297, 296, 295, 294, 293, 292, 291, + 290, 288, 287, 286, 285, 284, 283, 282, 280, 279, + 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, + + 268, 267, 266, 265, 264, 262, 261, 260, 258, 257, + 256, 255, 254, 253, 251, 250, 249, 248, 247, 246, + 244, 243, 241, 240, 239, 238, 237, 236, 235, 234, + 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, + 223, 222, 221, 220, 219, 218, 216, 215, 214, 213, + 212, 211, 210, 208, 205, 203, 201, 199, 194, 190, + 182, 181, 180, 179, 178, 177, 176, 174, 173, 172, + 170, 169, 168, 166, 164, 162, 160, 159, 157, 156, + 155, 154, 153, 151, 150, 149, 148, 147, 146, 144, + 143, 142, 141, 140, 139, 138, 136, 135, 133, 132, + + 128, 127, 126, 124, 123, 122, 121, 119, 117, 113, + 104, 103, 97, 96, 77, 72, 66, 52, 49, 48, + 43, 41, 39, 38, 24, 14, 11, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, + + 1925 } ; static yy_state_type yy_last_accepting_state; @@ -1924,7 +1938,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[208] = +static const flex_int16_t yy_rule_linenum[209] = { 0, 147, 149, 151, 156, 157, 162, 163, 164, 176, 179, 184, 191, 200, 209, 218, 227, 236, 245, 254, 263, @@ -1935,20 +1949,20 @@ static const flex_int16_t yy_rule_linenum[208] = 662, 673, 684, 695, 706, 717, 728, 739, 750, 761, 772, 783, 792, 803, 814, 825, 836, 847, 858, 869, 880, 889, 898, 907, 916, 927, 938, 949, 960, 971, - 982, 993, 1003, 1014, 1023, 1032, 1047, 1063, 1072, 1081, - - 1090, 1099, 1108, 1117, 1126, 1135, 1144, 1153, 1177, 1201, - 1210, 1220, 1230, 1239, 1249, 1260, 1269, 1278, 1287, 1296, - 1305, 1315, 1324, 1333, 1342, 1353, 1364, 1375, 1386, 1397, - 1406, 1415, 1424, 1433, 1442, 1451, 1460, 1469, 1478, 1488, - 1500, 1513, 1522, 1531, 1541, 1551, 1560, 1571, 1581, 1590, - 1600, 1610, 1619, 1628, 1637, 1646, 1656, 1665, 1674, 1683, - 1692, 1701, 1710, 1719, 1728, 1737, 1746, 1755, 1764, 1773, - 1782, 1791, 1800, 1809, 1818, 1827, 1836, 1845, 1854, 1863, - 1872, 1881, 1890, 1899, 1908, 1917, 1926, 1935, 1944, 1953, - 2052, 2057, 2062, 2067, 2068, 2069, 2070, 2071, 2072, 2074, - - 2092, 2105, 2110, 2114, 2116, 2118, 2120 + 982, 993, 1005, 1015, 1026, 1035, 1044, 1059, 1075, 1084, + + 1093, 1102, 1111, 1120, 1129, 1138, 1147, 1156, 1165, 1189, + 1213, 1222, 1232, 1242, 1251, 1261, 1272, 1281, 1290, 1299, + 1308, 1317, 1327, 1336, 1345, 1354, 1365, 1376, 1387, 1398, + 1409, 1418, 1427, 1436, 1445, 1454, 1463, 1472, 1481, 1490, + 1500, 1512, 1525, 1534, 1543, 1553, 1563, 1572, 1583, 1593, + 1602, 1612, 1622, 1631, 1640, 1649, 1658, 1668, 1677, 1686, + 1695, 1704, 1713, 1722, 1731, 1740, 1749, 1758, 1767, 1776, + 1785, 1794, 1803, 1812, 1821, 1830, 1839, 1848, 1857, 1866, + 1875, 1884, 1893, 1902, 1911, 1920, 1929, 1938, 1947, 1956, + 1965, 2064, 2069, 2074, 2079, 2080, 2081, 2082, 2083, 2084, + + 2086, 2104, 2117, 2122, 2126, 2128, 2130, 2132 } ; /* The intent behind this definition is that it'll catch @@ -2001,7 +2015,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) -#line 2004 "dhcp6_lexer.cc" +#line 2018 "dhcp6_lexer.cc" /* noyywrap disables automatic rewinding for the next file to parse. Since we always parse only a single string, there's no need to do any wraps. And using yywrap requires linking with -lfl, which provides the default yywrap @@ -2027,8 +2041,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 2030 "dhcp6_lexer.cc" -#line 2031 "dhcp6_lexer.cc" +#line 2044 "dhcp6_lexer.cc" +#line 2045 "dhcp6_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2358,7 +2372,7 @@ YY_DECL } -#line 2361 "dhcp6_lexer.cc" +#line 2375 "dhcp6_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2387,13 +2401,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 >= 1903 ) + if ( yy_current_state >= 1926 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1902 ); + while ( yy_current_state != 1925 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2412,13 +2426,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 < 208 ) + else if ( yy_act < 209 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 208 ) + else if ( yy_act == 209 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 209 ) + else if ( yy_act == 210 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3570,6 +3584,20 @@ YY_RULE_SETUP { 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_USE_CONFLICT_RESOLUTION(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_); + } +} + YY_BREAK +case 93: +YY_RULE_SETUP +#line 1005 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_); default: @@ -3577,9 +3605,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 94: YY_RULE_SETUP -#line 1003 "dhcp6_lexer.ll" +#line 1015 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3591,9 +3619,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 95: YY_RULE_SETUP -#line 1014 "dhcp6_lexer.ll" +#line 1026 "dhcp6_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3603,9 +3631,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 96: YY_RULE_SETUP -#line 1023 "dhcp6_lexer.ll" +#line 1035 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3615,9 +3643,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 97: YY_RULE_SETUP -#line 1032 "dhcp6_lexer.ll" +#line 1044 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3633,9 +3661,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 98: YY_RULE_SETUP -#line 1047 "dhcp6_lexer.ll" +#line 1059 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3652,9 +3680,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 99: YY_RULE_SETUP -#line 1063 "dhcp6_lexer.ll" +#line 1075 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3664,9 +3692,9 @@ YY_RULE_SETUP } } YY_BREAK -case 99: +case 100: YY_RULE_SETUP -#line 1072 "dhcp6_lexer.ll" +#line 1084 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3676,9 +3704,9 @@ YY_RULE_SETUP } } YY_BREAK -case 100: +case 101: YY_RULE_SETUP -#line 1081 "dhcp6_lexer.ll" +#line 1093 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3688,9 +3716,9 @@ YY_RULE_SETUP } } YY_BREAK -case 101: +case 102: YY_RULE_SETUP -#line 1090 "dhcp6_lexer.ll" +#line 1102 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3700,9 +3728,9 @@ YY_RULE_SETUP } } YY_BREAK -case 102: +case 103: YY_RULE_SETUP -#line 1099 "dhcp6_lexer.ll" +#line 1111 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3712,9 +3740,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 104: YY_RULE_SETUP -#line 1108 "dhcp6_lexer.ll" +#line 1120 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3724,9 +3752,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 105: YY_RULE_SETUP -#line 1117 "dhcp6_lexer.ll" +#line 1129 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3736,9 +3764,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 106: YY_RULE_SETUP -#line 1126 "dhcp6_lexer.ll" +#line 1138 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3748,9 +3776,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 107: YY_RULE_SETUP -#line 1135 "dhcp6_lexer.ll" +#line 1147 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3760,9 +3788,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 108: YY_RULE_SETUP -#line 1144 "dhcp6_lexer.ll" +#line 1156 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::POOLS: @@ -3772,9 +3800,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 1153 "dhcp6_lexer.ll" +#line 1165 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3799,9 +3827,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 110: YY_RULE_SETUP -#line 1177 "dhcp6_lexer.ll" +#line 1189 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3826,9 +3854,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 111: YY_RULE_SETUP -#line 1201 "dhcp6_lexer.ll" +#line 1213 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3838,9 +3866,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 112: YY_RULE_SETUP -#line 1210 "dhcp6_lexer.ll" +#line 1222 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3851,9 +3879,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 113: YY_RULE_SETUP -#line 1220 "dhcp6_lexer.ll" +#line 1232 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3864,9 +3892,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 114: YY_RULE_SETUP -#line 1230 "dhcp6_lexer.ll" +#line 1242 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3876,9 +3904,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 115: YY_RULE_SETUP -#line 1239 "dhcp6_lexer.ll" +#line 1251 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3889,9 +3917,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 116: YY_RULE_SETUP -#line 1249 "dhcp6_lexer.ll" +#line 1261 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3903,9 +3931,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 117: YY_RULE_SETUP -#line 1260 "dhcp6_lexer.ll" +#line 1272 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3915,9 +3943,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 118: YY_RULE_SETUP -#line 1269 "dhcp6_lexer.ll" +#line 1281 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3927,9 +3955,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 119: YY_RULE_SETUP -#line 1278 "dhcp6_lexer.ll" +#line 1290 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3939,9 +3967,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 120: YY_RULE_SETUP -#line 1287 "dhcp6_lexer.ll" +#line 1299 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3951,9 +3979,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 121: YY_RULE_SETUP -#line 1296 "dhcp6_lexer.ll" +#line 1308 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3963,9 +3991,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 122: YY_RULE_SETUP -#line 1305 "dhcp6_lexer.ll" +#line 1317 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3976,9 +4004,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 123: YY_RULE_SETUP -#line 1315 "dhcp6_lexer.ll" +#line 1327 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3988,9 +4016,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 124: YY_RULE_SETUP -#line 1324 "dhcp6_lexer.ll" +#line 1336 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4000,9 +4028,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 125: YY_RULE_SETUP -#line 1333 "dhcp6_lexer.ll" +#line 1345 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4012,9 +4040,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 126: YY_RULE_SETUP -#line 1342 "dhcp6_lexer.ll" +#line 1354 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4026,9 +4054,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 127: YY_RULE_SETUP -#line 1353 "dhcp6_lexer.ll" +#line 1365 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4040,9 +4068,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 128: YY_RULE_SETUP -#line 1364 "dhcp6_lexer.ll" +#line 1376 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4054,9 +4082,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 129: YY_RULE_SETUP -#line 1375 "dhcp6_lexer.ll" +#line 1387 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4068,9 +4096,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 130: YY_RULE_SETUP -#line 1386 "dhcp6_lexer.ll" +#line 1398 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4082,9 +4110,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 131: YY_RULE_SETUP -#line 1397 "dhcp6_lexer.ll" +#line 1409 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4094,9 +4122,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 132: YY_RULE_SETUP -#line 1406 "dhcp6_lexer.ll" +#line 1418 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4106,9 +4134,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 133: YY_RULE_SETUP -#line 1415 "dhcp6_lexer.ll" +#line 1427 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4118,9 +4146,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 134: YY_RULE_SETUP -#line 1424 "dhcp6_lexer.ll" +#line 1436 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4130,9 +4158,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 135: YY_RULE_SETUP -#line 1433 "dhcp6_lexer.ll" +#line 1445 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4142,9 +4170,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 136: YY_RULE_SETUP -#line 1442 "dhcp6_lexer.ll" +#line 1454 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4154,9 +4182,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 137: YY_RULE_SETUP -#line 1451 "dhcp6_lexer.ll" +#line 1463 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4166,9 +4194,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 138: YY_RULE_SETUP -#line 1460 "dhcp6_lexer.ll" +#line 1472 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4178,9 +4206,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 139: YY_RULE_SETUP -#line 1469 "dhcp6_lexer.ll" +#line 1481 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4190,9 +4218,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 140: YY_RULE_SETUP -#line 1478 "dhcp6_lexer.ll" +#line 1490 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4203,9 +4231,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 141: YY_RULE_SETUP -#line 1488 "dhcp6_lexer.ll" +#line 1500 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4218,9 +4246,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 142: YY_RULE_SETUP -#line 1500 "dhcp6_lexer.ll" +#line 1512 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4234,9 +4262,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 143: YY_RULE_SETUP -#line 1513 "dhcp6_lexer.ll" +#line 1525 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4246,9 +4274,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 144: YY_RULE_SETUP -#line 1522 "dhcp6_lexer.ll" +#line 1534 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4258,9 +4286,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 145: YY_RULE_SETUP -#line 1531 "dhcp6_lexer.ll" +#line 1543 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4271,9 +4299,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 146: YY_RULE_SETUP -#line 1541 "dhcp6_lexer.ll" +#line 1553 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4284,9 +4312,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 147: YY_RULE_SETUP -#line 1551 "dhcp6_lexer.ll" +#line 1563 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4296,9 +4324,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 148: YY_RULE_SETUP -#line 1560 "dhcp6_lexer.ll" +#line 1572 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -4310,9 +4338,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 149: YY_RULE_SETUP -#line 1571 "dhcp6_lexer.ll" +#line 1583 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4323,9 +4351,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 150: YY_RULE_SETUP -#line 1581 "dhcp6_lexer.ll" +#line 1593 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4335,9 +4363,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 151: YY_RULE_SETUP -#line 1590 "dhcp6_lexer.ll" +#line 1602 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4348,9 +4376,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 152: YY_RULE_SETUP -#line 1600 "dhcp6_lexer.ll" +#line 1612 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4361,9 +4389,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 153: YY_RULE_SETUP -#line 1610 "dhcp6_lexer.ll" +#line 1622 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4373,9 +4401,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 154: YY_RULE_SETUP -#line 1619 "dhcp6_lexer.ll" +#line 1631 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4385,9 +4413,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 155: YY_RULE_SETUP -#line 1628 "dhcp6_lexer.ll" +#line 1640 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4397,9 +4425,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 156: YY_RULE_SETUP -#line 1637 "dhcp6_lexer.ll" +#line 1649 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4409,9 +4437,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 157: YY_RULE_SETUP -#line 1646 "dhcp6_lexer.ll" +#line 1658 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4422,9 +4450,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 158: YY_RULE_SETUP -#line 1656 "dhcp6_lexer.ll" +#line 1668 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RELAY: @@ -4434,9 +4462,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 159: YY_RULE_SETUP -#line 1665 "dhcp6_lexer.ll" +#line 1677 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4446,9 +4474,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 160: YY_RULE_SETUP -#line 1674 "dhcp6_lexer.ll" +#line 1686 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4458,9 +4486,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 161: YY_RULE_SETUP -#line 1683 "dhcp6_lexer.ll" +#line 1695 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4470,9 +4498,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 162: YY_RULE_SETUP -#line 1692 "dhcp6_lexer.ll" +#line 1704 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4482,9 +4510,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 163: YY_RULE_SETUP -#line 1701 "dhcp6_lexer.ll" +#line 1713 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4494,9 +4522,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 164: YY_RULE_SETUP -#line 1710 "dhcp6_lexer.ll" +#line 1722 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4506,9 +4534,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 165: YY_RULE_SETUP -#line 1719 "dhcp6_lexer.ll" +#line 1731 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4518,9 +4546,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 166: YY_RULE_SETUP -#line 1728 "dhcp6_lexer.ll" +#line 1740 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4530,9 +4558,9 @@ YY_RULE_SETUP } } YY_BREAK -case 166: +case 167: YY_RULE_SETUP -#line 1737 "dhcp6_lexer.ll" +#line 1749 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4542,9 +4570,9 @@ YY_RULE_SETUP } } YY_BREAK -case 167: +case 168: YY_RULE_SETUP -#line 1746 "dhcp6_lexer.ll" +#line 1758 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4554,9 +4582,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 169: YY_RULE_SETUP -#line 1755 "dhcp6_lexer.ll" +#line 1767 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4566,9 +4594,9 @@ YY_RULE_SETUP } } YY_BREAK -case 169: +case 170: YY_RULE_SETUP -#line 1764 "dhcp6_lexer.ll" +#line 1776 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4578,9 +4606,9 @@ YY_RULE_SETUP } } YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 1773 "dhcp6_lexer.ll" +#line 1785 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4590,9 +4618,9 @@ YY_RULE_SETUP } } YY_BREAK -case 171: +case 172: YY_RULE_SETUP -#line 1782 "dhcp6_lexer.ll" +#line 1794 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4602,9 +4630,9 @@ YY_RULE_SETUP } } YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 1791 "dhcp6_lexer.ll" +#line 1803 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4614,9 +4642,9 @@ YY_RULE_SETUP } } YY_BREAK -case 173: +case 174: YY_RULE_SETUP -#line 1800 "dhcp6_lexer.ll" +#line 1812 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4626,9 +4654,9 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 175: YY_RULE_SETUP -#line 1809 "dhcp6_lexer.ll" +#line 1821 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4638,9 +4666,9 @@ YY_RULE_SETUP } } YY_BREAK -case 175: +case 176: YY_RULE_SETUP -#line 1818 "dhcp6_lexer.ll" +#line 1830 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4650,9 +4678,9 @@ YY_RULE_SETUP } } YY_BREAK -case 176: +case 177: YY_RULE_SETUP -#line 1827 "dhcp6_lexer.ll" +#line 1839 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4662,9 +4690,9 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 178: YY_RULE_SETUP -#line 1836 "dhcp6_lexer.ll" +#line 1848 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4674,9 +4702,9 @@ YY_RULE_SETUP } } YY_BREAK -case 178: +case 179: YY_RULE_SETUP -#line 1845 "dhcp6_lexer.ll" +#line 1857 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -4686,9 +4714,9 @@ YY_RULE_SETUP } } YY_BREAK -case 179: +case 180: YY_RULE_SETUP -#line 1854 "dhcp6_lexer.ll" +#line 1866 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -4698,9 +4726,9 @@ YY_RULE_SETUP } } YY_BREAK -case 180: +case 181: YY_RULE_SETUP -#line 1863 "dhcp6_lexer.ll" +#line 1875 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -4710,9 +4738,9 @@ YY_RULE_SETUP } } YY_BREAK -case 181: +case 182: YY_RULE_SETUP -#line 1872 "dhcp6_lexer.ll" +#line 1884 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4722,9 +4750,9 @@ YY_RULE_SETUP } } YY_BREAK -case 182: +case 183: YY_RULE_SETUP -#line 1881 "dhcp6_lexer.ll" +#line 1893 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4734,9 +4762,9 @@ YY_RULE_SETUP } } YY_BREAK -case 183: +case 184: YY_RULE_SETUP -#line 1890 "dhcp6_lexer.ll" +#line 1902 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4746,9 +4774,9 @@ YY_RULE_SETUP } } YY_BREAK -case 184: +case 185: YY_RULE_SETUP -#line 1899 "dhcp6_lexer.ll" +#line 1911 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4758,9 +4786,9 @@ YY_RULE_SETUP } } YY_BREAK -case 185: +case 186: YY_RULE_SETUP -#line 1908 "dhcp6_lexer.ll" +#line 1920 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4770,9 +4798,9 @@ YY_RULE_SETUP } } YY_BREAK -case 186: +case 187: YY_RULE_SETUP -#line 1917 "dhcp6_lexer.ll" +#line 1929 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4782,9 +4810,9 @@ YY_RULE_SETUP } } YY_BREAK -case 187: +case 188: YY_RULE_SETUP -#line 1926 "dhcp6_lexer.ll" +#line 1938 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4794,9 +4822,9 @@ YY_RULE_SETUP } } YY_BREAK -case 188: +case 189: YY_RULE_SETUP -#line 1935 "dhcp6_lexer.ll" +#line 1947 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4806,9 +4834,9 @@ YY_RULE_SETUP } } YY_BREAK -case 189: +case 190: YY_RULE_SETUP -#line 1944 "dhcp6_lexer.ll" +#line 1956 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4818,9 +4846,9 @@ YY_RULE_SETUP } } YY_BREAK -case 190: +case 191: YY_RULE_SETUP -#line 1953 "dhcp6_lexer.ll" +#line 1965 "dhcp6_lexer.ll" { /* A string has been matched. It contains the actual string and single quotes. We need to get those quotes out of the way and just use its content, e.g. @@ -4920,65 +4948,65 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 191: -/* rule 191 can match eol */ +case 192: +/* rule 192 can match eol */ YY_RULE_SETUP -#line 2052 "dhcp6_lexer.ll" +#line 2064 "dhcp6_lexer.ll" { /* Bad string with a forbidden control character inside */ driver.error(driver.loc_, "Invalid control in " + std::string(yytext)); } YY_BREAK -case 192: -/* rule 192 can match eol */ +case 193: +/* rule 193 can match eol */ YY_RULE_SETUP -#line 2057 "dhcp6_lexer.ll" +#line 2069 "dhcp6_lexer.ll" { /* Bad string with a bad escape inside */ driver.error(driver.loc_, "Bad escape in " + std::string(yytext)); } YY_BREAK -case 193: +case 194: YY_RULE_SETUP -#line 2062 "dhcp6_lexer.ll" +#line 2074 "dhcp6_lexer.ll" { /* Bad string with an open escape at the end */ driver.error(driver.loc_, "Overflow escape in " + std::string(yytext)); } YY_BREAK -case 194: +case 195: YY_RULE_SETUP -#line 2067 "dhcp6_lexer.ll" +#line 2079 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 195: +case 196: YY_RULE_SETUP -#line 2068 "dhcp6_lexer.ll" +#line 2080 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 196: +case 197: YY_RULE_SETUP -#line 2069 "dhcp6_lexer.ll" +#line 2081 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 197: +case 198: YY_RULE_SETUP -#line 2070 "dhcp6_lexer.ll" +#line 2082 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 198: +case 199: YY_RULE_SETUP -#line 2071 "dhcp6_lexer.ll" +#line 2083 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } YY_BREAK -case 199: +case 200: YY_RULE_SETUP -#line 2072 "dhcp6_lexer.ll" +#line 2084 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } YY_BREAK -case 200: +case 201: YY_RULE_SETUP -#line 2074 "dhcp6_lexer.ll" +#line 2086 "dhcp6_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -4997,9 +5025,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 201: +case 202: YY_RULE_SETUP -#line 2092 "dhcp6_lexer.ll" +#line 2104 "dhcp6_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -5013,43 +5041,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 202: +case 203: YY_RULE_SETUP -#line 2105 "dhcp6_lexer.ll" +#line 2117 "dhcp6_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 203: +case 204: YY_RULE_SETUP -#line 2110 "dhcp6_lexer.ll" +#line 2122 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 204: +case 205: YY_RULE_SETUP -#line 2114 "dhcp6_lexer.ll" +#line 2126 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 205: +case 206: YY_RULE_SETUP -#line 2116 "dhcp6_lexer.ll" +#line 2128 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 206: +case 207: YY_RULE_SETUP -#line 2118 "dhcp6_lexer.ll" +#line 2130 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 207: +case 208: YY_RULE_SETUP -#line 2120 "dhcp6_lexer.ll" +#line 2132 "dhcp6_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2122 "dhcp6_lexer.ll" +#line 2134 "dhcp6_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -5073,12 +5101,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 208: +case 209: YY_RULE_SETUP -#line 2145 "dhcp6_lexer.ll" +#line 2157 "dhcp6_lexer.ll" ECHO; YY_BREAK -#line 5081 "dhcp6_lexer.cc" +#line 5109 "dhcp6_lexer.cc" case YY_END_OF_BUFFER: { @@ -5397,7 +5425,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 >= 1903 ) + if ( yy_current_state >= 1926 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5430,11 +5458,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 >= 1903 ) + if ( yy_current_state >= 1926 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1902); + yy_is_jam = (yy_current_state == 1925); return yy_is_jam ? 0 : yy_current_state; } @@ -6183,7 +6211,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2145 "dhcp6_lexer.ll" +#line 2157 "dhcp6_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp6/dhcp6_lexer.ll b/src/bin/dhcp6/dhcp6_lexer.ll index a5971816c7..b89c1ce95b 100644 --- a/src/bin/dhcp6/dhcp6_lexer.ll +++ b/src/bin/dhcp6/dhcp6_lexer.ll @@ -989,6 +989,18 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} } } +\"ddns-use-conflict-resolution\" { + 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_USE_CONFLICT_RESOLUTION(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_); + } +} + + \"subnet6\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index 521b525603..06d5fd3ecb 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.7.2. +// A Bison parser, made by GNU Bison 3.0.4. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -30,25 +30,32 @@ // This special exception was added by the Free Software Foundation in // version 2.2 of Bison. -// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, -// especially those whose name start with YY_ or yy_. They are -// private implementation details that can be changed or removed. - - // Take the name prefix into account. #define yylex parser6_lex +// First part of user declarations. + +#line 39 "dhcp6_parser.cc" // lalr1.cc:404 +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif #include "dhcp6_parser.h" +// User implementation prologue. +#line 53 "dhcp6_parser.cc" // lalr1.cc:412 // Unqualified %code blocks. -#line 34 "dhcp6_parser.yy" +#line 34 "dhcp6_parser.yy" // lalr1.cc:413 #include <dhcp6/parser_context.h> -#line 52 "dhcp6_parser.cc" +#line 59 "dhcp6_parser.cc" // lalr1.cc:413 #ifndef YY_ @@ -63,16 +70,6 @@ # endif #endif - -// Whether we are compiled with exception support. -#ifndef YY_EXCEPTIONS -# if defined __GNUC__ && !defined __EXCEPTIONS -# define YY_EXCEPTIONS 0 -# else -# define YY_EXCEPTIONS 1 -# endif -#endif - #define YYRHSLOC(Rhs, K) ((Rhs)[K].location) /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends @@ -90,10 +87,13 @@ { \ (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \ } \ - while (false) + while (/*CONSTCOND*/ false) # endif +// Suppress unused-variable warnings by "using" E. +#define YYUSE(E) ((void) (E)) + // Enable debugging if requested. #if PARSER6_DEBUG @@ -106,7 +106,7 @@ { \ *yycdebug_ << Title << ' '; \ yy_print_ (*yycdebug_, Symbol); \ - *yycdebug_ << '\n'; \ + *yycdebug_ << std::endl; \ } \ } while (false) @@ -119,15 +119,15 @@ # define YY_STACK_PRINT() \ do { \ if (yydebug_) \ - yy_stack_print_ (); \ + yystack_print_ (); \ } while (false) #else // !PARSER6_DEBUG # define YYCDEBUG if (false) std::cerr -# 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) +# 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) #endif // !PARSER6_DEBUG @@ -139,17 +139,54 @@ #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus_) -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // lalr1.cc:479 namespace isc { namespace dhcp { -#line 145 "dhcp6_parser.cc" +#line 145 "dhcp6_parser.cc" // lalr1.cc:479 + + /* Return YYSTR after stripping away unnecessary quotes and + backslashes, so that it's suitable for yyerror. The heuristic is + that double-quoting is unnecessary unless the string contains an + apostrophe, a comma, or backslash (other than backslash-backslash). + YYSTR is taken from yytname. */ + std::string + Dhcp6Parser::yytnamerr_ (const char *yystr) + { + if (*yystr == '"') + { + std::string yyr = ""; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + // Fall through. + default: + yyr += *yyp; + break; + + case '"': + return yyr; + } + do_not_strip_quotes: ; + } + + return yystr; + } + /// Build a parser object. Dhcp6Parser::Dhcp6Parser (isc::dhcp::Parser6Context& ctx_yyarg) + : #if PARSER6_DEBUG - : yydebug_ (false), + yydebug_ (false), yycdebug_ (&std::cerr), -#else - : #endif ctx (ctx_yyarg) {} @@ -157,30 +194,32 @@ namespace isc { namespace dhcp { Dhcp6Parser::~Dhcp6Parser () {} - Dhcp6Parser::syntax_error::~syntax_error () YY_NOEXCEPT YY_NOTHROW - {} /*---------------. - | symbol kinds. | + | Symbol types. | `---------------*/ // by_state. - Dhcp6Parser::by_state::by_state () YY_NOEXCEPT + inline + Dhcp6Parser::by_state::by_state () : state (empty_state) {} - Dhcp6Parser::by_state::by_state (const by_state& that) YY_NOEXCEPT - : state (that.state) + inline + Dhcp6Parser::by_state::by_state (const by_state& other) + : state (other.state) {} + inline void - Dhcp6Parser::by_state::clear () YY_NOEXCEPT + Dhcp6Parser::by_state::clear () { state = empty_state; } + inline void Dhcp6Parser::by_state::move (by_state& that) { @@ -188,92 +227,56 @@ namespace isc { namespace dhcp { that.clear (); } - Dhcp6Parser::by_state::by_state (state_type s) YY_NOEXCEPT + inline + Dhcp6Parser::by_state::by_state (state_type s) : state (s) {} - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::by_state::kind () const YY_NOEXCEPT + inline + Dhcp6Parser::symbol_number_type + Dhcp6Parser::by_state::type_get () const { if (state == empty_state) - return symbol_kind::S_YYEMPTY; + return empty_symbol; else - return YY_CAST (symbol_kind_type, yystos_[+state]); + return yystos_[state]; } + inline Dhcp6Parser::stack_symbol_type::stack_symbol_type () {} - Dhcp6Parser::stack_symbol_type::stack_symbol_type (YY_RVREF (stack_symbol_type) that) - : super_type (YY_MOVE (that.state), YY_MOVE (that.location)) - { - switch (that.kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); - break; - case symbol_kind::S_BOOLEAN: // "boolean" - value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); - break; - - case symbol_kind::S_FLOAT: // "floating point" - value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); - break; - - case symbol_kind::S_INTEGER: // "integer" - value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); - break; - - case symbol_kind::S_STRING: // "constant string" - value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); - break; - - default: - break; - } - -#if 201103L <= YY_CPLUSPLUS - // that is emptied. - that.state = empty_state; -#endif - } - - Dhcp6Parser::stack_symbol_type::stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) that) - : super_type (s, YY_MOVE (that.location)) + inline + Dhcp6Parser::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that) + : super_type (s, that.location) { - switch (that.kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.move< ElementPtr > (YY_MOVE (that.value)); + switch (that.type_get ()) + { + case 219: // value + case 223: // map_value + case 264: // ddns_replace_client_name_value + case 304: // db_type + case 405: // hr_mode + case 541: // duid_type + case 584: // ncr_protocol_value + value.move< ElementPtr > (that.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" - value.move< bool > (YY_MOVE (that.value)); + case 202: // "boolean" + value.move< bool > (that.value); break; - case symbol_kind::S_FLOAT: // "floating point" - value.move< double > (YY_MOVE (that.value)); + case 201: // "floating point" + value.move< double > (that.value); break; - case symbol_kind::S_INTEGER: // "integer" - value.move< int64_t > (YY_MOVE (that.value)); + case 200: // "integer" + value.move< int64_t > (that.value); break; - case symbol_kind::S_STRING: // "constant string" - value.move< std::string > (YY_MOVE (that.value)); + case 199: // "constant string" + value.move< std::string > (that.value); break; default: @@ -281,39 +284,39 @@ namespace isc { namespace dhcp { } // that is emptied. - that.kind_ = symbol_kind::S_YYEMPTY; + that.type = empty_symbol; } -#if YY_CPLUSPLUS < 201103L + inline Dhcp6Parser::stack_symbol_type& Dhcp6Parser::stack_symbol_type::operator= (const stack_symbol_type& that) { state = that.state; - switch (that.kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value + switch (that.type_get ()) + { + case 219: // value + case 223: // map_value + case 264: // ddns_replace_client_name_value + case 304: // db_type + case 405: // hr_mode + case 541: // duid_type + case 584: // ncr_protocol_value value.copy< ElementPtr > (that.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 202: // "boolean" value.copy< bool > (that.value); break; - case symbol_kind::S_FLOAT: // "floating point" + case 201: // "floating point" value.copy< double > (that.value); break; - case symbol_kind::S_INTEGER: // "integer" + case 200: // "integer" value.copy< int64_t > (that.value); break; - case symbol_kind::S_STRING: // "constant string" + case 199: // "constant string" value.copy< std::string > (that.value); break; @@ -325,50 +328,9 @@ namespace isc { namespace dhcp { return *this; } - Dhcp6Parser::stack_symbol_type& - Dhcp6Parser::stack_symbol_type::operator= (stack_symbol_type& that) - { - state = that.state; - switch (that.kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.move< ElementPtr > (that.value); - break; - - case symbol_kind::S_BOOLEAN: // "boolean" - value.move< bool > (that.value); - break; - - case symbol_kind::S_FLOAT: // "floating point" - value.move< double > (that.value); - break; - - case symbol_kind::S_INTEGER: // "integer" - value.move< int64_t > (that.value); - break; - - case symbol_kind::S_STRING: // "constant string" - value.move< std::string > (that.value); - break; - - default: - break; - } - - location = that.location; - // that is emptied. - that.state = empty_state; - return *this; - } -#endif template <typename Base> + inline void Dhcp6Parser::yy_destroy_ (const char* yymsg, basic_symbol<Base>& yysym) const { @@ -379,115 +341,126 @@ namespace isc { namespace dhcp { #if PARSER6_DEBUG template <typename Base> void - Dhcp6Parser::yy_print_ (std::ostream& yyo, const basic_symbol<Base>& yysym) const + Dhcp6Parser::yy_print_ (std::ostream& yyo, + const basic_symbol<Base>& yysym) const { std::ostream& yyoutput = yyo; YYUSE (yyoutput); + symbol_number_type yytype = yysym.type_get (); + // Avoid a (spurious) G++ 4.8 warning about "array subscript is + // below array bounds". if (yysym.empty ()) - yyo << "empty symbol"; - else - { - symbol_kind_type yykind = yysym.kind (); - yyo << (yykind < YYNTOKENS ? "token" : "nterm") - << ' ' << yysym.name () << " (" - << yysym.location << ": "; - switch (yykind) - { - case symbol_kind::S_STRING: // "constant string" -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < std::string > (); } -#line 400 "dhcp6_parser.cc" + std::abort (); + yyo << (yytype < yyntokens_ ? "token" : "nterm") + << ' ' << yytname_[yytype] << " (" + << yysym.location << ": "; + switch (yytype) + { + case 199: // "constant string" + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< std::string > (); } +#line 364 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_INTEGER: // "integer" -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < int64_t > (); } -#line 406 "dhcp6_parser.cc" + case 200: // "integer" + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< int64_t > (); } +#line 371 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_FLOAT: // "floating point" -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < double > (); } -#line 412 "dhcp6_parser.cc" + case 201: // "floating point" + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< double > (); } +#line 378 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_BOOLEAN: // "boolean" -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < bool > (); } -#line 418 "dhcp6_parser.cc" + case 202: // "boolean" + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< bool > (); } +#line 385 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_value: // value -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 424 "dhcp6_parser.cc" + case 219: // value + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 392 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_map_value: // map_value -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 430 "dhcp6_parser.cc" + case 223: // map_value + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 399 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 436 "dhcp6_parser.cc" + case 264: // ddns_replace_client_name_value + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 406 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_db_type: // db_type -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 442 "dhcp6_parser.cc" + case 304: // db_type + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 413 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_hr_mode: // hr_mode -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 448 "dhcp6_parser.cc" + case 405: // hr_mode + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 420 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_duid_type: // duid_type -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 454 "dhcp6_parser.cc" + case 541: // duid_type + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 427 "dhcp6_parser.cc" // lalr1.cc:636 break; - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 278 "dhcp6_parser.yy" - { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 460 "dhcp6_parser.cc" + case 584: // ncr_protocol_value + +#line 279 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 434 "dhcp6_parser.cc" // lalr1.cc:636 break; + default: break; } - yyo << ')'; - } + yyo << ')'; } #endif + inline void - Dhcp6Parser::yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym) + Dhcp6Parser::yypush_ (const char* m, state_type s, symbol_type& sym) { - if (m) - YY_SYMBOL_PRINT (m, sym); - yystack_.push (YY_MOVE (sym)); + stack_symbol_type t (s, sym); + yypush_ (m, t); } + inline void - Dhcp6Parser::yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym) + Dhcp6Parser::yypush_ (const char* m, stack_symbol_type& s) { -#if 201103L <= YY_CPLUSPLUS - yypush_ (m, stack_symbol_type (s, std::move (sym))); -#else - stack_symbol_type ss (s, sym); - yypush_ (m, ss); -#endif + if (m) + YY_SYMBOL_PRINT (m, s); + yystack_.push (s); } + inline void - Dhcp6Parser::yypop_ (int n) + Dhcp6Parser::yypop_ (unsigned int n) { yystack_.pop (n); } @@ -519,37 +492,32 @@ namespace isc { namespace dhcp { } #endif // PARSER6_DEBUG - Dhcp6Parser::state_type + inline Dhcp6Parser::state_type Dhcp6Parser::yy_lr_goto_state_ (state_type yystate, int yysym) { - int yyr = yypgoto_[yysym - YYNTOKENS] + yystate; + int yyr = yypgoto_[yysym - yyntokens_] + yystate; if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate) return yytable_[yyr]; else - return yydefgoto_[yysym - YYNTOKENS]; + return yydefgoto_[yysym - yyntokens_]; } - bool + inline bool Dhcp6Parser::yy_pact_value_is_default_ (int yyvalue) { return yyvalue == yypact_ninf_; } - bool + inline bool Dhcp6Parser::yy_table_value_is_error_ (int yyvalue) { return yyvalue == yytable_ninf_; } int - Dhcp6Parser::operator() () - { - return parse (); - } - - int Dhcp6Parser::parse () { + // State. int yyn; /// Length of the RHS of the rule being reduced. int yylen = 0; @@ -567,11 +535,11 @@ namespace isc { namespace dhcp { /// The return value of parse (). int yyresult; -#if YY_EXCEPTIONS + // FIXME: This shoud be completely indented. It is not yet to + // avoid gratuitous conflicts when merging into the master branch. try -#endif // YY_EXCEPTIONS { - YYCDEBUG << "Starting parse\n"; + YYCDEBUG << "Starting parse" << std::endl; /* Initialize the stack. The initial state will be set in @@ -579,70 +547,48 @@ namespace isc { namespace dhcp { location values to have been already stored, initialize these stacks with a primary value. */ yystack_.clear (); - yypush_ (YY_NULLPTR, 0, YY_MOVE (yyla)); + yypush_ (YY_NULLPTR, 0, yyla); - /*-----------------------------------------------. - | yynewstate -- push a new symbol on the stack. | - `-----------------------------------------------*/ + // A new symbol was pushed on the stack. yynewstate: - YYCDEBUG << "Entering state " << int (yystack_[0].state) << '\n'; - YY_STACK_PRINT (); + YYCDEBUG << "Entering state " << yystack_[0].state << std::endl; // Accept? if (yystack_[0].state == yyfinal_) - YYACCEPT; + goto yyacceptlab; goto yybackup; - - /*-----------. - | yybackup. | - `-----------*/ + // Backup. yybackup: + // Try to take a decision without lookahead. - yyn = yypact_[+yystack_[0].state]; + yyn = yypact_[yystack_[0].state]; if (yy_pact_value_is_default_ (yyn)) goto yydefault; // Read a lookahead token. if (yyla.empty ()) { - YYCDEBUG << "Reading a token\n"; -#if YY_EXCEPTIONS + YYCDEBUG << "Reading a token: "; try -#endif // YY_EXCEPTIONS { symbol_type yylookahead (yylex (ctx)); yyla.move (yylookahead); } -#if YY_EXCEPTIONS catch (const syntax_error& yyexc) { - YYCDEBUG << "Caught exception: " << yyexc.what() << '\n'; error (yyexc); goto yyerrlab1; } -#endif // YY_EXCEPTIONS } YY_SYMBOL_PRINT ("Next token is", yyla); - if (yyla.kind () == symbol_kind::S_YYerror) - { - // The scanner already issued an error message, process directly - // to error recovery. But do not keep the error token as - // lookahead, it is too special and may lead us to an endless - // loop in error recovery. */ - yyla.kind_ = symbol_kind::S_YYUNDEF; - goto yyerrlab1; - } - /* If the proper action on seeing token YYLA.TYPE is to reduce or to detect an error, take that action. */ - yyn += yyla.kind (); - if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.kind ()) - { - goto yydefault; - } + yyn += yyla.type_get (); + if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ()) + goto yydefault; // Reduce or error. yyn = yytable_[yyn]; @@ -659,57 +605,55 @@ namespace isc { namespace dhcp { --yyerrstatus_; // Shift the lookahead token. - yypush_ ("Shifting", state_type (yyn), YY_MOVE (yyla)); + yypush_ ("Shifting", yyn, yyla); goto yynewstate; - /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: - yyn = yydefact_[+yystack_[0].state]; + yyn = yydefact_[yystack_[0].state]; if (yyn == 0) goto yyerrlab; goto yyreduce; - /*-----------------------------. - | yyreduce -- do a reduction. | + | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: yylen = yyr2_[yyn]; { stack_symbol_type yylhs; - yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]); + yylhs.state = yy_lr_goto_state_(yystack_[yylen].state, yyr1_[yyn]); /* Variants are always initialized to an empty instance of the correct type. The default '$$ = $1' action is NOT applied when using variants. */ - switch (yyr1_[yyn]) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - yylhs.value.emplace< ElementPtr > (); + switch (yyr1_[yyn]) + { + case 219: // value + case 223: // map_value + case 264: // ddns_replace_client_name_value + case 304: // db_type + case 405: // hr_mode + case 541: // duid_type + case 584: // ncr_protocol_value + yylhs.value.build< ElementPtr > (); break; - case symbol_kind::S_BOOLEAN: // "boolean" - yylhs.value.emplace< bool > (); + case 202: // "boolean" + yylhs.value.build< bool > (); break; - case symbol_kind::S_FLOAT: // "floating point" - yylhs.value.emplace< double > (); + case 201: // "floating point" + yylhs.value.build< double > (); break; - case symbol_kind::S_INTEGER: // "integer" - yylhs.value.emplace< int64_t > (); + case 200: // "integer" + yylhs.value.build< int64_t > (); break; - case symbol_kind::S_STRING: // "constant string" - yylhs.value.emplace< std::string > (); + case 199: // "constant string" + yylhs.value.build< std::string > (); break; default: @@ -717,299 +661,296 @@ namespace isc { namespace dhcp { } - // Default location. + // Compute the default @$. { - stack_type::slice range (yystack_, yylen); - YYLLOC_DEFAULT (yylhs.location, range, yylen); - yyerror_range[1].location = yylhs.location; + slice<stack_symbol_type, stack_type> slice (yystack_, yylen); + YYLLOC_DEFAULT (yylhs.location, slice, yylen); } // Perform the reduction. YY_REDUCE_PRINT (yyn); -#if YY_EXCEPTIONS try -#endif // YY_EXCEPTIONS { switch (yyn) { - case 2: // $@1: %empty -#line 287 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 739 "dhcp6_parser.cc" + case 2: +#line 288 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.NO_KEYWORD; } +#line 680 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 4: // $@2: %empty -#line 288 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.CONFIG; } -#line 745 "dhcp6_parser.cc" + case 4: +#line 289 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.CONFIG; } +#line 686 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 6: // $@3: %empty -#line 289 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.DHCP6; } -#line 751 "dhcp6_parser.cc" + case 6: +#line 290 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP6; } +#line 692 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 8: // $@4: %empty -#line 290 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.INTERFACES_CONFIG; } -#line 757 "dhcp6_parser.cc" + case 8: +#line 291 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.INTERFACES_CONFIG; } +#line 698 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 10: // $@5: %empty -#line 291 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.SUBNET6; } -#line 763 "dhcp6_parser.cc" + case 10: +#line 292 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.SUBNET6; } +#line 704 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 12: // $@6: %empty -#line 292 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.POOLS; } -#line 769 "dhcp6_parser.cc" + case 12: +#line 293 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.POOLS; } +#line 710 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 14: // $@7: %empty -#line 293 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.PD_POOLS; } -#line 775 "dhcp6_parser.cc" + case 14: +#line 294 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.PD_POOLS; } +#line 716 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 16: // $@8: %empty -#line 294 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.RESERVATIONS; } -#line 781 "dhcp6_parser.cc" + case 16: +#line 295 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.RESERVATIONS; } +#line 722 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 18: // $@9: %empty -#line 295 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.DHCP6; } -#line 787 "dhcp6_parser.cc" + case 18: +#line 296 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP6; } +#line 728 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 20: // $@10: %empty -#line 296 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.OPTION_DEF; } -#line 793 "dhcp6_parser.cc" + case 20: +#line 297 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.OPTION_DEF; } +#line 734 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 22: // $@11: %empty -#line 297 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.OPTION_DATA; } -#line 799 "dhcp6_parser.cc" + case 22: +#line 298 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.OPTION_DATA; } +#line 740 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 24: // $@12: %empty -#line 298 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 805 "dhcp6_parser.cc" + case 24: +#line 299 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } +#line 746 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 26: // $@13: %empty -#line 299 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.DHCP_DDNS; } -#line 811 "dhcp6_parser.cc" + case 26: +#line 300 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.DHCP_DDNS; } +#line 752 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 28: // $@14: %empty -#line 300 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.CONFIG_CONTROL; } -#line 817 "dhcp6_parser.cc" + case 28: +#line 301 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.ctx_ = ctx.CONFIG_CONTROL; } +#line 758 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 30: // value: "integer" -#line 308 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 823 "dhcp6_parser.cc" + case 30: +#line 309 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } +#line 764 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 31: // value: "floating point" -#line 309 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } -#line 829 "dhcp6_parser.cc" + case 31: +#line 310 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } +#line 770 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 32: // value: "boolean" -#line 310 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 835 "dhcp6_parser.cc" + case 32: +#line 311 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } +#line 776 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 33: // value: "constant string" -#line 311 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 841 "dhcp6_parser.cc" + case 33: +#line 312 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } +#line 782 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 34: // value: "null" -#line 312 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 847 "dhcp6_parser.cc" + case 34: +#line 313 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } +#line 788 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 35: // value: map2 -#line 313 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 853 "dhcp6_parser.cc" + case 35: +#line 314 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 794 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 36: // value: list_generic -#line 314 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 859 "dhcp6_parser.cc" + case 36: +#line 315 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 800 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 37: // sub_json: value -#line 317 "dhcp6_parser.yy" - { + case 37: +#line 318 "dhcp6_parser.yy" // lalr1.cc:859 + { // Push back the JSON value on the stack - ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); } -#line 868 "dhcp6_parser.cc" +#line 809 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 38: // $@15: %empty -#line 322 "dhcp6_parser.yy" - { + case 38: +#line 323 "dhcp6_parser.yy" // lalr1.cc:859 + { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 879 "dhcp6_parser.cc" +#line 820 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 39: // map2: "{" $@15 map_content "}" -#line 327 "dhcp6_parser.yy" - { + case 39: +#line 328 "dhcp6_parser.yy" // lalr1.cc:859 + { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. } -#line 889 "dhcp6_parser.cc" +#line 830 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 40: // map_value: map2 -#line 333 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 895 "dhcp6_parser.cc" + case 40: +#line 334 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 836 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 43: // not_empty_map: "constant string" ":" value -#line 340 "dhcp6_parser.yy" - { + case 43: +#line 341 "dhcp6_parser.yy" // lalr1.cc:859 + { // map containing a single entry - ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); - ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + ctx.unique(yystack_[2].value.as< std::string > (), ctx.loc2pos(yystack_[2].location)); + ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 905 "dhcp6_parser.cc" +#line 846 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 44: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 345 "dhcp6_parser.yy" - { + case 44: +#line 346 "dhcp6_parser.yy" // lalr1.cc:859 + { // map consisting of a shorter map followed by // comma and string:value - ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); - ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + ctx.unique(yystack_[2].value.as< std::string > (), ctx.loc2pos(yystack_[2].location)); + ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); } -#line 916 "dhcp6_parser.cc" +#line 857 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 45: // $@16: %empty -#line 353 "dhcp6_parser.yy" - { + case 45: +#line 354 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 925 "dhcp6_parser.cc" +#line 866 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 46: // list_generic: "[" $@16 list_content "]" -#line 356 "dhcp6_parser.yy" - { + case 46: +#line 357 "dhcp6_parser.yy" // lalr1.cc:859 + { // list parsing complete. Put any sanity checking here } -#line 933 "dhcp6_parser.cc" +#line 874 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 49: // not_empty_list: value -#line 364 "dhcp6_parser.yy" - { + case 49: +#line 365 "dhcp6_parser.yy" // lalr1.cc:859 + { // List consisting of a single element. - ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); } -#line 942 "dhcp6_parser.cc" +#line 883 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 50: // not_empty_list: not_empty_list "," value -#line 368 "dhcp6_parser.yy" - { + case 50: +#line 369 "dhcp6_parser.yy" // lalr1.cc:859 + { // List ending with , and a value. - ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); + ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); } -#line 951 "dhcp6_parser.cc" +#line 892 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 51: // $@17: %empty -#line 375 "dhcp6_parser.yy" - { + case 51: +#line 376 "dhcp6_parser.yy" // lalr1.cc:859 + { // List parsing about to start } -#line 959 "dhcp6_parser.cc" +#line 900 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 52: // list_strings: "[" $@17 list_strings_content "]" -#line 377 "dhcp6_parser.yy" - { + case 52: +#line 378 "dhcp6_parser.yy" // lalr1.cc:859 + { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); } -#line 968 "dhcp6_parser.cc" +#line 909 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 55: // not_empty_list_strings: "constant string" -#line 386 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 55: +#line 387 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 977 "dhcp6_parser.cc" +#line 918 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 56: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 390 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 56: +#line 391 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); } -#line 986 "dhcp6_parser.cc" +#line 927 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 57: // unknown_map_entry: "constant string" ":" -#line 401 "dhcp6_parser.yy" - { + case 57: +#line 402 "dhcp6_parser.yy" // lalr1.cc:859 + { const std::string& where = ctx.contextName(); - const std::string& keyword = yystack_[1].value.as < std::string > (); + const std::string& keyword = yystack_[1].value.as< std::string > (); error(yystack_[1].location, "got unexpected keyword \"" + keyword + "\" in " + where + " map."); } -#line 997 "dhcp6_parser.cc" +#line 938 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 58: // $@18: %empty -#line 410 "dhcp6_parser.yy" - { + case 58: +#line 411 "dhcp6_parser.yy" // lalr1.cc:859 + { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1008 "dhcp6_parser.cc" +#line 949 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 59: // syntax_map: "{" $@18 global_object "}" -#line 415 "dhcp6_parser.yy" - { + case 59: +#line 416 "dhcp6_parser.yy" // lalr1.cc:859 + { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. @@ -1017,12 +958,12 @@ namespace isc { namespace dhcp { // Dhcp6 is required ctx.require("Dhcp6", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 1021 "dhcp6_parser.cc" +#line 962 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 60: // $@19: %empty -#line 425 "dhcp6_parser.yy" - { + case 60: +#line 426 "dhcp6_parser.yy" // lalr1.cc:859 + { // This code is executed when we're about to start parsing // the content of the map // Prevent against duplicate. @@ -1032,1310 +973,1320 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP6); } -#line 1036 "dhcp6_parser.cc" +#line 977 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 61: // global_object: "Dhcp6" $@19 ":" "{" global_params "}" -#line 434 "dhcp6_parser.yy" - { + case 61: +#line 435 "dhcp6_parser.yy" // lalr1.cc:859 + { // No global parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1046 "dhcp6_parser.cc" +#line 987 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 62: // $@20: %empty -#line 442 "dhcp6_parser.yy" - { + case 62: +#line 443 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1056 "dhcp6_parser.cc" +#line 997 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 63: // sub_dhcp6: "{" $@20 global_params "}" -#line 446 "dhcp6_parser.yy" - { + case 63: +#line 447 "dhcp6_parser.yy" // lalr1.cc:859 + { // No global parameter is required // parsing completed } -#line 1065 "dhcp6_parser.cc" +#line 1006 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 123: // $@21: %empty -#line 516 "dhcp6_parser.yy" - { + case 124: +#line 518 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("data-directory", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1074 "dhcp6_parser.cc" +#line 1015 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 124: // data_directory: "data-directory" $@21 ":" "constant string" -#line 519 "dhcp6_parser.yy" - { - ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 125: +#line 521 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr datadir(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data-directory", datadir); ctx.leave(); } -#line 1084 "dhcp6_parser.cc" +#line 1025 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 125: // preferred_lifetime: "preferred-lifetime" ":" "integer" -#line 525 "dhcp6_parser.yy" - { + case 126: +#line 527 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("preferred-lifetime", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("preferred-lifetime", prf); } -#line 1094 "dhcp6_parser.cc" +#line 1035 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 126: // min_preferred_lifetime: "min-preferred-lifetime" ":" "integer" -#line 531 "dhcp6_parser.yy" - { + case 127: +#line 533 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("min-preferred-lifetime", prf); } -#line 1104 "dhcp6_parser.cc" +#line 1045 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 127: // max_preferred_lifetime: "max-preferred-lifetime" ":" "integer" -#line 537 "dhcp6_parser.yy" - { + case 128: +#line 539 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-preferred-lifetime", prf); } -#line 1114 "dhcp6_parser.cc" +#line 1055 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 128: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 543 "dhcp6_parser.yy" - { + case 129: +#line 545 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("valid-lifetime", prf); } -#line 1124 "dhcp6_parser.cc" +#line 1065 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 129: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 549 "dhcp6_parser.yy" - { + case 130: +#line 551 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("min-valid-lifetime", prf); } -#line 1134 "dhcp6_parser.cc" +#line 1075 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 130: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 555 "dhcp6_parser.yy" - { + case 131: +#line 557 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-valid-lifetime", prf); } -#line 1144 "dhcp6_parser.cc" +#line 1085 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 131: // renew_timer: "renew-timer" ":" "integer" -#line 561 "dhcp6_parser.yy" - { + case 132: +#line 563 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("renew-timer", prf); } -#line 1154 "dhcp6_parser.cc" +#line 1095 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 132: // rebind_timer: "rebind-timer" ":" "integer" -#line 567 "dhcp6_parser.yy" - { + case 133: +#line 569 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rebind-timer", prf); } -#line 1164 "dhcp6_parser.cc" +#line 1105 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 133: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 573 "dhcp6_parser.yy" - { + case 134: +#line 575 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location)); - ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr ctt(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("calculate-tee-times", ctt); } -#line 1174 "dhcp6_parser.cc" +#line 1115 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 134: // t1_percent: "t1-percent" ":" "floating point" -#line 579 "dhcp6_parser.yy" - { + case 135: +#line 581 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location)); - ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr t1(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("t1-percent", t1); } -#line 1184 "dhcp6_parser.cc" +#line 1125 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 135: // t2_percent: "t2-percent" ":" "floating point" -#line 585 "dhcp6_parser.yy" - { + case 136: +#line 587 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location)); - ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr t2(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("t2-percent", t2); } -#line 1194 "dhcp6_parser.cc" +#line 1135 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 136: // cache_threshold: "cache-threshold" ":" "floating point" -#line 591 "dhcp6_parser.yy" - { + case 137: +#line 593 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location)); - ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr ct(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cache-threshold", ct); } -#line 1204 "dhcp6_parser.cc" +#line 1145 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 137: // cache_max_age: "cache-max-age" ":" "integer" -#line 597 "dhcp6_parser.yy" - { + case 138: +#line 599 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr cm(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cache-max-age", cm); } -#line 1214 "dhcp6_parser.cc" +#line 1155 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 138: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 603 "dhcp6_parser.yy" - { + case 139: +#line 605 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("decline-probation-period", dpp); } -#line 1224 "dhcp6_parser.cc" +#line 1165 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 139: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 609 "dhcp6_parser.yy" - { + case 140: +#line 611 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-send-updates", b); } -#line 1234 "dhcp6_parser.cc" +#line 1175 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 140: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 615 "dhcp6_parser.yy" - { + case 141: +#line 617 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-override-no-update", b); } -#line 1244 "dhcp6_parser.cc" +#line 1185 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 141: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 621 "dhcp6_parser.yy" - { + case 142: +#line 623 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-override-client-update", b); } -#line 1254 "dhcp6_parser.cc" +#line 1195 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 142: // $@22: %empty -#line 627 "dhcp6_parser.yy" - { + case 143: +#line 629 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 1263 "dhcp6_parser.cc" +#line 1204 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 143: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value -#line 630 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); + case 144: +#line 632 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1272 "dhcp6_parser.cc" +#line 1213 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 144: // ddns_replace_client_name_value: "when-present" -#line 636 "dhcp6_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); + case 145: +#line 638 "dhcp6_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 1280 "dhcp6_parser.cc" +#line 1221 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 145: // ddns_replace_client_name_value: "never" -#line 639 "dhcp6_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); + case 146: +#line 641 "dhcp6_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 1288 "dhcp6_parser.cc" +#line 1229 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 146: // ddns_replace_client_name_value: "always" -#line 642 "dhcp6_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); + case 147: +#line 644 "dhcp6_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 1296 "dhcp6_parser.cc" +#line 1237 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 147: // ddns_replace_client_name_value: "when-not-present" -#line 645 "dhcp6_parser.yy" - { - yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); + case 148: +#line 647 "dhcp6_parser.yy" // lalr1.cc:859 + { + yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 1304 "dhcp6_parser.cc" +#line 1245 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 148: // ddns_replace_client_name_value: "boolean" -#line 648 "dhcp6_parser.yy" - { + case 149: +#line 650 "dhcp6_parser.yy" // lalr1.cc:859 + { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); } -#line 1313 "dhcp6_parser.cc" +#line 1254 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 149: // $@23: %empty -#line 654 "dhcp6_parser.yy" - { + case 150: +#line 656 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1322 "dhcp6_parser.cc" +#line 1263 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 150: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" -#line 657 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 151: +#line 659 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-generated-prefix", s); ctx.leave(); } -#line 1332 "dhcp6_parser.cc" +#line 1273 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 151: // $@24: %empty -#line 663 "dhcp6_parser.yy" - { + case 152: +#line 665 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1341 "dhcp6_parser.cc" +#line 1282 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 152: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" -#line 666 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 153: +#line 668 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-qualifying-suffix", s); ctx.leave(); } -#line 1351 "dhcp6_parser.cc" +#line 1292 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 153: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 672 "dhcp6_parser.yy" - { + case 154: +#line 674 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-update-on-renew", b); } -#line 1361 "dhcp6_parser.cc" +#line 1302 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 155: +#line 680 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location)); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("ddns-use-conflict-resolution", b); +} +#line 1312 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 154: // $@25: %empty -#line 678 "dhcp6_parser.yy" - { + case 156: +#line 686 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1370 "dhcp6_parser.cc" +#line 1321 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 155: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string" -#line 681 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 157: +#line 689 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 1380 "dhcp6_parser.cc" +#line 1331 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 156: // $@26: %empty -#line 687 "dhcp6_parser.yy" - { + case 158: +#line 695 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1389 "dhcp6_parser.cc" +#line 1340 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 157: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string" -#line 690 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 159: +#line 698 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 1399 "dhcp6_parser.cc" +#line 1350 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 158: // store_extended_info: "store-extended-info" ":" "boolean" -#line 696 "dhcp6_parser.yy" - { + case 160: +#line 704 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("store-extended-info", b); } -#line 1409 "dhcp6_parser.cc" +#line 1360 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 159: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 702 "dhcp6_parser.yy" - { + case 161: +#line 710 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + 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 1419 "dhcp6_parser.cc" +#line 1370 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 160: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 708 "dhcp6_parser.yy" - { + case 162: +#line 716 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + 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 1429 "dhcp6_parser.cc" +#line 1380 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 161: // $@27: %empty -#line 714 "dhcp6_parser.yy" - { + case 163: +#line 722 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1438 "dhcp6_parser.cc" +#line 1389 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 162: // server_tag: "server-tag" $@27 ":" "constant string" -#line 717 "dhcp6_parser.yy" - { - ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 164: +#line 725 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 1448 "dhcp6_parser.cc" +#line 1399 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 163: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 723 "dhcp6_parser.yy" - { + case 165: +#line 731 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location)); - ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr unique(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-reservations-unique", unique); } -#line 1458 "dhcp6_parser.cc" +#line 1409 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 164: // $@28: %empty -#line 729 "dhcp6_parser.yy" - { + case 166: +#line 737 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces-config", i); ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1470 "dhcp6_parser.cc" +#line 1421 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 165: // interfaces_config: "interfaces-config" $@28 ":" "{" interfaces_config_params "}" -#line 735 "dhcp6_parser.yy" - { + case 167: +#line 743 "dhcp6_parser.yy" // lalr1.cc:859 + { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1480 "dhcp6_parser.cc" +#line 1431 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 166: // $@29: %empty -#line 741 "dhcp6_parser.yy" - { + case 168: +#line 749 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1490 "dhcp6_parser.cc" +#line 1441 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 167: // sub_interfaces6: "{" $@29 interfaces_config_params "}" -#line 745 "dhcp6_parser.yy" - { + case 169: +#line 753 "dhcp6_parser.yy" // lalr1.cc:859 + { // No interfaces config param is required // parsing completed } -#line 1499 "dhcp6_parser.cc" +#line 1450 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 175: // $@30: %empty -#line 761 "dhcp6_parser.yy" - { + case 177: +#line 769 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1511 "dhcp6_parser.cc" +#line 1462 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 176: // interfaces_list: "interfaces" $@30 ":" list_strings -#line 767 "dhcp6_parser.yy" - { + case 178: +#line 775 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1520 "dhcp6_parser.cc" +#line 1471 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 177: // re_detect: "re-detect" ":" "boolean" -#line 772 "dhcp6_parser.yy" - { + case 179: +#line 780 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("re-detect", b); } -#line 1530 "dhcp6_parser.cc" +#line 1481 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 178: // $@31: %empty -#line 778 "dhcp6_parser.yy" - { + case 180: +#line 786 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1542 "dhcp6_parser.cc" +#line 1493 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 179: // lease_database: "lease-database" $@31 ":" "{" database_map_params "}" -#line 784 "dhcp6_parser.yy" - { + case 181: +#line 792 "dhcp6_parser.yy" // lalr1.cc:859 + { // 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 1553 "dhcp6_parser.cc" +#line 1504 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 180: // $@32: %empty -#line 791 "dhcp6_parser.yy" - { + case 182: +#line 799 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1565 "dhcp6_parser.cc" +#line 1516 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 181: // hosts_database: "hosts-database" $@32 ":" "{" database_map_params "}" -#line 797 "dhcp6_parser.yy" - { + case 183: +#line 805 "dhcp6_parser.yy" // lalr1.cc:859 + { // 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 1576 "dhcp6_parser.cc" +#line 1527 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 182: // $@33: %empty -#line 804 "dhcp6_parser.yy" - { + case 184: +#line 812 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1588 "dhcp6_parser.cc" +#line 1539 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 183: // hosts_databases: "hosts-databases" $@33 ":" "[" database_list "]" -#line 810 "dhcp6_parser.yy" - { + case 185: +#line 818 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1597 "dhcp6_parser.cc" +#line 1548 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 188: // $@34: %empty -#line 823 "dhcp6_parser.yy" - { + case 190: +#line 831 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1607 "dhcp6_parser.cc" +#line 1558 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 189: // database: "{" $@34 database_map_params "}" -#line 827 "dhcp6_parser.yy" - { + case 191: +#line 835 "dhcp6_parser.yy" // lalr1.cc:859 + { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1617 "dhcp6_parser.cc" +#line 1568 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 213: // $@35: %empty -#line 860 "dhcp6_parser.yy" - { + case 215: +#line 868 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_TYPE); } -#line 1626 "dhcp6_parser.cc" +#line 1577 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 214: // database_type: "type" $@35 ":" db_type -#line 863 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); + case 216: +#line 871 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1635 "dhcp6_parser.cc" +#line 1586 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 215: // db_type: "memfile" -#line 868 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1641 "dhcp6_parser.cc" + case 217: +#line 876 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } +#line 1592 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 216: // db_type: "mysql" -#line 869 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1647 "dhcp6_parser.cc" + case 218: +#line 877 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } +#line 1598 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 217: // db_type: "postgresql" -#line 870 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1653 "dhcp6_parser.cc" + case 219: +#line 878 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } +#line 1604 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 218: // db_type: "cql" -#line 871 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } -#line 1659 "dhcp6_parser.cc" + case 220: +#line 879 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } +#line 1610 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 219: // $@36: %empty -#line 874 "dhcp6_parser.yy" - { + case 221: +#line 882 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1668 "dhcp6_parser.cc" +#line 1619 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 220: // user: "user" $@36 ":" "constant string" -#line 877 "dhcp6_parser.yy" - { - ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 222: +#line 885 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); ctx.leave(); } -#line 1678 "dhcp6_parser.cc" +#line 1629 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 221: // $@37: %empty -#line 883 "dhcp6_parser.yy" - { + case 223: +#line 891 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1687 "dhcp6_parser.cc" +#line 1638 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 222: // password: "password" $@37 ":" "constant string" -#line 886 "dhcp6_parser.yy" - { - ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 224: +#line 894 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); ctx.leave(); } -#line 1697 "dhcp6_parser.cc" +#line 1648 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 223: // $@38: %empty -#line 892 "dhcp6_parser.yy" - { + case 225: +#line 900 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1706 "dhcp6_parser.cc" +#line 1657 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 224: // host: "host" $@38 ":" "constant string" -#line 895 "dhcp6_parser.yy" - { - ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 226: +#line 903 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); ctx.leave(); } -#line 1716 "dhcp6_parser.cc" +#line 1667 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 225: // port: "port" ":" "integer" -#line 901 "dhcp6_parser.yy" - { + case 227: +#line 909 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); - ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", p); } -#line 1726 "dhcp6_parser.cc" +#line 1677 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 226: // $@39: %empty -#line 907 "dhcp6_parser.yy" - { + case 228: +#line 915 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1735 "dhcp6_parser.cc" +#line 1686 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 227: // name: "name" $@39 ":" "constant string" -#line 910 "dhcp6_parser.yy" - { - ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 229: +#line 918 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1745 "dhcp6_parser.cc" +#line 1696 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 228: // persist: "persist" ":" "boolean" -#line 916 "dhcp6_parser.yy" - { + case 230: +#line 924 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); } -#line 1755 "dhcp6_parser.cc" +#line 1706 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 229: // lfc_interval: "lfc-interval" ":" "integer" -#line 922 "dhcp6_parser.yy" - { + case 231: +#line 930 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); } -#line 1765 "dhcp6_parser.cc" +#line 1716 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 230: // readonly: "readonly" ":" "boolean" -#line 928 "dhcp6_parser.yy" - { + case 232: +#line 936 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); } -#line 1775 "dhcp6_parser.cc" +#line 1726 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 231: // connect_timeout: "connect-timeout" ":" "integer" -#line 934 "dhcp6_parser.yy" - { + case 233: +#line 942 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("connect-timeout", n); } -#line 1785 "dhcp6_parser.cc" +#line 1736 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 232: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 940 "dhcp6_parser.yy" - { + case 234: +#line 948 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 1795 "dhcp6_parser.cc" +#line 1746 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 233: // max_row_errors: "max-row-errors" ":" "integer" -#line 946 "dhcp6_parser.yy" - { + case 235: +#line 954 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-row-errors", n); } -#line 1805 "dhcp6_parser.cc" +#line 1756 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 234: // request_timeout: "request-timeout" ":" "integer" -#line 952 "dhcp6_parser.yy" - { + case 236: +#line 960 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("request-timeout", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("request-timeout", n); } -#line 1815 "dhcp6_parser.cc" +#line 1766 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 235: // tcp_keepalive: "tcp-keepalive" ":" "integer" -#line 958 "dhcp6_parser.yy" - { + case 237: +#line 966 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("tcp-keepalive", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-keepalive", n); } -#line 1825 "dhcp6_parser.cc" +#line 1776 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 236: // tcp_nodelay: "tcp-nodelay" ":" "boolean" -#line 964 "dhcp6_parser.yy" - { + case 238: +#line 972 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("tcp-nodelay", ctx.loc2pos(yystack_[2].location)); - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-nodelay", n); } -#line 1835 "dhcp6_parser.cc" +#line 1786 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 237: // $@40: %empty -#line 970 "dhcp6_parser.yy" - { + case 239: +#line 978 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("contact-points", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1844 "dhcp6_parser.cc" +#line 1795 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 238: // contact_points: "contact-points" $@40 ":" "constant string" -#line 973 "dhcp6_parser.yy" - { - ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 240: +#line 981 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr cp(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("contact-points", cp); ctx.leave(); } -#line 1854 "dhcp6_parser.cc" +#line 1805 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 239: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 979 "dhcp6_parser.yy" - { + case 241: +#line 987 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 1864 "dhcp6_parser.cc" +#line 1815 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 240: // $@41: %empty -#line 985 "dhcp6_parser.yy" - { + case 242: +#line 993 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("keyspace", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1873 "dhcp6_parser.cc" +#line 1824 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 241: // keyspace: "keyspace" $@41 ":" "constant string" -#line 988 "dhcp6_parser.yy" - { - ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 243: +#line 996 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr ks(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("keyspace", ks); ctx.leave(); } -#line 1883 "dhcp6_parser.cc" +#line 1834 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 242: // $@42: %empty -#line 994 "dhcp6_parser.yy" - { + case 244: +#line 1002 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("consistency", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1892 "dhcp6_parser.cc" +#line 1843 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 243: // consistency: "consistency" $@42 ":" "constant string" -#line 997 "dhcp6_parser.yy" - { - ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 245: +#line 1005 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr c(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("consistency", c); ctx.leave(); } -#line 1902 "dhcp6_parser.cc" +#line 1853 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 244: // $@43: %empty -#line 1003 "dhcp6_parser.yy" - { + case 246: +#line 1011 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("serial-consistency", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1911 "dhcp6_parser.cc" +#line 1862 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 245: // serial_consistency: "serial-consistency" $@43 ":" "constant string" -#line 1006 "dhcp6_parser.yy" - { - ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 247: +#line 1014 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr c(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("serial-consistency", c); ctx.leave(); } -#line 1921 "dhcp6_parser.cc" +#line 1872 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 246: // $@44: %empty -#line 1012 "dhcp6_parser.yy" - { + case 248: +#line 1020 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sanity-checks", m); ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 1933 "dhcp6_parser.cc" +#line 1884 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 247: // sanity_checks: "sanity-checks" $@44 ":" "{" sanity_checks_params "}" -#line 1018 "dhcp6_parser.yy" - { + case 249: +#line 1026 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1942 "dhcp6_parser.cc" +#line 1893 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 251: // $@45: %empty -#line 1028 "dhcp6_parser.yy" - { + case 253: +#line 1036 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1951 "dhcp6_parser.cc" +#line 1902 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 252: // lease_checks: "lease-checks" $@45 ":" "constant string" -#line 1031 "dhcp6_parser.yy" - { + case 254: +#line 1039 "dhcp6_parser.yy" // lalr1.cc:859 + { - if ( (string(yystack_[0].value.as < std::string > ()) == "none") || - (string(yystack_[0].value.as < std::string > ()) == "warn") || - (string(yystack_[0].value.as < std::string > ()) == "fix") || - (string(yystack_[0].value.as < std::string > ()) == "fix-del") || - (string(yystack_[0].value.as < std::string > ()) == "del")) { - ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + if ( (string(yystack_[0].value.as< std::string > ()) == "none") || + (string(yystack_[0].value.as< std::string > ()) == "warn") || + (string(yystack_[0].value.as< std::string > ()) == "fix") || + (string(yystack_[0].value.as< std::string > ()) == "fix-del") || + (string(yystack_[0].value.as< std::string > ()) == "del")) { + ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-checks", user); ctx.leave(); } else { - error(yystack_[0].location, "Unsupported 'lease-checks value: " + string(yystack_[0].value.as < std::string > ()) + + error(yystack_[0].location, "Unsupported 'lease-checks value: " + string(yystack_[0].value.as< std::string > ()) + ", supported values are: none, warn, fix, fix-del, del"); } } -#line 1971 "dhcp6_parser.cc" +#line 1922 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 253: // $@46: %empty -#line 1047 "dhcp6_parser.yy" - { + case 255: +#line 1055 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("mac-sources", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("mac-sources", l); ctx.stack_.push_back(l); ctx.enter(ctx.MAC_SOURCES); } -#line 1983 "dhcp6_parser.cc" +#line 1934 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 254: // mac_sources: "mac-sources" $@46 ":" "[" mac_sources_list "]" -#line 1053 "dhcp6_parser.yy" - { + case 256: +#line 1061 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 1992 "dhcp6_parser.cc" +#line 1943 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 259: // duid_id: "duid" -#line 1066 "dhcp6_parser.yy" - { + case 261: +#line 1074 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2001 "dhcp6_parser.cc" +#line 1952 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 260: // string_id: "constant string" -#line 1071 "dhcp6_parser.yy" - { - ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 262: +#line 1079 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr duid(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2010 "dhcp6_parser.cc" +#line 1961 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 261: // $@47: %empty -#line 1076 "dhcp6_parser.yy" - { + case 263: +#line 1084 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host-reservation-identifiers", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 2022 "dhcp6_parser.cc" +#line 1973 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 262: // host_reservation_identifiers: "host-reservation-identifiers" $@47 ":" "[" host_reservation_identifiers_list "]" -#line 1082 "dhcp6_parser.yy" - { + case 264: +#line 1090 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2031 "dhcp6_parser.cc" +#line 1982 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 268: // hw_address_id: "hw-address" -#line 1096 "dhcp6_parser.yy" - { + case 270: +#line 1104 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 2040 "dhcp6_parser.cc" +#line 1991 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 269: // flex_id: "flex-id" -#line 1101 "dhcp6_parser.yy" - { + case 271: +#line 1109 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 2049 "dhcp6_parser.cc" +#line 2000 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 270: // $@48: %empty -#line 1108 "dhcp6_parser.yy" - { + case 272: +#line 1116 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("relay-supplied-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay-supplied-options", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2061 "dhcp6_parser.cc" +#line 2012 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 271: // relay_supplied_options: "relay-supplied-options" $@48 ":" "[" list_content "]" -#line 1114 "dhcp6_parser.yy" - { + case 273: +#line 1122 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2070 "dhcp6_parser.cc" +#line 2021 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 272: // $@49: %empty -#line 1121 "dhcp6_parser.yy" - { + case 274: +#line 1129 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("multi-threading", mt); ctx.stack_.push_back(mt); ctx.enter(ctx.DHCP_MULTI_THREADING); } -#line 2082 "dhcp6_parser.cc" +#line 2033 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 273: // dhcp_multi_threading: "multi-threading" $@49 ":" "{" multi_threading_params "}" -#line 1127 "dhcp6_parser.yy" - { + case 275: +#line 1135 "dhcp6_parser.yy" // lalr1.cc:859 + { // 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 2093 "dhcp6_parser.cc" +#line 2044 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 282: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1146 "dhcp6_parser.yy" - { + case 284: +#line 1154 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-multi-threading", b); } -#line 2103 "dhcp6_parser.cc" +#line 2054 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 283: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1152 "dhcp6_parser.yy" - { + case 285: +#line 1160 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("thread-pool-size", prf); } -#line 2113 "dhcp6_parser.cc" +#line 2064 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 284: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1158 "dhcp6_parser.yy" - { + case 286: +#line 1166 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("packet-queue-size", prf); } -#line 2123 "dhcp6_parser.cc" +#line 2074 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 285: // $@50: %empty -#line 1164 "dhcp6_parser.yy" - { + case 287: +#line 1172 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hooks-libraries", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2135 "dhcp6_parser.cc" +#line 2086 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 286: // hooks_libraries: "hooks-libraries" $@50 ":" "[" hooks_libraries_list "]" -#line 1170 "dhcp6_parser.yy" - { + case 288: +#line 1178 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2144 "dhcp6_parser.cc" +#line 2095 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 291: // $@51: %empty -#line 1183 "dhcp6_parser.yy" - { + case 293: +#line 1191 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2154 "dhcp6_parser.cc" +#line 2105 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 292: // hooks_library: "{" $@51 hooks_params "}" -#line 1187 "dhcp6_parser.yy" - { + case 294: +#line 1195 "dhcp6_parser.yy" // lalr1.cc:859 + { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2164 "dhcp6_parser.cc" +#line 2115 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 293: // $@52: %empty -#line 1193 "dhcp6_parser.yy" - { + case 295: +#line 1201 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2174 "dhcp6_parser.cc" +#line 2125 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 294: // sub_hooks_library: "{" $@52 hooks_params "}" -#line 1197 "dhcp6_parser.yy" - { + case 296: +#line 1205 "dhcp6_parser.yy" // lalr1.cc:859 + { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2184 "dhcp6_parser.cc" +#line 2135 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 300: // $@53: %empty -#line 1212 "dhcp6_parser.yy" - { + case 302: +#line 1220 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2193 "dhcp6_parser.cc" +#line 2144 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 301: // library: "library" $@53 ":" "constant string" -#line 1215 "dhcp6_parser.yy" - { - ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 303: +#line 1223 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 2203 "dhcp6_parser.cc" +#line 2154 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 302: // $@54: %empty -#line 1221 "dhcp6_parser.yy" - { + case 304: +#line 1229 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2212 "dhcp6_parser.cc" +#line 2163 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 303: // parameters: "parameters" $@54 ":" map_value -#line 1224 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); + case 305: +#line 1232 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2221 "dhcp6_parser.cc" +#line 2172 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 304: // $@55: %empty -#line 1230 "dhcp6_parser.yy" - { + case 306: +#line 1238 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("expired-leases-processing", m); ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2233 "dhcp6_parser.cc" +#line 2184 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 305: // expired_leases_processing: "expired-leases-processing" $@55 ":" "{" expired_leases_params "}" -#line 1236 "dhcp6_parser.yy" - { + case 307: +#line 1244 "dhcp6_parser.yy" // lalr1.cc:859 + { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2243 "dhcp6_parser.cc" +#line 2194 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 314: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1254 "dhcp6_parser.yy" - { + case 316: +#line 1262 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + 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 2253 "dhcp6_parser.cc" +#line 2204 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 315: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1260 "dhcp6_parser.yy" - { + case 317: +#line 1268 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + 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 2263 "dhcp6_parser.cc" +#line 2214 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 316: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1266 "dhcp6_parser.yy" - { + case 318: +#line 1274 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2273 "dhcp6_parser.cc" +#line 2224 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 317: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1272 "dhcp6_parser.yy" - { + case 319: +#line 1280 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2283 "dhcp6_parser.cc" +#line 2234 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 318: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1278 "dhcp6_parser.yy" - { + case 320: +#line 1286 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2293 "dhcp6_parser.cc" +#line 2244 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 319: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1284 "dhcp6_parser.yy" - { + case 321: +#line 1292 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2303 "dhcp6_parser.cc" +#line 2254 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 320: // $@56: %empty -#line 1293 "dhcp6_parser.yy" - { + case 322: +#line 1301 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("subnet6", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet6", l); ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET6); } -#line 2315 "dhcp6_parser.cc" +#line 2266 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 321: // subnet6_list: "subnet6" $@56 ":" "[" subnet6_list_content "]" -#line 1299 "dhcp6_parser.yy" - { + case 323: +#line 1307 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2324 "dhcp6_parser.cc" +#line 2275 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 326: // $@57: %empty -#line 1319 "dhcp6_parser.yy" - { + case 328: +#line 1327 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2334 "dhcp6_parser.cc" +#line 2285 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 327: // subnet6: "{" $@57 subnet6_params "}" -#line 1323 "dhcp6_parser.yy" - { + case 329: +#line 1331 "dhcp6_parser.yy" // lalr1.cc:859 + { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. // In particular we can do things like this: @@ -2356,596 +2307,596 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2360 "dhcp6_parser.cc" +#line 2311 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 328: // $@58: %empty -#line 1345 "dhcp6_parser.yy" - { + case 330: +#line 1353 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2370 "dhcp6_parser.cc" +#line 2321 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 329: // sub_subnet6: "{" $@58 subnet6_params "}" -#line 1349 "dhcp6_parser.yy" - { + case 331: +#line 1357 "dhcp6_parser.yy" // lalr1.cc:859 + { // The subnet subnet6 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2380 "dhcp6_parser.cc" +#line 2331 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 371: // $@59: %empty -#line 1402 "dhcp6_parser.yy" - { + case 374: +#line 1411 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2389 "dhcp6_parser.cc" +#line 2340 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 372: // subnet: "subnet" $@59 ":" "constant string" -#line 1405 "dhcp6_parser.yy" - { - ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 375: +#line 1414 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2399 "dhcp6_parser.cc" +#line 2350 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 373: // $@60: %empty -#line 1411 "dhcp6_parser.yy" - { + case 376: +#line 1420 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2408 "dhcp6_parser.cc" +#line 2359 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 374: // interface: "interface" $@60 ":" "constant string" -#line 1414 "dhcp6_parser.yy" - { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 377: +#line 1423 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2418 "dhcp6_parser.cc" +#line 2369 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 375: // $@61: %empty -#line 1420 "dhcp6_parser.yy" - { + case 378: +#line 1429 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2427 "dhcp6_parser.cc" +#line 2378 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 376: // interface_id: "interface-id" $@61 ":" "constant string" -#line 1423 "dhcp6_parser.yy" - { - ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 379: +#line 1432 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 2437 "dhcp6_parser.cc" +#line 2388 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 377: // $@62: %empty -#line 1429 "dhcp6_parser.yy" - { + case 380: +#line 1438 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2446 "dhcp6_parser.cc" +#line 2397 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 378: // client_class: "client-class" $@62 ":" "constant string" -#line 1432 "dhcp6_parser.yy" - { - ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 381: +#line 1441 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 2456 "dhcp6_parser.cc" +#line 2407 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 379: // $@63: %empty -#line 1438 "dhcp6_parser.yy" - { + case 382: +#line 1447 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("require-client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2468 "dhcp6_parser.cc" +#line 2419 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 380: // require_client_classes: "require-client-classes" $@63 ":" list_strings -#line 1444 "dhcp6_parser.yy" - { + case 383: +#line 1453 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2477 "dhcp6_parser.cc" +#line 2428 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 381: // $@64: %empty -#line 1449 "dhcp6_parser.yy" - { + case 384: +#line 1458 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.RESERVATION_MODE); } -#line 2486 "dhcp6_parser.cc" +#line 2437 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 382: // reservation_mode: "reservation-mode" $@64 ":" hr_mode -#line 1452 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); + case 385: +#line 1461 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2495 "dhcp6_parser.cc" +#line 2446 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 383: // hr_mode: "disabled" -#line 1457 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2501 "dhcp6_parser.cc" + case 386: +#line 1466 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } +#line 2452 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 384: // hr_mode: "out-of-pool" -#line 1458 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2507 "dhcp6_parser.cc" + case 387: +#line 1467 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } +#line 2458 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 385: // hr_mode: "global" -#line 1459 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2513 "dhcp6_parser.cc" + case 388: +#line 1468 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } +#line 2464 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 386: // hr_mode: "all" -#line 1460 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2519 "dhcp6_parser.cc" + case 389: +#line 1469 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } +#line 2470 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 387: // id: "id" ":" "integer" -#line 1463 "dhcp6_parser.yy" - { + case 390: +#line 1472 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("id", ctx.loc2pos(yystack_[2].location)); - ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2529 "dhcp6_parser.cc" +#line 2480 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 388: // rapid_commit: "rapid-commit" ":" "boolean" -#line 1469 "dhcp6_parser.yy" - { + case 391: +#line 1478 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("rapid-commit", ctx.loc2pos(yystack_[2].location)); - ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } -#line 2539 "dhcp6_parser.cc" +#line 2490 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 389: // $@65: %empty -#line 1477 "dhcp6_parser.yy" - { + case 392: +#line 1486 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("shared-networks", l); ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2551 "dhcp6_parser.cc" +#line 2502 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 390: // shared_networks: "shared-networks" $@65 ":" "[" shared_networks_content "]" -#line 1483 "dhcp6_parser.yy" - { + case 393: +#line 1492 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2560 "dhcp6_parser.cc" +#line 2511 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 395: // $@66: %empty -#line 1498 "dhcp6_parser.yy" - { + case 398: +#line 1507 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2570 "dhcp6_parser.cc" +#line 2521 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 396: // shared_network: "{" $@66 shared_network_params "}" -#line 1502 "dhcp6_parser.yy" - { + case 399: +#line 1511 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); } -#line 2578 "dhcp6_parser.cc" +#line 2529 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 435: // $@67: %empty -#line 1552 "dhcp6_parser.yy" - { + case 439: +#line 1562 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-def", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2590 "dhcp6_parser.cc" +#line 2541 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 436: // option_def_list: "option-def" $@67 ":" "[" option_def_list_content "]" -#line 1558 "dhcp6_parser.yy" - { + case 440: +#line 1568 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2599 "dhcp6_parser.cc" +#line 2550 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 437: // $@68: %empty -#line 1566 "dhcp6_parser.yy" - { + case 441: +#line 1576 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2608 "dhcp6_parser.cc" +#line 2559 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 438: // sub_option_def_list: "{" $@68 option_def_list "}" -#line 1569 "dhcp6_parser.yy" - { + case 442: +#line 1579 "dhcp6_parser.yy" // lalr1.cc:859 + { // parsing completed } -#line 2616 "dhcp6_parser.cc" +#line 2567 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 443: // $@69: %empty -#line 1585 "dhcp6_parser.yy" - { + case 447: +#line 1595 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2626 "dhcp6_parser.cc" +#line 2577 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 444: // option_def_entry: "{" $@69 option_def_params "}" -#line 1589 "dhcp6_parser.yy" - { + case 448: +#line 1599 "dhcp6_parser.yy" // lalr1.cc:859 + { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("code", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2638 "dhcp6_parser.cc" +#line 2589 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 445: // $@70: %empty -#line 1600 "dhcp6_parser.yy" - { + case 449: +#line 1610 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2648 "dhcp6_parser.cc" +#line 2599 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 446: // sub_option_def: "{" $@70 option_def_params "}" -#line 1604 "dhcp6_parser.yy" - { + case 450: +#line 1614 "dhcp6_parser.yy" // lalr1.cc:859 + { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("code", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2660 "dhcp6_parser.cc" +#line 2611 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 462: // code: "code" ":" "integer" -#line 1636 "dhcp6_parser.yy" - { + case 466: +#line 1646 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("code", ctx.loc2pos(yystack_[2].location)); - ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 2670 "dhcp6_parser.cc" +#line 2621 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 464: // $@71: %empty -#line 1644 "dhcp6_parser.yy" - { + case 468: +#line 1654 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2679 "dhcp6_parser.cc" +#line 2630 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 465: // option_def_type: "type" $@71 ":" "constant string" -#line 1647 "dhcp6_parser.yy" - { - ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 469: +#line 1657 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 2689 "dhcp6_parser.cc" +#line 2640 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 466: // $@72: %empty -#line 1653 "dhcp6_parser.yy" - { + case 470: +#line 1663 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2698 "dhcp6_parser.cc" +#line 2649 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 467: // option_def_record_types: "record-types" $@72 ":" "constant string" -#line 1656 "dhcp6_parser.yy" - { - ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 471: +#line 1666 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 2708 "dhcp6_parser.cc" +#line 2659 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 468: // $@73: %empty -#line 1662 "dhcp6_parser.yy" - { + case 472: +#line 1672 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2717 "dhcp6_parser.cc" +#line 2668 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 469: // space: "space" $@73 ":" "constant string" -#line 1665 "dhcp6_parser.yy" - { - ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 473: +#line 1675 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 2727 "dhcp6_parser.cc" +#line 2678 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 471: // $@74: %empty -#line 1673 "dhcp6_parser.yy" - { + case 475: +#line 1683 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2736 "dhcp6_parser.cc" +#line 2687 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 472: // option_def_encapsulate: "encapsulate" $@74 ":" "constant string" -#line 1676 "dhcp6_parser.yy" - { - ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 476: +#line 1686 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 2746 "dhcp6_parser.cc" +#line 2697 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 473: // option_def_array: "array" ":" "boolean" -#line 1682 "dhcp6_parser.yy" - { + case 477: +#line 1692 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); - ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 2756 "dhcp6_parser.cc" +#line 2707 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 474: // $@75: %empty -#line 1692 "dhcp6_parser.yy" - { + case 478: +#line 1702 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-data", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 2768 "dhcp6_parser.cc" +#line 2719 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 475: // option_data_list: "option-data" $@75 ":" "[" option_data_list_content "]" -#line 1698 "dhcp6_parser.yy" - { + case 479: +#line 1708 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2777 "dhcp6_parser.cc" +#line 2728 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 480: // $@76: %empty -#line 1717 "dhcp6_parser.yy" - { + case 484: +#line 1727 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2787 "dhcp6_parser.cc" +#line 2738 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 481: // option_data_entry: "{" $@76 option_data_params "}" -#line 1721 "dhcp6_parser.yy" - { + case 485: +#line 1731 "dhcp6_parser.yy" // lalr1.cc:859 + { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 2796 "dhcp6_parser.cc" +#line 2747 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 482: // $@77: %empty -#line 1729 "dhcp6_parser.yy" - { + case 486: +#line 1739 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2806 "dhcp6_parser.cc" +#line 2757 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 483: // sub_option_data: "{" $@77 option_data_params "}" -#line 1733 "dhcp6_parser.yy" - { + case 487: +#line 1743 "dhcp6_parser.yy" // lalr1.cc:859 + { /// @todo: the code or name parameters are required. // parsing completed } -#line 2815 "dhcp6_parser.cc" +#line 2766 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 498: // $@78: %empty -#line 1766 "dhcp6_parser.yy" - { + case 502: +#line 1776 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2824 "dhcp6_parser.cc" +#line 2775 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 499: // option_data_data: "data" $@78 ":" "constant string" -#line 1769 "dhcp6_parser.yy" - { - ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 503: +#line 1779 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 2834 "dhcp6_parser.cc" +#line 2785 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 502: // option_data_csv_format: "csv-format" ":" "boolean" -#line 1779 "dhcp6_parser.yy" - { + case 506: +#line 1789 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); - ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 2844 "dhcp6_parser.cc" +#line 2795 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 503: // option_data_always_send: "always-send" ":" "boolean" -#line 1785 "dhcp6_parser.yy" - { + case 507: +#line 1795 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); - ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr persist(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 2854 "dhcp6_parser.cc" +#line 2805 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 504: // $@79: %empty -#line 1794 "dhcp6_parser.yy" - { + case 508: +#line 1804 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 2866 "dhcp6_parser.cc" +#line 2817 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 505: // pools_list: "pools" $@79 ":" "[" pools_list_content "]" -#line 1800 "dhcp6_parser.yy" - { + case 509: +#line 1810 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 2875 "dhcp6_parser.cc" +#line 2826 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 510: // $@80: %empty -#line 1815 "dhcp6_parser.yy" - { + case 514: +#line 1825 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2885 "dhcp6_parser.cc" +#line 2836 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 511: // pool_list_entry: "{" $@80 pool_params "}" -#line 1819 "dhcp6_parser.yy" - { + case 515: +#line 1829 "dhcp6_parser.yy" // lalr1.cc:859 + { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2895 "dhcp6_parser.cc" +#line 2846 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 512: // $@81: %empty -#line 1825 "dhcp6_parser.yy" - { + case 516: +#line 1835 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2905 "dhcp6_parser.cc" +#line 2856 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 513: // sub_pool6: "{" $@81 pool_params "}" -#line 1829 "dhcp6_parser.yy" - { + case 517: +#line 1839 "dhcp6_parser.yy" // lalr1.cc:859 + { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2915 "dhcp6_parser.cc" +#line 2866 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 523: // $@82: %empty -#line 1848 "dhcp6_parser.yy" - { + case 527: +#line 1858 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2924 "dhcp6_parser.cc" +#line 2875 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 524: // pool_entry: "pool" $@82 ":" "constant string" -#line 1851 "dhcp6_parser.yy" - { - ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 528: +#line 1861 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 2934 "dhcp6_parser.cc" +#line 2885 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 525: // $@83: %empty -#line 1857 "dhcp6_parser.yy" - { + case 529: +#line 1867 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2942 "dhcp6_parser.cc" +#line 2893 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 526: // user_context: "user-context" $@83 ":" map_value -#line 1859 "dhcp6_parser.yy" - { + case 530: +#line 1869 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr parent = ctx.stack_.back(); - ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); + ElementPtr user_context = yystack_[0].value.as< ElementPtr > (); ConstElementPtr old = parent->get("user-context"); // Handle already existing user context @@ -2965,23 +2916,23 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2969 "dhcp6_parser.cc" +#line 2920 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 527: // $@84: %empty -#line 1882 "dhcp6_parser.yy" - { + case 531: +#line 1892 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.enter(ctx.NO_KEYWORD); } -#line 2977 "dhcp6_parser.cc" +#line 2928 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 528: // comment: "comment" $@84 ":" "constant string" -#line 1884 "dhcp6_parser.yy" - { + case 532: +#line 1894 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); - ElementPtr comment(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr comment(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); user_context->set("comment", comment); // Handle already existing user context @@ -3002,1263 +2953,1259 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3006 "dhcp6_parser.cc" +#line 2957 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 529: // $@85: %empty -#line 1912 "dhcp6_parser.yy" - { + case 533: +#line 1922 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("pd-pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pd-pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.PD_POOLS); } -#line 3018 "dhcp6_parser.cc" +#line 2969 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 530: // pd_pools_list: "pd-pools" $@85 ":" "[" pd_pools_list_content "]" -#line 1918 "dhcp6_parser.yy" - { + case 534: +#line 1928 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3027 "dhcp6_parser.cc" +#line 2978 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 535: // $@86: %empty -#line 1933 "dhcp6_parser.yy" - { + case 539: +#line 1943 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3037 "dhcp6_parser.cc" +#line 2988 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 536: // pd_pool_entry: "{" $@86 pd_pool_params "}" -#line 1937 "dhcp6_parser.yy" - { + case 540: +#line 1947 "dhcp6_parser.yy" // lalr1.cc:859 + { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("prefix-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3049 "dhcp6_parser.cc" +#line 3000 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 537: // $@87: %empty -#line 1945 "dhcp6_parser.yy" - { + case 541: +#line 1955 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3059 "dhcp6_parser.cc" +#line 3010 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 538: // sub_pd_pool: "{" $@87 pd_pool_params "}" -#line 1949 "dhcp6_parser.yy" - { + case 542: +#line 1959 "dhcp6_parser.yy" // lalr1.cc:859 + { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("prefix-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3071 "dhcp6_parser.cc" +#line 3022 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 552: // $@88: %empty -#line 1974 "dhcp6_parser.yy" - { + case 556: +#line 1984 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3080 "dhcp6_parser.cc" +#line 3031 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 553: // pd_prefix: "prefix" $@88 ":" "constant string" -#line 1977 "dhcp6_parser.yy" - { - ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 557: +#line 1987 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } -#line 3090 "dhcp6_parser.cc" +#line 3041 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 554: // pd_prefix_len: "prefix-len" ":" "integer" -#line 1983 "dhcp6_parser.yy" - { + case 558: +#line 1993 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("prefix-len", ctx.loc2pos(yystack_[2].location)); - ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 3100 "dhcp6_parser.cc" +#line 3051 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 555: // $@89: %empty -#line 1989 "dhcp6_parser.yy" - { + case 559: +#line 1999 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("excluded-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3109 "dhcp6_parser.cc" +#line 3060 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 556: // excluded_prefix: "excluded-prefix" $@89 ":" "constant string" -#line 1992 "dhcp6_parser.yy" - { - ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 560: +#line 2002 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 3119 "dhcp6_parser.cc" +#line 3070 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 557: // excluded_prefix_len: "excluded-prefix-len" ":" "integer" -#line 1998 "dhcp6_parser.yy" - { + case 561: +#line 2008 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 3129 "dhcp6_parser.cc" +#line 3080 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 558: // pd_delegated_len: "delegated-len" ":" "integer" -#line 2004 "dhcp6_parser.yy" - { + case 562: +#line 2014 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("delegated-len", ctx.loc2pos(yystack_[2].location)); - ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr deleg(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 3139 "dhcp6_parser.cc" +#line 3090 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 559: // $@90: %empty -#line 2013 "dhcp6_parser.yy" - { + case 563: +#line 2023 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations", l); ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3151 "dhcp6_parser.cc" +#line 3102 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 560: // reservations: "reservations" $@90 ":" "[" reservations_list "]" -#line 2019 "dhcp6_parser.yy" - { + case 564: +#line 2029 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3160 "dhcp6_parser.cc" +#line 3111 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 565: // $@91: %empty -#line 2032 "dhcp6_parser.yy" - { + case 569: +#line 2042 "dhcp6_parser.yy" // lalr1.cc:859 + { 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 3121 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 566: // reservation: "{" $@91 reservation_params "}" -#line 2036 "dhcp6_parser.yy" - { + case 570: +#line 2046 "dhcp6_parser.yy" // lalr1.cc:859 + { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3179 "dhcp6_parser.cc" +#line 3130 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 567: // $@92: %empty -#line 2041 "dhcp6_parser.yy" - { + case 571: +#line 2051 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3189 "dhcp6_parser.cc" +#line 3140 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 568: // sub_reservation: "{" $@92 reservation_params "}" -#line 2045 "dhcp6_parser.yy" - { + case 572: +#line 2055 "dhcp6_parser.yy" // lalr1.cc:859 + { /// @todo: an identifier parameter is required. // parsing completed } -#line 3198 "dhcp6_parser.cc" +#line 3149 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 584: // $@93: %empty -#line 2072 "dhcp6_parser.yy" - { + case 588: +#line 2082 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-addresses", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3210 "dhcp6_parser.cc" +#line 3161 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 585: // ip_addresses: "ip-addresses" $@93 ":" list_strings -#line 2078 "dhcp6_parser.yy" - { + case 589: +#line 2088 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3219 "dhcp6_parser.cc" +#line 3170 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 586: // $@94: %empty -#line 2083 "dhcp6_parser.yy" - { + case 590: +#line 2093 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("prefixes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefixes", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3231 "dhcp6_parser.cc" +#line 3182 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 587: // prefixes: "prefixes" $@94 ":" list_strings -#line 2089 "dhcp6_parser.yy" - { + case 591: +#line 2099 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3240 "dhcp6_parser.cc" +#line 3191 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 588: // $@95: %empty -#line 2094 "dhcp6_parser.yy" - { + case 592: +#line 2104 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3249 "dhcp6_parser.cc" +#line 3200 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 589: // duid: "duid" $@95 ":" "constant string" -#line 2097 "dhcp6_parser.yy" - { - ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 593: +#line 2107 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 3259 "dhcp6_parser.cc" +#line 3210 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 590: // $@96: %empty -#line 2103 "dhcp6_parser.yy" - { + case 594: +#line 2113 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3268 "dhcp6_parser.cc" +#line 3219 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 591: // hw_address: "hw-address" $@96 ":" "constant string" -#line 2106 "dhcp6_parser.yy" - { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 595: +#line 2116 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 3278 "dhcp6_parser.cc" +#line 3229 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 592: // $@97: %empty -#line 2112 "dhcp6_parser.yy" - { + case 596: +#line 2122 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3287 "dhcp6_parser.cc" +#line 3238 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 593: // hostname: "hostname" $@97 ":" "constant string" -#line 2115 "dhcp6_parser.yy" - { - ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 597: +#line 2125 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 3297 "dhcp6_parser.cc" +#line 3248 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 594: // $@98: %empty -#line 2121 "dhcp6_parser.yy" - { + case 598: +#line 2131 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3306 "dhcp6_parser.cc" +#line 3257 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 595: // flex_id_value: "flex-id" $@98 ":" "constant string" -#line 2124 "dhcp6_parser.yy" - { - ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 599: +#line 2134 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 3316 "dhcp6_parser.cc" +#line 3267 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 596: // $@99: %empty -#line 2130 "dhcp6_parser.yy" - { + case 600: +#line 2140 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3328 "dhcp6_parser.cc" +#line 3279 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 597: // reservation_client_classes: "client-classes" $@99 ":" list_strings -#line 2136 "dhcp6_parser.yy" - { + case 601: +#line 2146 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3337 "dhcp6_parser.cc" +#line 3288 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 598: // $@100: %empty -#line 2144 "dhcp6_parser.yy" - { + case 602: +#line 2154 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay", m); ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3349 "dhcp6_parser.cc" +#line 3300 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 599: // relay: "relay" $@100 ":" "{" relay_map "}" -#line 2150 "dhcp6_parser.yy" - { + case 603: +#line 2160 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3358 "dhcp6_parser.cc" +#line 3309 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 602: // $@101: %empty -#line 2159 "dhcp6_parser.yy" - { + case 606: +#line 2169 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3367 "dhcp6_parser.cc" +#line 3318 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 603: // ip_address: "ip-address" $@101 ":" "constant string" -#line 2162 "dhcp6_parser.yy" - { - ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 607: +#line 2172 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 3377 "dhcp6_parser.cc" +#line 3328 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 604: // $@102: %empty -#line 2171 "dhcp6_parser.yy" - { + case 608: +#line 2181 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", l); ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3389 "dhcp6_parser.cc" +#line 3340 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 605: // client_classes: "client-classes" $@102 ":" "[" client_classes_list "]" -#line 2177 "dhcp6_parser.yy" - { + case 609: +#line 2187 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3398 "dhcp6_parser.cc" +#line 3349 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 608: // $@103: %empty -#line 2186 "dhcp6_parser.yy" - { + case 612: +#line 2196 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3408 "dhcp6_parser.cc" +#line 3359 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 609: // client_class_entry: "{" $@103 client_class_params "}" -#line 2190 "dhcp6_parser.yy" - { + case 613: +#line 2200 "dhcp6_parser.yy" // lalr1.cc:859 + { // 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 3418 "dhcp6_parser.cc" +#line 3369 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 622: // $@104: %empty -#line 2215 "dhcp6_parser.yy" - { + case 626: +#line 2225 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3427 "dhcp6_parser.cc" +#line 3378 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 623: // client_class_test: "test" $@104 ":" "constant string" -#line 2218 "dhcp6_parser.yy" - { - ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 627: +#line 2228 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3437 "dhcp6_parser.cc" +#line 3388 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 624: // only_if_required: "only-if-required" ":" "boolean" -#line 2224 "dhcp6_parser.yy" - { + case 628: +#line 2234 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3447 "dhcp6_parser.cc" +#line 3398 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 625: // $@105: %empty -#line 2233 "dhcp6_parser.yy" - { + case 629: +#line 2243 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("server-id", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-id", m); ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } -#line 3459 "dhcp6_parser.cc" +#line 3410 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 626: // server_id: "server-id" $@105 ":" "{" server_id_params "}" -#line 2239 "dhcp6_parser.yy" - { + case 630: +#line 2249 "dhcp6_parser.yy" // lalr1.cc:859 + { // 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 3470 "dhcp6_parser.cc" +#line 3421 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 638: // $@106: %empty -#line 2261 "dhcp6_parser.yy" - { + case 642: +#line 2271 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DUID_TYPE); } -#line 3479 "dhcp6_parser.cc" +#line 3430 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 639: // server_id_type: "type" $@106 ":" duid_type -#line 2264 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); + case 643: +#line 2274 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3488 "dhcp6_parser.cc" +#line 3439 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 640: // duid_type: "LLT" -#line 2269 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 3494 "dhcp6_parser.cc" + case 644: +#line 2279 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } +#line 3445 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 641: // duid_type: "EN" -#line 2270 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 3500 "dhcp6_parser.cc" + case 645: +#line 2280 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } +#line 3451 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 642: // duid_type: "LL" -#line 2271 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 3506 "dhcp6_parser.cc" + case 646: +#line 2281 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } +#line 3457 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 643: // htype: "htype" ":" "integer" -#line 2274 "dhcp6_parser.yy" - { + case 647: +#line 2284 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("htype", ctx.loc2pos(yystack_[2].location)); - ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } -#line 3516 "dhcp6_parser.cc" +#line 3467 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 644: // $@107: %empty -#line 2280 "dhcp6_parser.yy" - { + case 648: +#line 2290 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("identifier", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3525 "dhcp6_parser.cc" +#line 3476 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 645: // identifier: "identifier" $@107 ":" "constant string" -#line 2283 "dhcp6_parser.yy" - { - ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 649: +#line 2293 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } -#line 3535 "dhcp6_parser.cc" +#line 3486 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 646: // time: "time" ":" "integer" -#line 2289 "dhcp6_parser.yy" - { + case 650: +#line 2299 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("time", ctx.loc2pos(yystack_[2].location)); - ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 3545 "dhcp6_parser.cc" +#line 3496 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 647: // enterprise_id: "enterprise-id" ":" "integer" -#line 2295 "dhcp6_parser.yy" - { + case 651: +#line 2305 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("enterprise-id", ctx.loc2pos(yystack_[2].location)); - ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 3555 "dhcp6_parser.cc" +#line 3506 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 648: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2303 "dhcp6_parser.yy" - { + case 652: +#line 2313 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); - ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 3565 "dhcp6_parser.cc" +#line 3516 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 649: // $@108: %empty -#line 2311 "dhcp6_parser.yy" - { + case 653: +#line 2321 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("control-socket", m); ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 3577 "dhcp6_parser.cc" +#line 3528 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 650: // control_socket: "control-socket" $@108 ":" "{" control_socket_params "}" -#line 2317 "dhcp6_parser.yy" - { + case 654: +#line 2327 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 3586 "dhcp6_parser.cc" +#line 3537 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 658: // $@109: %empty -#line 2333 "dhcp6_parser.yy" - { + case 662: +#line 2343 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3595 "dhcp6_parser.cc" +#line 3546 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 659: // socket_type: "socket-type" $@109 ":" "constant string" -#line 2336 "dhcp6_parser.yy" - { - ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 663: +#line 2346 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 3605 "dhcp6_parser.cc" +#line 3556 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 660: // $@110: %empty -#line 2342 "dhcp6_parser.yy" - { + case 664: +#line 2352 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3614 "dhcp6_parser.cc" +#line 3565 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 661: // socket_name: "socket-name" $@110 ":" "constant string" -#line 2345 "dhcp6_parser.yy" - { - ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 665: +#line 2355 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 3624 "dhcp6_parser.cc" +#line 3575 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 662: // $@111: %empty -#line 2354 "dhcp6_parser.yy" - { + case 666: +#line 2364 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-queue-control", qc); ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 3636 "dhcp6_parser.cc" +#line 3587 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 663: // dhcp_queue_control: "dhcp-queue-control" $@111 ":" "{" queue_control_params "}" -#line 2360 "dhcp6_parser.yy" - { + case 667: +#line 2370 "dhcp6_parser.yy" // lalr1.cc:859 + { // 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 3647 "dhcp6_parser.cc" +#line 3598 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 672: // enable_queue: "enable-queue" ":" "boolean" -#line 2379 "dhcp6_parser.yy" - { + case 676: +#line 2389 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 3657 "dhcp6_parser.cc" +#line 3608 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 673: // $@112: %empty -#line 2385 "dhcp6_parser.yy" - { + case 677: +#line 2395 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3666 "dhcp6_parser.cc" +#line 3617 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 674: // queue_type: "queue-type" $@112 ":" "constant string" -#line 2388 "dhcp6_parser.yy" - { - ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 678: +#line 2398 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 3676 "dhcp6_parser.cc" +#line 3627 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 675: // capacity: "capacity" ":" "integer" -#line 2394 "dhcp6_parser.yy" - { + case 679: +#line 2404 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); - ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr c(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 3686 "dhcp6_parser.cc" +#line 3637 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 676: // $@113: %empty -#line 2400 "dhcp6_parser.yy" - { - ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); + case 680: +#line 2410 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.unique(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3695 "dhcp6_parser.cc" +#line 3646 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 677: // arbitrary_map_entry: "constant string" $@113 ":" value -#line 2403 "dhcp6_parser.yy" - { - ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + case 681: +#line 2413 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set(yystack_[3].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3704 "dhcp6_parser.cc" +#line 3655 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 678: // $@114: %empty -#line 2410 "dhcp6_parser.yy" - { + case 682: +#line 2420 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-ddns", m); ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 3716 "dhcp6_parser.cc" +#line 3667 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 679: // dhcp_ddns: "dhcp-ddns" $@114 ":" "{" dhcp_ddns_params "}" -#line 2416 "dhcp6_parser.yy" - { + case 683: +#line 2426 "dhcp6_parser.yy" // lalr1.cc:859 + { // 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 3727 "dhcp6_parser.cc" +#line 3678 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 680: // $@115: %empty -#line 2423 "dhcp6_parser.yy" - { + case 684: +#line 2433 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3737 "dhcp6_parser.cc" +#line 3688 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 681: // sub_dhcp_ddns: "{" $@115 dhcp_ddns_params "}" -#line 2427 "dhcp6_parser.yy" - { + case 685: +#line 2437 "dhcp6_parser.yy" // lalr1.cc:859 + { // 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 3747 "dhcp6_parser.cc" +#line 3698 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 702: // enable_updates: "enable-updates" ":" "boolean" -#line 2457 "dhcp6_parser.yy" - { + case 706: +#line 2467 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 3757 "dhcp6_parser.cc" +#line 3708 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 703: // $@116: %empty -#line 2464 "dhcp6_parser.yy" - { + case 707: +#line 2474 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3766 "dhcp6_parser.cc" +#line 3717 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 704: // dep_qualifying_suffix: "qualifying-suffix" $@116 ":" "constant string" -#line 2467 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 708: +#line 2477 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 3776 "dhcp6_parser.cc" +#line 3727 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 705: // $@117: %empty -#line 2473 "dhcp6_parser.yy" - { + case 709: +#line 2483 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3785 "dhcp6_parser.cc" +#line 3736 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 706: // server_ip: "server-ip" $@117 ":" "constant string" -#line 2476 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 710: +#line 2486 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 3795 "dhcp6_parser.cc" +#line 3746 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 707: // server_port: "server-port" ":" "integer" -#line 2482 "dhcp6_parser.yy" - { + case 711: +#line 2492 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); - ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 3805 "dhcp6_parser.cc" +#line 3756 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 708: // $@118: %empty -#line 2488 "dhcp6_parser.yy" - { + case 712: +#line 2498 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3814 "dhcp6_parser.cc" +#line 3765 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 709: // sender_ip: "sender-ip" $@118 ":" "constant string" -#line 2491 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 713: +#line 2501 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 3824 "dhcp6_parser.cc" +#line 3775 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 710: // sender_port: "sender-port" ":" "integer" -#line 2497 "dhcp6_parser.yy" - { + case 714: +#line 2507 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); - ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 3834 "dhcp6_parser.cc" +#line 3785 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 711: // max_queue_size: "max-queue-size" ":" "integer" -#line 2503 "dhcp6_parser.yy" - { + case 715: +#line 2513 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 3844 "dhcp6_parser.cc" +#line 3795 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 712: // $@119: %empty -#line 2509 "dhcp6_parser.yy" - { + case 716: +#line 2519 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 3853 "dhcp6_parser.cc" +#line 3804 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 713: // ncr_protocol: "ncr-protocol" $@119 ":" ncr_protocol_value -#line 2512 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); + case 717: +#line 2522 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3862 "dhcp6_parser.cc" +#line 3813 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 714: // ncr_protocol_value: "UDP" -#line 2518 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 3868 "dhcp6_parser.cc" + case 718: +#line 2528 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } +#line 3819 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 715: // ncr_protocol_value: "TCP" -#line 2519 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 3874 "dhcp6_parser.cc" + case 719: +#line 2529 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } +#line 3825 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 716: // $@120: %empty -#line 2522 "dhcp6_parser.yy" - { + case 720: +#line 2532 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 3883 "dhcp6_parser.cc" +#line 3834 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 717: // ncr_format: "ncr-format" $@120 ":" "JSON" -#line 2525 "dhcp6_parser.yy" - { + case 721: +#line 2535 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 3893 "dhcp6_parser.cc" +#line 3844 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 718: // dep_override_no_update: "override-no-update" ":" "boolean" -#line 2532 "dhcp6_parser.yy" - { + case 722: +#line 2542 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 3903 "dhcp6_parser.cc" +#line 3854 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 719: // dep_override_client_update: "override-client-update" ":" "boolean" -#line 2539 "dhcp6_parser.yy" - { + case 723: +#line 2549 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 3913 "dhcp6_parser.cc" +#line 3864 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 720: // $@121: %empty -#line 2546 "dhcp6_parser.yy" - { + case 724: +#line 2556 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 3922 "dhcp6_parser.cc" +#line 3873 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 721: // dep_replace_client_name: "replace-client-name" $@121 ":" ddns_replace_client_name_value -#line 2549 "dhcp6_parser.yy" - { - ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); + case 725: +#line 2559 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3931 "dhcp6_parser.cc" +#line 3882 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 722: // $@122: %empty -#line 2555 "dhcp6_parser.yy" - { + case 726: +#line 2565 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3940 "dhcp6_parser.cc" +#line 3891 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 723: // dep_generated_prefix: "generated-prefix" $@122 ":" "constant string" -#line 2558 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 727: +#line 2568 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 3950 "dhcp6_parser.cc" +#line 3901 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 724: // $@123: %empty -#line 2565 "dhcp6_parser.yy" - { + case 728: +#line 2575 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3959 "dhcp6_parser.cc" +#line 3910 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 725: // dep_hostname_char_set: "hostname-char-set" $@123 ":" "constant string" -#line 2568 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 729: +#line 2578 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 3969 "dhcp6_parser.cc" +#line 3920 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 726: // $@124: %empty -#line 2575 "dhcp6_parser.yy" - { + case 730: +#line 2585 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3978 "dhcp6_parser.cc" +#line 3929 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 727: // dep_hostname_char_replacement: "hostname-char-replacement" $@124 ":" "constant string" -#line 2578 "dhcp6_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 731: +#line 2588 "dhcp6_parser.yy" // lalr1.cc:859 + { + 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 3988 "dhcp6_parser.cc" +#line 3939 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 728: // $@125: %empty -#line 2587 "dhcp6_parser.yy" - { + case 732: +#line 2597 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-control", i); ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 4000 "dhcp6_parser.cc" +#line 3951 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 729: // config_control: "config-control" $@125 ":" "{" config_control_params "}" -#line 2593 "dhcp6_parser.yy" - { + case 733: +#line 2603 "dhcp6_parser.yy" // lalr1.cc:859 + { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4010 "dhcp6_parser.cc" +#line 3961 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 730: // $@126: %empty -#line 2599 "dhcp6_parser.yy" - { + case 734: +#line 2609 "dhcp6_parser.yy" // lalr1.cc:859 + { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4020 "dhcp6_parser.cc" +#line 3971 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 731: // sub_config_control: "{" $@126 config_control_params "}" -#line 2603 "dhcp6_parser.yy" - { + case 735: +#line 2613 "dhcp6_parser.yy" // lalr1.cc:859 + { // No config_control params are required // parsing completed } -#line 4029 "dhcp6_parser.cc" +#line 3980 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 736: // $@127: %empty -#line 2618 "dhcp6_parser.yy" - { + case 740: +#line 2628 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 4041 "dhcp6_parser.cc" +#line 3992 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 737: // config_databases: "config-databases" $@127 ":" "[" database_list "]" -#line 2624 "dhcp6_parser.yy" - { + case 741: +#line 2634 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 4050 "dhcp6_parser.cc" +#line 4001 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 738: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 2629 "dhcp6_parser.yy" - { + case 742: +#line 2639 "dhcp6_parser.yy" // lalr1.cc:859 + { 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))); + 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 4060 "dhcp6_parser.cc" +#line 4011 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 739: // $@128: %empty -#line 2637 "dhcp6_parser.yy" - { + case 743: +#line 2647 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 4072 "dhcp6_parser.cc" +#line 4023 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 740: // loggers: "loggers" $@128 ":" "[" loggers_entries "]" -#line 2643 "dhcp6_parser.yy" - { + case 744: +#line 2653 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 4081 "dhcp6_parser.cc" +#line 4032 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 743: // $@129: %empty -#line 2655 "dhcp6_parser.yy" - { + case 747: +#line 2665 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 4091 "dhcp6_parser.cc" +#line 4042 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 744: // logger_entry: "{" $@129 logger_params "}" -#line 2659 "dhcp6_parser.yy" - { + case 748: +#line 2669 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); } -#line 4099 "dhcp6_parser.cc" +#line 4050 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 754: // debuglevel: "debuglevel" ":" "integer" -#line 2676 "dhcp6_parser.yy" - { + case 758: +#line 2686 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); - ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 4109 "dhcp6_parser.cc" +#line 4060 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 755: // $@130: %empty -#line 2682 "dhcp6_parser.yy" - { + case 759: +#line 2692 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4118 "dhcp6_parser.cc" +#line 4069 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 756: // severity: "severity" $@130 ":" "constant string" -#line 2685 "dhcp6_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 760: +#line 2695 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 4128 "dhcp6_parser.cc" +#line 4079 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 757: // $@131: %empty -#line 2691 "dhcp6_parser.yy" - { + case 761: +#line 2701 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("output_options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4140 "dhcp6_parser.cc" +#line 4091 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 758: // output_options_list: "output_options" $@131 ":" "[" output_options_list_content "]" -#line 2697 "dhcp6_parser.yy" - { + case 762: +#line 2707 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); ctx.leave(); } -#line 4149 "dhcp6_parser.cc" +#line 4100 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 761: // $@132: %empty -#line 2706 "dhcp6_parser.yy" - { + case 765: +#line 2716 "dhcp6_parser.yy" // lalr1.cc:859 + { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4159 "dhcp6_parser.cc" +#line 4110 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 762: // output_entry: "{" $@132 output_params_list "}" -#line 2710 "dhcp6_parser.yy" - { + case 766: +#line 2720 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.stack_.pop_back(); } -#line 4167 "dhcp6_parser.cc" +#line 4118 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 770: // $@133: %empty -#line 2725 "dhcp6_parser.yy" - { + case 774: +#line 2735 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4176 "dhcp6_parser.cc" +#line 4127 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 771: // output: "output" $@133 ":" "constant string" -#line 2728 "dhcp6_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 775: +#line 2738 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 4186 "dhcp6_parser.cc" +#line 4137 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 772: // flush: "flush" ":" "boolean" -#line 2734 "dhcp6_parser.yy" - { + case 776: +#line 2744 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); - ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 4196 "dhcp6_parser.cc" +#line 4147 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 773: // maxsize: "maxsize" ":" "integer" -#line 2740 "dhcp6_parser.yy" - { + case 777: +#line 2750 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); - ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 4206 "dhcp6_parser.cc" +#line 4157 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 774: // maxver: "maxver" ":" "integer" -#line 2746 "dhcp6_parser.yy" - { + case 778: +#line 2756 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); - ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 4216 "dhcp6_parser.cc" +#line 4167 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 775: // $@134: %empty -#line 2752 "dhcp6_parser.yy" - { + case 779: +#line 2762 "dhcp6_parser.yy" // lalr1.cc:859 + { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4225 "dhcp6_parser.cc" +#line 4176 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 776: // pattern: "pattern" $@134 ":" "constant string" -#line 2755 "dhcp6_parser.yy" - { - ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + case 780: +#line 2765 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 4235 "dhcp6_parser.cc" +#line 4186 "dhcp6_parser.cc" // lalr1.cc:859 break; -#line 4239 "dhcp6_parser.cc" - +#line 4190 "dhcp6_parser.cc" // lalr1.cc:859 default: break; } } -#if YY_EXCEPTIONS catch (const syntax_error& yyexc) { - YYCDEBUG << "Caught exception: " << yyexc.what() << '\n'; error (yyexc); YYERROR; } -#endif // YY_EXCEPTIONS YY_SYMBOL_PRINT ("-> $$ =", yylhs); yypop_ (yylen); yylen = 0; + YY_STACK_PRINT (); // Shift the result of the reduction. - yypush_ (YY_NULLPTR, YY_MOVE (yylhs)); + yypush_ (YY_NULLPTR, yylhs); } goto yynewstate; - /*--------------------------------------. | yyerrlab -- here on detecting error. | `--------------------------------------*/ @@ -4267,9 +4214,7 @@ namespace isc { namespace dhcp { if (!yyerrstatus_) { ++yynerrs_; - context yyctx (*this, yyla); - std::string msg = yysyntax_error_ (yyctx); - error (yyla.location, YY_MOVE (msg)); + error (yyla.location, yysyntax_error_ (yystack_[0].state, yyla)); } @@ -4280,7 +4225,7 @@ namespace isc { namespace dhcp { error, discard it. */ // Return failure if at end of input. - if (yyla.kind () == symbol_kind::S_YYEOF) + if (yyla.type_get () == yyeof_) YYABORT; else if (!yyla.empty ()) { @@ -4297,81 +4242,69 @@ namespace isc { namespace dhcp { | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: - /* Pacify compilers when the user code never invokes YYERROR and - the label yyerrorlab therefore never appears in user code. */ - if (false) - YYERROR; + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (false) + goto yyerrorlab; + yyerror_range[1].location = yystack_[yylen - 1].location; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ yypop_ (yylen); yylen = 0; - YY_STACK_PRINT (); goto yyerrlab1; - /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus_ = 3; // Each real token shifted decrements this. - // Pop stack until we find a state that shifts the error token. - for (;;) - { - yyn = yypact_[+yystack_[0].state]; - if (!yy_pact_value_is_default_ (yyn)) - { - yyn += symbol_kind::S_YYerror; - if (0 <= yyn && yyn <= yylast_ - && yycheck_[yyn] == symbol_kind::S_YYerror) - { - yyn = yytable_[yyn]; - if (0 < yyn) - break; - } - } - - // Pop the current state because it cannot handle the error token. - if (yystack_.size () == 1) - YYABORT; - - yyerror_range[1].location = yystack_[0].location; - yy_destroy_ ("Error: popping", yystack_[0]); - yypop_ (); - YY_STACK_PRINT (); - } { stack_symbol_type error_token; + for (;;) + { + yyn = yypact_[yystack_[0].state]; + if (!yy_pact_value_is_default_ (yyn)) + { + yyn += yyterror_; + if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_) + { + yyn = yytable_[yyn]; + if (0 < yyn) + break; + } + } + + // Pop the current state because it cannot handle the error token. + if (yystack_.size () == 1) + YYABORT; + + yyerror_range[1].location = yystack_[0].location; + yy_destroy_ ("Error: popping", yystack_[0]); + yypop_ (); + YY_STACK_PRINT (); + } yyerror_range[2].location = yyla.location; YYLLOC_DEFAULT (error_token.location, yyerror_range, 2); // Shift the error token. - error_token.state = state_type (yyn); - yypush_ ("Shifting", YY_MOVE (error_token)); + error_token.state = yyn; + yypush_ ("Shifting", error_token); } goto yynewstate; - - /*-------------------------------------. - | yyacceptlab -- YYACCEPT comes here. | - `-------------------------------------*/ + // Accept. yyacceptlab: yyresult = 0; goto yyreturn; - - /*-----------------------------------. - | yyabortlab -- YYABORT comes here. | - `-----------------------------------*/ + // Abort. yyabortlab: yyresult = 1; goto yyreturn; - - /*-----------------------------------------------------. - | yyreturn -- parsing is finished, return the result. | - `-----------------------------------------------------*/ yyreturn: if (!yyla.empty ()) yy_destroy_ ("Cleanup: discarding lookahead", yyla); @@ -4379,7 +4312,6 @@ namespace isc { namespace dhcp { /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ yypop_ (yylen); - YY_STACK_PRINT (); while (1 < yystack_.size ()) { yy_destroy_ ("Cleanup: popping", yystack_[0]); @@ -4388,12 +4320,12 @@ namespace isc { namespace dhcp { return yyresult; } -#if YY_EXCEPTIONS catch (...) { - YYCDEBUG << "Exception caught: cleaning lookahead and stack\n"; + YYCDEBUG << "Exception caught: cleaning lookahead and stack" + << std::endl; // Do not try to display the values of the reclaimed symbols, - // as their printers might throw an exception. + // as their printer might throw an exception. if (!yyla.empty ()) yy_destroy_ (YY_NULLPTR, yyla); @@ -4404,109 +4336,26 @@ namespace isc { namespace dhcp { } throw; } -#endif // YY_EXCEPTIONS } void Dhcp6Parser::error (const syntax_error& yyexc) { - error (yyexc.location, yyexc.what ()); - } - - /* Return YYSTR after stripping away unnecessary quotes and - backslashes, so that it's suitable for yyerror. The heuristic is - that double-quoting is unnecessary unless the string contains an - apostrophe, a comma, or backslash (other than backslash-backslash). - YYSTR is taken from yytname. */ - std::string - Dhcp6Parser::yytnamerr_ (const char *yystr) - { - if (*yystr == '"') - { - std::string yyr; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - else - goto append; - - append: - default: - yyr += *yyp; - break; - - case '"': - return yyr; - } - do_not_strip_quotes: ; - } - - return yystr; + error (yyexc.location, yyexc.what()); } + // Generate an error message. std::string - Dhcp6Parser::symbol_name (symbol_kind_type yysymbol) + Dhcp6Parser::yysyntax_error_ (state_type yystate, const symbol_type& yyla) const { - return yytnamerr_ (yytname_[yysymbol]); - } - - - - // Dhcp6Parser::context. - Dhcp6Parser::context::context (const Dhcp6Parser& yyparser, const symbol_type& yyla) - : yyparser_ (yyparser) - , yyla_ (yyla) - {} - - int - Dhcp6Parser::context::expected_tokens (symbol_kind_type yyarg[], int yyargn) const - { - // Actual number of expected tokens - int yycount = 0; - - int yyn = yypact_[+yyparser_.yystack_[0].state]; - if (!yy_pact_value_is_default_ (yyn)) - { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. In other words, skip the first -YYN actions for - this state because they are default actions. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - // Stay within bounds of both yycheck and yytname. - int yychecklim = yylast_ - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - for (int yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck_[yyx + yyn] == yyx && yyx != symbol_kind::S_YYerror - && !yy_table_value_is_error_ (yytable_[yyx + yyn])) - { - if (!yyarg) - ++yycount; - else if (yycount == yyargn) - return 0; - else - yyarg[yycount++] = YY_CAST (symbol_kind_type, yyx); - } - } - - if (yyarg && yycount == 0 && 0 < yyargn) - yyarg[0] = symbol_kind::S_YYEMPTY; - return yycount; - } - - + // Number of reported tokens (one for the "unexpected", one per + // "expected"). + size_t yycount = 0; + // Its maximum. + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + // Arguments of yyformat. + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int - Dhcp6Parser::yy_syntax_error_arguments_ (const context& yyctx, - symbol_kind_type yyarg[], int yyargn) const - { /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action @@ -4525,32 +4374,41 @@ namespace isc { namespace dhcp { - Of course, the expected token list depends on states to have correct lookahead information, and it depends on the parser not to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state merging - (from LALR or IELR) and default reductions corrupt the expected - token list. However, the list is correct for canonical LR with - one exception: it will still contain any token that will not be - accepted due to an error action in a later state. + scanner and before detecting a syntax error. Thus, state + merging (from LALR or IELR) and default reductions corrupt the + expected token list. However, the list is correct for + canonical LR with one exception: it will still contain any + token that will not be accepted due to an error action in a + later state. */ - - if (!yyctx.lookahead ().empty ()) + if (!yyla.empty ()) { - if (yyarg) - yyarg[0] = yyctx.token (); - int yyn = yyctx.expected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1); - return yyn + 1; + int yytoken = yyla.type_get (); + yyarg[yycount++] = yytname_[yytoken]; + int yyn = yypact_[yystate]; + if (!yy_pact_value_is_default_ (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + // Stay within bounds of both yycheck and yytname. + int yychecklim = yylast_ - yyn + 1; + int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_; + for (int yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_ + && !yy_table_value_is_error_ (yytable_[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + break; + } + else + yyarg[yycount++] = yytname_[yyx]; + } + } } - return 0; - } - - // Generate an error message. - std::string - Dhcp6Parser::yysyntax_error_ (const context& yyctx) const - { - // Its maximum. - enum { YYARGS_MAX = 5 }; - // Arguments of yyformat. - symbol_kind_type yyarg[YYARGS_MAX]; - int yycount = yy_syntax_error_arguments_ (yyctx, yyarg, YYARGS_MAX); char const* yyformat = YY_NULLPTR; switch (yycount) @@ -4559,23 +4417,22 @@ namespace isc { namespace dhcp { case N: \ yyformat = S; \ break - default: // Avoid compiler warnings. - YYCASE_ (0, YY_("syntax error")); - YYCASE_ (1, YY_("syntax error, unexpected %s")); - YYCASE_ (2, YY_("syntax error, unexpected %s, expecting %s")); - YYCASE_ (3, YY_("syntax error, unexpected %s, expecting %s or %s")); - YYCASE_ (4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); - YYCASE_ (5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); #undef YYCASE_ } std::string yyres; // Argument number. - std::ptrdiff_t yyi = 0; + size_t yyi = 0; for (char const* yyp = yyformat; *yyp; ++yyp) if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount) { - yyres += symbol_name (yyarg[yyi++]); + yyres += yytnamerr_ (yyarg[yyi++]); ++yyp; } else @@ -4584,841 +4441,847 @@ namespace isc { namespace dhcp { } - const short Dhcp6Parser::yypact_ninf_ = -944; + const short int Dhcp6Parser::yypact_ninf_ = -949; const signed char Dhcp6Parser::yytable_ninf_ = -1; - const short + const short int Dhcp6Parser::yypact_[] = { - 186, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, 37, 33, 44, 62, 64, - 87, 95, 99, 103, 107, 116, 118, 147, 148, 205, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, 33, -4, - 203, 115, 39, 499, 10, 235, 222, 151, 117, 67, - -74, 605, 71, -944, 223, 225, 234, 233, 247, -944, - 299, -944, -944, -944, -944, -944, -944, 263, 304, 312, - 322, 330, 341, 363, 384, 390, 391, 406, 407, 409, - 410, -944, 412, 413, 420, 424, 426, -944, -944, -944, - 428, 438, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, 444, -944, - -944, -944, -944, -944, -944, 448, -944, 449, -944, 51, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, 452, -944, - 54, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, 458, 460, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - 75, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, 101, -944, -944, -944, -944, -944, 463, -944, - 464, 465, -944, -944, -944, -944, -944, -944, 109, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, 377, 294, -944, -944, - -944, -944, -944, -944, -944, -944, 379, -944, -944, 468, - -944, -944, -944, 469, -944, -944, 470, 473, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, 480, 484, -944, -944, -944, -944, 481, 488, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, 150, -944, -944, -944, 489, -944, -944, 490, -944, - 491, 492, -944, -944, 494, 496, -944, -944, -944, -944, - -944, -944, -944, 206, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, 497, 207, -944, -944, -944, -944, 33, 33, -944, - 307, 504, -944, 506, 508, 509, 511, 516, 519, 326, - 328, 329, 332, 333, 334, 336, 337, 355, 340, 357, - 358, 360, 369, 525, 370, 372, 371, 373, 374, 534, - 535, 569, 375, 376, 574, 575, 577, 579, 580, 581, - 582, 583, 592, 593, 594, 595, 596, 597, 599, 600, - 415, 602, 604, 608, 609, 611, 612, 408, 613, -944, - 115, -944, 615, 419, 39, -944, 618, 619, 620, 621, - 622, 429, 430, 623, 625, 626, 499, -944, 628, 10, - -944, 629, 435, 631, 437, 442, 235, -944, 633, 639, - 640, 641, 642, 643, 644, -944, 222, -944, 645, 646, - 453, 647, 649, 655, 459, -944, 117, 657, 462, 466, - -944, 67, 660, 661, 14, -944, 467, 662, 665, 471, - 669, 475, 476, 672, 674, 478, 479, 692, 703, 711, - 712, 605, -944, 713, 520, 71, -944, -944, -944, 714, - 485, 522, 715, 716, 717, 718, 723, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, 523, -944, -944, -944, -944, -944, 55, 533, 536, - -944, -944, 730, 731, 732, 733, 540, 382, 734, 736, - 737, 738, 739, 742, 744, 745, 746, 747, -944, 748, - 763, 764, 765, 546, 553, -944, 768, -944, 769, -944, - -944, 770, 771, 554, 584, 585, -944, -944, 769, 586, - 772, -944, 587, -944, 588, -944, 589, -944, -944, -944, - 769, 769, 769, 590, 591, 598, 601, -944, 603, 606, - -944, 607, 610, 614, -944, -944, 616, -944, -944, -944, - 617, 733, -944, -944, 624, 627, -944, 630, -944, -944, - -19, 635, -944, -944, 55, 632, 634, 636, -944, 775, - -944, -944, 33, 115, -944, 71, 39, 242, 242, 774, - -944, -944, -944, -944, -944, -944, -944, -944, -944, 783, - 784, 785, -944, -944, -944, -944, -944, -944, -944, -944, - 786, -76, 33, 290, 688, 788, 790, 791, 73, 228, - -46, 42, 202, 605, -944, -944, 793, -944, -944, 799, - 800, -944, -944, -944, -944, -944, -52, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, 774, -944, 227, 239, - 245, -944, -944, -944, -944, 807, 809, 812, 813, 814, - -944, 815, 816, -944, -944, -944, 817, 819, 820, 822, - -944, 291, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, 292, -944, 821, 826, -944, -944, 825, - 830, -944, -944, 831, 833, -944, -944, 832, 836, -944, - -944, 834, 838, -944, -944, -944, 57, -944, -944, -944, - 837, -944, -944, -944, 187, -944, -944, -944, -944, 293, - -944, -944, -944, 254, -944, -944, 839, 841, -944, -944, - 840, 844, -944, 845, 846, 847, 848, 849, 850, 302, - -944, -944, -944, -944, -944, -944, -944, -944, -944, 851, - 852, 853, -944, -944, -944, -944, 324, -944, -944, -944, - -944, -944, -944, 854, 855, 856, -944, 325, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, 339, - -944, -944, -944, 857, -944, 858, -944, -944, -944, 350, - -944, -944, -944, -944, -944, 351, -944, 258, -944, 650, - -944, 859, 860, -944, -944, 861, 863, -944, -944, -944, - 862, -944, 865, -944, -944, -944, 864, 868, 869, 870, - 670, 663, 676, 675, 678, 874, 680, 681, 877, 878, - 879, 685, 686, 687, 690, 242, -944, -944, 242, -944, - 774, 499, -944, 783, 117, -944, 784, 67, -944, 785, - 637, -944, 786, -76, -944, -944, 290, -944, 882, 688, - -944, 259, 788, -944, 222, -944, 790, -74, -944, 791, - 693, 695, 696, 699, 706, 708, 73, -944, 883, 887, - 709, 724, 725, 228, -944, 735, 726, 740, -46, -944, - 913, 941, 42, -944, 750, 960, 777, 966, 202, -944, - -944, 214, 793, -944, -944, 967, 974, 10, -944, 799, - 235, -944, 800, 976, -944, -944, 414, 794, 805, 808, - -944, -944, -944, -944, -944, 818, -944, -944, 823, 827, - 828, -944, -944, -944, -944, -944, 352, -944, 353, -944, - 999, -944, 1004, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, 354, -944, -944, -944, - -944, -944, -944, -944, -944, 829, -944, -944, 980, -944, - -944, -944, -944, -944, 1006, 1014, -944, -944, -944, -944, - -944, 1010, -944, 381, -944, -944, -944, -944, -944, -944, - -944, -944, 289, 835, -944, -944, -944, -944, -944, -944, - -944, -944, 843, 866, -944, -944, 867, -944, 33, -944, - -944, 1016, -944, -944, -944, -944, -944, 383, -944, -944, - -944, -944, -944, -944, 871, 393, -944, 399, -944, 872, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, 637, -944, -944, 1019, - 873, -944, 259, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, 1020, 880, 1025, 214, -944, -944, - -944, -944, -944, -944, 875, -944, -944, 1027, -944, 884, - -944, -944, 1023, -944, -944, 338, -944, -32, 1023, -944, - -944, 1030, 1031, 1032, -944, 401, -944, -944, -944, -944, - -944, -944, -944, 1033, 876, 881, 885, 1034, -32, -944, - 888, -944, -944, -944, 889, -944, -944, -944 + 190, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, 39, 33, 62, 64, 78, + 89, 99, 103, 107, 131, 138, 217, 231, 244, 254, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, 33, -132, + 119, 115, 49, 505, 258, 235, 221, 127, 120, 283, + -75, 537, 144, -949, 311, 226, 239, 242, 294, -949, + 323, -949, -949, -949, -949, -949, -949, 328, 338, 339, + 358, 386, 404, 405, 408, 409, 411, 414, 417, 424, + 426, -949, 428, 433, 436, 437, 439, -949, -949, -949, + 440, 442, 448, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, 452, + -949, -949, -949, -949, -949, -949, 457, -949, 462, -949, + 60, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + 464, -949, 94, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, 467, 468, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, 101, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, 109, -949, -949, -949, -949, + -949, 469, -949, 472, 473, -949, -949, -949, -949, -949, + -949, 113, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, 357, + 343, -949, -949, -949, -949, -949, -949, -949, -949, 390, + -949, -949, 476, -949, -949, -949, 479, -949, -949, 477, + 481, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, 482, 484, -949, -949, -949, -949, + 485, 489, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, 128, -949, -949, -949, 491, -949, + -949, 492, -949, 493, 494, -949, -949, 495, 496, -949, + -949, -949, -949, -949, -949, -949, 129, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, 498, 186, -949, -949, -949, -949, + 33, 33, -949, 306, 500, -949, 508, 510, 512, 513, + 515, 520, 309, 327, 329, 331, 333, 334, 335, 336, + 337, 341, 344, 346, 340, 362, 534, 363, 364, 373, + 374, 376, 539, 561, 575, 378, 379, 380, 579, 580, + 581, 582, 584, 586, 587, 588, 589, 590, 599, 600, + 601, 602, 604, 605, 412, 607, 609, 611, 612, 615, + 616, 419, 618, -949, 115, -949, 619, 422, 49, -949, + 625, 626, 627, 628, 629, 434, 435, 631, 632, 634, + 505, -949, 635, 258, -949, 636, 441, 638, 446, 449, + 235, -949, 644, 646, 647, 648, 649, 650, 651, -949, + 221, -949, 652, 653, 458, 660, 661, 662, 466, -949, + 120, 665, 470, 471, -949, 283, 666, 667, 67, -949, + 474, 670, 671, 480, 673, 483, 486, 677, 680, 487, + 501, 681, 683, 684, 701, 537, -949, 702, 507, 144, + -949, -949, -949, 704, 705, 514, 707, 726, 727, 728, + 742, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, 551, -949, -949, -949, -949, + -949, -110, 552, 553, -949, -949, -949, 748, 749, 750, + 751, 557, 326, 752, 754, 755, 756, 757, 758, 760, + 763, 764, 767, -949, 768, 769, 770, 771, 563, 583, + -949, 774, -949, 775, -949, -949, 776, 778, 585, 591, + 592, -949, -949, 775, 593, 779, -949, 594, -949, 595, + -949, 596, -949, -949, -949, 775, 775, 775, 598, 603, + 606, 608, -949, 610, 613, -949, 614, 617, 620, -949, + -949, 621, -949, -949, -949, 622, 751, -949, -949, 623, + 624, -949, 630, -949, -949, -113, 541, -949, -949, -110, + 633, 637, 639, -949, 782, -949, -949, 33, 115, -949, + 144, 49, 243, 243, 791, -949, -949, -949, -949, -949, + -949, -949, -949, -949, 792, 793, 794, -949, -949, -949, + -949, -949, -949, -949, -949, 796, -79, 33, 149, 682, + 797, 799, 801, 23, 167, 4, 9, -7, 537, -949, + -949, 803, -949, -949, 804, 807, -949, -949, -949, -949, + -949, -70, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, 791, -949, 199, 201, 219, -949, -949, -949, -949, + 811, 813, 814, 820, 821, -949, 822, 823, -949, -949, + -949, 824, 826, 827, 829, -949, 222, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, 223, -949, + 828, 832, -949, -949, 831, 836, -949, -949, 834, 838, + -949, -949, 837, 839, -949, -949, 840, 841, -949, -949, + -949, 75, -949, -949, -949, 842, -949, -949, -949, 122, + -949, -949, -949, -949, 233, -949, -949, -949, 236, -949, + -949, 845, 844, -949, -949, 846, 850, -949, 851, 852, + 853, 854, 855, 856, 246, -949, -949, -949, -949, -949, + -949, -949, -949, -949, 857, 858, 859, -949, -949, -949, + -949, 284, -949, -949, -949, -949, -949, -949, 860, 861, + 862, -949, 291, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, 292, -949, -949, -949, 863, -949, + 864, -949, -949, -949, 293, -949, -949, -949, -949, -949, + 305, -949, 256, -949, 655, -949, 865, 866, -949, -949, + 867, 869, -949, -949, -949, 868, -949, 871, -949, -949, + -949, 870, 874, 875, 876, 645, 668, 685, 679, 686, + 878, 687, 688, 879, 880, 885, 690, 691, 692, 693, + 243, -949, -949, 243, -949, 791, 505, -949, 792, 120, + -949, 793, 283, -949, 794, 676, -949, 796, -79, -949, + -949, 149, -949, 888, 682, -949, 261, 797, -949, 221, + -949, 799, -75, -949, 801, 696, 697, 699, 700, 703, + 710, 23, -949, 908, 909, 722, 729, 730, 167, -949, + 739, 744, 781, 4, -949, 924, 946, 9, -949, 773, + 952, 785, 965, -7, -949, -949, 237, 803, -949, -949, + 972, 979, 258, -949, 804, 235, -949, 807, 985, -949, + -949, 191, 798, 812, 817, -949, -949, -949, -949, -949, + 830, -949, -949, 833, 835, 843, -949, -949, -949, -949, + -949, 342, -949, 360, -949, 1004, -949, 1012, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, 361, -949, -949, -949, -949, -949, -949, -949, + -949, 847, -949, -949, 1017, -949, -949, -949, -949, -949, + 1014, 1022, -949, -949, -949, -949, -949, 1018, -949, 388, + -949, -949, -949, -949, -949, -949, -949, -949, 220, 848, + -949, -949, -949, -949, -949, -949, -949, -949, 872, 873, + -949, -949, 882, -949, 33, -949, -949, 1024, -949, -949, + -949, -949, -949, 394, -949, -949, -949, -949, -949, -949, + 883, 396, -949, 402, -949, 886, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, 676, -949, -949, 1026, 849, -949, 261, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + 1027, 877, 1031, 237, -949, -949, -949, -949, -949, -949, + 887, -949, -949, 1032, -949, 889, -949, -949, 1033, -949, + -949, 312, -949, 211, 1033, -949, -949, 1034, 1035, 1037, + -949, 403, -949, -949, -949, -949, -949, -949, -949, 1039, + 890, 884, 891, 1040, 211, -949, 894, -949, -949, -949, + 895, -949, -949, -949 }; - const short + const unsigned short int Dhcp6Parser::yydefact_[] = { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 45, 38, 34, 33, 30, 31, 32, 37, 3, - 35, 36, 58, 5, 62, 7, 166, 9, 328, 11, - 512, 13, 537, 15, 567, 17, 437, 19, 445, 21, - 482, 23, 293, 25, 680, 27, 730, 29, 47, 41, - 0, 0, 0, 0, 0, 0, 569, 0, 447, 484, + 35, 36, 58, 5, 62, 7, 168, 9, 330, 11, + 516, 13, 541, 15, 571, 17, 441, 19, 449, 21, + 486, 23, 295, 25, 684, 27, 734, 29, 47, 41, + 0, 0, 0, 0, 0, 0, 573, 0, 451, 488, 0, 0, 0, 49, 0, 48, 0, 0, 42, 60, - 0, 123, 728, 164, 178, 180, 182, 0, 0, 0, + 0, 124, 732, 166, 180, 182, 184, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 163, 0, 0, 0, 0, 0, 143, 150, 152, + 0, 0, 0, 322, 439, 478, 529, 531, 384, 392, + 255, 272, 263, 248, 608, 563, 287, 306, 629, 0, + 274, 653, 666, 682, 156, 158, 0, 743, 0, 123, + 0, 64, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 102, 103, 104, 105, 106, 75, 110, 111, 112, + 113, 114, 115, 116, 117, 108, 109, 118, 119, 120, + 100, 122, 78, 79, 80, 81, 97, 82, 84, 83, + 121, 88, 89, 76, 101, 77, 86, 87, 95, 96, + 98, 85, 90, 91, 92, 93, 94, 99, 107, 177, + 0, 176, 0, 170, 172, 173, 174, 175, 508, 533, + 374, 376, 378, 0, 0, 382, 380, 602, 373, 334, + 335, 336, 337, 338, 339, 340, 341, 357, 358, 359, + 360, 361, 364, 365, 366, 367, 368, 369, 370, 371, + 362, 363, 372, 0, 332, 345, 346, 347, 350, 351, + 353, 348, 349, 342, 343, 355, 356, 344, 352, 354, + 527, 526, 522, 523, 521, 0, 518, 520, 524, 525, + 556, 0, 559, 0, 0, 555, 549, 550, 548, 553, + 554, 0, 543, 545, 546, 551, 552, 547, 600, 588, + 590, 592, 594, 596, 598, 587, 584, 585, 586, 0, + 574, 575, 579, 580, 577, 581, 582, 583, 578, 0, + 468, 228, 0, 472, 470, 475, 0, 464, 465, 0, + 452, 453, 455, 467, 456, 457, 458, 474, 459, 460, + 461, 462, 463, 502, 0, 0, 500, 501, 504, 505, + 0, 489, 490, 492, 493, 494, 495, 496, 497, 498, + 499, 302, 304, 299, 0, 297, 300, 301, 0, 707, + 709, 0, 712, 0, 0, 716, 720, 0, 0, 724, + 726, 728, 730, 705, 703, 704, 0, 686, 688, 700, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 701, 702, 740, 0, 0, 736, 738, 739, 46, + 0, 0, 39, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 161, 0, 0, 0, 0, 0, 142, 149, 151, - 0, 0, 320, 435, 474, 525, 527, 381, 389, 253, - 270, 261, 246, 604, 559, 285, 304, 625, 0, 272, - 649, 662, 678, 154, 156, 0, 739, 0, 122, 0, - 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 102, 103, 104, 105, 106, 75, 110, 111, 112, 113, - 114, 115, 116, 108, 109, 117, 118, 119, 100, 121, - 78, 79, 80, 81, 97, 82, 84, 83, 120, 88, - 89, 76, 101, 77, 86, 87, 95, 96, 98, 85, - 90, 91, 92, 93, 94, 99, 107, 175, 0, 174, - 0, 168, 170, 171, 172, 173, 504, 529, 371, 373, - 375, 0, 0, 379, 377, 598, 370, 332, 333, 334, - 335, 336, 337, 338, 339, 355, 356, 357, 358, 359, - 362, 363, 364, 365, 366, 367, 368, 360, 361, 369, - 0, 330, 343, 344, 345, 348, 349, 351, 346, 347, - 340, 341, 353, 354, 342, 350, 352, 523, 522, 518, - 519, 517, 0, 514, 516, 520, 521, 552, 0, 555, - 0, 0, 551, 545, 546, 544, 549, 550, 0, 539, - 541, 542, 547, 548, 543, 596, 584, 586, 588, 590, - 592, 594, 583, 580, 581, 582, 0, 570, 571, 575, - 576, 573, 577, 578, 579, 574, 0, 464, 226, 0, - 468, 466, 471, 0, 460, 461, 0, 448, 449, 451, - 463, 452, 453, 454, 470, 455, 456, 457, 458, 459, - 498, 0, 0, 496, 497, 500, 501, 0, 485, 486, - 488, 489, 490, 491, 492, 493, 494, 495, 300, 302, - 297, 0, 295, 298, 299, 0, 703, 705, 0, 708, - 0, 0, 712, 716, 0, 0, 720, 722, 724, 726, - 701, 699, 700, 0, 682, 684, 696, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 697, 698, - 736, 0, 0, 732, 734, 735, 46, 0, 0, 39, - 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, - 0, 63, 0, 0, 0, 167, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 329, 0, 0, - 513, 0, 0, 0, 0, 0, 0, 538, 0, 0, - 0, 0, 0, 0, 0, 568, 0, 438, 0, 0, - 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, - 483, 0, 0, 0, 0, 294, 0, 0, 0, 0, + 0, 0, 0, 57, 0, 63, 0, 0, 0, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 681, 0, 0, 0, 731, 50, 43, 0, - 0, 0, 0, 0, 0, 0, 0, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 0, 159, 160, 139, 140, 141, 0, 0, 0, - 153, 158, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 648, 0, - 0, 0, 0, 0, 0, 163, 0, 65, 0, 177, - 169, 0, 0, 0, 0, 0, 387, 388, 0, 0, - 0, 331, 0, 515, 0, 554, 0, 557, 558, 540, - 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, - 462, 0, 0, 0, 473, 450, 0, 502, 503, 487, - 0, 0, 296, 702, 0, 0, 707, 0, 710, 711, - 0, 0, 718, 719, 0, 0, 0, 0, 683, 0, - 738, 733, 0, 0, 124, 0, 0, 0, 0, 184, - 162, 144, 145, 146, 147, 148, 143, 150, 152, 322, - 439, 476, 40, 526, 528, 383, 384, 385, 386, 382, - 391, 0, 47, 0, 0, 0, 561, 287, 0, 0, - 0, 0, 0, 0, 155, 157, 0, 51, 176, 506, - 531, 372, 374, 376, 380, 378, 0, 524, 553, 556, - 597, 585, 587, 589, 591, 593, 595, 465, 227, 469, - 467, 472, 499, 301, 303, 704, 706, 709, 714, 715, - 713, 717, 721, 723, 725, 727, 184, 44, 0, 0, - 0, 213, 219, 221, 223, 0, 0, 0, 0, 0, - 237, 0, 0, 240, 242, 244, 0, 0, 0, 0, - 212, 0, 190, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 204, 211, 205, 206, 207, 202, 203, - 208, 209, 210, 0, 188, 0, 185, 186, 326, 0, - 323, 324, 443, 0, 440, 441, 480, 0, 477, 478, - 395, 0, 392, 393, 259, 260, 0, 255, 257, 258, - 0, 268, 269, 265, 0, 263, 266, 267, 251, 0, - 248, 250, 608, 0, 606, 565, 0, 562, 563, 291, - 0, 288, 289, 0, 0, 0, 0, 0, 0, 0, - 306, 308, 309, 310, 311, 312, 313, 638, 644, 0, - 0, 0, 637, 634, 635, 636, 0, 627, 629, 632, - 630, 631, 633, 0, 0, 0, 281, 0, 274, 276, - 277, 278, 279, 280, 658, 660, 657, 655, 656, 0, - 651, 653, 654, 0, 673, 0, 676, 669, 670, 0, - 664, 666, 667, 668, 671, 0, 743, 0, 741, 53, - 510, 0, 507, 508, 535, 0, 532, 533, 602, 601, - 0, 600, 0, 61, 729, 165, 0, 0, 0, 0, + 0, 331, 0, 0, 517, 0, 0, 0, 0, 0, + 0, 542, 0, 0, 0, 0, 0, 0, 0, 572, + 0, 442, 0, 0, 0, 0, 0, 0, 0, 450, + 0, 0, 0, 0, 487, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 179, 181, 0, 183, - 0, 0, 321, 0, 447, 436, 0, 484, 475, 0, - 0, 390, 0, 0, 254, 271, 0, 262, 0, 0, - 247, 610, 0, 605, 569, 560, 0, 0, 286, 0, - 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, - 0, 0, 0, 0, 626, 0, 0, 0, 0, 273, - 0, 0, 0, 650, 0, 0, 0, 0, 0, 663, - 679, 0, 0, 740, 55, 0, 54, 0, 505, 0, - 0, 530, 0, 0, 599, 737, 0, 0, 0, 0, - 225, 228, 229, 230, 231, 0, 239, 232, 0, 0, - 0, 234, 235, 236, 233, 191, 0, 187, 0, 325, - 0, 442, 0, 479, 434, 410, 411, 412, 414, 415, - 416, 403, 404, 419, 420, 421, 422, 423, 426, 427, - 428, 429, 430, 431, 432, 424, 425, 433, 399, 400, - 401, 402, 408, 409, 407, 413, 0, 397, 405, 417, - 418, 406, 394, 256, 264, 0, 249, 622, 0, 620, - 621, 617, 618, 619, 0, 611, 612, 614, 615, 616, - 607, 0, 564, 0, 290, 314, 315, 316, 317, 318, - 319, 307, 0, 0, 643, 646, 647, 628, 282, 283, - 284, 275, 0, 0, 652, 672, 0, 675, 0, 665, - 757, 0, 755, 753, 747, 751, 752, 0, 745, 749, - 750, 748, 742, 52, 0, 0, 509, 0, 534, 0, - 215, 216, 217, 218, 214, 220, 222, 224, 238, 241, - 243, 245, 189, 327, 444, 481, 0, 396, 252, 0, - 0, 609, 0, 566, 292, 640, 641, 642, 639, 645, - 659, 661, 674, 677, 0, 0, 0, 0, 744, 56, - 511, 536, 603, 398, 0, 624, 613, 0, 754, 0, - 746, 623, 0, 756, 761, 0, 759, 0, 0, 758, - 770, 0, 0, 0, 775, 0, 763, 765, 766, 767, - 768, 769, 760, 0, 0, 0, 0, 0, 0, 762, - 0, 772, 773, 774, 0, 764, 771, 776 + 0, 0, 0, 0, 0, 0, 685, 0, 0, 0, + 735, 50, 43, 0, 0, 0, 0, 0, 0, 0, + 0, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 0, 161, 162, 140, 141, + 142, 0, 0, 0, 154, 155, 160, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, + 165, 0, 65, 0, 179, 171, 0, 0, 0, 0, + 0, 390, 391, 0, 0, 0, 333, 0, 519, 0, + 558, 0, 561, 562, 544, 0, 0, 0, 0, 0, + 0, 0, 576, 0, 0, 466, 0, 0, 0, 477, + 454, 0, 506, 507, 491, 0, 0, 298, 706, 0, + 0, 711, 0, 714, 715, 0, 0, 722, 723, 0, + 0, 0, 0, 687, 0, 742, 737, 0, 0, 125, + 0, 0, 0, 0, 186, 164, 145, 146, 147, 148, + 149, 144, 151, 153, 324, 443, 480, 40, 530, 532, + 386, 387, 388, 389, 385, 394, 0, 47, 0, 0, + 0, 565, 289, 0, 0, 0, 0, 0, 0, 157, + 159, 0, 51, 178, 510, 535, 375, 377, 379, 383, + 381, 0, 528, 557, 560, 601, 589, 591, 593, 595, + 597, 599, 469, 229, 473, 471, 476, 503, 303, 305, + 708, 710, 713, 718, 719, 717, 721, 725, 727, 729, + 731, 186, 44, 0, 0, 0, 215, 221, 223, 225, + 0, 0, 0, 0, 0, 239, 0, 0, 242, 244, + 246, 0, 0, 0, 0, 214, 0, 192, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 206, 213, + 207, 208, 209, 204, 205, 210, 211, 212, 0, 190, + 0, 187, 188, 328, 0, 325, 326, 447, 0, 444, + 445, 484, 0, 481, 482, 398, 0, 395, 396, 261, + 262, 0, 257, 259, 260, 0, 270, 271, 267, 0, + 265, 268, 269, 253, 0, 250, 252, 612, 0, 610, + 569, 0, 566, 567, 293, 0, 290, 291, 0, 0, + 0, 0, 0, 0, 0, 308, 310, 311, 312, 313, + 314, 315, 642, 648, 0, 0, 0, 641, 638, 639, + 640, 0, 631, 633, 636, 634, 635, 637, 0, 0, + 0, 283, 0, 276, 278, 279, 280, 281, 282, 662, + 664, 661, 659, 660, 0, 655, 657, 658, 0, 677, + 0, 680, 673, 674, 0, 668, 670, 671, 672, 675, + 0, 747, 0, 745, 53, 514, 0, 511, 512, 539, + 0, 536, 537, 606, 605, 0, 604, 0, 61, 733, + 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 181, 183, 0, 185, 0, 0, 323, 0, 451, + 440, 0, 488, 479, 0, 0, 393, 0, 0, 256, + 273, 0, 264, 0, 0, 249, 614, 0, 609, 573, + 564, 0, 0, 288, 0, 0, 0, 0, 0, 0, + 0, 0, 307, 0, 0, 0, 0, 0, 0, 630, + 0, 0, 0, 0, 275, 0, 0, 0, 654, 0, + 0, 0, 0, 0, 667, 683, 0, 0, 744, 55, + 0, 54, 0, 509, 0, 0, 534, 0, 0, 603, + 741, 0, 0, 0, 0, 227, 230, 231, 232, 233, + 0, 241, 234, 0, 0, 0, 236, 237, 238, 235, + 193, 0, 189, 0, 327, 0, 446, 0, 483, 438, + 413, 414, 415, 417, 418, 419, 406, 407, 422, 423, + 424, 425, 426, 429, 430, 431, 432, 433, 434, 435, + 436, 427, 428, 437, 402, 403, 404, 405, 411, 412, + 410, 416, 0, 400, 408, 420, 421, 409, 397, 258, + 266, 0, 251, 626, 0, 624, 625, 621, 622, 623, + 0, 615, 616, 618, 619, 620, 611, 0, 568, 0, + 292, 316, 317, 318, 319, 320, 321, 309, 0, 0, + 647, 650, 651, 632, 284, 285, 286, 277, 0, 0, + 656, 676, 0, 679, 0, 669, 761, 0, 759, 757, + 751, 755, 756, 0, 749, 753, 754, 752, 746, 52, + 0, 0, 513, 0, 538, 0, 217, 218, 219, 220, + 216, 222, 224, 226, 240, 243, 245, 247, 191, 329, + 448, 485, 0, 399, 254, 0, 0, 613, 0, 570, + 294, 644, 645, 646, 643, 649, 663, 665, 678, 681, + 0, 0, 0, 0, 748, 56, 515, 540, 607, 401, + 0, 628, 617, 0, 758, 0, 750, 627, 0, 760, + 765, 0, 763, 0, 0, 762, 774, 0, 0, 0, + 779, 0, 767, 769, 770, 771, 772, 773, 764, 0, + 0, 0, 0, 0, 0, 766, 0, 776, 777, 778, + 0, 768, 775, 780 }; - const short + const short int Dhcp6Parser::yypgoto_[] = { - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -10, -944, -544, -944, - 191, -944, -944, -944, -944, 342, -944, -565, -944, -944, - -944, -71, -944, -944, -944, -944, -944, -944, 366, 572, - -944, -944, -59, -43, -42, -40, -39, -28, -27, -26, - -23, -21, -15, -9, -3, -944, -1, 17, 18, 20, - -944, 385, 25, -944, 28, -944, 30, 32, -944, 35, - -944, 38, -944, -944, -944, -944, -944, -944, -944, -944, - -944, 378, 571, -944, -944, -944, -944, -944, -944, -944, - -944, -944, 295, -944, 86, -944, -656, 92, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -67, -944, - -694, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, 69, -944, -944, -944, -944, -944, 77, -678, -944, - -944, -944, -944, 76, -944, -944, -944, -944, -944, -944, - -944, 47, -944, -944, -944, -944, -944, -944, -944, 68, - -944, -944, -944, 66, 532, -944, -944, -944, -944, -944, - -944, -944, 63, -944, -944, -944, -944, -944, -944, -943, - -944, -944, -944, 97, -944, -944, -944, 100, 576, -944, - -944, -942, -944, -941, -944, 41, -944, 45, -944, 40, - -944, -944, -944, -935, -944, -944, -944, -944, 91, -944, - -944, -128, 989, -944, -944, -944, -944, -944, 110, -944, - -944, -944, 114, -944, 551, -944, -66, -944, -944, -944, - -944, -944, -47, -944, -944, -944, -944, -944, 13, -944, - -944, -944, 112, -944, -944, -944, 121, -944, 562, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - 56, -944, -944, -944, 65, 652, -944, -944, -55, -944, - 1, -944, -944, -944, -944, -944, 58, -944, -944, -944, - 59, 638, -944, -944, -944, -944, -944, -944, -944, -57, - -944, -944, -944, 105, -944, -944, -944, 111, -944, 648, - 367, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -934, -944, -944, -944, -944, -944, - -944, -944, 119, -944, -944, -944, -98, -944, -944, -944, - -944, -944, -944, -944, 93, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, 85, -944, -944, - -944, -944, -944, -944, -944, 80, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, 386, 559, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, -944, -944, -944, - -944, -944, -944, -944, -944, -944, -944, 427, 558, -944, - -944, -944, -944, -944, -944, 82, -944, -944, -102, -944, - -944, -944, -944, -944, -944, -122, -944, -944, -141, -944, - -944, -944, -944, -944, -944, -944 + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -10, -949, -549, -949, + 393, -949, -949, -949, -949, 345, -949, -580, -949, -949, + -949, -71, -949, -949, -949, -949, -949, -949, 372, 640, + -949, -949, -59, -43, -42, -40, -39, -28, -27, -26, + -23, -21, -15, -9, -3, -949, -1, 17, 18, 20, + -949, 384, 25, -949, 28, -949, 30, 32, 35, -949, + 38, -949, 40, -949, -949, -949, -949, -949, -949, -949, + -949, -949, 375, 576, -949, -949, -949, -949, -949, -949, + -949, -949, -949, 296, -949, 90, -949, -661, 98, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -67, + -949, -699, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, 76, -949, -949, -949, -949, -949, 81, -683, + -949, -949, -949, -949, 80, -949, -949, -949, -949, -949, + -949, -949, 50, -949, -949, -949, -949, -949, -949, -949, + 68, -949, -949, -949, 72, 538, -949, -949, -949, -949, + -949, -949, -949, 66, -949, -949, -949, -949, -949, -949, + -948, -949, -949, -949, 97, -949, -949, -949, 102, 597, + -949, -949, -947, -949, -946, -949, 44, -949, 48, -949, + 42, -949, -949, -949, -940, -949, -949, -949, -949, 92, + -949, -949, -122, 996, -949, -949, -949, -949, -949, 104, + -949, -949, -949, 105, -949, 558, -949, -66, -949, -949, + -949, -949, -949, -47, -949, -949, -949, -949, -949, 13, + -949, -949, -949, 116, -949, -949, -949, 117, -949, 570, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, 63, -949, -949, -949, 69, 641, -949, -949, -55, + -949, 1, -949, -949, -949, -949, -949, 59, -949, -949, + -949, 65, 654, -949, -949, -949, -949, -949, -949, -949, + -57, -949, -949, -949, 108, -949, -949, -949, 114, -949, + 657, 367, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -939, -949, -949, -949, -949, + -949, -949, -949, 118, -949, -949, -949, -96, -949, -949, + -949, -949, -949, -949, -949, 96, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, 91, -949, + -949, -949, -949, -949, -949, -949, 83, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, 389, 564, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, -949, -949, + -949, -949, -949, -949, -949, -949, -949, -949, 430, 562, + -949, -949, -949, -949, -949, -949, 85, -949, -949, -100, + -949, -949, -949, -949, -949, -949, -119, -949, -949, -138, + -949, -949, -949, -949, -949, -949, -949 }; - const short + const short int Dhcp6Parser::yydefgoto_[] = { -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 83, 39, 40, 69, - 693, 87, 88, 41, 68, 84, 85, 718, 919, 1025, - 1026, 780, 43, 70, 90, 411, 45, 71, 149, 150, - 151, 413, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 439, 686, 170, 440, 171, 441, 172, 173, 465, 174, - 466, 175, 176, 177, 178, 433, 179, 180, 415, 47, - 72, 210, 211, 212, 472, 213, 181, 416, 182, 417, - 183, 418, 805, 806, 807, 958, 781, 782, 783, 936, - 1174, 784, 937, 785, 938, 786, 939, 787, 788, 509, - 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, - 945, 799, 800, 948, 801, 949, 802, 950, 184, 454, - 839, 840, 841, 978, 185, 451, 826, 827, 828, 829, - 186, 453, 834, 835, 836, 837, 187, 452, 188, 461, - 887, 888, 889, 890, 891, 189, 457, 850, 851, 852, - 987, 63, 80, 361, 362, 363, 522, 364, 523, 190, - 458, 859, 860, 861, 862, 863, 864, 865, 866, 191, - 444, 809, 810, 811, 961, 49, 73, 250, 251, 252, - 478, 253, 479, 254, 480, 255, 484, 256, 483, 192, - 449, 699, 258, 259, 193, 450, 821, 822, 823, 970, - 1096, 1097, 194, 445, 57, 77, 813, 814, 815, 964, - 59, 78, 326, 327, 328, 329, 330, 331, 332, 508, - 333, 512, 334, 511, 335, 336, 513, 337, 195, 446, - 817, 818, 819, 967, 61, 79, 347, 348, 349, 350, - 351, 517, 352, 353, 354, 355, 261, 476, 921, 922, - 923, 1027, 51, 74, 272, 273, 274, 488, 196, 447, - 197, 448, 264, 477, 925, 926, 927, 1030, 53, 75, - 288, 289, 290, 491, 291, 292, 493, 293, 294, 198, - 456, 846, 847, 848, 984, 55, 76, 306, 307, 308, - 309, 499, 310, 500, 311, 501, 312, 502, 313, 503, - 314, 504, 315, 498, 266, 485, 930, 931, 1033, 199, - 455, 843, 844, 981, 1114, 1115, 1116, 1117, 1118, 1189, - 1119, 200, 459, 876, 877, 878, 998, 1198, 879, 880, - 999, 881, 882, 201, 202, 462, 899, 900, 901, 1010, - 902, 1011, 203, 463, 909, 910, 911, 912, 1015, 913, - 914, 1017, 204, 464, 65, 81, 383, 384, 385, 386, - 527, 387, 528, 388, 389, 530, 390, 391, 392, 533, - 750, 393, 534, 394, 395, 396, 537, 397, 538, 398, - 539, 399, 540, 205, 414, 67, 82, 402, 403, 404, - 543, 405, 206, 468, 917, 918, 1021, 1157, 1158, 1159, - 1160, 1206, 1161, 1204, 1225, 1226, 1227, 1235, 1236, 1237, - 1243, 1238, 1239, 1240, 1241, 1247 + 698, 87, 88, 41, 68, 84, 85, 723, 924, 1030, + 1031, 785, 43, 70, 90, 414, 45, 71, 150, 151, + 152, 416, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 442, 691, 171, 443, 172, 444, 173, 174, 175, 469, + 176, 470, 177, 178, 179, 180, 436, 181, 182, 418, + 47, 72, 212, 213, 214, 476, 215, 183, 419, 184, + 420, 185, 421, 810, 811, 812, 963, 786, 787, 788, + 941, 1180, 789, 942, 790, 943, 791, 944, 792, 793, + 513, 794, 795, 796, 797, 798, 799, 800, 801, 802, + 803, 950, 804, 805, 953, 806, 954, 807, 955, 186, + 458, 844, 845, 846, 983, 187, 455, 831, 832, 833, + 834, 188, 457, 839, 840, 841, 842, 189, 456, 190, + 465, 892, 893, 894, 895, 896, 191, 461, 855, 856, + 857, 992, 63, 80, 364, 365, 366, 526, 367, 527, + 192, 462, 864, 865, 866, 867, 868, 869, 870, 871, + 193, 448, 814, 815, 816, 966, 49, 73, 253, 254, + 255, 482, 256, 483, 257, 484, 258, 488, 259, 487, + 194, 453, 704, 261, 262, 195, 454, 826, 827, 828, + 975, 1102, 1103, 196, 449, 57, 77, 818, 819, 820, + 969, 59, 78, 329, 330, 331, 332, 333, 334, 335, + 512, 336, 516, 337, 515, 338, 339, 517, 340, 197, + 450, 822, 823, 824, 972, 61, 79, 350, 351, 352, + 353, 354, 521, 355, 356, 357, 358, 264, 480, 926, + 927, 928, 1032, 51, 74, 275, 276, 277, 492, 198, + 451, 199, 452, 267, 481, 930, 931, 932, 1035, 53, + 75, 291, 292, 293, 495, 294, 295, 497, 296, 297, + 200, 460, 851, 852, 853, 989, 55, 76, 309, 310, + 311, 312, 503, 313, 504, 314, 505, 315, 506, 316, + 507, 317, 508, 318, 502, 269, 489, 935, 936, 1038, + 201, 459, 848, 849, 986, 1120, 1121, 1122, 1123, 1124, + 1195, 1125, 202, 463, 881, 882, 883, 1003, 1204, 884, + 885, 1004, 886, 887, 203, 204, 466, 904, 905, 906, + 1015, 907, 1016, 205, 467, 914, 915, 916, 917, 1020, + 918, 919, 1022, 206, 468, 65, 81, 386, 387, 388, + 389, 531, 390, 532, 391, 392, 534, 393, 394, 395, + 537, 755, 396, 538, 397, 398, 399, 541, 400, 542, + 401, 543, 402, 544, 207, 417, 67, 82, 405, 406, + 407, 547, 408, 208, 472, 922, 923, 1026, 1163, 1164, + 1165, 1166, 1212, 1167, 1210, 1231, 1232, 1233, 1241, 1242, + 1243, 1249, 1244, 1245, 1246, 1247, 1253 }; - const short + const unsigned short int Dhcp6Parser::yytable_[] = { - 148, 209, 226, 268, 282, 302, 38, 324, 343, 360, - 380, 325, 344, 345, 227, 873, 265, 214, 262, 275, - 286, 304, 803, 338, 356, 833, 381, 1089, 1090, 1091, - 228, 229, 346, 230, 231, 1095, 1101, 30, 31, 824, - 32, 692, 33, 125, 126, 232, 233, 234, 358, 359, - 235, 42, 236, 724, 470, 207, 208, 474, 237, 471, - 973, 296, 475, 974, 238, 730, 731, 732, 928, 44, - 239, 46, 240, 215, 263, 276, 287, 305, 486, 339, - 357, 124, 382, 487, 400, 401, 260, 271, 285, 303, - 241, 242, 267, 243, 48, 883, 884, 885, 244, 125, - 126, 245, 50, 246, 489, 247, 52, 692, 248, 490, - 54, 249, 496, 257, 56, 269, 283, 497, 223, 270, - 284, 224, 825, 58, 147, 60, 91, 92, 125, 126, - 93, 125, 126, 94, 95, 96, 358, 359, 317, 318, - 340, 319, 320, 341, 342, 1230, 748, 749, 1231, 1232, - 1233, 1234, 147, 524, 62, 64, 125, 126, 525, 97, + 149, 211, 228, 271, 285, 305, 38, 327, 346, 363, + 383, 328, 347, 348, 229, 878, 268, 216, 265, 278, + 289, 307, 808, 341, 359, 838, 384, 1095, 1096, 1097, + 230, 231, 349, 232, 233, 1101, 1107, 829, 31, 30, + 32, 697, 33, 729, 299, 234, 235, 236, 361, 362, + 237, 933, 238, 753, 754, 735, 736, 737, 239, 686, + 687, 688, 689, 474, 240, 209, 210, 86, 475, 42, + 241, 44, 242, 217, 266, 279, 290, 308, 978, 342, + 360, 979, 385, 126, 127, 46, 263, 274, 288, 306, + 243, 244, 690, 245, 126, 127, 48, 478, 246, 126, + 127, 247, 479, 248, 490, 249, 50, 697, 250, 491, + 52, 251, 493, 252, 54, 260, 500, 494, 272, 286, + 830, 501, 273, 287, 148, 981, 91, 92, 982, 89, + 93, 528, 545, 94, 95, 96, 529, 546, 56, 126, + 127, 320, 908, 909, 910, 58, 888, 889, 890, 858, + 859, 860, 861, 862, 863, 899, 900, 403, 404, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 894, 895, 318, - 976, 319, 320, 977, 86, 321, 322, 323, 853, 854, - 855, 856, 857, 858, 125, 126, 125, 126, 147, 541, - 545, 127, 66, 89, 542, 546, 128, 129, 130, 131, - 132, 123, 133, 681, 682, 683, 684, 134, 407, 406, - 470, 34, 35, 36, 37, 933, 135, 147, 408, 136, - 147, 409, 545, 1089, 1090, 1091, 137, 934, 474, 867, - 410, 1095, 1101, 935, 138, 139, 685, 982, 766, 140, - 983, 1022, 141, 761, 1023, 147, 142, 419, 762, 763, - 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, - 774, 775, 776, 777, 778, 779, 318, 143, 144, 145, - 146, 125, 126, 124, 955, 955, 979, 506, 833, 956, - 957, 980, 1056, 125, 126, 996, 124, 412, 420, 873, - 997, 125, 126, 147, 318, 147, 421, 125, 126, 277, - 278, 279, 280, 281, 125, 126, 422, 1003, 1008, 295, - 124, 318, 1004, 1009, 423, 296, 297, 298, 299, 300, - 301, 1228, 1012, 223, 1229, 424, 224, 1013, 125, 126, - 903, 904, 905, 1018, 541, 955, 486, 1186, 1019, 1020, - 1182, 1183, 1187, 868, 869, 870, 871, 425, 1107, 1108, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 524, 505, 1207, 507, 426, 1194, - 1150, 1208, 1151, 1152, 427, 428, 489, 547, 548, 148, - 906, 1210, 496, 209, 1248, 824, 831, 1211, 832, 1249, - 429, 430, 147, 431, 432, 226, 434, 435, 268, 214, - 147, 1195, 1196, 1197, 436, 282, 147, 227, 437, 265, - 438, 262, 442, 147, 275, 302, 1170, 1171, 1172, 1173, - 147, 286, 443, 228, 229, 324, 230, 231, 460, 325, - 343, 304, 467, 469, 344, 345, 473, 147, 232, 233, - 234, 338, 481, 235, 482, 236, 356, 492, 494, 495, - 380, 237, 510, 514, 346, 215, 516, 238, 515, 695, - 696, 697, 698, 239, 518, 240, 381, 263, 519, 520, - 276, 521, 673, 526, 529, 531, 532, 287, 535, 260, - 536, 544, 271, 241, 242, 549, 243, 305, 550, 285, - 551, 244, 552, 553, 245, 554, 246, 339, 247, 303, - 555, 248, 357, 556, 249, 557, 257, 558, 559, 571, - 269, 560, 561, 562, 270, 563, 564, 283, 577, 578, - 566, 284, 382, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 565, 567, 568, 569, - 114, 115, 116, 117, 118, 119, 120, 121, 570, 572, - 124, 573, 574, 579, 575, 576, 580, 581, 582, 583, - 216, 584, 217, 585, 586, 587, 588, 589, 125, 126, - 218, 219, 220, 221, 222, 127, 590, 591, 592, 593, - 594, 595, 148, 596, 597, 209, 599, 223, 600, 605, - 224, 134, 601, 602, 598, 603, 604, 606, 225, 608, - 609, 214, 611, 612, 613, 614, 615, 618, 616, 619, - 620, 617, 622, 624, 625, 626, 627, 630, 872, 886, - 896, 628, 380, 631, 632, 633, 634, 635, 636, 638, - 639, 641, 640, 642, 874, 892, 897, 907, 381, 643, - 644, 646, 757, 647, 650, 651, 654, 648, 653, 655, - 656, 143, 144, 657, 658, 659, 660, 215, 661, 662, - 663, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 125, 126, 664, 147, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 665, 124, 318, - 875, 893, 898, 908, 382, 666, 667, 669, 672, 670, - 674, 680, 675, 676, 677, 678, 125, 126, 679, 219, - 220, 687, 222, 127, 688, 689, 690, 691, 694, 700, - 32, 701, 702, 703, 714, 223, 704, 705, 224, 706, - 707, 715, 721, 708, 709, 710, 225, 365, 366, 367, + 118, 119, 120, 121, 122, 123, 124, 125, 872, 549, + 361, 362, 911, 321, 550, 322, 323, 771, 124, 324, + 325, 326, 474, 148, 549, 126, 127, 938, 148, 939, + 126, 127, 128, 1176, 1177, 1178, 1179, 129, 130, 131, + 132, 133, 478, 134, 60, 960, 960, 940, 135, 410, + 961, 962, 34, 35, 36, 37, 984, 136, 62, 987, + 137, 985, 988, 411, 1095, 1096, 1097, 138, 148, 1001, + 412, 64, 1101, 1107, 1002, 139, 140, 126, 127, 1027, + 141, 66, 1028, 142, 766, 829, 836, 143, 837, 767, + 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, + 778, 779, 780, 781, 782, 783, 784, 1008, 144, 145, + 146, 147, 1009, 125, 1013, 1017, 1023, 413, 838, 1014, + 1018, 1024, 1061, 873, 874, 875, 876, 125, 545, 878, + 321, 126, 127, 1025, 148, 1234, 321, 409, 1235, 148, + 280, 281, 282, 283, 284, 126, 127, 126, 127, 298, + 125, 415, 422, 125, 321, 299, 300, 301, 302, 303, + 304, 270, 423, 424, 225, 960, 510, 226, 126, 127, + 1188, 126, 127, 1201, 1202, 1203, 321, 343, 322, 323, + 344, 345, 425, 490, 1192, 509, 148, 225, 1189, 1193, + 226, 1113, 1114, 126, 127, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 1236, + 426, 528, 1237, 1238, 1239, 1240, 1200, 1213, 511, 493, + 551, 552, 1214, 149, 1216, 500, 1254, 211, 427, 428, + 1217, 1255, 429, 430, 1156, 431, 1157, 1158, 432, 228, + 148, 433, 271, 216, 700, 701, 702, 703, 434, 285, + 435, 229, 437, 268, 148, 265, 148, 438, 278, 305, + 439, 440, 148, 441, 445, 289, 446, 230, 231, 327, + 232, 233, 447, 328, 346, 307, 464, 148, 347, 348, + 148, 471, 234, 235, 236, 341, 473, 237, 477, 238, + 359, 485, 486, 496, 383, 239, 498, 499, 349, 217, + 514, 240, 148, 518, 520, 519, 522, 241, 523, 242, + 384, 266, 525, 524, 279, 530, 533, 535, 536, 539, + 540, 290, 548, 263, 554, 553, 274, 243, 244, 561, + 245, 308, 555, 288, 556, 246, 557, 558, 247, 559, + 248, 342, 249, 306, 560, 250, 360, 562, 251, 563, + 252, 564, 260, 565, 566, 567, 568, 272, 575, 569, + 573, 273, 570, 581, 286, 571, 385, 572, 287, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 574, 576, 577, 582, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 578, 579, 125, 580, 583, + 584, 585, 586, 587, 588, 589, 590, 218, 591, 219, + 592, 593, 594, 595, 596, 126, 127, 220, 221, 222, + 223, 224, 128, 597, 598, 599, 600, 149, 601, 602, + 211, 604, 603, 605, 225, 606, 607, 226, 135, 608, + 609, 610, 611, 613, 614, 227, 216, 126, 127, 616, + 617, 618, 619, 620, 621, 623, 624, 622, 625, 627, + 629, 630, 631, 877, 891, 901, 632, 383, 635, 633, + 636, 637, 638, 639, 640, 641, 643, 644, 645, 879, + 897, 902, 912, 384, 646, 647, 648, 762, 649, 651, + 655, 656, 652, 653, 659, 660, 658, 662, 144, 145, + 661, 665, 217, 663, 666, 669, 664, 670, 671, 667, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 711, 712, 713, 716, 717, 719, 720, 378, 379, 726, - 756, 804, 722, 723, 725, 727, 728, 729, 733, 734, - 808, 812, 816, 820, 838, 842, 735, 845, 849, 736, - 916, 737, 751, 147, 738, 739, 920, 924, 740, 143, - 144, 940, 741, 941, 742, 743, 942, 943, 944, 946, - 947, 951, 745, 952, 953, 746, 954, 959, 747, 960, - 753, 962, 754, 963, 755, 147, 966, 965, 968, 969, - 971, 972, 744, 975, 986, 985, 988, 989, 1024, 990, - 991, 992, 993, 994, 995, 1000, 1001, 1002, 1005, 1006, - 1007, 1014, 1016, 1029, 1041, 1028, 1032, 1031, 1036, 1040, - 1034, 1035, 1037, 1038, 1039, 1042, 1043, 1044, 1045, 1046, - 1047, 1048, 1049, 1050, 1051, 1052, 1105, 1132, 1053, 1054, - 226, 1133, 1125, 324, 1126, 1127, 343, 325, 1128, 1064, - 344, 345, 227, 1088, 265, 1129, 262, 1130, 1134, 338, - 1109, 1065, 356, 302, 1110, 1099, 360, 1142, 228, 229, - 346, 230, 231, 1135, 1136, 1139, 1112, 1066, 1067, 304, - 1068, 1069, 872, 232, 233, 234, 1138, 886, 235, 1140, - 236, 896, 1070, 1071, 1072, 1143, 237, 1073, 874, 1074, - 1153, 1145, 238, 892, 1154, 1075, 268, 897, 239, 282, - 240, 1076, 263, 907, 1146, 339, 1155, 1077, 357, 1078, - 1148, 1100, 275, 1163, 260, 286, 1147, 1164, 241, 242, - 1169, 243, 1113, 1098, 1190, 305, 244, 1079, 1080, 245, - 1081, 246, 1175, 247, 1111, 1082, 248, 303, 1083, 249, - 1084, 257, 1085, 1176, 875, 1086, 1177, 1184, 1087, 893, - 1094, 1092, 1185, 898, 1191, 1093, 1178, 1192, 1193, 908, - 1205, 1179, 1156, 1214, 1217, 1180, 1181, 1188, 276, 1219, - 1224, 287, 1222, 1199, 1244, 1245, 1246, 1250, 1254, 758, - 271, 1200, 607, 285, 830, 610, 1057, 1055, 1106, 752, - 1103, 932, 1104, 1123, 760, 1141, 652, 1124, 1213, 1131, - 1059, 1058, 621, 1102, 1201, 1202, 316, 645, 269, 1209, - 1212, 283, 270, 1221, 1215, 284, 1061, 1251, 1060, 1218, - 1252, 1063, 1223, 649, 1253, 1166, 1256, 1257, 1062, 1167, - 1168, 1122, 1165, 929, 1216, 1121, 1137, 1144, 1149, 915, - 668, 1120, 759, 671, 1162, 1220, 1242, 1255, 0, 0, - 0, 0, 0, 0, 0, 1064, 0, 0, 0, 1088, - 0, 1109, 0, 0, 0, 1110, 0, 1065, 0, 0, - 0, 1099, 0, 0, 629, 0, 1153, 1112, 1203, 0, - 1154, 623, 0, 1066, 1067, 0, 1068, 1069, 0, 0, - 0, 0, 1155, 0, 637, 0, 0, 0, 1070, 1071, - 1072, 0, 0, 1073, 0, 1074, 0, 0, 0, 0, - 0, 1075, 0, 0, 0, 0, 0, 1076, 0, 0, - 0, 0, 0, 1077, 0, 1078, 0, 1100, 0, 0, - 0, 0, 0, 1113, 0, 0, 0, 0, 0, 1098, - 0, 0, 0, 1079, 1080, 1111, 1081, 0, 1156, 0, - 0, 1082, 0, 0, 1083, 0, 1084, 0, 1085, 0, - 0, 1086, 0, 0, 1087, 0, 1094, 1092, 0, 0, - 0, 1093 + 378, 379, 380, 668, 148, 672, 674, 675, 677, 756, + 381, 382, 678, 679, 680, 880, 898, 903, 913, 385, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 681, 682, 683, 148, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 684, 125, 321, + 685, 692, 693, 694, 695, 696, 699, 705, 32, 706, + 707, 708, 719, 710, 709, 711, 126, 127, 712, 221, + 222, 713, 224, 128, 714, 715, 716, 717, 718, 721, + 722, 724, 720, 725, 726, 225, 731, 761, 226, 843, + 727, 728, 730, 732, 733, 734, 227, 738, 809, 813, + 817, 821, 739, 825, 847, 740, 850, 741, 854, 742, + 921, 925, 743, 744, 929, 945, 745, 946, 947, 746, + 747, 748, 750, 751, 948, 949, 951, 952, 956, 752, + 957, 958, 758, 959, 964, 965, 759, 967, 760, 968, + 970, 971, 974, 973, 977, 1045, 976, 991, 980, 144, + 145, 990, 993, 994, 1029, 995, 996, 997, 998, 999, + 1000, 1005, 1006, 1007, 1010, 1011, 1012, 1019, 1021, 1034, + 1046, 1033, 1037, 1036, 1041, 148, 1039, 1040, 1042, 1043, + 1044, 1048, 1050, 1053, 1054, 1047, 1049, 1051, 1052, 1055, + 1056, 1057, 1111, 1059, 1058, 228, 1131, 1132, 327, 1133, + 1134, 346, 328, 1135, 1069, 347, 348, 229, 1094, 268, + 1136, 265, 1138, 1139, 341, 1115, 1070, 359, 305, 1116, + 1105, 363, 1140, 230, 231, 349, 232, 233, 1148, 1141, + 1142, 1118, 1071, 1072, 307, 1073, 1074, 877, 234, 235, + 236, 1144, 891, 237, 1145, 238, 901, 1075, 1076, 1077, + 1149, 239, 1078, 879, 1079, 1159, 1152, 240, 897, 1160, + 1080, 271, 902, 241, 285, 242, 1081, 266, 912, 1154, + 342, 1161, 1082, 360, 1083, 1151, 1106, 278, 1169, 263, + 289, 1146, 1170, 243, 244, 1153, 245, 1119, 1104, 1175, + 308, 246, 1084, 1085, 247, 1086, 248, 1181, 249, 1117, + 1087, 250, 306, 1088, 251, 1089, 252, 1090, 260, 880, + 1091, 1182, 1190, 1092, 898, 1093, 1183, 1100, 903, 1098, + 1191, 1196, 1197, 1099, 913, 1198, 1199, 1162, 1211, 1184, + 1220, 1223, 1185, 279, 1186, 1225, 290, 1228, 1250, 1251, + 1230, 1252, 1187, 1256, 1260, 274, 1194, 1205, 288, 749, + 763, 1221, 835, 757, 615, 1062, 765, 937, 1060, 1109, + 1112, 1110, 1130, 1147, 1129, 1064, 657, 1137, 1063, 1108, + 1219, 1206, 1207, 319, 1065, 1066, 272, 1224, 650, 286, + 273, 1208, 1215, 287, 1258, 1218, 1227, 626, 1229, 1067, + 1068, 1259, 1257, 1262, 1263, 654, 1174, 1172, 934, 1128, + 1173, 1171, 1222, 1127, 1143, 1126, 1155, 920, 1150, 673, + 764, 676, 1168, 1226, 612, 1248, 1261, 0, 0, 0, + 0, 1069, 0, 0, 0, 1094, 0, 1115, 0, 0, + 0, 1116, 0, 1070, 628, 0, 0, 1105, 0, 0, + 0, 0, 1159, 1118, 1209, 0, 1160, 0, 0, 1071, + 1072, 0, 1073, 1074, 634, 0, 0, 0, 1161, 0, + 0, 0, 0, 0, 1075, 1076, 1077, 642, 0, 1078, + 0, 1079, 0, 0, 0, 0, 0, 1080, 0, 0, + 0, 0, 0, 1081, 0, 0, 0, 0, 0, 1082, + 0, 1083, 0, 1106, 0, 0, 0, 0, 0, 1119, + 0, 0, 0, 0, 0, 1104, 0, 0, 0, 1084, + 1085, 1117, 1086, 0, 1162, 0, 0, 1087, 0, 0, + 1088, 0, 1089, 0, 1090, 0, 0, 1091, 0, 0, + 1092, 0, 1093, 0, 1100, 0, 1098, 0, 0, 0, + 1099 }; - const short + const short int Dhcp6Parser::yycheck_[] = { 71, 72, 73, 74, 75, 76, 16, 78, 79, 80, - 81, 78, 79, 79, 73, 709, 73, 72, 73, 74, - 75, 76, 678, 78, 79, 703, 81, 970, 970, 970, - 73, 73, 79, 73, 73, 970, 970, 0, 5, 115, - 7, 585, 9, 89, 90, 73, 73, 73, 122, 123, - 73, 7, 73, 618, 3, 16, 17, 3, 73, 8, - 3, 113, 8, 6, 73, 630, 631, 632, 120, 7, + 81, 78, 79, 79, 73, 714, 73, 72, 73, 74, + 75, 76, 683, 78, 79, 708, 81, 975, 975, 975, + 73, 73, 79, 73, 73, 975, 975, 116, 5, 0, + 7, 590, 9, 623, 114, 73, 73, 73, 123, 124, + 73, 121, 73, 166, 167, 635, 636, 637, 73, 169, + 170, 171, 172, 3, 73, 16, 17, 199, 8, 7, 73, 7, 73, 72, 73, 74, 75, 76, 3, 78, - 79, 71, 81, 8, 13, 14, 73, 74, 75, 76, - 73, 73, 82, 73, 7, 141, 142, 143, 73, 89, - 90, 73, 7, 73, 3, 73, 7, 651, 73, 8, - 7, 73, 3, 73, 7, 74, 75, 8, 108, 74, - 75, 111, 198, 7, 198, 7, 11, 12, 89, 90, - 15, 89, 90, 18, 19, 20, 122, 123, 21, 72, - 73, 74, 75, 76, 77, 177, 165, 166, 180, 181, - 182, 183, 198, 3, 7, 7, 89, 90, 8, 44, + 79, 6, 81, 90, 91, 7, 73, 74, 75, 76, + 73, 73, 202, 73, 90, 91, 7, 3, 73, 90, + 91, 73, 8, 73, 3, 73, 7, 656, 73, 8, + 7, 73, 3, 73, 7, 73, 3, 8, 74, 75, + 199, 8, 74, 75, 199, 3, 11, 12, 6, 10, + 15, 3, 3, 18, 19, 20, 8, 8, 7, 90, + 91, 21, 149, 150, 151, 7, 142, 143, 144, 126, + 127, 128, 129, 130, 131, 146, 147, 13, 14, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 145, 146, 72, - 3, 74, 75, 6, 198, 78, 79, 80, 125, 126, - 127, 128, 129, 130, 89, 90, 89, 90, 198, 3, - 3, 96, 7, 10, 8, 8, 101, 102, 103, 104, - 105, 70, 107, 168, 169, 170, 171, 112, 3, 6, - 3, 198, 199, 200, 201, 8, 121, 198, 4, 124, - 198, 8, 3, 1186, 1186, 1186, 131, 8, 3, 21, - 3, 1186, 1186, 8, 139, 140, 201, 3, 30, 144, - 6, 3, 147, 21, 6, 198, 151, 4, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 72, 172, 173, 174, - 175, 89, 90, 71, 3, 3, 3, 3, 976, 8, - 8, 8, 958, 89, 90, 3, 71, 8, 4, 1003, - 8, 89, 90, 198, 72, 198, 4, 89, 90, 84, - 85, 86, 87, 88, 89, 90, 4, 3, 3, 107, - 71, 72, 8, 8, 4, 113, 114, 115, 116, 117, - 118, 3, 3, 108, 6, 4, 111, 8, 89, 90, - 148, 149, 150, 3, 3, 3, 3, 3, 8, 8, - 8, 8, 8, 135, 136, 137, 138, 4, 109, 110, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 3, 8, 3, 8, 4, 8, - 176, 8, 178, 179, 4, 4, 3, 407, 408, 470, - 198, 8, 3, 474, 3, 115, 116, 8, 118, 8, - 4, 4, 198, 4, 4, 486, 4, 4, 489, 474, - 198, 132, 133, 134, 4, 496, 198, 486, 4, 486, - 4, 486, 4, 198, 489, 506, 22, 23, 24, 25, - 198, 496, 4, 486, 486, 516, 486, 486, 4, 516, - 521, 506, 4, 4, 521, 521, 4, 198, 486, 486, - 486, 516, 4, 486, 4, 486, 521, 4, 4, 4, - 541, 486, 4, 4, 521, 474, 3, 486, 8, 97, - 98, 99, 100, 486, 4, 486, 541, 486, 4, 8, - 489, 3, 7, 4, 4, 4, 4, 496, 4, 486, - 4, 4, 489, 486, 486, 198, 486, 506, 4, 496, - 4, 486, 4, 4, 486, 4, 486, 516, 486, 506, - 4, 486, 521, 4, 486, 199, 486, 199, 199, 4, - 489, 199, 199, 199, 489, 199, 199, 496, 4, 4, - 200, 496, 541, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 201, 200, 200, 199, - 61, 62, 63, 64, 65, 66, 67, 68, 199, 199, - 71, 199, 201, 4, 201, 201, 201, 201, 4, 4, - 81, 4, 83, 4, 4, 4, 4, 4, 89, 90, - 91, 92, 93, 94, 95, 96, 4, 4, 4, 4, - 4, 4, 673, 4, 4, 676, 4, 108, 4, 201, - 111, 112, 4, 4, 199, 4, 4, 4, 119, 4, - 201, 676, 4, 4, 4, 4, 4, 4, 199, 4, - 4, 201, 4, 4, 199, 4, 199, 4, 709, 710, - 711, 199, 713, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 199, 4, 709, 710, 711, 712, 713, 4, - 201, 4, 672, 201, 4, 4, 4, 201, 201, 4, - 199, 172, 173, 4, 199, 199, 4, 676, 4, 201, - 201, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 89, 90, 4, 198, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 4, 71, 72, - 709, 710, 711, 712, 713, 4, 4, 4, 4, 199, - 198, 198, 7, 7, 7, 7, 89, 90, 5, 92, - 93, 198, 95, 96, 198, 5, 5, 5, 198, 5, - 7, 5, 5, 5, 198, 108, 7, 5, 111, 5, - 5, 198, 198, 7, 7, 7, 119, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 7, 7, 7, 5, 5, 5, 5, 172, 173, 7, - 5, 7, 198, 198, 198, 198, 198, 198, 198, 198, - 7, 7, 7, 7, 106, 7, 198, 7, 7, 198, - 7, 198, 167, 198, 198, 198, 7, 7, 198, 172, - 173, 4, 198, 4, 198, 198, 4, 4, 4, 4, - 4, 4, 198, 4, 4, 198, 4, 6, 198, 3, - 198, 6, 198, 3, 198, 198, 3, 6, 6, 3, - 6, 3, 651, 6, 3, 6, 6, 3, 198, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 3, 201, 6, 3, 6, 4, 199, - 8, 6, 4, 4, 4, 199, 201, 199, 4, 199, - 199, 4, 4, 4, 199, 199, 4, 4, 201, 199, - 961, 4, 199, 964, 199, 199, 967, 964, 199, 970, - 967, 967, 961, 970, 961, 199, 961, 199, 199, 964, - 981, 970, 967, 984, 981, 970, 987, 4, 961, 961, - 967, 961, 961, 199, 199, 199, 981, 970, 970, 984, - 970, 970, 1003, 961, 961, 961, 201, 1008, 961, 199, - 961, 1012, 970, 970, 970, 4, 961, 970, 1003, 970, - 1021, 201, 961, 1008, 1021, 970, 1027, 1012, 961, 1030, - 961, 970, 961, 1018, 4, 964, 1021, 970, 967, 970, - 4, 970, 1027, 6, 961, 1030, 199, 3, 961, 961, - 4, 961, 981, 970, 4, 984, 961, 970, 970, 961, - 970, 961, 198, 961, 981, 970, 961, 984, 970, 961, - 970, 961, 970, 198, 1003, 970, 198, 8, 970, 1008, - 970, 970, 8, 1012, 8, 970, 198, 3, 8, 1018, - 4, 198, 1021, 4, 4, 198, 198, 198, 1027, 4, - 7, 1030, 5, 198, 4, 4, 4, 4, 4, 673, - 1027, 198, 470, 1030, 702, 474, 960, 955, 979, 664, - 973, 756, 976, 987, 676, 1008, 524, 989, 1186, 996, - 963, 961, 486, 972, 198, 198, 77, 516, 1027, 198, - 198, 1030, 1027, 198, 201, 1030, 966, 201, 964, 199, - 199, 969, 198, 521, 199, 1029, 198, 198, 967, 1030, - 1032, 986, 1027, 726, 1192, 984, 1003, 1012, 1018, 713, - 541, 982, 675, 545, 1022, 1207, 1228, 1248, -1, -1, - -1, -1, -1, -1, -1, 1186, -1, -1, -1, 1186, - -1, 1192, -1, -1, -1, 1192, -1, 1186, -1, -1, - -1, 1186, -1, -1, 496, -1, 1207, 1192, 1148, -1, - 1207, 489, -1, 1186, 1186, -1, 1186, 1186, -1, -1, - -1, -1, 1207, -1, 506, -1, -1, -1, 1186, 1186, - 1186, -1, -1, 1186, -1, 1186, -1, -1, -1, -1, - -1, 1186, -1, -1, -1, -1, -1, 1186, -1, -1, - -1, -1, -1, 1186, -1, 1186, -1, 1186, -1, -1, - -1, -1, -1, 1192, -1, -1, -1, -1, -1, 1186, - -1, -1, -1, 1186, 1186, 1192, 1186, -1, 1207, -1, - -1, 1186, -1, -1, 1186, -1, 1186, -1, 1186, -1, - -1, 1186, -1, -1, 1186, -1, 1186, 1186, -1, -1, - -1, 1186 + 65, 66, 67, 68, 69, 70, 71, 72, 21, 3, + 123, 124, 199, 73, 8, 75, 76, 30, 71, 79, + 80, 81, 3, 199, 3, 90, 91, 8, 199, 8, + 90, 91, 97, 22, 23, 24, 25, 102, 103, 104, + 105, 106, 3, 108, 7, 3, 3, 8, 113, 3, + 8, 8, 199, 200, 201, 202, 3, 122, 7, 3, + 125, 8, 6, 4, 1192, 1192, 1192, 132, 199, 3, + 8, 7, 1192, 1192, 8, 140, 141, 90, 91, 3, + 145, 7, 6, 148, 21, 116, 117, 152, 119, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 3, 173, 174, + 175, 176, 8, 72, 3, 3, 3, 3, 981, 8, + 8, 8, 963, 136, 137, 138, 139, 72, 3, 1008, + 73, 90, 91, 8, 199, 3, 73, 6, 6, 199, + 85, 86, 87, 88, 89, 90, 91, 90, 91, 108, + 72, 8, 4, 72, 73, 114, 115, 116, 117, 118, + 119, 83, 4, 4, 109, 3, 3, 112, 90, 91, + 8, 90, 91, 133, 134, 135, 73, 74, 75, 76, + 77, 78, 4, 3, 3, 8, 199, 109, 8, 8, + 112, 110, 111, 90, 91, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 178, + 4, 3, 181, 182, 183, 184, 8, 3, 8, 3, + 410, 411, 8, 474, 8, 3, 3, 478, 4, 4, + 8, 8, 4, 4, 177, 4, 179, 180, 4, 490, + 199, 4, 493, 478, 98, 99, 100, 101, 4, 500, + 4, 490, 4, 490, 199, 490, 199, 4, 493, 510, + 4, 4, 199, 4, 4, 500, 4, 490, 490, 520, + 490, 490, 4, 520, 525, 510, 4, 199, 525, 525, + 199, 4, 490, 490, 490, 520, 4, 490, 4, 490, + 525, 4, 4, 4, 545, 490, 4, 4, 525, 478, + 4, 490, 199, 4, 3, 8, 4, 490, 4, 490, + 545, 490, 3, 8, 493, 4, 4, 4, 4, 4, + 4, 500, 4, 490, 4, 199, 493, 490, 490, 200, + 490, 510, 4, 500, 4, 490, 4, 4, 490, 4, + 490, 520, 490, 510, 4, 490, 525, 200, 490, 200, + 490, 200, 490, 200, 200, 200, 200, 493, 4, 202, + 200, 493, 201, 4, 500, 201, 545, 201, 500, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 200, 200, 200, 4, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 202, 202, 72, 202, 4, + 202, 202, 202, 4, 4, 4, 4, 82, 4, 84, + 4, 4, 4, 4, 4, 90, 91, 92, 93, 94, + 95, 96, 97, 4, 4, 4, 4, 678, 4, 4, + 681, 4, 200, 4, 109, 4, 4, 112, 113, 4, + 4, 202, 4, 4, 202, 120, 681, 90, 91, 4, + 4, 4, 4, 4, 200, 4, 4, 202, 4, 4, + 4, 200, 4, 714, 715, 716, 200, 718, 4, 200, + 4, 4, 4, 4, 4, 4, 4, 4, 200, 714, + 715, 716, 717, 718, 4, 4, 4, 677, 202, 4, + 4, 4, 202, 202, 4, 4, 202, 4, 173, 174, + 200, 4, 681, 200, 4, 4, 200, 4, 4, 202, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 202, 199, 4, 4, 200, 4, 168, + 173, 174, 7, 199, 7, 714, 715, 716, 717, 718, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 7, 7, 7, 199, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 5, 72, 73, + 199, 199, 199, 5, 5, 5, 199, 5, 7, 5, + 5, 5, 199, 5, 7, 5, 90, 91, 5, 93, + 94, 7, 96, 97, 7, 7, 7, 7, 7, 5, + 5, 5, 199, 5, 199, 109, 7, 5, 112, 107, + 199, 199, 199, 199, 199, 199, 120, 199, 7, 7, + 7, 7, 199, 7, 7, 199, 7, 199, 7, 199, + 7, 7, 199, 199, 7, 4, 199, 4, 4, 199, + 199, 199, 199, 199, 4, 4, 4, 4, 4, 199, + 4, 4, 199, 4, 6, 3, 199, 6, 199, 3, + 6, 3, 3, 6, 3, 200, 6, 3, 6, 173, + 174, 6, 6, 3, 199, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, + 202, 6, 3, 6, 4, 199, 8, 6, 4, 4, + 4, 202, 4, 4, 4, 200, 200, 200, 200, 4, + 200, 200, 4, 200, 202, 966, 200, 200, 969, 200, + 200, 972, 969, 200, 975, 972, 972, 966, 975, 966, + 200, 966, 4, 4, 969, 986, 975, 972, 989, 986, + 975, 992, 200, 966, 966, 972, 966, 966, 4, 200, + 200, 986, 975, 975, 989, 975, 975, 1008, 966, 966, + 966, 202, 1013, 966, 200, 966, 1017, 975, 975, 975, + 4, 966, 975, 1008, 975, 1026, 4, 966, 1013, 1026, + 975, 1032, 1017, 966, 1035, 966, 975, 966, 1023, 4, + 969, 1026, 975, 972, 975, 202, 975, 1032, 6, 966, + 1035, 200, 3, 966, 966, 200, 966, 986, 975, 4, + 989, 966, 975, 975, 966, 975, 966, 199, 966, 986, + 975, 966, 989, 975, 966, 975, 966, 975, 966, 1008, + 975, 199, 8, 975, 1013, 975, 199, 975, 1017, 975, + 8, 4, 8, 975, 1023, 3, 8, 1026, 4, 199, + 4, 4, 199, 1032, 199, 4, 1035, 5, 4, 4, + 7, 4, 199, 4, 4, 1032, 199, 199, 1035, 656, + 678, 202, 707, 669, 478, 965, 681, 761, 960, 978, + 984, 981, 994, 1013, 992, 968, 528, 1001, 966, 977, + 1192, 199, 199, 77, 969, 971, 1032, 200, 520, 1035, + 1032, 199, 199, 1035, 200, 199, 199, 490, 199, 972, + 974, 200, 202, 199, 199, 525, 1037, 1034, 731, 991, + 1035, 1032, 1198, 989, 1008, 987, 1023, 718, 1017, 545, + 680, 549, 1027, 1213, 474, 1234, 1254, -1, -1, -1, + -1, 1192, -1, -1, -1, 1192, -1, 1198, -1, -1, + -1, 1198, -1, 1192, 493, -1, -1, 1192, -1, -1, + -1, -1, 1213, 1198, 1154, -1, 1213, -1, -1, 1192, + 1192, -1, 1192, 1192, 500, -1, -1, -1, 1213, -1, + -1, -1, -1, -1, 1192, 1192, 1192, 510, -1, 1192, + -1, 1192, -1, -1, -1, -1, -1, 1192, -1, -1, + -1, -1, -1, 1192, -1, -1, -1, -1, -1, 1192, + -1, 1192, -1, 1192, -1, -1, -1, -1, -1, 1198, + -1, -1, -1, -1, -1, 1192, -1, -1, -1, 1192, + 1192, 1198, 1192, -1, 1213, -1, -1, 1192, -1, -1, + 1192, -1, 1192, -1, 1192, -1, -1, 1192, -1, -1, + 1192, -1, 1192, -1, 1192, -1, 1192, -1, -1, -1, + 1192 }; - const short + const unsigned short int Dhcp6Parser::yystos_[] = { - 0, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 0, 5, 7, 9, 198, 199, 200, 201, 218, 219, - 220, 225, 7, 234, 7, 238, 7, 281, 7, 387, - 7, 464, 7, 480, 7, 497, 7, 416, 7, 422, - 7, 446, 7, 363, 7, 566, 7, 597, 226, 221, - 235, 239, 282, 388, 465, 481, 498, 417, 423, 447, - 364, 567, 598, 218, 227, 228, 198, 223, 224, 10, - 236, 11, 12, 15, 18, 19, 20, 44, 45, 46, + 0, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 0, 5, 7, 9, 199, 200, 201, 202, 219, 220, + 221, 226, 7, 235, 7, 239, 7, 283, 7, 389, + 7, 466, 7, 482, 7, 499, 7, 418, 7, 424, + 7, 448, 7, 365, 7, 568, 7, 599, 227, 222, + 236, 240, 284, 390, 467, 483, 500, 419, 425, 449, + 366, 569, 600, 219, 228, 229, 199, 224, 225, 10, + 237, 11, 12, 15, 18, 19, 20, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 89, 90, 96, 101, 102, - 103, 104, 105, 107, 112, 121, 124, 131, 139, 140, - 144, 147, 151, 172, 173, 174, 175, 198, 233, 240, - 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, + 67, 68, 69, 70, 71, 72, 90, 91, 97, 102, + 103, 104, 105, 106, 108, 113, 122, 125, 132, 140, + 141, 145, 148, 152, 173, 174, 175, 176, 199, 234, + 241, 242, 243, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 264, 266, 268, 269, 271, 273, 274, 275, 276, 278, - 279, 288, 290, 292, 330, 336, 342, 348, 350, 357, - 371, 381, 401, 406, 414, 440, 470, 472, 491, 521, - 533, 545, 546, 554, 564, 595, 604, 16, 17, 233, - 283, 284, 285, 287, 470, 472, 81, 83, 91, 92, - 93, 94, 95, 108, 111, 119, 233, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 258, 259, 260, 261, 264, 266, 268, 269, 271, 273, - 389, 390, 391, 393, 395, 397, 399, 401, 404, 405, - 440, 458, 470, 472, 474, 491, 516, 82, 233, 397, - 399, 440, 466, 467, 468, 470, 472, 84, 85, 86, - 87, 88, 233, 397, 399, 440, 470, 472, 482, 483, - 484, 486, 487, 489, 490, 107, 113, 114, 115, 116, - 117, 118, 233, 440, 470, 472, 499, 500, 501, 502, - 504, 506, 508, 510, 512, 514, 414, 21, 72, 74, - 75, 78, 79, 80, 233, 310, 424, 425, 426, 427, - 428, 429, 430, 432, 434, 436, 437, 439, 470, 472, - 73, 76, 77, 233, 310, 428, 434, 448, 449, 450, - 451, 452, 454, 455, 456, 457, 470, 472, 122, 123, - 233, 365, 366, 367, 369, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 172, 173, - 233, 470, 472, 568, 569, 570, 571, 573, 575, 576, - 578, 579, 580, 583, 585, 586, 587, 589, 591, 593, - 13, 14, 599, 600, 601, 603, 6, 3, 4, 8, - 3, 237, 8, 243, 596, 280, 289, 291, 293, 4, + 262, 265, 267, 269, 270, 271, 273, 275, 276, 277, + 278, 280, 281, 290, 292, 294, 332, 338, 344, 350, + 352, 359, 373, 383, 403, 408, 416, 442, 472, 474, + 493, 523, 535, 547, 548, 556, 566, 597, 606, 16, + 17, 234, 285, 286, 287, 289, 472, 474, 82, 84, + 92, 93, 94, 95, 96, 109, 112, 120, 234, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 259, 260, 261, 262, 265, 267, 269, 270, + 271, 273, 275, 391, 392, 393, 395, 397, 399, 401, + 403, 406, 407, 442, 460, 472, 474, 476, 493, 518, + 83, 234, 399, 401, 442, 468, 469, 470, 472, 474, + 85, 86, 87, 88, 89, 234, 399, 401, 442, 472, + 474, 484, 485, 486, 488, 489, 491, 492, 108, 114, + 115, 116, 117, 118, 119, 234, 442, 472, 474, 501, + 502, 503, 504, 506, 508, 510, 512, 514, 516, 416, + 21, 73, 75, 76, 79, 80, 81, 234, 312, 426, + 427, 428, 429, 430, 431, 432, 434, 436, 438, 439, + 441, 472, 474, 74, 77, 78, 234, 312, 430, 436, + 450, 451, 452, 453, 454, 456, 457, 458, 459, 472, + 474, 123, 124, 234, 367, 368, 369, 371, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 173, 174, 234, 472, 474, 570, 571, 572, 573, + 575, 577, 578, 580, 581, 582, 585, 587, 588, 589, + 591, 593, 595, 13, 14, 601, 602, 603, 605, 6, + 3, 4, 8, 3, 238, 8, 244, 598, 282, 291, + 293, 295, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 279, 4, 4, 4, + 4, 4, 263, 266, 268, 4, 4, 4, 384, 417, + 443, 473, 475, 404, 409, 339, 351, 345, 333, 524, + 494, 360, 374, 536, 4, 353, 549, 557, 567, 272, + 274, 4, 607, 4, 3, 8, 288, 4, 3, 8, + 461, 477, 394, 396, 398, 4, 4, 402, 400, 519, + 3, 8, 471, 3, 8, 487, 4, 490, 4, 4, + 3, 8, 517, 505, 507, 509, 511, 513, 515, 8, + 3, 8, 433, 313, 4, 437, 435, 440, 4, 8, + 3, 455, 4, 4, 8, 3, 370, 372, 3, 8, + 4, 574, 576, 4, 579, 4, 4, 583, 586, 4, + 4, 590, 592, 594, 596, 3, 8, 604, 4, 3, + 8, 219, 219, 199, 4, 4, 4, 4, 4, 4, + 4, 200, 200, 200, 200, 200, 200, 200, 200, 202, + 201, 201, 201, 200, 200, 4, 200, 200, 202, 202, + 202, 4, 4, 4, 202, 202, 202, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 277, 4, 4, 4, 4, 4, 262, - 265, 267, 4, 4, 382, 415, 441, 471, 473, 402, - 407, 337, 349, 343, 331, 522, 492, 358, 372, 534, - 4, 351, 547, 555, 565, 270, 272, 4, 605, 4, - 3, 8, 286, 4, 3, 8, 459, 475, 392, 394, - 396, 4, 4, 400, 398, 517, 3, 8, 469, 3, - 8, 485, 4, 488, 4, 4, 3, 8, 515, 503, - 505, 507, 509, 511, 513, 8, 3, 8, 431, 311, - 4, 435, 433, 438, 4, 8, 3, 453, 4, 4, - 8, 3, 368, 370, 3, 8, 4, 572, 574, 4, - 577, 4, 4, 581, 584, 4, 4, 588, 590, 592, - 594, 3, 8, 602, 4, 3, 8, 218, 218, 198, - 4, 4, 4, 4, 4, 4, 4, 199, 199, 199, - 199, 199, 199, 199, 199, 201, 200, 200, 200, 199, - 199, 4, 199, 199, 201, 201, 201, 4, 4, 4, - 201, 201, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 199, 4, - 4, 4, 4, 4, 4, 201, 4, 241, 4, 201, - 284, 4, 4, 4, 4, 4, 199, 201, 4, 4, - 4, 390, 4, 467, 4, 199, 4, 199, 199, 483, - 4, 4, 4, 4, 4, 4, 4, 501, 4, 4, - 199, 4, 4, 4, 201, 426, 4, 201, 201, 450, - 4, 4, 366, 201, 4, 4, 199, 4, 199, 199, - 4, 4, 201, 201, 4, 4, 4, 4, 569, 4, - 199, 600, 4, 7, 198, 7, 7, 7, 7, 5, - 198, 168, 169, 170, 171, 201, 263, 198, 198, 5, - 5, 5, 220, 222, 198, 97, 98, 99, 100, 403, - 5, 5, 5, 5, 7, 5, 5, 5, 7, 7, - 7, 7, 7, 7, 198, 198, 5, 5, 229, 5, - 5, 198, 198, 198, 229, 198, 7, 198, 198, 198, - 229, 229, 229, 198, 198, 198, 198, 198, 198, 198, - 198, 198, 198, 198, 222, 198, 198, 198, 165, 166, - 582, 167, 263, 198, 198, 198, 5, 218, 240, 599, - 283, 21, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 233, 298, 299, 300, 303, 305, 307, 309, 310, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 323, - 324, 326, 328, 298, 7, 294, 295, 296, 7, 383, - 384, 385, 7, 418, 419, 420, 7, 442, 443, 444, - 7, 408, 409, 410, 115, 198, 338, 339, 340, 341, - 227, 116, 118, 340, 344, 345, 346, 347, 106, 332, - 333, 334, 7, 523, 524, 7, 493, 494, 495, 7, - 359, 360, 361, 125, 126, 127, 128, 129, 130, 373, - 374, 375, 376, 377, 378, 379, 380, 21, 135, 136, - 137, 138, 233, 312, 470, 472, 535, 536, 537, 540, - 541, 543, 544, 141, 142, 143, 233, 352, 353, 354, - 355, 356, 470, 472, 145, 146, 233, 470, 472, 548, - 549, 550, 552, 148, 149, 150, 198, 470, 472, 556, - 557, 558, 559, 561, 562, 568, 7, 606, 607, 230, - 7, 460, 461, 462, 7, 476, 477, 478, 120, 502, - 518, 519, 294, 8, 8, 8, 301, 304, 306, 308, - 4, 4, 4, 4, 4, 322, 4, 4, 325, 327, - 329, 4, 4, 4, 4, 3, 8, 8, 297, 6, - 3, 386, 6, 3, 421, 6, 3, 445, 6, 3, - 411, 6, 3, 3, 6, 6, 3, 6, 335, 3, - 8, 525, 3, 6, 496, 6, 3, 362, 6, 3, - 4, 4, 4, 4, 4, 4, 3, 8, 538, 542, - 4, 4, 4, 3, 8, 4, 4, 4, 3, 8, - 551, 553, 3, 8, 4, 560, 4, 563, 3, 8, - 8, 608, 3, 6, 198, 231, 232, 463, 6, 3, - 479, 6, 3, 520, 8, 6, 4, 4, 4, 4, - 199, 201, 199, 201, 199, 4, 199, 199, 4, 4, - 4, 199, 199, 201, 199, 299, 298, 296, 389, 385, - 424, 420, 448, 444, 233, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 258, 259, - 260, 261, 264, 266, 268, 269, 271, 273, 310, 381, - 393, 395, 397, 399, 401, 405, 412, 413, 440, 470, - 472, 516, 410, 339, 345, 4, 333, 109, 110, 233, - 310, 440, 470, 472, 526, 527, 528, 529, 530, 532, - 524, 499, 495, 365, 361, 199, 199, 199, 199, 199, - 199, 374, 4, 4, 199, 199, 199, 536, 201, 199, - 199, 353, 4, 4, 549, 201, 4, 199, 4, 557, - 176, 178, 179, 233, 310, 470, 472, 609, 610, 611, - 612, 614, 607, 6, 3, 466, 462, 482, 478, 4, - 22, 23, 24, 25, 302, 198, 198, 198, 198, 198, - 198, 198, 8, 8, 8, 8, 3, 8, 198, 531, - 4, 8, 3, 8, 8, 132, 133, 134, 539, 198, - 198, 198, 198, 218, 615, 4, 613, 3, 8, 198, - 8, 8, 198, 413, 4, 201, 528, 4, 199, 4, - 610, 198, 5, 198, 7, 616, 617, 618, 3, 6, - 177, 180, 181, 182, 183, 619, 620, 621, 623, 624, - 625, 626, 617, 622, 4, 4, 4, 627, 3, 8, - 4, 201, 199, 199, 4, 620, 198, 198 + 4, 4, 4, 200, 4, 4, 4, 4, 4, 4, + 202, 4, 242, 4, 202, 286, 4, 4, 4, 4, + 4, 200, 202, 4, 4, 4, 392, 4, 469, 4, + 200, 4, 200, 200, 485, 4, 4, 4, 4, 4, + 4, 4, 503, 4, 4, 200, 4, 4, 4, 202, + 428, 4, 202, 202, 452, 4, 4, 368, 202, 4, + 4, 200, 4, 200, 200, 4, 4, 202, 202, 4, + 4, 4, 4, 571, 4, 200, 602, 4, 7, 199, + 7, 7, 7, 7, 5, 199, 169, 170, 171, 172, + 202, 264, 199, 199, 5, 5, 5, 221, 223, 199, + 98, 99, 100, 101, 405, 5, 5, 5, 5, 7, + 5, 5, 5, 7, 7, 7, 7, 7, 7, 199, + 199, 5, 5, 230, 5, 5, 199, 199, 199, 230, + 199, 7, 199, 199, 199, 230, 230, 230, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 223, + 199, 199, 199, 166, 167, 584, 168, 264, 199, 199, + 199, 5, 219, 241, 601, 285, 21, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 234, 300, 301, 302, 305, + 307, 309, 311, 312, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 325, 326, 328, 330, 300, 7, + 296, 297, 298, 7, 385, 386, 387, 7, 420, 421, + 422, 7, 444, 445, 446, 7, 410, 411, 412, 116, + 199, 340, 341, 342, 343, 228, 117, 119, 342, 346, + 347, 348, 349, 107, 334, 335, 336, 7, 525, 526, + 7, 495, 496, 497, 7, 361, 362, 363, 126, 127, + 128, 129, 130, 131, 375, 376, 377, 378, 379, 380, + 381, 382, 21, 136, 137, 138, 139, 234, 314, 472, + 474, 537, 538, 539, 542, 543, 545, 546, 142, 143, + 144, 234, 354, 355, 356, 357, 358, 472, 474, 146, + 147, 234, 472, 474, 550, 551, 552, 554, 149, 150, + 151, 199, 472, 474, 558, 559, 560, 561, 563, 564, + 570, 7, 608, 609, 231, 7, 462, 463, 464, 7, + 478, 479, 480, 121, 504, 520, 521, 296, 8, 8, + 8, 303, 306, 308, 310, 4, 4, 4, 4, 4, + 324, 4, 4, 327, 329, 331, 4, 4, 4, 4, + 3, 8, 8, 299, 6, 3, 388, 6, 3, 423, + 6, 3, 447, 6, 3, 413, 6, 3, 3, 6, + 6, 3, 6, 337, 3, 8, 527, 3, 6, 498, + 6, 3, 364, 6, 3, 4, 4, 4, 4, 4, + 4, 3, 8, 540, 544, 4, 4, 4, 3, 8, + 4, 4, 4, 3, 8, 553, 555, 3, 8, 4, + 562, 4, 565, 3, 8, 8, 610, 3, 6, 199, + 232, 233, 465, 6, 3, 481, 6, 3, 522, 8, + 6, 4, 4, 4, 4, 200, 202, 200, 202, 200, + 4, 200, 200, 4, 4, 4, 200, 200, 202, 200, + 301, 300, 298, 391, 387, 426, 422, 450, 446, 234, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 259, 260, 261, 262, 265, 267, 269, + 270, 271, 273, 275, 312, 383, 395, 397, 399, 401, + 403, 407, 414, 415, 442, 472, 474, 518, 412, 341, + 347, 4, 335, 110, 111, 234, 312, 442, 472, 474, + 528, 529, 530, 531, 532, 534, 526, 501, 497, 367, + 363, 200, 200, 200, 200, 200, 200, 376, 4, 4, + 200, 200, 200, 538, 202, 200, 200, 355, 4, 4, + 551, 202, 4, 200, 4, 559, 177, 179, 180, 234, + 312, 472, 474, 611, 612, 613, 614, 616, 609, 6, + 3, 468, 464, 484, 480, 4, 22, 23, 24, 25, + 304, 199, 199, 199, 199, 199, 199, 199, 8, 8, + 8, 8, 3, 8, 199, 533, 4, 8, 3, 8, + 8, 133, 134, 135, 541, 199, 199, 199, 199, 219, + 617, 4, 615, 3, 8, 199, 8, 8, 199, 415, + 4, 202, 530, 4, 200, 4, 612, 199, 5, 199, + 7, 618, 619, 620, 3, 6, 178, 181, 182, 183, + 184, 621, 622, 623, 625, 626, 627, 628, 619, 624, + 4, 4, 4, 629, 3, 8, 4, 202, 200, 200, + 4, 622, 199, 199 }; - const short + const unsigned short int Dhcp6Parser::yyr1_[] = { - 0, 202, 204, 203, 205, 203, 206, 203, 207, 203, - 208, 203, 209, 203, 210, 203, 211, 203, 212, 203, - 213, 203, 214, 203, 215, 203, 216, 203, 217, 203, - 218, 218, 218, 218, 218, 218, 218, 219, 221, 220, - 222, 223, 223, 224, 224, 226, 225, 227, 227, 228, - 228, 230, 229, 231, 231, 232, 232, 233, 235, 234, - 237, 236, 239, 238, 240, 240, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 243, 242, 244, 245, 246, 247, 248, + 0, 203, 205, 204, 206, 204, 207, 204, 208, 204, + 209, 204, 210, 204, 211, 204, 212, 204, 213, 204, + 214, 204, 215, 204, 216, 204, 217, 204, 218, 204, + 219, 219, 219, 219, 219, 219, 219, 220, 222, 221, + 223, 224, 224, 225, 225, 227, 226, 228, 228, 229, + 229, 231, 230, 232, 232, 233, 233, 234, 236, 235, + 238, 237, 240, 239, 241, 241, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 244, 243, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 262, 261, 263, 263, 263, 263, 263, 265, - 264, 267, 266, 268, 270, 269, 272, 271, 273, 274, - 275, 277, 276, 278, 280, 279, 282, 281, 283, 283, - 284, 284, 284, 284, 284, 286, 285, 287, 289, 288, - 291, 290, 293, 292, 294, 294, 295, 295, 297, 296, - 298, 298, 299, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 301, 300, 302, 302, 302, 302, 304, - 303, 306, 305, 308, 307, 309, 311, 310, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 322, 321, 323, - 325, 324, 327, 326, 329, 328, 331, 330, 332, 332, - 333, 335, 334, 337, 336, 338, 338, 339, 339, 340, - 341, 343, 342, 344, 344, 345, 345, 345, 346, 347, - 349, 348, 351, 350, 352, 352, 353, 353, 353, 353, - 353, 353, 354, 355, 356, 358, 357, 359, 359, 360, - 360, 362, 361, 364, 363, 365, 365, 365, 366, 366, - 368, 367, 370, 369, 372, 371, 373, 373, 374, 374, - 374, 374, 374, 374, 375, 376, 377, 378, 379, 380, - 382, 381, 383, 383, 384, 384, 386, 385, 388, 387, - 389, 389, 390, 390, 390, 390, 390, 390, 390, 390, - 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, - 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, - 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, - 390, 392, 391, 394, 393, 396, 395, 398, 397, 400, - 399, 402, 401, 403, 403, 403, 403, 404, 405, 407, - 406, 408, 408, 409, 409, 411, 410, 412, 412, 413, - 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, - 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, - 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, - 413, 413, 413, 413, 413, 415, 414, 417, 416, 418, - 418, 419, 419, 421, 420, 423, 422, 424, 424, 425, - 425, 426, 426, 426, 426, 426, 426, 426, 426, 426, - 426, 427, 428, 429, 431, 430, 433, 432, 435, 434, - 436, 438, 437, 439, 441, 440, 442, 442, 443, 443, - 445, 444, 447, 446, 448, 448, 449, 449, 450, 450, - 450, 450, 450, 450, 450, 450, 450, 451, 453, 452, - 454, 455, 456, 457, 459, 458, 460, 460, 461, 461, - 463, 462, 465, 464, 466, 466, 467, 467, 467, 467, - 467, 467, 467, 469, 468, 471, 470, 473, 472, 475, - 474, 476, 476, 477, 477, 479, 478, 481, 480, 482, - 482, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 485, 484, 486, 488, 487, 489, 490, 492, - 491, 493, 493, 494, 494, 496, 495, 498, 497, 499, - 499, 500, 500, 501, 501, 501, 501, 501, 501, 501, - 501, 501, 501, 501, 503, 502, 505, 504, 507, 506, - 509, 508, 511, 510, 513, 512, 515, 514, 517, 516, - 518, 518, 520, 519, 522, 521, 523, 523, 525, 524, - 526, 526, 527, 527, 528, 528, 528, 528, 528, 528, - 528, 529, 531, 530, 532, 534, 533, 535, 535, 536, - 536, 536, 536, 536, 536, 536, 536, 536, 538, 537, - 539, 539, 539, 540, 542, 541, 543, 544, 545, 547, - 546, 548, 548, 549, 549, 549, 549, 549, 551, 550, - 553, 552, 555, 554, 556, 556, 557, 557, 557, 557, - 557, 557, 558, 560, 559, 561, 563, 562, 565, 564, - 567, 566, 568, 568, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 570, 572, 571, 574, 573, 575, 577, 576, - 578, 579, 581, 580, 582, 582, 584, 583, 585, 586, - 588, 587, 590, 589, 592, 591, 594, 593, 596, 595, - 598, 597, 599, 599, 600, 600, 602, 601, 603, 605, - 604, 606, 606, 608, 607, 609, 609, 610, 610, 610, - 610, 610, 610, 610, 611, 613, 612, 615, 614, 616, - 616, 618, 617, 619, 619, 620, 620, 620, 620, 620, - 622, 621, 623, 624, 625, 627, 626 + 259, 260, 261, 263, 262, 264, 264, 264, 264, 264, + 266, 265, 268, 267, 269, 270, 272, 271, 274, 273, + 275, 276, 277, 279, 278, 280, 282, 281, 284, 283, + 285, 285, 286, 286, 286, 286, 286, 288, 287, 289, + 291, 290, 293, 292, 295, 294, 296, 296, 297, 297, + 299, 298, 300, 300, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 303, 302, 304, 304, 304, + 304, 306, 305, 308, 307, 310, 309, 311, 313, 312, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 324, + 323, 325, 327, 326, 329, 328, 331, 330, 333, 332, + 334, 334, 335, 337, 336, 339, 338, 340, 340, 341, + 341, 342, 343, 345, 344, 346, 346, 347, 347, 347, + 348, 349, 351, 350, 353, 352, 354, 354, 355, 355, + 355, 355, 355, 355, 356, 357, 358, 360, 359, 361, + 361, 362, 362, 364, 363, 366, 365, 367, 367, 367, + 368, 368, 370, 369, 372, 371, 374, 373, 375, 375, + 376, 376, 376, 376, 376, 376, 377, 378, 379, 380, + 381, 382, 384, 383, 385, 385, 386, 386, 388, 387, + 390, 389, 391, 391, 392, 392, 392, 392, 392, 392, + 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, + 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, + 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, + 392, 392, 392, 392, 394, 393, 396, 395, 398, 397, + 400, 399, 402, 401, 404, 403, 405, 405, 405, 405, + 406, 407, 409, 408, 410, 410, 411, 411, 413, 412, + 414, 414, 415, 415, 415, 415, 415, 415, 415, 415, + 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, + 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, + 415, 415, 415, 415, 415, 415, 415, 415, 415, 417, + 416, 419, 418, 420, 420, 421, 421, 423, 422, 425, + 424, 426, 426, 427, 427, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 429, 430, 431, 433, 432, + 435, 434, 437, 436, 438, 440, 439, 441, 443, 442, + 444, 444, 445, 445, 447, 446, 449, 448, 450, 450, + 451, 451, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 453, 455, 454, 456, 457, 458, 459, 461, 460, + 462, 462, 463, 463, 465, 464, 467, 466, 468, 468, + 469, 469, 469, 469, 469, 469, 469, 471, 470, 473, + 472, 475, 474, 477, 476, 478, 478, 479, 479, 481, + 480, 483, 482, 484, 484, 485, 485, 485, 485, 485, + 485, 485, 485, 485, 485, 485, 487, 486, 488, 490, + 489, 491, 492, 494, 493, 495, 495, 496, 496, 498, + 497, 500, 499, 501, 501, 502, 502, 503, 503, 503, + 503, 503, 503, 503, 503, 503, 503, 503, 505, 504, + 507, 506, 509, 508, 511, 510, 513, 512, 515, 514, + 517, 516, 519, 518, 520, 520, 522, 521, 524, 523, + 525, 525, 527, 526, 528, 528, 529, 529, 530, 530, + 530, 530, 530, 530, 530, 531, 533, 532, 534, 536, + 535, 537, 537, 538, 538, 538, 538, 538, 538, 538, + 538, 538, 540, 539, 541, 541, 541, 542, 544, 543, + 545, 546, 547, 549, 548, 550, 550, 551, 551, 551, + 551, 551, 553, 552, 555, 554, 557, 556, 558, 558, + 559, 559, 559, 559, 559, 559, 560, 562, 561, 563, + 565, 564, 567, 566, 569, 568, 570, 570, 571, 571, + 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 571, 571, 572, 574, 573, 576, + 575, 577, 579, 578, 580, 581, 583, 582, 584, 584, + 586, 585, 587, 588, 590, 589, 592, 591, 594, 593, + 596, 595, 598, 597, 600, 599, 601, 601, 602, 602, + 604, 603, 605, 607, 606, 608, 608, 610, 609, 611, + 611, 612, 612, 612, 612, 612, 612, 612, 613, 615, + 614, 617, 616, 618, 618, 620, 619, 621, 621, 622, + 622, 622, 622, 622, 624, 623, 625, 626, 627, 629, + 628 }; - const signed char + const unsigned char Dhcp6Parser::yyr2_[] = { 0, 2, 0, 3, 0, 3, 0, 3, 0, 3, @@ -5433,84 +5296,85 @@ 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, 0, 4, 3, 3, 3, 3, 3, + 1, 1, 1, 1, 0, 4, 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, 0, 4, 0, 4, 3, 3, - 3, 0, 4, 3, 0, 6, 0, 4, 1, 3, - 1, 1, 1, 1, 1, 0, 4, 3, 0, 6, - 0, 6, 0, 6, 0, 1, 1, 3, 0, 4, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 1, 1, 1, 1, 0, - 4, 0, 4, 0, 4, 3, 0, 4, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 0, 4, 3, - 0, 4, 0, 4, 0, 4, 0, 6, 1, 3, - 1, 0, 4, 0, 6, 1, 3, 1, 1, 1, - 1, 0, 6, 1, 3, 1, 1, 1, 1, 1, - 0, 6, 0, 6, 1, 3, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, - 0, 4, 0, 4, 0, 6, 1, 3, 1, 1, - 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, - 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 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, 6, 0, 4, + 1, 3, 1, 1, 1, 1, 1, 0, 4, 3, + 0, 6, 0, 6, 0, 6, 0, 1, 1, 3, + 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 4, 1, 1, 1, + 1, 0, 4, 0, 4, 0, 4, 3, 0, 4, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, + 4, 3, 0, 4, 0, 4, 0, 4, 0, 6, + 1, 3, 1, 0, 4, 0, 6, 1, 3, 1, + 1, 1, 1, 0, 6, 1, 3, 1, 1, 1, + 1, 1, 0, 6, 0, 6, 1, 3, 1, 1, + 1, 1, 1, 1, 3, 3, 3, 0, 6, 0, + 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, + 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, + 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, + 3, 3, 0, 6, 0, 1, 1, 3, 0, 4, + 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 1, 1, 1, 1, 3, 3, 0, - 6, 0, 1, 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 1, 1, 1, 1, + 3, 3, 0, 6, 0, 1, 1, 3, 0, 4, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 6, 0, 4, 0, - 1, 1, 3, 0, 4, 0, 4, 0, 1, 1, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 1, 0, 4, 0, 4, 0, 4, - 1, 0, 4, 3, 0, 6, 0, 1, 1, 3, - 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 1, 1, 3, 3, 0, 6, 0, 1, 1, 3, - 0, 4, 0, 4, 1, 3, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, - 6, 0, 1, 1, 3, 0, 4, 0, 4, 1, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 3, 0, 4, 3, 3, 0, - 6, 0, 1, 1, 3, 0, 4, 0, 4, 0, - 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, - 1, 1, 0, 4, 0, 6, 1, 3, 0, 4, - 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 3, 0, 6, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 6, 0, 4, 0, 1, 1, 3, 0, 4, 0, + 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 0, 4, + 0, 4, 0, 4, 1, 0, 4, 3, 0, 6, + 0, 1, 1, 3, 0, 4, 0, 4, 0, 1, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 1, 1, 3, 3, 0, 6, + 0, 1, 1, 3, 0, 4, 0, 4, 1, 3, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, + 4, 0, 4, 0, 6, 0, 1, 1, 3, 0, + 4, 0, 4, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 4, 3, 0, + 4, 3, 3, 0, 6, 0, 1, 1, 3, 0, + 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 1, 1, 1, 3, 0, 4, 3, 3, 3, 0, - 6, 1, 3, 1, 1, 1, 1, 1, 0, 4, - 0, 4, 0, 6, 1, 3, 1, 1, 1, 1, - 1, 1, 3, 0, 4, 3, 0, 4, 0, 6, - 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 6, 1, 1, 0, 4, 0, 6, + 1, 3, 0, 4, 0, 1, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 4, 3, 0, + 6, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 1, 1, 1, 3, 0, 4, + 3, 3, 3, 0, 6, 1, 3, 1, 1, 1, + 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, + 1, 1, 1, 1, 1, 1, 3, 0, 4, 3, + 0, 4, 0, 6, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 0, 4, 0, 4, 3, 0, 4, - 3, 3, 0, 4, 1, 1, 0, 4, 3, 3, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, - 0, 4, 1, 3, 1, 1, 0, 6, 3, 0, - 6, 1, 3, 0, 4, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 3, 0, 4, 0, 6, 1, - 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, - 0, 4, 3, 3, 3, 0, 4 + 1, 1, 1, 1, 1, 1, 3, 0, 4, 0, + 4, 3, 0, 4, 3, 3, 0, 4, 1, 1, + 0, 4, 3, 3, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 6, 0, 4, 1, 3, 1, 1, + 0, 6, 3, 0, 6, 1, 3, 0, 4, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 3, 0, + 4, 0, 6, 1, 3, 0, 4, 1, 3, 1, + 1, 1, 1, 1, 0, 4, 3, 3, 3, 0, + 4 }; -#if PARSER6_DEBUG || 1 + // YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - // First, the terminals, then, starting at \a YYNTOKENS, nonterminals. + // First, the terminals, then, starting at \a yyntokens_, nonterminals. const char* const Dhcp6Parser::yytname_[] = { - "\"end of file\"", "error", "\"invalid token\"", "\",\"", "\":\"", - "\"[\"", "\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Dhcp6\"", - "\"data-directory\"", "\"config-control\"", "\"config-databases\"", + "\"end of file\"", "error", "$undefined", "\",\"", "\":\"", "\"[\"", + "\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Dhcp6\"", "\"data-directory\"", + "\"config-control\"", "\"config-databases\"", "\"config-fetch-wait-time\"", "\"interfaces-config\"", "\"interfaces\"", "\"re-detect\"", "\"lease-database\"", "\"hosts-database\"", "\"hosts-databases\"", "\"type\"", "\"memfile\"", "\"mysql\"", @@ -5529,9 +5393,10 @@ namespace isc { namespace dhcp { "\"ddns-send-updates\"", "\"ddns-override-no-update\"", "\"ddns-override-client-update\"", "\"ddns-replace-client-name\"", "\"ddns-generated-prefix\"", "\"ddns-qualifying-suffix\"", - "\"ddns-update-on-renew\"", "\"store-extended-info\"", "\"subnet6\"", - "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", - "\"space\"", "\"csv-format\"", "\"always-send\"", "\"record-types\"", + "\"ddns-update-on-renew\"", "\"ddns-use-conflict-resolution\"", + "\"store-extended-info\"", "\"subnet6\"", "\"option-def\"", + "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", "\"space\"", + "\"csv-format\"", "\"always-send\"", "\"record-types\"", "\"encapsulate\"", "\"array\"", "\"pools\"", "\"pool\"", "\"pd-pools\"", "\"prefix\"", "\"prefix-len\"", "\"excluded-prefix\"", "\"excluded-prefix-len\"", "\"delegated-len\"", "\"user-context\"", @@ -5585,22 +5450,23 @@ namespace isc { namespace dhcp { "ddns_override_client_update", "ddns_replace_client_name", "$@22", "ddns_replace_client_name_value", "ddns_generated_prefix", "$@23", "ddns_qualifying_suffix", "$@24", "ddns_update_on_renew", - "hostname_char_set", "$@25", "hostname_char_replacement", "$@26", - "store_extended_info", "statistic_default_sample_count", - "statistic_default_sample_age", "server_tag", "$@27", - "ip_reservations_unique", "interfaces_config", "$@28", "sub_interfaces6", - "$@29", "interfaces_config_params", "interfaces_config_param", - "interfaces_list", "$@30", "re_detect", "lease_database", "$@31", - "hosts_database", "$@32", "hosts_databases", "$@33", "database_list", - "not_empty_database_list", "database", "$@34", "database_map_params", - "database_map_param", "database_type", "$@35", "db_type", "user", "$@36", - "password", "$@37", "host", "$@38", "port", "name", "$@39", "persist", - "lfc_interval", "readonly", "connect_timeout", "reconnect_wait_time", - "max_row_errors", "request_timeout", "tcp_keepalive", "tcp_nodelay", - "contact_points", "$@40", "max_reconnect_tries", "keyspace", "$@41", - "consistency", "$@42", "serial_consistency", "$@43", "sanity_checks", - "$@44", "sanity_checks_params", "sanity_checks_param", "lease_checks", - "$@45", "mac_sources", "$@46", "mac_sources_list", "mac_sources_value", + "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", "ip_reservations_unique", "interfaces_config", + "$@28", "sub_interfaces6", "$@29", "interfaces_config_params", + "interfaces_config_param", "interfaces_list", "$@30", "re_detect", + "lease_database", "$@31", "hosts_database", "$@32", "hosts_databases", + "$@33", "database_list", "not_empty_database_list", "database", "$@34", + "database_map_params", "database_map_param", "database_type", "$@35", + "db_type", "user", "$@36", "password", "$@37", "host", "$@38", "port", + "name", "$@39", "persist", "lfc_interval", "readonly", "connect_timeout", + "reconnect_wait_time", "max_row_errors", "request_timeout", + "tcp_keepalive", "tcp_nodelay", "contact_points", "$@40", + "max_reconnect_tries", "keyspace", "$@41", "consistency", "$@42", + "serial_consistency", "$@43", "sanity_checks", "$@44", + "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@45", + "mac_sources", "$@46", "mac_sources_list", "mac_sources_value", "duid_id", "string_id", "host_reservation_identifiers", "$@47", "host_reservation_identifiers_list", "host_reservation_identifier", "hw_address_id", "flex_id", "relay_supplied_options", "$@48", @@ -5675,113 +5541,114 @@ namespace isc { namespace dhcp { "output_params_list", "output_params", "output", "$@133", "flush", "maxsize", "maxver", "pattern", "$@134", YY_NULLPTR }; -#endif - #if PARSER6_DEBUG - const short + const unsigned short int Dhcp6Parser::yyrline_[] = { - 0, 287, 287, 287, 288, 288, 289, 289, 290, 290, - 291, 291, 292, 292, 293, 293, 294, 294, 295, 295, - 296, 296, 297, 297, 298, 298, 299, 299, 300, 300, - 308, 309, 310, 311, 312, 313, 314, 317, 322, 322, - 333, 336, 337, 340, 345, 353, 353, 360, 361, 364, - 368, 375, 375, 382, 383, 386, 390, 401, 410, 410, - 425, 425, 442, 442, 451, 452, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 516, 516, 525, 531, 537, 543, 549, - 555, 561, 567, 573, 579, 585, 591, 597, 603, 609, - 615, 621, 627, 627, 636, 639, 642, 645, 648, 654, - 654, 663, 663, 672, 678, 678, 687, 687, 696, 702, - 708, 714, 714, 723, 729, 729, 741, 741, 750, 751, - 754, 755, 756, 757, 758, 761, 761, 772, 778, 778, - 791, 791, 804, 804, 815, 816, 819, 820, 823, 823, - 833, 834, 837, 838, 839, 840, 841, 842, 843, 844, - 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, - 855, 856, 857, 860, 860, 868, 869, 870, 871, 874, - 874, 883, 883, 892, 892, 901, 907, 907, 916, 922, - 928, 934, 940, 946, 952, 958, 964, 970, 970, 979, - 985, 985, 994, 994, 1003, 1003, 1012, 1012, 1023, 1024, - 1026, 1028, 1028, 1047, 1047, 1058, 1059, 1062, 1063, 1066, - 1071, 1076, 1076, 1087, 1088, 1091, 1092, 1093, 1096, 1101, - 1108, 1108, 1121, 1121, 1134, 1135, 1138, 1139, 1140, 1141, - 1142, 1143, 1146, 1152, 1158, 1164, 1164, 1175, 1176, 1179, - 1180, 1183, 1183, 1193, 1193, 1203, 1204, 1205, 1208, 1209, - 1212, 1212, 1221, 1221, 1230, 1230, 1242, 1243, 1246, 1247, - 1248, 1249, 1250, 1251, 1254, 1260, 1266, 1272, 1278, 1284, - 1293, 1293, 1307, 1308, 1311, 1312, 1319, 1319, 1345, 1345, - 1356, 1357, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, - 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, - 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, - 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, - 1399, 1402, 1402, 1411, 1411, 1420, 1420, 1429, 1429, 1438, - 1438, 1449, 1449, 1457, 1458, 1459, 1460, 1463, 1469, 1477, - 1477, 1489, 1490, 1494, 1495, 1498, 1498, 1506, 1507, 1510, - 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, - 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, - 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, - 1541, 1542, 1543, 1544, 1545, 1552, 1552, 1566, 1566, 1575, - 1576, 1579, 1580, 1585, 1585, 1600, 1600, 1614, 1615, 1618, - 1619, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, - 1631, 1634, 1636, 1642, 1644, 1644, 1653, 1653, 1662, 1662, - 1671, 1673, 1673, 1682, 1692, 1692, 1705, 1706, 1711, 1712, - 1717, 1717, 1729, 1729, 1741, 1742, 1747, 1748, 1753, 1754, - 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1764, 1766, 1766, - 1775, 1777, 1779, 1785, 1794, 1794, 1807, 1808, 1811, 1812, - 1815, 1815, 1825, 1825, 1835, 1836, 1839, 1840, 1841, 1842, - 1843, 1844, 1845, 1848, 1848, 1857, 1857, 1882, 1882, 1912, - 1912, 1925, 1926, 1929, 1930, 1933, 1933, 1945, 1945, 1957, - 1958, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, - 1970, 1971, 1974, 1974, 1983, 1989, 1989, 1998, 2004, 2013, - 2013, 2024, 2025, 2028, 2029, 2032, 2032, 2041, 2041, 2050, - 2051, 2054, 2055, 2059, 2060, 2061, 2062, 2063, 2064, 2065, - 2066, 2067, 2068, 2069, 2072, 2072, 2083, 2083, 2094, 2094, - 2103, 2103, 2112, 2112, 2121, 2121, 2130, 2130, 2144, 2144, - 2155, 2156, 2159, 2159, 2171, 2171, 2182, 2183, 2186, 2186, - 2196, 2197, 2200, 2201, 2204, 2205, 2206, 2207, 2208, 2209, - 2210, 2213, 2215, 2215, 2224, 2233, 2233, 2246, 2247, 2250, - 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2261, 2261, - 2269, 2270, 2271, 2274, 2280, 2280, 2289, 2295, 2303, 2311, - 2311, 2322, 2323, 2326, 2327, 2328, 2329, 2330, 2333, 2333, - 2342, 2342, 2354, 2354, 2367, 2368, 2371, 2372, 2373, 2374, - 2375, 2376, 2379, 2385, 2385, 2394, 2400, 2400, 2410, 2410, - 2423, 2423, 2433, 2434, 2437, 2438, 2439, 2440, 2441, 2442, - 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, - 2453, 2454, 2457, 2464, 2464, 2473, 2473, 2482, 2488, 2488, - 2497, 2503, 2509, 2509, 2518, 2519, 2522, 2522, 2532, 2539, - 2546, 2546, 2555, 2555, 2565, 2565, 2575, 2575, 2587, 2587, - 2599, 2599, 2609, 2610, 2614, 2615, 2618, 2618, 2629, 2637, - 2637, 2650, 2651, 2655, 2655, 2663, 2664, 2667, 2668, 2669, - 2670, 2671, 2672, 2673, 2676, 2682, 2682, 2691, 2691, 2702, - 2703, 2706, 2706, 2714, 2715, 2718, 2719, 2720, 2721, 2722, - 2725, 2725, 2734, 2740, 2746, 2752, 2752 + 0, 288, 288, 288, 289, 289, 290, 290, 291, 291, + 292, 292, 293, 293, 294, 294, 295, 295, 296, 296, + 297, 297, 298, 298, 299, 299, 300, 300, 301, 301, + 309, 310, 311, 312, 313, 314, 315, 318, 323, 323, + 334, 337, 338, 341, 346, 354, 354, 361, 362, 365, + 369, 376, 376, 383, 384, 387, 391, 402, 411, 411, + 426, 426, 443, 443, 452, 453, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 518, 518, 527, 533, 539, 545, + 551, 557, 563, 569, 575, 581, 587, 593, 599, 605, + 611, 617, 623, 629, 629, 638, 641, 644, 647, 650, + 656, 656, 665, 665, 674, 680, 686, 686, 695, 695, + 704, 710, 716, 722, 722, 731, 737, 737, 749, 749, + 758, 759, 762, 763, 764, 765, 766, 769, 769, 780, + 786, 786, 799, 799, 812, 812, 823, 824, 827, 828, + 831, 831, 841, 842, 845, 846, 847, 848, 849, 850, + 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, + 861, 862, 863, 864, 865, 868, 868, 876, 877, 878, + 879, 882, 882, 891, 891, 900, 900, 909, 915, 915, + 924, 930, 936, 942, 948, 954, 960, 966, 972, 978, + 978, 987, 993, 993, 1002, 1002, 1011, 1011, 1020, 1020, + 1031, 1032, 1034, 1036, 1036, 1055, 1055, 1066, 1067, 1070, + 1071, 1074, 1079, 1084, 1084, 1095, 1096, 1099, 1100, 1101, + 1104, 1109, 1116, 1116, 1129, 1129, 1142, 1143, 1146, 1147, + 1148, 1149, 1150, 1151, 1154, 1160, 1166, 1172, 1172, 1183, + 1184, 1187, 1188, 1191, 1191, 1201, 1201, 1211, 1212, 1213, + 1216, 1217, 1220, 1220, 1229, 1229, 1238, 1238, 1250, 1251, + 1254, 1255, 1256, 1257, 1258, 1259, 1262, 1268, 1274, 1280, + 1286, 1292, 1301, 1301, 1315, 1316, 1319, 1320, 1327, 1327, + 1353, 1353, 1364, 1365, 1369, 1370, 1371, 1372, 1373, 1374, + 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, + 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, + 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, + 1405, 1406, 1407, 1408, 1411, 1411, 1420, 1420, 1429, 1429, + 1438, 1438, 1447, 1447, 1458, 1458, 1466, 1467, 1468, 1469, + 1472, 1478, 1486, 1486, 1498, 1499, 1503, 1504, 1507, 1507, + 1515, 1516, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, + 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, 1562, + 1562, 1576, 1576, 1585, 1586, 1589, 1590, 1595, 1595, 1610, + 1610, 1624, 1625, 1628, 1629, 1632, 1633, 1634, 1635, 1636, + 1637, 1638, 1639, 1640, 1641, 1644, 1646, 1652, 1654, 1654, + 1663, 1663, 1672, 1672, 1681, 1683, 1683, 1692, 1702, 1702, + 1715, 1716, 1721, 1722, 1727, 1727, 1739, 1739, 1751, 1752, + 1757, 1758, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, + 1771, 1774, 1776, 1776, 1785, 1787, 1789, 1795, 1804, 1804, + 1817, 1818, 1821, 1822, 1825, 1825, 1835, 1835, 1845, 1846, + 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1858, 1858, 1867, + 1867, 1892, 1892, 1922, 1922, 1935, 1936, 1939, 1940, 1943, + 1943, 1955, 1955, 1967, 1968, 1971, 1972, 1973, 1974, 1975, + 1976, 1977, 1978, 1979, 1980, 1981, 1984, 1984, 1993, 1999, + 1999, 2008, 2014, 2023, 2023, 2034, 2035, 2038, 2039, 2042, + 2042, 2051, 2051, 2060, 2061, 2064, 2065, 2069, 2070, 2071, + 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2082, 2082, + 2093, 2093, 2104, 2104, 2113, 2113, 2122, 2122, 2131, 2131, + 2140, 2140, 2154, 2154, 2165, 2166, 2169, 2169, 2181, 2181, + 2192, 2193, 2196, 2196, 2206, 2207, 2210, 2211, 2214, 2215, + 2216, 2217, 2218, 2219, 2220, 2223, 2225, 2225, 2234, 2243, + 2243, 2256, 2257, 2260, 2261, 2262, 2263, 2264, 2265, 2266, + 2267, 2268, 2271, 2271, 2279, 2280, 2281, 2284, 2290, 2290, + 2299, 2305, 2313, 2321, 2321, 2332, 2333, 2336, 2337, 2338, + 2339, 2340, 2343, 2343, 2352, 2352, 2364, 2364, 2377, 2378, + 2381, 2382, 2383, 2384, 2385, 2386, 2389, 2395, 2395, 2404, + 2410, 2410, 2420, 2420, 2433, 2433, 2443, 2444, 2447, 2448, + 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, + 2459, 2460, 2461, 2462, 2463, 2464, 2467, 2474, 2474, 2483, + 2483, 2492, 2498, 2498, 2507, 2513, 2519, 2519, 2528, 2529, + 2532, 2532, 2542, 2549, 2556, 2556, 2565, 2565, 2575, 2575, + 2585, 2585, 2597, 2597, 2609, 2609, 2619, 2620, 2624, 2625, + 2628, 2628, 2639, 2647, 2647, 2660, 2661, 2665, 2665, 2673, + 2674, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2686, 2692, + 2692, 2701, 2701, 2712, 2713, 2716, 2716, 2724, 2725, 2728, + 2729, 2730, 2731, 2732, 2735, 2735, 2744, 2750, 2756, 2762, + 2762 }; + // Print the state stack on the debug stream. void - Dhcp6Parser::yy_stack_print_ () const + Dhcp6Parser::yystack_print_ () { *yycdebug_ << "Stack now"; for (stack_type::const_iterator i = yystack_.begin (), i_end = yystack_.end (); i != i_end; ++i) - *yycdebug_ << ' ' << int (i->state); - *yycdebug_ << '\n'; + *yycdebug_ << ' ' << i->state; + *yycdebug_ << std::endl; } + // Report on the debug stream that the rule \a yyrule is going to be reduced. void - Dhcp6Parser::yy_reduce_print_ (int yyrule) const + Dhcp6Parser::yy_reduce_print_ (int yyrule) { - int yylno = yyrline_[yyrule]; + unsigned int yylno = yyrline_[yyrule]; int yynrhs = yyr2_[yyrule]; // Print the symbols being reduced, and their result. *yycdebug_ << "Reducing stack by rule " << yyrule - 1 - << " (line " << yylno << "):\n"; + << " (line " << yylno << "):" << std::endl; // The symbols being reduced. for (int yyi = 0; yyi < yynrhs; yyi++) YY_SYMBOL_PRINT (" $" << yyi + 1 << " =", @@ -5790,11 +5657,10 @@ namespace isc { namespace dhcp { #endif // PARSER6_DEBUG -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // lalr1.cc:1167 } } // isc::dhcp -#line 5796 "dhcp6_parser.cc" - -#line 2761 "dhcp6_parser.yy" +#line 5663 "dhcp6_parser.cc" // lalr1.cc:1167 +#line 2771 "dhcp6_parser.yy" // lalr1.cc:1168 void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index a410fca6b0..b6cb6e538f 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.7.2. +// A Bison parser, made by GNU Bison 3.0.4. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -30,7 +30,6 @@ // This special exception was added by the Free Software Foundation in // version 2.2 of Bison. - /** ** \file dhcp6_parser.h ** Define the isc::dhcp::parser class. @@ -38,14 +37,10 @@ // C++ LALR(1) parser skeleton written by Akim Demaille. -// DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, -// especially those whose name start with YY_ or yy_. They are -// private implementation details that can be changed or removed. - #ifndef YY_PARSER6_DHCP6_PARSER_H_INCLUDED # define YY_PARSER6_DHCP6_PARSER_H_INCLUDED -// "%code requires" blocks. -#line 17 "dhcp6_parser.yy" +// // "%code requires" blocks. +#line 17 "dhcp6_parser.yy" // lalr1.cc:377 #include <string> #include <cc/data.h> @@ -57,7 +52,7 @@ using namespace isc::dhcp; using namespace isc::data; using namespace std; -#line 61 "dhcp6_parser.h" +#line 56 "dhcp6_parser.h" // lalr1.cc:377 # include <cassert> # include <cstdlib> // std::abort @@ -65,64 +60,39 @@ using namespace std; # include <stdexcept> # include <string> # include <vector> - -#if defined __cplusplus -# define YY_CPLUSPLUS __cplusplus -#else -# define YY_CPLUSPLUS 199711L -#endif - -// Support move semantics when possible. -#if 201103L <= YY_CPLUSPLUS -# define YY_MOVE std::move -# define YY_MOVE_OR_COPY move -# define YY_MOVE_REF(Type) Type&& -# define YY_RVREF(Type) Type&& -# define YY_COPY(Type) Type -#else -# define YY_MOVE -# define YY_MOVE_OR_COPY copy -# define YY_MOVE_REF(Type) Type& -# define YY_RVREF(Type) const Type& -# define YY_COPY(Type) const Type& -#endif - -// Support noexcept when possible. -#if 201103L <= YY_CPLUSPLUS -# define YY_NOEXCEPT noexcept -# define YY_NOTHROW -#else -# define YY_NOEXCEPT -# define YY_NOTHROW throw () -#endif - -// Support constexpr when possible. -#if 201703 <= YY_CPLUSPLUS -# define YY_CONSTEXPR constexpr -#else -# define YY_CONSTEXPR -#endif +# include "stack.hh" # include "location.hh" #include <typeinfo> -#ifndef YY_ASSERT +#ifndef YYASSERT # include <cassert> -# define YY_ASSERT assert +# define YYASSERT assert #endif -#ifndef YY_ATTRIBUTE_PURE -# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) # else -# define YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE(Spec) /* empty */ # endif #endif +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + #ifndef YY_ATTRIBUTE_UNUSED -# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) # else -# define YY_ATTRIBUTE_UNUSED +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) # endif #endif @@ -133,13 +103,13 @@ using namespace std; # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -152,39 +122,6 @@ using namespace std; # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif -#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ -# define YY_IGNORE_USELESS_CAST_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") -# define YY_IGNORE_USELESS_CAST_END \ - _Pragma ("GCC diagnostic pop") -#endif -#ifndef YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_END -#endif - -# ifndef YY_CAST -# ifdef __cplusplus -# define YY_CAST(Type, Val) static_cast<Type> (Val) -# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) -# else -# define YY_CAST(Type, Val) ((Type) (Val)) -# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) -# endif -# endif -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - /* Debug traces. */ #ifndef PARSER6_DEBUG # if defined YYDEBUG @@ -198,182 +135,120 @@ using namespace std; # endif /* ! defined YYDEBUG */ #endif /* ! defined PARSER6_DEBUG */ -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // lalr1.cc:377 namespace isc { namespace dhcp { -#line 204 "dhcp6_parser.h" +#line 141 "dhcp6_parser.h" // lalr1.cc:377 - - /// A Bison parser. - class Dhcp6Parser - { - public: -#ifndef PARSER6_STYPE - /// A buffer to store and retrieve objects. + /// A char[S] buffer to store and retrieve objects. /// /// Sort of a variant, but does not keep track of the nature /// of the stored data, since that knowledge is available - /// via the current parser state. - class semantic_type + /// via the current state. + template <size_t S> + struct variant { - public: /// Type of *this. - typedef semantic_type self_type; + typedef variant<S> self_type; /// Empty construction. - semantic_type () YY_NOEXCEPT - : yybuffer_ () - , yytypeid_ (YY_NULLPTR) + variant () + : yytypeid_ (YY_NULLPTR) {} /// Construct and fill. template <typename T> - semantic_type (YY_RVREF (T) t) + variant (const T& t) : yytypeid_ (&typeid (T)) { - YY_ASSERT (sizeof (T) <= size); - new (yyas_<T> ()) T (YY_MOVE (t)); + YYASSERT (sizeof (T) <= S); + new (yyas_<T> ()) T (t); } -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - semantic_type (const self_type&) = delete; - /// Non copyable. - self_type& operator= (const self_type&) = delete; -#endif - /// Destruction, allowed only if empty. - ~semantic_type () YY_NOEXCEPT + ~variant () { - YY_ASSERT (!yytypeid_); + YYASSERT (!yytypeid_); } -# if 201103L <= YY_CPLUSPLUS - /// Instantiate a \a T in here from \a t. - template <typename T, typename... U> - T& - emplace (U&&... u) - { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); - yytypeid_ = & typeid (T); - return *new (yyas_<T> ()) T (std::forward <U>(u)...); - } -# else /// Instantiate an empty \a T in here. template <typename T> T& - emplace () + build () { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); + YYASSERT (!yytypeid_); + YYASSERT (sizeof (T) <= S); yytypeid_ = & typeid (T); - return *new (yyas_<T> ()) T (); + return *new (yyas_<T> ()) T; } /// Instantiate a \a T in here from \a t. template <typename T> T& - emplace (const T& t) + build (const T& t) { - YY_ASSERT (!yytypeid_); - YY_ASSERT (sizeof (T) <= size); + YYASSERT (!yytypeid_); + YYASSERT (sizeof (T) <= S); yytypeid_ = & typeid (T); return *new (yyas_<T> ()) T (t); } -# endif - - /// Instantiate an empty \a T in here. - /// Obsolete, use emplace. - template <typename T> - T& - build () - { - return emplace<T> (); - } - - /// Instantiate a \a T in here from \a t. - /// Obsolete, use emplace. - template <typename T> - T& - build (const T& t) - { - return emplace<T> (t); - } /// Accessor to a built \a T. template <typename T> T& - as () YY_NOEXCEPT + as () { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == typeid (T)); - YY_ASSERT (sizeof (T) <= size); + YYASSERT (*yytypeid_ == typeid (T)); + YYASSERT (sizeof (T) <= S); return *yyas_<T> (); } /// Const accessor to a built \a T (for %printer). template <typename T> const T& - as () const YY_NOEXCEPT + as () const { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == typeid (T)); - YY_ASSERT (sizeof (T) <= size); + YYASSERT (*yytypeid_ == typeid (T)); + YYASSERT (sizeof (T) <= S); return *yyas_<T> (); } - /// Swap the content with \a that, of same type. + /// Swap the content with \a other, of same type. /// /// Both variants must be built beforehand, because swapping the actual /// data requires reading it (with as()), and this is not possible on /// unconstructed variants: it would require some dynamic testing, which - /// should not be the variant's responsibility. + /// should not be the variant's responsability. /// Swapping between built and (possibly) non-built is done with - /// self_type::move (). + /// variant::move (). template <typename T> void - swap (self_type& that) YY_NOEXCEPT + swap (self_type& other) { - YY_ASSERT (yytypeid_); - YY_ASSERT (*yytypeid_ == *that.yytypeid_); - std::swap (as<T> (), that.as<T> ()); + YYASSERT (yytypeid_); + YYASSERT (*yytypeid_ == *other.yytypeid_); + std::swap (as<T> (), other.as<T> ()); } - /// Move the content of \a that to this. + /// Move the content of \a other to this. /// - /// Destroys \a that. - template <typename T> - void - move (self_type& that) - { -# if 201103L <= YY_CPLUSPLUS - emplace<T> (std::move (that.as<T> ())); -# else - emplace<T> (); - swap<T> (that); -# endif - that.destroy<T> (); - } - -# if 201103L <= YY_CPLUSPLUS - /// Move the content of \a that to this. + /// Destroys \a other. template <typename T> void - move (self_type&& that) + move (self_type& other) { - emplace<T> (std::move (that.as<T> ())); - that.destroy<T> (); + build<T> (); + swap<T> (other); + other.destroy<T> (); } -#endif - /// Copy the content of \a that to this. + /// Copy the content of \a other to this. template <typename T> void - copy (const self_type& that) + copy (const self_type& other) { - emplace<T> (that.as<T> ()); + build<T> (other.as<T> ()); } /// Destroy the stored \a T. @@ -386,17 +261,14 @@ namespace isc { namespace dhcp { } private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. - semantic_type (const self_type&); - /// Non copyable. - self_type& operator= (const self_type&); -#endif + /// Prohibit blind copies. + self_type& operator=(const self_type&); + variant (const self_type&); /// Accessor to raw memory as \a T. template <typename T> T* - yyas_ () YY_NOEXCEPT + yyas_ () { void *yyp = yybuffer_.yyraw; return static_cast<T*> (yyp); @@ -405,12 +277,30 @@ namespace isc { namespace dhcp { /// Const accessor to raw memory as \a T. template <typename T> const T* - yyas_ () const YY_NOEXCEPT + yyas_ () const { const void *yyp = yybuffer_.yyraw; return static_cast<const T*> (yyp); } + union + { + /// Strongest alignment constraints. + long double yyalign_me; + /// A buffer large enough to store any of the semantic values. + char yyraw[S]; + } yybuffer_; + + /// Whether the content is built: if defined, the name of the stored type. + const std::type_info *yytypeid_; + }; + + + /// A Bison parser. + class Dhcp6Parser + { + public: +#ifndef PARSER6_STYPE /// An auxiliary type to compute the largest semantic type. union union_type { @@ -421,37 +311,23 @@ namespace isc { namespace dhcp { // hr_mode // duid_type // ncr_protocol_value - char dummy1[sizeof (ElementPtr)]; + char dummy1[sizeof(ElementPtr)]; // "boolean" - char dummy2[sizeof (bool)]; + char dummy2[sizeof(bool)]; // "floating point" - char dummy3[sizeof (double)]; + char dummy3[sizeof(double)]; // "integer" - char dummy4[sizeof (int64_t)]; + char dummy4[sizeof(int64_t)]; // "constant string" - char dummy5[sizeof (std::string)]; - }; - - /// The size of the largest semantic type. - enum { size = sizeof (union_type) }; - - /// A buffer to store semantic values. - union - { - /// Strongest alignment constraints. - long double yyalign_me; - /// A buffer large enough to store any of the semantic values. - char yyraw[size]; - } yybuffer_; - - /// Whether the content is built: if defined, the name of the stored type. - const std::type_info *yytypeid_; - }; + char dummy5[sizeof(std::string)]; +}; + /// Symbol semantic values. + typedef variant<sizeof(union_type)> semantic_type; #else typedef PARSER6_STYPE semantic_type; #endif @@ -461,888 +337,235 @@ namespace isc { namespace dhcp { /// Syntax errors thrown from user actions. struct syntax_error : std::runtime_error { - syntax_error (const location_type& l, const std::string& m) - : std::runtime_error (m) - , location (l) - {} - - syntax_error (const syntax_error& s) - : std::runtime_error (s.what ()) - , location (s.location) - {} - - ~syntax_error () YY_NOEXCEPT YY_NOTHROW; - + syntax_error (const location_type& l, const std::string& m); location_type location; }; - /// Token kinds. + /// Tokens. struct token { - enum token_kind_type - { - TOKEN_PARSER6_EMPTY = -2, - TOKEN_END = 0, // "end of file" - TOKEN_PARSER6_error = 256, // error - TOKEN_PARSER6_UNDEF = 257, // "invalid token" - TOKEN_COMMA = 258, // "," - TOKEN_COLON = 259, // ":" - TOKEN_LSQUARE_BRACKET = 260, // "[" - TOKEN_RSQUARE_BRACKET = 261, // "]" - TOKEN_LCURLY_BRACKET = 262, // "{" - TOKEN_RCURLY_BRACKET = 263, // "}" - TOKEN_NULL_TYPE = 264, // "null" - TOKEN_DHCP6 = 265, // "Dhcp6" - TOKEN_DATA_DIRECTORY = 266, // "data-directory" - TOKEN_CONFIG_CONTROL = 267, // "config-control" - TOKEN_CONFIG_DATABASES = 268, // "config-databases" - TOKEN_CONFIG_FETCH_WAIT_TIME = 269, // "config-fetch-wait-time" - TOKEN_INTERFACES_CONFIG = 270, // "interfaces-config" - TOKEN_INTERFACES = 271, // "interfaces" - TOKEN_RE_DETECT = 272, // "re-detect" - TOKEN_LEASE_DATABASE = 273, // "lease-database" - TOKEN_HOSTS_DATABASE = 274, // "hosts-database" - TOKEN_HOSTS_DATABASES = 275, // "hosts-databases" - TOKEN_TYPE = 276, // "type" - TOKEN_MEMFILE = 277, // "memfile" - TOKEN_MYSQL = 278, // "mysql" - TOKEN_POSTGRESQL = 279, // "postgresql" - TOKEN_CQL = 280, // "cql" - TOKEN_USER = 281, // "user" - TOKEN_PASSWORD = 282, // "password" - TOKEN_HOST = 283, // "host" - TOKEN_PORT = 284, // "port" - TOKEN_PERSIST = 285, // "persist" - TOKEN_LFC_INTERVAL = 286, // "lfc-interval" - TOKEN_READONLY = 287, // "readonly" - TOKEN_CONNECT_TIMEOUT = 288, // "connect-timeout" - TOKEN_CONTACT_POINTS = 289, // "contact-points" - TOKEN_MAX_RECONNECT_TRIES = 290, // "max-reconnect-tries" - TOKEN_RECONNECT_WAIT_TIME = 291, // "reconnect-wait-time" - TOKEN_KEYSPACE = 292, // "keyspace" - TOKEN_CONSISTENCY = 293, // "consistency" - TOKEN_SERIAL_CONSISTENCY = 294, // "serial-consistency" - TOKEN_REQUEST_TIMEOUT = 295, // "request-timeout" - TOKEN_TCP_KEEPALIVE = 296, // "tcp-keepalive" - TOKEN_TCP_NODELAY = 297, // "tcp-nodelay" - TOKEN_MAX_ROW_ERRORS = 298, // "max-row-errors" - TOKEN_PREFERRED_LIFETIME = 299, // "preferred-lifetime" - TOKEN_MIN_PREFERRED_LIFETIME = 300, // "min-preferred-lifetime" - TOKEN_MAX_PREFERRED_LIFETIME = 301, // "max-preferred-lifetime" - TOKEN_VALID_LIFETIME = 302, // "valid-lifetime" - TOKEN_MIN_VALID_LIFETIME = 303, // "min-valid-lifetime" - TOKEN_MAX_VALID_LIFETIME = 304, // "max-valid-lifetime" - TOKEN_RENEW_TIMER = 305, // "renew-timer" - TOKEN_REBIND_TIMER = 306, // "rebind-timer" - TOKEN_CALCULATE_TEE_TIMES = 307, // "calculate-tee-times" - TOKEN_T1_PERCENT = 308, // "t1-percent" - TOKEN_T2_PERCENT = 309, // "t2-percent" - TOKEN_CACHE_THRESHOLD = 310, // "cache-threshold" - TOKEN_CACHE_MAX_AGE = 311, // "cache-max-age" - TOKEN_DECLINE_PROBATION_PERIOD = 312, // "decline-probation-period" - TOKEN_SERVER_TAG = 313, // "server-tag" - TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 314, // "statistic-default-sample-count" - TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 315, // "statistic-default-sample-age" - TOKEN_DDNS_SEND_UPDATES = 316, // "ddns-send-updates" - TOKEN_DDNS_OVERRIDE_NO_UPDATE = 317, // "ddns-override-no-update" - TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 318, // "ddns-override-client-update" - TOKEN_DDNS_REPLACE_CLIENT_NAME = 319, // "ddns-replace-client-name" - TOKEN_DDNS_GENERATED_PREFIX = 320, // "ddns-generated-prefix" - TOKEN_DDNS_QUALIFYING_SUFFIX = 321, // "ddns-qualifying-suffix" - TOKEN_DDNS_UPDATE_ON_RENEW = 322, // "ddns-update-on-renew" - TOKEN_STORE_EXTENDED_INFO = 323, // "store-extended-info" - TOKEN_SUBNET6 = 324, // "subnet6" - TOKEN_OPTION_DEF = 325, // "option-def" - TOKEN_OPTION_DATA = 326, // "option-data" - TOKEN_NAME = 327, // "name" - TOKEN_DATA = 328, // "data" - TOKEN_CODE = 329, // "code" - TOKEN_SPACE = 330, // "space" - TOKEN_CSV_FORMAT = 331, // "csv-format" - TOKEN_ALWAYS_SEND = 332, // "always-send" - TOKEN_RECORD_TYPES = 333, // "record-types" - TOKEN_ENCAPSULATE = 334, // "encapsulate" - TOKEN_ARRAY = 335, // "array" - TOKEN_POOLS = 336, // "pools" - TOKEN_POOL = 337, // "pool" - TOKEN_PD_POOLS = 338, // "pd-pools" - TOKEN_PREFIX = 339, // "prefix" - TOKEN_PREFIX_LEN = 340, // "prefix-len" - TOKEN_EXCLUDED_PREFIX = 341, // "excluded-prefix" - TOKEN_EXCLUDED_PREFIX_LEN = 342, // "excluded-prefix-len" - TOKEN_DELEGATED_LEN = 343, // "delegated-len" - TOKEN_USER_CONTEXT = 344, // "user-context" - TOKEN_COMMENT = 345, // "comment" - TOKEN_SUBNET = 346, // "subnet" - TOKEN_INTERFACE = 347, // "interface" - TOKEN_INTERFACE_ID = 348, // "interface-id" - TOKEN_ID = 349, // "id" - TOKEN_RAPID_COMMIT = 350, // "rapid-commit" - TOKEN_RESERVATION_MODE = 351, // "reservation-mode" - TOKEN_DISABLED = 352, // "disabled" - TOKEN_OUT_OF_POOL = 353, // "out-of-pool" - TOKEN_GLOBAL = 354, // "global" - TOKEN_ALL = 355, // "all" - TOKEN_SHARED_NETWORKS = 356, // "shared-networks" - TOKEN_MAC_SOURCES = 357, // "mac-sources" - TOKEN_RELAY_SUPPLIED_OPTIONS = 358, // "relay-supplied-options" - TOKEN_HOST_RESERVATION_IDENTIFIERS = 359, // "host-reservation-identifiers" - TOKEN_SANITY_CHECKS = 360, // "sanity-checks" - TOKEN_LEASE_CHECKS = 361, // "lease-checks" - TOKEN_CLIENT_CLASSES = 362, // "client-classes" - TOKEN_REQUIRE_CLIENT_CLASSES = 363, // "require-client-classes" - TOKEN_TEST = 364, // "test" - TOKEN_ONLY_IF_REQUIRED = 365, // "only-if-required" - TOKEN_CLIENT_CLASS = 366, // "client-class" - TOKEN_RESERVATIONS = 367, // "reservations" - TOKEN_IP_ADDRESSES = 368, // "ip-addresses" - TOKEN_PREFIXES = 369, // "prefixes" - TOKEN_DUID = 370, // "duid" - TOKEN_HW_ADDRESS = 371, // "hw-address" - TOKEN_HOSTNAME = 372, // "hostname" - TOKEN_FLEX_ID = 373, // "flex-id" - TOKEN_RELAY = 374, // "relay" - TOKEN_IP_ADDRESS = 375, // "ip-address" - TOKEN_HOOKS_LIBRARIES = 376, // "hooks-libraries" - TOKEN_LIBRARY = 377, // "library" - TOKEN_PARAMETERS = 378, // "parameters" - TOKEN_EXPIRED_LEASES_PROCESSING = 379, // "expired-leases-processing" - TOKEN_RECLAIM_TIMER_WAIT_TIME = 380, // "reclaim-timer-wait-time" - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 381, // "flush-reclaimed-timer-wait-time" - TOKEN_HOLD_RECLAIMED_TIME = 382, // "hold-reclaimed-time" - TOKEN_MAX_RECLAIM_LEASES = 383, // "max-reclaim-leases" - TOKEN_MAX_RECLAIM_TIME = 384, // "max-reclaim-time" - TOKEN_UNWARNED_RECLAIM_CYCLES = 385, // "unwarned-reclaim-cycles" - TOKEN_SERVER_ID = 386, // "server-id" - TOKEN_LLT = 387, // "LLT" - TOKEN_EN = 388, // "EN" - TOKEN_LL = 389, // "LL" - TOKEN_IDENTIFIER = 390, // "identifier" - TOKEN_HTYPE = 391, // "htype" - TOKEN_TIME = 392, // "time" - TOKEN_ENTERPRISE_ID = 393, // "enterprise-id" - TOKEN_DHCP4O6_PORT = 394, // "dhcp4o6-port" - TOKEN_DHCP_MULTI_THREADING = 395, // "multi-threading" - TOKEN_ENABLE_MULTI_THREADING = 396, // "enable-multi-threading" - TOKEN_THREAD_POOL_SIZE = 397, // "thread-pool-size" - TOKEN_PACKET_QUEUE_SIZE = 398, // "packet-queue-size" - TOKEN_CONTROL_SOCKET = 399, // "control-socket" - TOKEN_SOCKET_TYPE = 400, // "socket-type" - TOKEN_SOCKET_NAME = 401, // "socket-name" - TOKEN_DHCP_QUEUE_CONTROL = 402, // "dhcp-queue-control" - TOKEN_ENABLE_QUEUE = 403, // "enable-queue" - TOKEN_QUEUE_TYPE = 404, // "queue-type" - TOKEN_CAPACITY = 405, // "capacity" - TOKEN_DHCP_DDNS = 406, // "dhcp-ddns" - TOKEN_ENABLE_UPDATES = 407, // "enable-updates" - TOKEN_QUALIFYING_SUFFIX = 408, // "qualifying-suffix" - TOKEN_SERVER_IP = 409, // "server-ip" - TOKEN_SERVER_PORT = 410, // "server-port" - TOKEN_SENDER_IP = 411, // "sender-ip" - TOKEN_SENDER_PORT = 412, // "sender-port" - TOKEN_MAX_QUEUE_SIZE = 413, // "max-queue-size" - TOKEN_NCR_PROTOCOL = 414, // "ncr-protocol" - TOKEN_NCR_FORMAT = 415, // "ncr-format" - TOKEN_OVERRIDE_NO_UPDATE = 416, // "override-no-update" - TOKEN_OVERRIDE_CLIENT_UPDATE = 417, // "override-client-update" - TOKEN_REPLACE_CLIENT_NAME = 418, // "replace-client-name" - TOKEN_GENERATED_PREFIX = 419, // "generated-prefix" - TOKEN_UDP = 420, // "UDP" - TOKEN_TCP = 421, // "TCP" - TOKEN_JSON = 422, // "JSON" - TOKEN_WHEN_PRESENT = 423, // "when-present" - TOKEN_NEVER = 424, // "never" - TOKEN_ALWAYS = 425, // "always" - TOKEN_WHEN_NOT_PRESENT = 426, // "when-not-present" - TOKEN_HOSTNAME_CHAR_SET = 427, // "hostname-char-set" - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 428, // "hostname-char-replacement" - TOKEN_IP_RESERVATIONS_UNIQUE = 429, // "ip-reservations-unique" - TOKEN_LOGGERS = 430, // "loggers" - TOKEN_OUTPUT_OPTIONS = 431, // "output_options" - TOKEN_OUTPUT = 432, // "output" - TOKEN_DEBUGLEVEL = 433, // "debuglevel" - TOKEN_SEVERITY = 434, // "severity" - TOKEN_FLUSH = 435, // "flush" - TOKEN_MAXSIZE = 436, // "maxsize" - TOKEN_MAXVER = 437, // "maxver" - TOKEN_PATTERN = 438, // "pattern" - TOKEN_TOPLEVEL_JSON = 439, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP6 = 440, // TOPLEVEL_DHCP6 - TOKEN_SUB_DHCP6 = 441, // SUB_DHCP6 - TOKEN_SUB_INTERFACES6 = 442, // SUB_INTERFACES6 - TOKEN_SUB_SUBNET6 = 443, // SUB_SUBNET6 - TOKEN_SUB_POOL6 = 444, // SUB_POOL6 - TOKEN_SUB_PD_POOL = 445, // SUB_PD_POOL - TOKEN_SUB_RESERVATION = 446, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 447, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 448, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 449, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 450, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 451, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 452, // SUB_CONFIG_CONTROL - TOKEN_STRING = 453, // "constant string" - TOKEN_INTEGER = 454, // "integer" - TOKEN_FLOAT = 455, // "floating point" - TOKEN_BOOLEAN = 456 // "boolean" + enum yytokentype + { + TOKEN_END = 0, + TOKEN_COMMA = 258, + TOKEN_COLON = 259, + TOKEN_LSQUARE_BRACKET = 260, + TOKEN_RSQUARE_BRACKET = 261, + TOKEN_LCURLY_BRACKET = 262, + TOKEN_RCURLY_BRACKET = 263, + TOKEN_NULL_TYPE = 264, + TOKEN_DHCP6 = 265, + TOKEN_DATA_DIRECTORY = 266, + TOKEN_CONFIG_CONTROL = 267, + TOKEN_CONFIG_DATABASES = 268, + TOKEN_CONFIG_FETCH_WAIT_TIME = 269, + TOKEN_INTERFACES_CONFIG = 270, + TOKEN_INTERFACES = 271, + TOKEN_RE_DETECT = 272, + TOKEN_LEASE_DATABASE = 273, + TOKEN_HOSTS_DATABASE = 274, + TOKEN_HOSTS_DATABASES = 275, + TOKEN_TYPE = 276, + TOKEN_MEMFILE = 277, + TOKEN_MYSQL = 278, + TOKEN_POSTGRESQL = 279, + TOKEN_CQL = 280, + TOKEN_USER = 281, + TOKEN_PASSWORD = 282, + TOKEN_HOST = 283, + TOKEN_PORT = 284, + TOKEN_PERSIST = 285, + TOKEN_LFC_INTERVAL = 286, + TOKEN_READONLY = 287, + TOKEN_CONNECT_TIMEOUT = 288, + TOKEN_CONTACT_POINTS = 289, + TOKEN_MAX_RECONNECT_TRIES = 290, + TOKEN_RECONNECT_WAIT_TIME = 291, + TOKEN_KEYSPACE = 292, + TOKEN_CONSISTENCY = 293, + TOKEN_SERIAL_CONSISTENCY = 294, + TOKEN_REQUEST_TIMEOUT = 295, + TOKEN_TCP_KEEPALIVE = 296, + TOKEN_TCP_NODELAY = 297, + TOKEN_MAX_ROW_ERRORS = 298, + TOKEN_PREFERRED_LIFETIME = 299, + TOKEN_MIN_PREFERRED_LIFETIME = 300, + TOKEN_MAX_PREFERRED_LIFETIME = 301, + TOKEN_VALID_LIFETIME = 302, + TOKEN_MIN_VALID_LIFETIME = 303, + TOKEN_MAX_VALID_LIFETIME = 304, + TOKEN_RENEW_TIMER = 305, + TOKEN_REBIND_TIMER = 306, + TOKEN_CALCULATE_TEE_TIMES = 307, + TOKEN_T1_PERCENT = 308, + TOKEN_T2_PERCENT = 309, + TOKEN_CACHE_THRESHOLD = 310, + TOKEN_CACHE_MAX_AGE = 311, + TOKEN_DECLINE_PROBATION_PERIOD = 312, + TOKEN_SERVER_TAG = 313, + TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 314, + TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 315, + TOKEN_DDNS_SEND_UPDATES = 316, + TOKEN_DDNS_OVERRIDE_NO_UPDATE = 317, + TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 318, + TOKEN_DDNS_REPLACE_CLIENT_NAME = 319, + TOKEN_DDNS_GENERATED_PREFIX = 320, + TOKEN_DDNS_QUALIFYING_SUFFIX = 321, + TOKEN_DDNS_UPDATE_ON_RENEW = 322, + TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 323, + TOKEN_STORE_EXTENDED_INFO = 324, + TOKEN_SUBNET6 = 325, + TOKEN_OPTION_DEF = 326, + TOKEN_OPTION_DATA = 327, + TOKEN_NAME = 328, + TOKEN_DATA = 329, + TOKEN_CODE = 330, + TOKEN_SPACE = 331, + TOKEN_CSV_FORMAT = 332, + TOKEN_ALWAYS_SEND = 333, + TOKEN_RECORD_TYPES = 334, + TOKEN_ENCAPSULATE = 335, + TOKEN_ARRAY = 336, + TOKEN_POOLS = 337, + TOKEN_POOL = 338, + TOKEN_PD_POOLS = 339, + TOKEN_PREFIX = 340, + TOKEN_PREFIX_LEN = 341, + TOKEN_EXCLUDED_PREFIX = 342, + TOKEN_EXCLUDED_PREFIX_LEN = 343, + TOKEN_DELEGATED_LEN = 344, + TOKEN_USER_CONTEXT = 345, + TOKEN_COMMENT = 346, + TOKEN_SUBNET = 347, + TOKEN_INTERFACE = 348, + TOKEN_INTERFACE_ID = 349, + TOKEN_ID = 350, + TOKEN_RAPID_COMMIT = 351, + TOKEN_RESERVATION_MODE = 352, + TOKEN_DISABLED = 353, + TOKEN_OUT_OF_POOL = 354, + TOKEN_GLOBAL = 355, + TOKEN_ALL = 356, + TOKEN_SHARED_NETWORKS = 357, + TOKEN_MAC_SOURCES = 358, + TOKEN_RELAY_SUPPLIED_OPTIONS = 359, + TOKEN_HOST_RESERVATION_IDENTIFIERS = 360, + TOKEN_SANITY_CHECKS = 361, + TOKEN_LEASE_CHECKS = 362, + TOKEN_CLIENT_CLASSES = 363, + TOKEN_REQUIRE_CLIENT_CLASSES = 364, + TOKEN_TEST = 365, + TOKEN_ONLY_IF_REQUIRED = 366, + TOKEN_CLIENT_CLASS = 367, + TOKEN_RESERVATIONS = 368, + TOKEN_IP_ADDRESSES = 369, + TOKEN_PREFIXES = 370, + TOKEN_DUID = 371, + TOKEN_HW_ADDRESS = 372, + TOKEN_HOSTNAME = 373, + TOKEN_FLEX_ID = 374, + TOKEN_RELAY = 375, + TOKEN_IP_ADDRESS = 376, + TOKEN_HOOKS_LIBRARIES = 377, + TOKEN_LIBRARY = 378, + TOKEN_PARAMETERS = 379, + TOKEN_EXPIRED_LEASES_PROCESSING = 380, + TOKEN_RECLAIM_TIMER_WAIT_TIME = 381, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 382, + TOKEN_HOLD_RECLAIMED_TIME = 383, + TOKEN_MAX_RECLAIM_LEASES = 384, + TOKEN_MAX_RECLAIM_TIME = 385, + TOKEN_UNWARNED_RECLAIM_CYCLES = 386, + TOKEN_SERVER_ID = 387, + TOKEN_LLT = 388, + TOKEN_EN = 389, + TOKEN_LL = 390, + TOKEN_IDENTIFIER = 391, + TOKEN_HTYPE = 392, + TOKEN_TIME = 393, + TOKEN_ENTERPRISE_ID = 394, + TOKEN_DHCP4O6_PORT = 395, + TOKEN_DHCP_MULTI_THREADING = 396, + TOKEN_ENABLE_MULTI_THREADING = 397, + TOKEN_THREAD_POOL_SIZE = 398, + TOKEN_PACKET_QUEUE_SIZE = 399, + TOKEN_CONTROL_SOCKET = 400, + TOKEN_SOCKET_TYPE = 401, + TOKEN_SOCKET_NAME = 402, + TOKEN_DHCP_QUEUE_CONTROL = 403, + TOKEN_ENABLE_QUEUE = 404, + TOKEN_QUEUE_TYPE = 405, + TOKEN_CAPACITY = 406, + TOKEN_DHCP_DDNS = 407, + TOKEN_ENABLE_UPDATES = 408, + TOKEN_QUALIFYING_SUFFIX = 409, + TOKEN_SERVER_IP = 410, + TOKEN_SERVER_PORT = 411, + TOKEN_SENDER_IP = 412, + TOKEN_SENDER_PORT = 413, + TOKEN_MAX_QUEUE_SIZE = 414, + TOKEN_NCR_PROTOCOL = 415, + TOKEN_NCR_FORMAT = 416, + TOKEN_OVERRIDE_NO_UPDATE = 417, + TOKEN_OVERRIDE_CLIENT_UPDATE = 418, + TOKEN_REPLACE_CLIENT_NAME = 419, + TOKEN_GENERATED_PREFIX = 420, + TOKEN_UDP = 421, + TOKEN_TCP = 422, + TOKEN_JSON = 423, + TOKEN_WHEN_PRESENT = 424, + TOKEN_NEVER = 425, + TOKEN_ALWAYS = 426, + TOKEN_WHEN_NOT_PRESENT = 427, + TOKEN_HOSTNAME_CHAR_SET = 428, + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 429, + TOKEN_IP_RESERVATIONS_UNIQUE = 430, + TOKEN_LOGGERS = 431, + TOKEN_OUTPUT_OPTIONS = 432, + TOKEN_OUTPUT = 433, + TOKEN_DEBUGLEVEL = 434, + TOKEN_SEVERITY = 435, + TOKEN_FLUSH = 436, + TOKEN_MAXSIZE = 437, + TOKEN_MAXVER = 438, + TOKEN_PATTERN = 439, + TOKEN_TOPLEVEL_JSON = 440, + TOKEN_TOPLEVEL_DHCP6 = 441, + TOKEN_SUB_DHCP6 = 442, + TOKEN_SUB_INTERFACES6 = 443, + TOKEN_SUB_SUBNET6 = 444, + TOKEN_SUB_POOL6 = 445, + TOKEN_SUB_PD_POOL = 446, + TOKEN_SUB_RESERVATION = 447, + TOKEN_SUB_OPTION_DEFS = 448, + TOKEN_SUB_OPTION_DEF = 449, + TOKEN_SUB_OPTION_DATA = 450, + TOKEN_SUB_HOOKS_LIBRARY = 451, + TOKEN_SUB_DHCP_DDNS = 452, + TOKEN_SUB_CONFIG_CONTROL = 453, + TOKEN_STRING = 454, + TOKEN_INTEGER = 455, + TOKEN_FLOAT = 456, + TOKEN_BOOLEAN = 457 }; - /// Backward compatibility alias (Bison 3.6). - typedef token_kind_type yytokentype; }; - /// Token kind, as returned by yylex. - typedef token::yytokentype token_kind_type; - - /// Backward compatibility alias (Bison 3.6). - typedef token_kind_type token_type; + /// (External) token type, as returned by yylex. + typedef token::yytokentype token_type; - /// Symbol kinds. - struct symbol_kind - { - enum symbol_kind_type - { - YYNTOKENS = 202, ///< Number of tokens. - S_YYEMPTY = -2, - S_YYEOF = 0, // "end of file" - S_YYerror = 1, // error - S_YYUNDEF = 2, // "invalid token" - S_COMMA = 3, // "," - S_COLON = 4, // ":" - S_LSQUARE_BRACKET = 5, // "[" - S_RSQUARE_BRACKET = 6, // "]" - S_LCURLY_BRACKET = 7, // "{" - S_RCURLY_BRACKET = 8, // "}" - S_NULL_TYPE = 9, // "null" - S_DHCP6 = 10, // "Dhcp6" - S_DATA_DIRECTORY = 11, // "data-directory" - S_CONFIG_CONTROL = 12, // "config-control" - S_CONFIG_DATABASES = 13, // "config-databases" - S_CONFIG_FETCH_WAIT_TIME = 14, // "config-fetch-wait-time" - S_INTERFACES_CONFIG = 15, // "interfaces-config" - S_INTERFACES = 16, // "interfaces" - S_RE_DETECT = 17, // "re-detect" - S_LEASE_DATABASE = 18, // "lease-database" - S_HOSTS_DATABASE = 19, // "hosts-database" - S_HOSTS_DATABASES = 20, // "hosts-databases" - S_TYPE = 21, // "type" - S_MEMFILE = 22, // "memfile" - S_MYSQL = 23, // "mysql" - S_POSTGRESQL = 24, // "postgresql" - S_CQL = 25, // "cql" - S_USER = 26, // "user" - S_PASSWORD = 27, // "password" - S_HOST = 28, // "host" - S_PORT = 29, // "port" - S_PERSIST = 30, // "persist" - S_LFC_INTERVAL = 31, // "lfc-interval" - S_READONLY = 32, // "readonly" - S_CONNECT_TIMEOUT = 33, // "connect-timeout" - S_CONTACT_POINTS = 34, // "contact-points" - S_MAX_RECONNECT_TRIES = 35, // "max-reconnect-tries" - S_RECONNECT_WAIT_TIME = 36, // "reconnect-wait-time" - S_KEYSPACE = 37, // "keyspace" - S_CONSISTENCY = 38, // "consistency" - S_SERIAL_CONSISTENCY = 39, // "serial-consistency" - S_REQUEST_TIMEOUT = 40, // "request-timeout" - S_TCP_KEEPALIVE = 41, // "tcp-keepalive" - S_TCP_NODELAY = 42, // "tcp-nodelay" - S_MAX_ROW_ERRORS = 43, // "max-row-errors" - S_PREFERRED_LIFETIME = 44, // "preferred-lifetime" - S_MIN_PREFERRED_LIFETIME = 45, // "min-preferred-lifetime" - S_MAX_PREFERRED_LIFETIME = 46, // "max-preferred-lifetime" - S_VALID_LIFETIME = 47, // "valid-lifetime" - S_MIN_VALID_LIFETIME = 48, // "min-valid-lifetime" - S_MAX_VALID_LIFETIME = 49, // "max-valid-lifetime" - S_RENEW_TIMER = 50, // "renew-timer" - S_REBIND_TIMER = 51, // "rebind-timer" - S_CALCULATE_TEE_TIMES = 52, // "calculate-tee-times" - S_T1_PERCENT = 53, // "t1-percent" - S_T2_PERCENT = 54, // "t2-percent" - S_CACHE_THRESHOLD = 55, // "cache-threshold" - S_CACHE_MAX_AGE = 56, // "cache-max-age" - S_DECLINE_PROBATION_PERIOD = 57, // "decline-probation-period" - S_SERVER_TAG = 58, // "server-tag" - S_STATISTIC_DEFAULT_SAMPLE_COUNT = 59, // "statistic-default-sample-count" - S_STATISTIC_DEFAULT_SAMPLE_AGE = 60, // "statistic-default-sample-age" - S_DDNS_SEND_UPDATES = 61, // "ddns-send-updates" - S_DDNS_OVERRIDE_NO_UPDATE = 62, // "ddns-override-no-update" - S_DDNS_OVERRIDE_CLIENT_UPDATE = 63, // "ddns-override-client-update" - S_DDNS_REPLACE_CLIENT_NAME = 64, // "ddns-replace-client-name" - S_DDNS_GENERATED_PREFIX = 65, // "ddns-generated-prefix" - S_DDNS_QUALIFYING_SUFFIX = 66, // "ddns-qualifying-suffix" - S_DDNS_UPDATE_ON_RENEW = 67, // "ddns-update-on-renew" - S_STORE_EXTENDED_INFO = 68, // "store-extended-info" - S_SUBNET6 = 69, // "subnet6" - S_OPTION_DEF = 70, // "option-def" - S_OPTION_DATA = 71, // "option-data" - S_NAME = 72, // "name" - S_DATA = 73, // "data" - S_CODE = 74, // "code" - S_SPACE = 75, // "space" - S_CSV_FORMAT = 76, // "csv-format" - S_ALWAYS_SEND = 77, // "always-send" - S_RECORD_TYPES = 78, // "record-types" - S_ENCAPSULATE = 79, // "encapsulate" - S_ARRAY = 80, // "array" - S_POOLS = 81, // "pools" - S_POOL = 82, // "pool" - S_PD_POOLS = 83, // "pd-pools" - S_PREFIX = 84, // "prefix" - S_PREFIX_LEN = 85, // "prefix-len" - S_EXCLUDED_PREFIX = 86, // "excluded-prefix" - S_EXCLUDED_PREFIX_LEN = 87, // "excluded-prefix-len" - S_DELEGATED_LEN = 88, // "delegated-len" - S_USER_CONTEXT = 89, // "user-context" - S_COMMENT = 90, // "comment" - S_SUBNET = 91, // "subnet" - S_INTERFACE = 92, // "interface" - S_INTERFACE_ID = 93, // "interface-id" - S_ID = 94, // "id" - S_RAPID_COMMIT = 95, // "rapid-commit" - S_RESERVATION_MODE = 96, // "reservation-mode" - S_DISABLED = 97, // "disabled" - S_OUT_OF_POOL = 98, // "out-of-pool" - S_GLOBAL = 99, // "global" - S_ALL = 100, // "all" - S_SHARED_NETWORKS = 101, // "shared-networks" - S_MAC_SOURCES = 102, // "mac-sources" - S_RELAY_SUPPLIED_OPTIONS = 103, // "relay-supplied-options" - S_HOST_RESERVATION_IDENTIFIERS = 104, // "host-reservation-identifiers" - S_SANITY_CHECKS = 105, // "sanity-checks" - S_LEASE_CHECKS = 106, // "lease-checks" - S_CLIENT_CLASSES = 107, // "client-classes" - S_REQUIRE_CLIENT_CLASSES = 108, // "require-client-classes" - S_TEST = 109, // "test" - S_ONLY_IF_REQUIRED = 110, // "only-if-required" - S_CLIENT_CLASS = 111, // "client-class" - S_RESERVATIONS = 112, // "reservations" - S_IP_ADDRESSES = 113, // "ip-addresses" - S_PREFIXES = 114, // "prefixes" - S_DUID = 115, // "duid" - S_HW_ADDRESS = 116, // "hw-address" - S_HOSTNAME = 117, // "hostname" - S_FLEX_ID = 118, // "flex-id" - S_RELAY = 119, // "relay" - S_IP_ADDRESS = 120, // "ip-address" - S_HOOKS_LIBRARIES = 121, // "hooks-libraries" - S_LIBRARY = 122, // "library" - S_PARAMETERS = 123, // "parameters" - S_EXPIRED_LEASES_PROCESSING = 124, // "expired-leases-processing" - S_RECLAIM_TIMER_WAIT_TIME = 125, // "reclaim-timer-wait-time" - S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 126, // "flush-reclaimed-timer-wait-time" - S_HOLD_RECLAIMED_TIME = 127, // "hold-reclaimed-time" - S_MAX_RECLAIM_LEASES = 128, // "max-reclaim-leases" - S_MAX_RECLAIM_TIME = 129, // "max-reclaim-time" - S_UNWARNED_RECLAIM_CYCLES = 130, // "unwarned-reclaim-cycles" - S_SERVER_ID = 131, // "server-id" - S_LLT = 132, // "LLT" - S_EN = 133, // "EN" - S_LL = 134, // "LL" - S_IDENTIFIER = 135, // "identifier" - S_HTYPE = 136, // "htype" - S_TIME = 137, // "time" - S_ENTERPRISE_ID = 138, // "enterprise-id" - S_DHCP4O6_PORT = 139, // "dhcp4o6-port" - S_DHCP_MULTI_THREADING = 140, // "multi-threading" - S_ENABLE_MULTI_THREADING = 141, // "enable-multi-threading" - S_THREAD_POOL_SIZE = 142, // "thread-pool-size" - S_PACKET_QUEUE_SIZE = 143, // "packet-queue-size" - S_CONTROL_SOCKET = 144, // "control-socket" - S_SOCKET_TYPE = 145, // "socket-type" - S_SOCKET_NAME = 146, // "socket-name" - S_DHCP_QUEUE_CONTROL = 147, // "dhcp-queue-control" - S_ENABLE_QUEUE = 148, // "enable-queue" - S_QUEUE_TYPE = 149, // "queue-type" - S_CAPACITY = 150, // "capacity" - S_DHCP_DDNS = 151, // "dhcp-ddns" - S_ENABLE_UPDATES = 152, // "enable-updates" - S_QUALIFYING_SUFFIX = 153, // "qualifying-suffix" - S_SERVER_IP = 154, // "server-ip" - S_SERVER_PORT = 155, // "server-port" - S_SENDER_IP = 156, // "sender-ip" - S_SENDER_PORT = 157, // "sender-port" - S_MAX_QUEUE_SIZE = 158, // "max-queue-size" - S_NCR_PROTOCOL = 159, // "ncr-protocol" - S_NCR_FORMAT = 160, // "ncr-format" - S_OVERRIDE_NO_UPDATE = 161, // "override-no-update" - S_OVERRIDE_CLIENT_UPDATE = 162, // "override-client-update" - S_REPLACE_CLIENT_NAME = 163, // "replace-client-name" - S_GENERATED_PREFIX = 164, // "generated-prefix" - S_UDP = 165, // "UDP" - S_TCP = 166, // "TCP" - S_JSON = 167, // "JSON" - S_WHEN_PRESENT = 168, // "when-present" - S_NEVER = 169, // "never" - S_ALWAYS = 170, // "always" - S_WHEN_NOT_PRESENT = 171, // "when-not-present" - S_HOSTNAME_CHAR_SET = 172, // "hostname-char-set" - S_HOSTNAME_CHAR_REPLACEMENT = 173, // "hostname-char-replacement" - S_IP_RESERVATIONS_UNIQUE = 174, // "ip-reservations-unique" - S_LOGGERS = 175, // "loggers" - S_OUTPUT_OPTIONS = 176, // "output_options" - S_OUTPUT = 177, // "output" - S_DEBUGLEVEL = 178, // "debuglevel" - S_SEVERITY = 179, // "severity" - S_FLUSH = 180, // "flush" - S_MAXSIZE = 181, // "maxsize" - S_MAXVER = 182, // "maxver" - S_PATTERN = 183, // "pattern" - S_TOPLEVEL_JSON = 184, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP6 = 185, // TOPLEVEL_DHCP6 - S_SUB_DHCP6 = 186, // SUB_DHCP6 - S_SUB_INTERFACES6 = 187, // SUB_INTERFACES6 - S_SUB_SUBNET6 = 188, // SUB_SUBNET6 - S_SUB_POOL6 = 189, // SUB_POOL6 - S_SUB_PD_POOL = 190, // SUB_PD_POOL - S_SUB_RESERVATION = 191, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 192, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 193, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 194, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 195, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 196, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 197, // SUB_CONFIG_CONTROL - S_STRING = 198, // "constant string" - S_INTEGER = 199, // "integer" - S_FLOAT = 200, // "floating point" - S_BOOLEAN = 201, // "boolean" - S_YYACCEPT = 202, // $accept - S_start = 203, // start - S_204_1 = 204, // $@1 - S_205_2 = 205, // $@2 - S_206_3 = 206, // $@3 - S_207_4 = 207, // $@4 - S_208_5 = 208, // $@5 - S_209_6 = 209, // $@6 - S_210_7 = 210, // $@7 - S_211_8 = 211, // $@8 - S_212_9 = 212, // $@9 - S_213_10 = 213, // $@10 - S_214_11 = 214, // $@11 - S_215_12 = 215, // $@12 - S_216_13 = 216, // $@13 - S_217_14 = 217, // $@14 - S_value = 218, // value - S_sub_json = 219, // sub_json - S_map2 = 220, // map2 - S_221_15 = 221, // $@15 - S_map_value = 222, // map_value - S_map_content = 223, // map_content - S_not_empty_map = 224, // not_empty_map - S_list_generic = 225, // list_generic - S_226_16 = 226, // $@16 - S_list_content = 227, // list_content - S_not_empty_list = 228, // not_empty_list - S_list_strings = 229, // list_strings - S_230_17 = 230, // $@17 - S_list_strings_content = 231, // list_strings_content - S_not_empty_list_strings = 232, // not_empty_list_strings - S_unknown_map_entry = 233, // unknown_map_entry - S_syntax_map = 234, // syntax_map - S_235_18 = 235, // $@18 - S_global_object = 236, // global_object - S_237_19 = 237, // $@19 - S_sub_dhcp6 = 238, // sub_dhcp6 - S_239_20 = 239, // $@20 - S_global_params = 240, // global_params - S_global_param = 241, // global_param - S_data_directory = 242, // data_directory - S_243_21 = 243, // $@21 - S_preferred_lifetime = 244, // preferred_lifetime - S_min_preferred_lifetime = 245, // min_preferred_lifetime - S_max_preferred_lifetime = 246, // max_preferred_lifetime - S_valid_lifetime = 247, // valid_lifetime - S_min_valid_lifetime = 248, // min_valid_lifetime - S_max_valid_lifetime = 249, // max_valid_lifetime - S_renew_timer = 250, // renew_timer - S_rebind_timer = 251, // rebind_timer - S_calculate_tee_times = 252, // calculate_tee_times - S_t1_percent = 253, // t1_percent - S_t2_percent = 254, // t2_percent - S_cache_threshold = 255, // cache_threshold - S_cache_max_age = 256, // cache_max_age - S_decline_probation_period = 257, // decline_probation_period - S_ddns_send_updates = 258, // ddns_send_updates - S_ddns_override_no_update = 259, // ddns_override_no_update - S_ddns_override_client_update = 260, // ddns_override_client_update - S_ddns_replace_client_name = 261, // ddns_replace_client_name - S_262_22 = 262, // $@22 - S_ddns_replace_client_name_value = 263, // ddns_replace_client_name_value - S_ddns_generated_prefix = 264, // ddns_generated_prefix - S_265_23 = 265, // $@23 - S_ddns_qualifying_suffix = 266, // ddns_qualifying_suffix - S_267_24 = 267, // $@24 - S_ddns_update_on_renew = 268, // ddns_update_on_renew - S_hostname_char_set = 269, // hostname_char_set - S_270_25 = 270, // $@25 - S_hostname_char_replacement = 271, // hostname_char_replacement - S_272_26 = 272, // $@26 - S_store_extended_info = 273, // store_extended_info - S_statistic_default_sample_count = 274, // statistic_default_sample_count - S_statistic_default_sample_age = 275, // statistic_default_sample_age - S_server_tag = 276, // server_tag - S_277_27 = 277, // $@27 - S_ip_reservations_unique = 278, // ip_reservations_unique - S_interfaces_config = 279, // interfaces_config - S_280_28 = 280, // $@28 - S_sub_interfaces6 = 281, // sub_interfaces6 - S_282_29 = 282, // $@29 - S_interfaces_config_params = 283, // interfaces_config_params - S_interfaces_config_param = 284, // interfaces_config_param - S_interfaces_list = 285, // interfaces_list - S_286_30 = 286, // $@30 - S_re_detect = 287, // re_detect - S_lease_database = 288, // lease_database - S_289_31 = 289, // $@31 - S_hosts_database = 290, // hosts_database - S_291_32 = 291, // $@32 - S_hosts_databases = 292, // hosts_databases - S_293_33 = 293, // $@33 - S_database_list = 294, // database_list - S_not_empty_database_list = 295, // not_empty_database_list - S_database = 296, // database - S_297_34 = 297, // $@34 - S_database_map_params = 298, // database_map_params - S_database_map_param = 299, // database_map_param - S_database_type = 300, // database_type - S_301_35 = 301, // $@35 - S_db_type = 302, // db_type - S_user = 303, // user - S_304_36 = 304, // $@36 - S_password = 305, // password - S_306_37 = 306, // $@37 - S_host = 307, // host - S_308_38 = 308, // $@38 - S_port = 309, // port - S_name = 310, // name - S_311_39 = 311, // $@39 - S_persist = 312, // persist - S_lfc_interval = 313, // lfc_interval - S_readonly = 314, // readonly - S_connect_timeout = 315, // connect_timeout - S_reconnect_wait_time = 316, // reconnect_wait_time - S_max_row_errors = 317, // max_row_errors - S_request_timeout = 318, // request_timeout - S_tcp_keepalive = 319, // tcp_keepalive - S_tcp_nodelay = 320, // tcp_nodelay - S_contact_points = 321, // contact_points - S_322_40 = 322, // $@40 - S_max_reconnect_tries = 323, // max_reconnect_tries - S_keyspace = 324, // keyspace - S_325_41 = 325, // $@41 - S_consistency = 326, // consistency - S_327_42 = 327, // $@42 - S_serial_consistency = 328, // serial_consistency - S_329_43 = 329, // $@43 - S_sanity_checks = 330, // sanity_checks - S_331_44 = 331, // $@44 - S_sanity_checks_params = 332, // sanity_checks_params - S_sanity_checks_param = 333, // sanity_checks_param - S_lease_checks = 334, // lease_checks - S_335_45 = 335, // $@45 - S_mac_sources = 336, // mac_sources - S_337_46 = 337, // $@46 - S_mac_sources_list = 338, // mac_sources_list - S_mac_sources_value = 339, // mac_sources_value - S_duid_id = 340, // duid_id - S_string_id = 341, // string_id - S_host_reservation_identifiers = 342, // host_reservation_identifiers - S_343_47 = 343, // $@47 - S_host_reservation_identifiers_list = 344, // host_reservation_identifiers_list - S_host_reservation_identifier = 345, // host_reservation_identifier - S_hw_address_id = 346, // hw_address_id - S_flex_id = 347, // flex_id - S_relay_supplied_options = 348, // relay_supplied_options - S_349_48 = 349, // $@48 - S_dhcp_multi_threading = 350, // dhcp_multi_threading - S_351_49 = 351, // $@49 - S_multi_threading_params = 352, // multi_threading_params - S_multi_threading_param = 353, // multi_threading_param - S_enable_multi_threading = 354, // enable_multi_threading - S_thread_pool_size = 355, // thread_pool_size - S_packet_queue_size = 356, // packet_queue_size - S_hooks_libraries = 357, // hooks_libraries - S_358_50 = 358, // $@50 - S_hooks_libraries_list = 359, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 360, // not_empty_hooks_libraries_list - S_hooks_library = 361, // hooks_library - S_362_51 = 362, // $@51 - S_sub_hooks_library = 363, // sub_hooks_library - S_364_52 = 364, // $@52 - S_hooks_params = 365, // hooks_params - S_hooks_param = 366, // hooks_param - S_library = 367, // library - S_368_53 = 368, // $@53 - S_parameters = 369, // parameters - S_370_54 = 370, // $@54 - S_expired_leases_processing = 371, // expired_leases_processing - S_372_55 = 372, // $@55 - S_expired_leases_params = 373, // expired_leases_params - S_expired_leases_param = 374, // expired_leases_param - S_reclaim_timer_wait_time = 375, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 376, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 377, // hold_reclaimed_time - S_max_reclaim_leases = 378, // max_reclaim_leases - S_max_reclaim_time = 379, // max_reclaim_time - S_unwarned_reclaim_cycles = 380, // unwarned_reclaim_cycles - S_subnet6_list = 381, // subnet6_list - S_382_56 = 382, // $@56 - S_subnet6_list_content = 383, // subnet6_list_content - S_not_empty_subnet6_list = 384, // not_empty_subnet6_list - S_subnet6 = 385, // subnet6 - S_386_57 = 386, // $@57 - S_sub_subnet6 = 387, // sub_subnet6 - S_388_58 = 388, // $@58 - S_subnet6_params = 389, // subnet6_params - S_subnet6_param = 390, // subnet6_param - S_subnet = 391, // subnet - S_392_59 = 392, // $@59 - S_interface = 393, // interface - S_394_60 = 394, // $@60 - S_interface_id = 395, // interface_id - S_396_61 = 396, // $@61 - S_client_class = 397, // client_class - S_398_62 = 398, // $@62 - S_require_client_classes = 399, // require_client_classes - S_400_63 = 400, // $@63 - S_reservation_mode = 401, // reservation_mode - S_402_64 = 402, // $@64 - S_hr_mode = 403, // hr_mode - S_id = 404, // id - S_rapid_commit = 405, // rapid_commit - S_shared_networks = 406, // shared_networks - S_407_65 = 407, // $@65 - S_shared_networks_content = 408, // shared_networks_content - S_shared_networks_list = 409, // shared_networks_list - S_shared_network = 410, // shared_network - S_411_66 = 411, // $@66 - S_shared_network_params = 412, // shared_network_params - S_shared_network_param = 413, // shared_network_param - S_option_def_list = 414, // option_def_list - S_415_67 = 415, // $@67 - S_sub_option_def_list = 416, // sub_option_def_list - S_417_68 = 417, // $@68 - S_option_def_list_content = 418, // option_def_list_content - S_not_empty_option_def_list = 419, // not_empty_option_def_list - S_option_def_entry = 420, // option_def_entry - S_421_69 = 421, // $@69 - S_sub_option_def = 422, // sub_option_def - S_423_70 = 423, // $@70 - S_option_def_params = 424, // option_def_params - S_not_empty_option_def_params = 425, // not_empty_option_def_params - S_option_def_param = 426, // option_def_param - S_option_def_name = 427, // option_def_name - S_code = 428, // code - S_option_def_code = 429, // option_def_code - S_option_def_type = 430, // option_def_type - S_431_71 = 431, // $@71 - S_option_def_record_types = 432, // option_def_record_types - S_433_72 = 433, // $@72 - S_space = 434, // space - S_435_73 = 435, // $@73 - S_option_def_space = 436, // option_def_space - S_option_def_encapsulate = 437, // option_def_encapsulate - S_438_74 = 438, // $@74 - S_option_def_array = 439, // option_def_array - S_option_data_list = 440, // option_data_list - S_441_75 = 441, // $@75 - S_option_data_list_content = 442, // option_data_list_content - S_not_empty_option_data_list = 443, // not_empty_option_data_list - S_option_data_entry = 444, // option_data_entry - S_445_76 = 445, // $@76 - S_sub_option_data = 446, // sub_option_data - S_447_77 = 447, // $@77 - S_option_data_params = 448, // option_data_params - S_not_empty_option_data_params = 449, // not_empty_option_data_params - S_option_data_param = 450, // option_data_param - S_option_data_name = 451, // option_data_name - S_option_data_data = 452, // option_data_data - S_453_78 = 453, // $@78 - S_option_data_code = 454, // option_data_code - S_option_data_space = 455, // option_data_space - S_option_data_csv_format = 456, // option_data_csv_format - S_option_data_always_send = 457, // option_data_always_send - S_pools_list = 458, // pools_list - S_459_79 = 459, // $@79 - S_pools_list_content = 460, // pools_list_content - S_not_empty_pools_list = 461, // not_empty_pools_list - S_pool_list_entry = 462, // pool_list_entry - S_463_80 = 463, // $@80 - S_sub_pool6 = 464, // sub_pool6 - S_465_81 = 465, // $@81 - S_pool_params = 466, // pool_params - S_pool_param = 467, // pool_param - S_pool_entry = 468, // pool_entry - S_469_82 = 469, // $@82 - S_user_context = 470, // user_context - S_471_83 = 471, // $@83 - S_comment = 472, // comment - S_473_84 = 473, // $@84 - S_pd_pools_list = 474, // pd_pools_list - S_475_85 = 475, // $@85 - S_pd_pools_list_content = 476, // pd_pools_list_content - S_not_empty_pd_pools_list = 477, // not_empty_pd_pools_list - S_pd_pool_entry = 478, // pd_pool_entry - S_479_86 = 479, // $@86 - S_sub_pd_pool = 480, // sub_pd_pool - S_481_87 = 481, // $@87 - S_pd_pool_params = 482, // pd_pool_params - S_pd_pool_param = 483, // pd_pool_param - S_pd_prefix = 484, // pd_prefix - S_485_88 = 485, // $@88 - S_pd_prefix_len = 486, // pd_prefix_len - S_excluded_prefix = 487, // excluded_prefix - S_488_89 = 488, // $@89 - S_excluded_prefix_len = 489, // excluded_prefix_len - S_pd_delegated_len = 490, // pd_delegated_len - S_reservations = 491, // reservations - S_492_90 = 492, // $@90 - S_reservations_list = 493, // reservations_list - S_not_empty_reservations_list = 494, // not_empty_reservations_list - S_reservation = 495, // reservation - S_496_91 = 496, // $@91 - S_sub_reservation = 497, // sub_reservation - S_498_92 = 498, // $@92 - S_reservation_params = 499, // reservation_params - S_not_empty_reservation_params = 500, // not_empty_reservation_params - S_reservation_param = 501, // reservation_param - S_ip_addresses = 502, // ip_addresses - S_503_93 = 503, // $@93 - S_prefixes = 504, // prefixes - S_505_94 = 505, // $@94 - S_duid = 506, // duid - S_507_95 = 507, // $@95 - S_hw_address = 508, // hw_address - S_509_96 = 509, // $@96 - S_hostname = 510, // hostname - S_511_97 = 511, // $@97 - S_flex_id_value = 512, // flex_id_value - S_513_98 = 513, // $@98 - S_reservation_client_classes = 514, // reservation_client_classes - S_515_99 = 515, // $@99 - S_relay = 516, // relay - S_517_100 = 517, // $@100 - S_relay_map = 518, // relay_map - S_ip_address = 519, // ip_address - S_520_101 = 520, // $@101 - S_client_classes = 521, // client_classes - S_522_102 = 522, // $@102 - S_client_classes_list = 523, // client_classes_list - S_client_class_entry = 524, // client_class_entry - S_525_103 = 525, // $@103 - S_client_class_params = 526, // client_class_params - S_not_empty_client_class_params = 527, // not_empty_client_class_params - S_client_class_param = 528, // client_class_param - S_client_class_name = 529, // client_class_name - S_client_class_test = 530, // client_class_test - S_531_104 = 531, // $@104 - S_only_if_required = 532, // only_if_required - S_server_id = 533, // server_id - S_534_105 = 534, // $@105 - S_server_id_params = 535, // server_id_params - S_server_id_param = 536, // server_id_param - S_server_id_type = 537, // server_id_type - S_538_106 = 538, // $@106 - S_duid_type = 539, // duid_type - S_htype = 540, // htype - S_identifier = 541, // identifier - S_542_107 = 542, // $@107 - S_time = 543, // time - S_enterprise_id = 544, // enterprise_id - S_dhcp4o6_port = 545, // dhcp4o6_port - S_control_socket = 546, // control_socket - S_547_108 = 547, // $@108 - S_control_socket_params = 548, // control_socket_params - S_control_socket_param = 549, // control_socket_param - S_socket_type = 550, // socket_type - S_551_109 = 551, // $@109 - S_socket_name = 552, // socket_name - S_553_110 = 553, // $@110 - S_dhcp_queue_control = 554, // dhcp_queue_control - S_555_111 = 555, // $@111 - S_queue_control_params = 556, // queue_control_params - S_queue_control_param = 557, // queue_control_param - S_enable_queue = 558, // enable_queue - S_queue_type = 559, // queue_type - S_560_112 = 560, // $@112 - S_capacity = 561, // capacity - S_arbitrary_map_entry = 562, // arbitrary_map_entry - S_563_113 = 563, // $@113 - S_dhcp_ddns = 564, // dhcp_ddns - S_565_114 = 565, // $@114 - S_sub_dhcp_ddns = 566, // sub_dhcp_ddns - S_567_115 = 567, // $@115 - S_dhcp_ddns_params = 568, // dhcp_ddns_params - S_dhcp_ddns_param = 569, // dhcp_ddns_param - S_enable_updates = 570, // enable_updates - S_dep_qualifying_suffix = 571, // dep_qualifying_suffix - S_572_116 = 572, // $@116 - S_server_ip = 573, // server_ip - S_574_117 = 574, // $@117 - S_server_port = 575, // server_port - S_sender_ip = 576, // sender_ip - S_577_118 = 577, // $@118 - S_sender_port = 578, // sender_port - S_max_queue_size = 579, // max_queue_size - S_ncr_protocol = 580, // ncr_protocol - S_581_119 = 581, // $@119 - S_ncr_protocol_value = 582, // ncr_protocol_value - S_ncr_format = 583, // ncr_format - S_584_120 = 584, // $@120 - S_dep_override_no_update = 585, // dep_override_no_update - S_dep_override_client_update = 586, // dep_override_client_update - S_dep_replace_client_name = 587, // dep_replace_client_name - S_588_121 = 588, // $@121 - S_dep_generated_prefix = 589, // dep_generated_prefix - S_590_122 = 590, // $@122 - S_dep_hostname_char_set = 591, // dep_hostname_char_set - S_592_123 = 592, // $@123 - S_dep_hostname_char_replacement = 593, // dep_hostname_char_replacement - S_594_124 = 594, // $@124 - S_config_control = 595, // config_control - S_596_125 = 596, // $@125 - S_sub_config_control = 597, // sub_config_control - S_598_126 = 598, // $@126 - S_config_control_params = 599, // config_control_params - S_config_control_param = 600, // config_control_param - S_config_databases = 601, // config_databases - S_602_127 = 602, // $@127 - S_config_fetch_wait_time = 603, // config_fetch_wait_time - S_loggers = 604, // loggers - S_605_128 = 605, // $@128 - S_loggers_entries = 606, // loggers_entries - S_logger_entry = 607, // logger_entry - S_608_129 = 608, // $@129 - S_logger_params = 609, // logger_params - S_logger_param = 610, // logger_param - S_debuglevel = 611, // debuglevel - S_severity = 612, // severity - S_613_130 = 613, // $@130 - S_output_options_list = 614, // output_options_list - S_615_131 = 615, // $@131 - S_output_options_list_content = 616, // output_options_list_content - S_output_entry = 617, // output_entry - S_618_132 = 618, // $@132 - S_output_params_list = 619, // output_params_list - S_output_params = 620, // output_params - S_output = 621, // output - S_622_133 = 622, // $@133 - S_flush = 623, // flush - S_maxsize = 624, // maxsize - S_maxver = 625, // maxver - S_pattern = 626, // pattern - S_627_134 = 627 // $@134 - }; - }; + /// Symbol type: an internal symbol number. + typedef int symbol_number_type; - /// (Internal) symbol kind. - typedef symbol_kind::symbol_kind_type symbol_kind_type; + /// The symbol type number to denote an empty symbol. + enum { empty_symbol = -2 }; - /// The number of tokens. - static const symbol_kind_type YYNTOKENS = symbol_kind::YYNTOKENS; + /// Internal symbol number for tokens (subsumed by symbol_number_type). + typedef unsigned char token_number_type; /// A complete symbol. /// - /// Expects its Base type to provide access to the symbol kind - /// via kind (). + /// Expects its Base type to provide access to the symbol type + /// via type_get(). /// /// Provide access to semantic value and location. template <typename Base> @@ -1352,200 +575,39 @@ namespace isc { namespace dhcp { typedef Base super_type; /// Default constructor. - basic_symbol () - : value () - , location () - {} - -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - basic_symbol (basic_symbol&& that) - : Base (std::move (that)) - , value () - , location (std::move (that.location)) - { - switch (this->kind ()) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.move< ElementPtr > (std::move (that.value)); - break; - - case symbol_kind::S_BOOLEAN: // "boolean" - value.move< bool > (std::move (that.value)); - break; - - case symbol_kind::S_FLOAT: // "floating point" - value.move< double > (std::move (that.value)); - break; - - case symbol_kind::S_INTEGER: // "integer" - value.move< int64_t > (std::move (that.value)); - break; - - case symbol_kind::S_STRING: // "constant string" - value.move< std::string > (std::move (that.value)); - break; - - default: - break; - } - - } -#endif + basic_symbol (); /// Copy constructor. - basic_symbol (const basic_symbol& that); + basic_symbol (const basic_symbol& other); /// Constructor for valueless symbols, and symbols from each type. -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, location_type&& l) - : Base (t) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const location_type& l) - : Base (t) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const double& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif -#if 201103L <= YY_CPLUSPLUS - basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} -#else - basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} -#endif - /// Destroy the symbol. - ~basic_symbol () - { - clear (); - } + basic_symbol (typename Base::kind_type t, const location_type& l); - /// Destroy contents, and record that is empty. - void clear () - { - // User destructor. - symbol_kind_type yykind = this->kind (); - basic_symbol<Base>& yysym = *this; - (void) yysym; - switch (yykind) - { - default: - break; - } - - // Value type destructor. -switch (yykind) - { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.template destroy< ElementPtr > (); - break; + basic_symbol (typename Base::kind_type t, const ElementPtr v, const location_type& l); - case symbol_kind::S_BOOLEAN: // "boolean" - value.template destroy< bool > (); - break; + basic_symbol (typename Base::kind_type t, const bool v, const location_type& l); - case symbol_kind::S_FLOAT: // "floating point" - value.template destroy< double > (); - break; + basic_symbol (typename Base::kind_type t, const double v, const location_type& l); - case symbol_kind::S_INTEGER: // "integer" - value.template destroy< int64_t > (); - break; + basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l); - case symbol_kind::S_STRING: // "constant string" - value.template destroy< std::string > (); - break; + basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l); - default: - break; - } - Base::clear (); - } + /// Constructor for symbols with semantic value. + basic_symbol (typename Base::kind_type t, + const semantic_type& v, + const location_type& l); - /// The user-facing name of this symbol. - std::string name () const YY_NOEXCEPT - { - return Dhcp6Parser::symbol_name (this->kind ()); - } + /// Destroy the symbol. + ~basic_symbol (); - /// Backward compatibility (Bison 3.6). - symbol_kind_type type_get () const YY_NOEXCEPT; + /// Destroy contents, and record that is empty. + void clear (); /// Whether empty. - bool empty () const YY_NOEXCEPT; + bool empty () const; /// Destructive move, \a s is emptied into this. void move (basic_symbol& s); @@ -1557,145 +619,857 @@ switch (yykind) location_type location; private: -#if YY_CPLUSPLUS < 201103L /// Assignment operator. - basic_symbol& operator= (const basic_symbol& that); -#endif + basic_symbol& operator= (const basic_symbol& other); }; /// Type access provider for token (enum) based symbols. - struct by_kind + struct by_type { /// Default constructor. - by_kind (); - -#if 201103L <= YY_CPLUSPLUS - /// Move constructor. - by_kind (by_kind&& that); -#endif + by_type (); /// Copy constructor. - by_kind (const by_kind& that); + by_type (const by_type& other); - /// The symbol kind as needed by the constructor. - typedef token_kind_type kind_type; + /// The symbol type as needed by the constructor. + typedef token_type kind_type; /// Constructor from (external) token numbers. - by_kind (kind_type t); + by_type (kind_type t); /// Record that this symbol is empty. void clear (); - /// Steal the symbol kind from \a that. - void move (by_kind& that); + /// Steal the symbol type from \a that. + void move (by_type& that); /// The (internal) type number (corresponding to \a type). /// \a empty when empty. - symbol_kind_type kind () const YY_NOEXCEPT; + symbol_number_type type_get () const; - /// Backward compatibility (Bison 3.6). - symbol_kind_type type_get () const YY_NOEXCEPT; + /// The token. + token_type token () const; - /// The symbol kind. - /// \a S_YYEMPTY when empty. - symbol_kind_type kind_; + /// The symbol type. + /// \a empty_symbol when empty. + /// An int, not token_number_type, to be able to store empty_symbol. + int type; }; - /// Backward compatibility for a private implementation detail (Bison 3.6). - typedef by_kind by_type; - /// "External" symbols: returned by the scanner. - struct symbol_type : basic_symbol<by_kind> - { - /// Superclass. - typedef basic_symbol<by_kind> super_type; + typedef basic_symbol<by_type> symbol_type; - /// Empty symbol. - symbol_type () {} + // Symbol constructors declarations. + static inline + symbol_type + make_END (const location_type& l); + + static inline + symbol_type + make_COMMA (const location_type& l); + + static inline + symbol_type + make_COLON (const location_type& l); + + static inline + symbol_type + make_LSQUARE_BRACKET (const location_type& l); + + static inline + symbol_type + make_RSQUARE_BRACKET (const location_type& l); + + static inline + symbol_type + make_LCURLY_BRACKET (const location_type& l); + + static inline + symbol_type + make_RCURLY_BRACKET (const location_type& l); + + static inline + symbol_type + make_NULL_TYPE (const location_type& l); + + static inline + symbol_type + make_DHCP6 (const location_type& l); + + static inline + symbol_type + make_DATA_DIRECTORY (const location_type& l); + + static inline + symbol_type + make_CONFIG_CONTROL (const location_type& l); + + static inline + symbol_type + make_CONFIG_DATABASES (const location_type& l); + + static inline + symbol_type + make_CONFIG_FETCH_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_INTERFACES_CONFIG (const location_type& l); + + static inline + symbol_type + make_INTERFACES (const location_type& l); + + static inline + symbol_type + make_RE_DETECT (const location_type& l); + + static inline + symbol_type + make_LEASE_DATABASE (const location_type& l); + + static inline + symbol_type + make_HOSTS_DATABASE (const location_type& l); + + static inline + symbol_type + make_HOSTS_DATABASES (const location_type& l); + + static inline + symbol_type + make_TYPE (const location_type& l); + + static inline + symbol_type + make_MEMFILE (const location_type& l); + + static inline + symbol_type + make_MYSQL (const location_type& l); + + static inline + symbol_type + make_POSTGRESQL (const location_type& l); + + static inline + symbol_type + make_CQL (const location_type& l); + + static inline + symbol_type + make_USER (const location_type& l); + + static inline + symbol_type + make_PASSWORD (const location_type& l); + + static inline + symbol_type + make_HOST (const location_type& l); + + static inline + symbol_type + make_PORT (const location_type& l); + + static inline + symbol_type + make_PERSIST (const location_type& l); + + static inline + symbol_type + make_LFC_INTERVAL (const location_type& l); + + static inline + symbol_type + make_READONLY (const location_type& l); + + static inline + symbol_type + make_CONNECT_TIMEOUT (const location_type& l); + + static inline + symbol_type + make_CONTACT_POINTS (const location_type& l); + + static inline + symbol_type + make_MAX_RECONNECT_TRIES (const location_type& l); + + static inline + symbol_type + make_RECONNECT_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_KEYSPACE (const location_type& l); + + static inline + symbol_type + make_CONSISTENCY (const location_type& l); + + static inline + symbol_type + make_SERIAL_CONSISTENCY (const location_type& l); + + static inline + symbol_type + make_REQUEST_TIMEOUT (const location_type& l); + + static inline + symbol_type + make_TCP_KEEPALIVE (const location_type& l); + + static inline + symbol_type + make_TCP_NODELAY (const location_type& l); + + static inline + symbol_type + make_MAX_ROW_ERRORS (const location_type& l); + + static inline + symbol_type + make_PREFERRED_LIFETIME (const location_type& l); + + static inline + symbol_type + make_MIN_PREFERRED_LIFETIME (const location_type& l); + + static inline + symbol_type + make_MAX_PREFERRED_LIFETIME (const location_type& l); + + static inline + symbol_type + make_VALID_LIFETIME (const location_type& l); + + static inline + symbol_type + make_MIN_VALID_LIFETIME (const location_type& l); + + static inline + symbol_type + make_MAX_VALID_LIFETIME (const location_type& l); + + static inline + symbol_type + make_RENEW_TIMER (const location_type& l); + + static inline + symbol_type + make_REBIND_TIMER (const location_type& l); + + static inline + symbol_type + make_CALCULATE_TEE_TIMES (const location_type& l); + + static inline + symbol_type + make_T1_PERCENT (const location_type& l); + + static inline + symbol_type + make_T2_PERCENT (const location_type& l); + + static inline + symbol_type + make_CACHE_THRESHOLD (const location_type& l); + + static inline + symbol_type + make_CACHE_MAX_AGE (const location_type& l); + + static inline + symbol_type + make_DECLINE_PROBATION_PERIOD (const location_type& l); + + static inline + symbol_type + make_SERVER_TAG (const location_type& l); + + static inline + symbol_type + make_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l); + + static inline + symbol_type + make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l); + + static inline + symbol_type + make_DDNS_SEND_UPDATES (const location_type& l); + + static inline + symbol_type + make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l); + + static inline + symbol_type + make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l); + + static inline + symbol_type + make_DDNS_REPLACE_CLIENT_NAME (const location_type& l); + + static inline + symbol_type + make_DDNS_GENERATED_PREFIX (const location_type& l); + + static inline + symbol_type + make_DDNS_QUALIFYING_SUFFIX (const location_type& l); + + static inline + symbol_type + make_DDNS_UPDATE_ON_RENEW (const location_type& l); + + static inline + symbol_type + make_DDNS_USE_CONFLICT_RESOLUTION (const location_type& l); + + static inline + symbol_type + make_STORE_EXTENDED_INFO (const location_type& l); + + static inline + symbol_type + make_SUBNET6 (const location_type& l); + + static inline + symbol_type + make_OPTION_DEF (const location_type& l); + + static inline + symbol_type + make_OPTION_DATA (const location_type& l); + + static inline + symbol_type + make_NAME (const location_type& l); + + static inline + symbol_type + make_DATA (const location_type& l); + + static inline + symbol_type + make_CODE (const location_type& l); + + static inline + symbol_type + make_SPACE (const location_type& l); + + static inline + symbol_type + make_CSV_FORMAT (const location_type& l); + + static inline + symbol_type + make_ALWAYS_SEND (const location_type& l); + + static inline + symbol_type + make_RECORD_TYPES (const location_type& l); + + static inline + symbol_type + make_ENCAPSULATE (const location_type& l); + + static inline + symbol_type + make_ARRAY (const location_type& l); + + static inline + symbol_type + make_POOLS (const location_type& l); + + static inline + symbol_type + make_POOL (const location_type& l); + + static inline + symbol_type + make_PD_POOLS (const location_type& l); + + static inline + symbol_type + make_PREFIX (const location_type& l); + + static inline + symbol_type + make_PREFIX_LEN (const location_type& l); + + static inline + symbol_type + make_EXCLUDED_PREFIX (const location_type& l); + + static inline + symbol_type + make_EXCLUDED_PREFIX_LEN (const location_type& l); + + static inline + symbol_type + make_DELEGATED_LEN (const location_type& l); + + static inline + symbol_type + make_USER_CONTEXT (const location_type& l); + + static inline + symbol_type + make_COMMENT (const location_type& l); + + static inline + symbol_type + make_SUBNET (const location_type& l); + + static inline + symbol_type + make_INTERFACE (const location_type& l); + + static inline + symbol_type + make_INTERFACE_ID (const location_type& l); + + static inline + symbol_type + make_ID (const location_type& l); + + static inline + symbol_type + make_RAPID_COMMIT (const location_type& l); + + static inline + symbol_type + make_RESERVATION_MODE (const location_type& l); + + static inline + symbol_type + make_DISABLED (const location_type& l); + + static inline + symbol_type + make_OUT_OF_POOL (const location_type& l); + + static inline + symbol_type + make_GLOBAL (const location_type& l); + + static inline + symbol_type + make_ALL (const location_type& l); + + static inline + symbol_type + make_SHARED_NETWORKS (const location_type& l); + + static inline + symbol_type + make_MAC_SOURCES (const location_type& l); + + static inline + symbol_type + make_RELAY_SUPPLIED_OPTIONS (const location_type& l); + + static inline + symbol_type + make_HOST_RESERVATION_IDENTIFIERS (const location_type& l); + + static inline + symbol_type + make_SANITY_CHECKS (const location_type& l); + + static inline + symbol_type + make_LEASE_CHECKS (const location_type& l); + + static inline + symbol_type + make_CLIENT_CLASSES (const location_type& l); + + static inline + symbol_type + make_REQUIRE_CLIENT_CLASSES (const location_type& l); + + static inline + symbol_type + make_TEST (const location_type& l); + + static inline + symbol_type + make_ONLY_IF_REQUIRED (const location_type& l); + + static inline + symbol_type + make_CLIENT_CLASS (const location_type& l); + + static inline + symbol_type + make_RESERVATIONS (const location_type& l); + + static inline + symbol_type + make_IP_ADDRESSES (const location_type& l); + + static inline + symbol_type + make_PREFIXES (const location_type& l); + + static inline + symbol_type + make_DUID (const location_type& l); + + static inline + symbol_type + make_HW_ADDRESS (const location_type& l); + + static inline + symbol_type + make_HOSTNAME (const location_type& l); + + static inline + symbol_type + make_FLEX_ID (const location_type& l); + + static inline + symbol_type + make_RELAY (const location_type& l); + + static inline + symbol_type + make_IP_ADDRESS (const location_type& l); + + static inline + symbol_type + make_HOOKS_LIBRARIES (const location_type& l); + + static inline + symbol_type + make_LIBRARY (const location_type& l); + + static inline + symbol_type + make_PARAMETERS (const location_type& l); + + static inline + symbol_type + make_EXPIRED_LEASES_PROCESSING (const location_type& l); + + static inline + symbol_type + make_RECLAIM_TIMER_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l); + + static inline + symbol_type + make_HOLD_RECLAIMED_TIME (const location_type& l); + + static inline + symbol_type + make_MAX_RECLAIM_LEASES (const location_type& l); + + static inline + symbol_type + make_MAX_RECLAIM_TIME (const location_type& l); + + static inline + symbol_type + make_UNWARNED_RECLAIM_CYCLES (const location_type& l); + + static inline + symbol_type + make_SERVER_ID (const location_type& l); + + static inline + symbol_type + make_LLT (const location_type& l); + + static inline + symbol_type + make_EN (const location_type& l); + + static inline + symbol_type + make_LL (const location_type& l); + + static inline + symbol_type + make_IDENTIFIER (const location_type& l); + + static inline + symbol_type + make_HTYPE (const location_type& l); + + static inline + symbol_type + make_TIME (const location_type& l); + + static inline + symbol_type + make_ENTERPRISE_ID (const location_type& l); + + static inline + symbol_type + make_DHCP4O6_PORT (const location_type& l); + + static inline + symbol_type + make_DHCP_MULTI_THREADING (const location_type& l); + + static inline + symbol_type + make_ENABLE_MULTI_THREADING (const location_type& l); + + static inline + symbol_type + make_THREAD_POOL_SIZE (const location_type& l); + + static inline + symbol_type + make_PACKET_QUEUE_SIZE (const location_type& l); + + static inline + symbol_type + make_CONTROL_SOCKET (const location_type& l); + + static inline + symbol_type + make_SOCKET_TYPE (const location_type& l); + + static inline + symbol_type + make_SOCKET_NAME (const location_type& l); + + static inline + symbol_type + make_DHCP_QUEUE_CONTROL (const location_type& l); + + static inline + symbol_type + make_ENABLE_QUEUE (const location_type& l); + + static inline + symbol_type + make_QUEUE_TYPE (const location_type& l); + + static inline + symbol_type + make_CAPACITY (const location_type& l); + + static inline + symbol_type + make_DHCP_DDNS (const location_type& l); + + static inline + symbol_type + make_ENABLE_UPDATES (const location_type& l); + + static inline + symbol_type + make_QUALIFYING_SUFFIX (const location_type& l); + + static inline + symbol_type + make_SERVER_IP (const location_type& l); + + static inline + symbol_type + make_SERVER_PORT (const location_type& l); + + static inline + symbol_type + make_SENDER_IP (const location_type& l); + + static inline + symbol_type + make_SENDER_PORT (const location_type& l); + + static inline + symbol_type + make_MAX_QUEUE_SIZE (const location_type& l); + + static inline + symbol_type + make_NCR_PROTOCOL (const location_type& l); + + static inline + symbol_type + make_NCR_FORMAT (const location_type& l); + + static inline + symbol_type + make_OVERRIDE_NO_UPDATE (const location_type& l); + + static inline + symbol_type + make_OVERRIDE_CLIENT_UPDATE (const location_type& l); + + static inline + symbol_type + make_REPLACE_CLIENT_NAME (const location_type& l); + + static inline + symbol_type + make_GENERATED_PREFIX (const location_type& l); + + static inline + symbol_type + make_UDP (const location_type& l); + + static inline + symbol_type + make_TCP (const location_type& l); + + static inline + symbol_type + make_JSON (const location_type& l); + + static inline + symbol_type + make_WHEN_PRESENT (const location_type& l); + + static inline + symbol_type + make_NEVER (const location_type& l); + + static inline + symbol_type + make_ALWAYS (const location_type& l); + + static inline + symbol_type + make_WHEN_NOT_PRESENT (const location_type& l); + + static inline + symbol_type + make_HOSTNAME_CHAR_SET (const location_type& l); + + static inline + symbol_type + make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l); + + static inline + symbol_type + make_IP_RESERVATIONS_UNIQUE (const location_type& l); + + static inline + symbol_type + make_LOGGERS (const location_type& l); + + static inline + symbol_type + make_OUTPUT_OPTIONS (const location_type& l); + + static inline + symbol_type + make_OUTPUT (const location_type& l); + + static inline + symbol_type + make_DEBUGLEVEL (const location_type& l); + + static inline + symbol_type + make_SEVERITY (const location_type& l); + + static inline + symbol_type + make_FLUSH (const location_type& l); + + static inline + symbol_type + make_MAXSIZE (const location_type& l); + + static inline + symbol_type + make_MAXVER (const location_type& l); + + static inline + symbol_type + make_PATTERN (const location_type& l); + + static inline + symbol_type + make_TOPLEVEL_JSON (const location_type& l); + + static inline + symbol_type + make_TOPLEVEL_DHCP6 (const location_type& l); + + static inline + symbol_type + make_SUB_DHCP6 (const location_type& l); + + static inline + symbol_type + make_SUB_INTERFACES6 (const location_type& l); + + static inline + symbol_type + make_SUB_SUBNET6 (const location_type& l); + + static inline + symbol_type + make_SUB_POOL6 (const location_type& l); + + static inline + symbol_type + make_SUB_PD_POOL (const location_type& l); + + static inline + symbol_type + make_SUB_RESERVATION (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DEFS (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DEF (const location_type& l); + + static inline + symbol_type + make_SUB_OPTION_DATA (const location_type& l); + + static inline + symbol_type + make_SUB_HOOKS_LIBRARY (const location_type& l); + + static inline + symbol_type + make_SUB_DHCP_DDNS (const location_type& l); + + static inline + symbol_type + make_SUB_CONFIG_CONTROL (const location_type& l); + + static inline + symbol_type + make_STRING (const std::string& v, const location_type& l); + + static inline + symbol_type + make_INTEGER (const int64_t& v, const location_type& l); + + static inline + symbol_type + make_FLOAT (const double& v, const location_type& l); + + static inline + symbol_type + make_BOOLEAN (const bool& v, const location_type& l); - /// Constructor for valueless symbols, and symbols from each type. -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, location_type l) - : super_type(token_type (tok), std::move (l)) - { - 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_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); - } -#else - symbol_type (int tok, const location_type& l) - : super_type(token_type (tok), l) - { - YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_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_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, bool v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOKEN_BOOLEAN); - } -#else - symbol_type (int tok, const bool& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_ASSERT (tok == token::TOKEN_BOOLEAN); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, double v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOKEN_FLOAT); - } -#else - symbol_type (int tok, const double& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_ASSERT (tok == token::TOKEN_FLOAT); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, int64_t v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOKEN_INTEGER); - } -#else - symbol_type (int tok, const int64_t& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_ASSERT (tok == token::TOKEN_INTEGER); - } -#endif -#if 201103L <= YY_CPLUSPLUS - symbol_type (int tok, std::string v, location_type l) - : super_type(token_type (tok), std::move (v), std::move (l)) - { - YY_ASSERT (tok == token::TOKEN_STRING); - } -#else - symbol_type (int tok, const std::string& v, const location_type& l) - : super_type(token_type (tok), v, l) - { - YY_ASSERT (tok == token::TOKEN_STRING); - } -#endif - }; /// Build a parser object. Dhcp6Parser (isc::dhcp::Parser6Context& ctx_yyarg); virtual ~Dhcp6Parser (); -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - Dhcp6Parser (const Dhcp6Parser&) = delete; - /// Non copyable. - Dhcp6Parser& operator= (const Dhcp6Parser&) = delete; -#endif - - /// Parse. An alias for parse (). - /// \returns 0 iff parsing succeeded. - int operator() (); - /// Parse. /// \returns 0 iff parsing succeeded. virtual int parse (); @@ -1722,3084 +1496,24 @@ switch (yykind) /// Report a syntax error. void error (const syntax_error& err); - /// The user-facing name of the symbol whose (internal) number is - /// YYSYMBOL. No bounds checking. - static std::string symbol_name (symbol_kind_type yysymbol); - - // Implementation of make_symbol for each symbol type. -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_END (location_type l) - { - return symbol_type (token::TOKEN_END, std::move (l)); - } -#else - static - symbol_type - make_END (const location_type& l) - { - return symbol_type (token::TOKEN_END, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PARSER6_error (location_type l) - { - return symbol_type (token::TOKEN_PARSER6_error, std::move (l)); - } -#else - static - symbol_type - make_PARSER6_error (const location_type& l) - { - return symbol_type (token::TOKEN_PARSER6_error, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PARSER6_UNDEF (location_type l) - { - return symbol_type (token::TOKEN_PARSER6_UNDEF, std::move (l)); - } -#else - static - symbol_type - make_PARSER6_UNDEF (const location_type& l) - { - return symbol_type (token::TOKEN_PARSER6_UNDEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COMMA (location_type l) - { - return symbol_type (token::TOKEN_COMMA, std::move (l)); - } -#else - static - symbol_type - make_COMMA (const location_type& l) - { - return symbol_type (token::TOKEN_COMMA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COLON (location_type l) - { - return symbol_type (token::TOKEN_COLON, std::move (l)); - } -#else - static - symbol_type - make_COLON (const location_type& l) - { - return symbol_type (token::TOKEN_COLON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LSQUARE_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_LSQUARE_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RSQUARE_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_RSQUARE_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LCURLY_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_LCURLY_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_LCURLY_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RCURLY_BRACKET (location_type l) - { - return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l)); - } -#else - static - symbol_type - make_RCURLY_BRACKET (const location_type& l) - { - return symbol_type (token::TOKEN_RCURLY_BRACKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NULL_TYPE (location_type l) - { - return symbol_type (token::TOKEN_NULL_TYPE, std::move (l)); - } -#else - static - symbol_type - make_NULL_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_NULL_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP6 (location_type l) - { - return symbol_type (token::TOKEN_DHCP6, std::move (l)); - } -#else - static - symbol_type - make_DHCP6 (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DATA_DIRECTORY (location_type l) - { - return symbol_type (token::TOKEN_DATA_DIRECTORY, std::move (l)); - } -#else - static - symbol_type - make_DATA_DIRECTORY (const location_type& l) - { - return symbol_type (token::TOKEN_DATA_DIRECTORY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_DATABASES (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_DATABASES, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_DATABASES (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_DATABASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONFIG_FETCH_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_CONFIG_FETCH_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACES_CONFIG (location_type l) - { - return symbol_type (token::TOKEN_INTERFACES_CONFIG, std::move (l)); - } -#else - static - symbol_type - make_INTERFACES_CONFIG (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACES_CONFIG, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACES (location_type l) - { - return symbol_type (token::TOKEN_INTERFACES, std::move (l)); - } -#else - static - symbol_type - make_INTERFACES (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RE_DETECT (location_type l) - { - return symbol_type (token::TOKEN_RE_DETECT, std::move (l)); - } -#else - static - symbol_type - make_RE_DETECT (const location_type& l) - { - return symbol_type (token::TOKEN_RE_DETECT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LEASE_DATABASE (location_type l) - { - return symbol_type (token::TOKEN_LEASE_DATABASE, std::move (l)); - } -#else - static - symbol_type - make_LEASE_DATABASE (const location_type& l) - { - return symbol_type (token::TOKEN_LEASE_DATABASE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTS_DATABASE (location_type l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASE, std::move (l)); - } -#else - static - symbol_type - make_HOSTS_DATABASE (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTS_DATABASES (location_type l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASES, std::move (l)); - } -#else - static - symbol_type - make_HOSTS_DATABASES (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTS_DATABASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TYPE (location_type l) - { - return symbol_type (token::TOKEN_TYPE, std::move (l)); - } -#else - static - symbol_type - make_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MEMFILE (location_type l) - { - return symbol_type (token::TOKEN_MEMFILE, std::move (l)); - } -#else - static - symbol_type - make_MEMFILE (const location_type& l) - { - return symbol_type (token::TOKEN_MEMFILE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MYSQL (location_type l) - { - return symbol_type (token::TOKEN_MYSQL, std::move (l)); - } -#else - static - symbol_type - make_MYSQL (const location_type& l) - { - return symbol_type (token::TOKEN_MYSQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POSTGRESQL (location_type l) - { - return symbol_type (token::TOKEN_POSTGRESQL, std::move (l)); - } -#else - static - symbol_type - make_POSTGRESQL (const location_type& l) - { - return symbol_type (token::TOKEN_POSTGRESQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CQL (location_type l) - { - return symbol_type (token::TOKEN_CQL, std::move (l)); - } -#else - static - symbol_type - make_CQL (const location_type& l) - { - return symbol_type (token::TOKEN_CQL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_USER (location_type l) - { - return symbol_type (token::TOKEN_USER, std::move (l)); - } -#else - static - symbol_type - make_USER (const location_type& l) - { - return symbol_type (token::TOKEN_USER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PASSWORD (location_type l) - { - return symbol_type (token::TOKEN_PASSWORD, std::move (l)); - } -#else - static - symbol_type - make_PASSWORD (const location_type& l) - { - return symbol_type (token::TOKEN_PASSWORD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOST (location_type l) - { - return symbol_type (token::TOKEN_HOST, std::move (l)); - } -#else - static - symbol_type - make_HOST (const location_type& l) - { - return symbol_type (token::TOKEN_HOST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PORT (location_type l) - { - return symbol_type (token::TOKEN_PORT, std::move (l)); - } -#else - static - symbol_type - make_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PERSIST (location_type l) - { - return symbol_type (token::TOKEN_PERSIST, std::move (l)); - } -#else - static - symbol_type - make_PERSIST (const location_type& l) - { - return symbol_type (token::TOKEN_PERSIST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LFC_INTERVAL (location_type l) - { - return symbol_type (token::TOKEN_LFC_INTERVAL, std::move (l)); - } -#else - static - symbol_type - make_LFC_INTERVAL (const location_type& l) - { - return symbol_type (token::TOKEN_LFC_INTERVAL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_READONLY (location_type l) - { - return symbol_type (token::TOKEN_READONLY, std::move (l)); - } -#else - static - symbol_type - make_READONLY (const location_type& l) - { - return symbol_type (token::TOKEN_READONLY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONNECT_TIMEOUT (location_type l) - { - return symbol_type (token::TOKEN_CONNECT_TIMEOUT, std::move (l)); - } -#else - static - symbol_type - make_CONNECT_TIMEOUT (const location_type& l) - { - return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTACT_POINTS (location_type l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, std::move (l)); - } -#else - static - symbol_type - make_CONTACT_POINTS (const location_type& l) - { - return symbol_type (token::TOKEN_CONTACT_POINTS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECONNECT_TRIES (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECONNECT_TRIES (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECONNECT_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_RECONNECT_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_KEYSPACE (location_type l) - { - return symbol_type (token::TOKEN_KEYSPACE, std::move (l)); - } -#else - static - symbol_type - make_KEYSPACE (const location_type& l) - { - return symbol_type (token::TOKEN_KEYSPACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONSISTENCY (location_type l) - { - return symbol_type (token::TOKEN_CONSISTENCY, std::move (l)); - } -#else - static - symbol_type - make_CONSISTENCY (const location_type& l) - { - return symbol_type (token::TOKEN_CONSISTENCY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERIAL_CONSISTENCY (location_type l) - { - return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, std::move (l)); - } -#else - static - symbol_type - make_SERIAL_CONSISTENCY (const location_type& l) - { - return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REQUEST_TIMEOUT (location_type l) - { - return symbol_type (token::TOKEN_REQUEST_TIMEOUT, std::move (l)); - } -#else - static - symbol_type - make_REQUEST_TIMEOUT (const location_type& l) - { - return symbol_type (token::TOKEN_REQUEST_TIMEOUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP_KEEPALIVE (location_type l) - { - return symbol_type (token::TOKEN_TCP_KEEPALIVE, std::move (l)); - } -#else - static - symbol_type - make_TCP_KEEPALIVE (const location_type& l) - { - return symbol_type (token::TOKEN_TCP_KEEPALIVE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP_NODELAY (location_type l) - { - return symbol_type (token::TOKEN_TCP_NODELAY, std::move (l)); - } -#else - static - symbol_type - make_TCP_NODELAY (const location_type& l) - { - return symbol_type (token::TOKEN_TCP_NODELAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_ROW_ERRORS (location_type l) - { - return symbol_type (token::TOKEN_MAX_ROW_ERRORS, std::move (l)); - } -#else - static - symbol_type - make_MAX_ROW_ERRORS (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_ROW_ERRORS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFERRED_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_PREFERRED_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_PREFERRED_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_PREFERRED_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MIN_PREFERRED_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MIN_PREFERRED_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MIN_PREFERRED_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MIN_PREFERRED_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_PREFERRED_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MAX_PREFERRED_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MAX_PREFERRED_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_PREFERRED_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MIN_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MIN_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_VALID_LIFETIME (location_type l) - { - return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, std::move (l)); - } -#else - static - symbol_type - make_MAX_VALID_LIFETIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RENEW_TIMER (location_type l) - { - return symbol_type (token::TOKEN_RENEW_TIMER, std::move (l)); - } -#else - static - symbol_type - make_RENEW_TIMER (const location_type& l) - { - return symbol_type (token::TOKEN_RENEW_TIMER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REBIND_TIMER (location_type l) - { - return symbol_type (token::TOKEN_REBIND_TIMER, std::move (l)); - } -#else - static - symbol_type - make_REBIND_TIMER (const location_type& l) - { - return symbol_type (token::TOKEN_REBIND_TIMER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CALCULATE_TEE_TIMES (location_type l) - { - return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, std::move (l)); - } -#else - static - symbol_type - make_CALCULATE_TEE_TIMES (const location_type& l) - { - return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_T1_PERCENT (location_type l) - { - return symbol_type (token::TOKEN_T1_PERCENT, std::move (l)); - } -#else - static - symbol_type - make_T1_PERCENT (const location_type& l) - { - return symbol_type (token::TOKEN_T1_PERCENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_T2_PERCENT (location_type l) - { - return symbol_type (token::TOKEN_T2_PERCENT, std::move (l)); - } -#else - static - symbol_type - make_T2_PERCENT (const location_type& l) - { - return symbol_type (token::TOKEN_T2_PERCENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CACHE_THRESHOLD (location_type l) - { - return symbol_type (token::TOKEN_CACHE_THRESHOLD, std::move (l)); - } -#else - static - symbol_type - make_CACHE_THRESHOLD (const location_type& l) - { - return symbol_type (token::TOKEN_CACHE_THRESHOLD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CACHE_MAX_AGE (location_type l) - { - return symbol_type (token::TOKEN_CACHE_MAX_AGE, std::move (l)); - } -#else - static - symbol_type - make_CACHE_MAX_AGE (const location_type& l) - { - return symbol_type (token::TOKEN_CACHE_MAX_AGE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DECLINE_PROBATION_PERIOD (location_type l) - { - return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, std::move (l)); - } -#else - static - symbol_type - make_DECLINE_PROBATION_PERIOD (const location_type& l) - { - return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_TAG (location_type l) - { - return symbol_type (token::TOKEN_SERVER_TAG, std::move (l)); - } -#else - static - symbol_type - make_SERVER_TAG (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_TAG, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_COUNT (location_type l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, std::move (l)); - } -#else - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_AGE (location_type l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, std::move (l)); - } -#else - static - symbol_type - make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l) - { - return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_SEND_UPDATES (location_type l) - { - return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, std::move (l)); - } -#else - static - symbol_type - make_DDNS_SEND_UPDATES (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_OVERRIDE_NO_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_OVERRIDE_CLIENT_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_REPLACE_CLIENT_NAME (location_type l) - { - return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, std::move (l)); - } -#else - static - symbol_type - make_DDNS_REPLACE_CLIENT_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_GENERATED_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_DDNS_GENERATED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_QUALIFYING_SUFFIX (location_type l) - { - return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, std::move (l)); - } -#else - static - symbol_type - make_DDNS_QUALIFYING_SUFFIX (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DDNS_UPDATE_ON_RENEW (location_type l) - { - return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, std::move (l)); - } -#else - static - symbol_type - make_DDNS_UPDATE_ON_RENEW (const location_type& l) - { - return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, 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)); - } -#else - static - symbol_type - make_STORE_EXTENDED_INFO (const location_type& l) - { - return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET6 (location_type l) - { - return symbol_type (token::TOKEN_SUBNET6, std::move (l)); - } -#else - static - symbol_type - make_SUBNET6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OPTION_DEF (location_type l) - { - return symbol_type (token::TOKEN_OPTION_DEF, std::move (l)); - } -#else - static - symbol_type - make_OPTION_DEF (const location_type& l) - { - return symbol_type (token::TOKEN_OPTION_DEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OPTION_DATA (location_type l) - { - return symbol_type (token::TOKEN_OPTION_DATA, std::move (l)); - } -#else - static - symbol_type - make_OPTION_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_OPTION_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NAME (location_type l) - { - return symbol_type (token::TOKEN_NAME, std::move (l)); - } -#else - static - symbol_type - make_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DATA (location_type l) - { - return symbol_type (token::TOKEN_DATA, std::move (l)); - } -#else - static - symbol_type - make_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CODE (location_type l) - { - return symbol_type (token::TOKEN_CODE, std::move (l)); - } -#else - static - symbol_type - make_CODE (const location_type& l) - { - return symbol_type (token::TOKEN_CODE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SPACE (location_type l) - { - return symbol_type (token::TOKEN_SPACE, std::move (l)); - } -#else - static - symbol_type - make_SPACE (const location_type& l) - { - return symbol_type (token::TOKEN_SPACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CSV_FORMAT (location_type l) - { - return symbol_type (token::TOKEN_CSV_FORMAT, std::move (l)); - } -#else - static - symbol_type - make_CSV_FORMAT (const location_type& l) - { - return symbol_type (token::TOKEN_CSV_FORMAT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALWAYS_SEND (location_type l) - { - return symbol_type (token::TOKEN_ALWAYS_SEND, std::move (l)); - } -#else - static - symbol_type - make_ALWAYS_SEND (const location_type& l) - { - return symbol_type (token::TOKEN_ALWAYS_SEND, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECORD_TYPES (location_type l) - { - return symbol_type (token::TOKEN_RECORD_TYPES, std::move (l)); - } -#else - static - symbol_type - make_RECORD_TYPES (const location_type& l) - { - return symbol_type (token::TOKEN_RECORD_TYPES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENCAPSULATE (location_type l) - { - return symbol_type (token::TOKEN_ENCAPSULATE, std::move (l)); - } -#else - static - symbol_type - make_ENCAPSULATE (const location_type& l) - { - return symbol_type (token::TOKEN_ENCAPSULATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ARRAY (location_type l) - { - return symbol_type (token::TOKEN_ARRAY, std::move (l)); - } -#else - static - symbol_type - make_ARRAY (const location_type& l) - { - return symbol_type (token::TOKEN_ARRAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POOLS (location_type l) - { - return symbol_type (token::TOKEN_POOLS, std::move (l)); - } -#else - static - symbol_type - make_POOLS (const location_type& l) - { - return symbol_type (token::TOKEN_POOLS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_POOL (location_type l) - { - return symbol_type (token::TOKEN_POOL, std::move (l)); - } -#else - static - symbol_type - make_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PD_POOLS (location_type l) - { - return symbol_type (token::TOKEN_PD_POOLS, std::move (l)); - } -#else - static - symbol_type - make_PD_POOLS (const location_type& l) - { - return symbol_type (token::TOKEN_PD_POOLS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFIX_LEN (location_type l) - { - return symbol_type (token::TOKEN_PREFIX_LEN, std::move (l)); - } -#else - static - symbol_type - make_PREFIX_LEN (const location_type& l) - { - return symbol_type (token::TOKEN_PREFIX_LEN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EXCLUDED_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_EXCLUDED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EXCLUDED_PREFIX_LEN (location_type l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, std::move (l)); - } -#else - static - symbol_type - make_EXCLUDED_PREFIX_LEN (const location_type& l) - { - return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DELEGATED_LEN (location_type l) - { - return symbol_type (token::TOKEN_DELEGATED_LEN, std::move (l)); - } -#else - static - symbol_type - make_DELEGATED_LEN (const location_type& l) - { - return symbol_type (token::TOKEN_DELEGATED_LEN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_USER_CONTEXT (location_type l) - { - return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l)); - } -#else - static - symbol_type - make_USER_CONTEXT (const location_type& l) - { - return symbol_type (token::TOKEN_USER_CONTEXT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_COMMENT (location_type l) - { - return symbol_type (token::TOKEN_COMMENT, std::move (l)); - } -#else - static - symbol_type - make_COMMENT (const location_type& l) - { - return symbol_type (token::TOKEN_COMMENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUBNET (location_type l) - { - return symbol_type (token::TOKEN_SUBNET, std::move (l)); - } -#else - static - symbol_type - make_SUBNET (const location_type& l) - { - return symbol_type (token::TOKEN_SUBNET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACE (location_type l) - { - return symbol_type (token::TOKEN_INTERFACE, std::move (l)); - } -#else - static - symbol_type - make_INTERFACE (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTERFACE_ID (location_type l) - { - return symbol_type (token::TOKEN_INTERFACE_ID, std::move (l)); - } -#else - static - symbol_type - make_INTERFACE_ID (const location_type& l) - { - return symbol_type (token::TOKEN_INTERFACE_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ID (location_type l) - { - return symbol_type (token::TOKEN_ID, std::move (l)); - } -#else - static - symbol_type - make_ID (const location_type& l) - { - return symbol_type (token::TOKEN_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RAPID_COMMIT (location_type l) - { - return symbol_type (token::TOKEN_RAPID_COMMIT, std::move (l)); - } -#else - static - symbol_type - make_RAPID_COMMIT (const location_type& l) - { - return symbol_type (token::TOKEN_RAPID_COMMIT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RESERVATION_MODE (location_type l) - { - return symbol_type (token::TOKEN_RESERVATION_MODE, std::move (l)); - } -#else - static - symbol_type - make_RESERVATION_MODE (const location_type& l) - { - return symbol_type (token::TOKEN_RESERVATION_MODE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DISABLED (location_type l) - { - return symbol_type (token::TOKEN_DISABLED, std::move (l)); - } -#else - static - symbol_type - make_DISABLED (const location_type& l) - { - return symbol_type (token::TOKEN_DISABLED, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUT_OF_POOL (location_type l) - { - return symbol_type (token::TOKEN_OUT_OF_POOL, std::move (l)); - } -#else - static - symbol_type - make_OUT_OF_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_OUT_OF_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_GLOBAL (location_type l) - { - return symbol_type (token::TOKEN_GLOBAL, std::move (l)); - } -#else - static - symbol_type - make_GLOBAL (const location_type& l) - { - return symbol_type (token::TOKEN_GLOBAL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALL (location_type l) - { - return symbol_type (token::TOKEN_ALL, std::move (l)); - } -#else - static - symbol_type - make_ALL (const location_type& l) - { - return symbol_type (token::TOKEN_ALL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SHARED_NETWORKS (location_type l) - { - return symbol_type (token::TOKEN_SHARED_NETWORKS, std::move (l)); - } -#else - static - symbol_type - make_SHARED_NETWORKS (const location_type& l) - { - return symbol_type (token::TOKEN_SHARED_NETWORKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAC_SOURCES (location_type l) - { - return symbol_type (token::TOKEN_MAC_SOURCES, std::move (l)); - } -#else - static - symbol_type - make_MAC_SOURCES (const location_type& l) - { - return symbol_type (token::TOKEN_MAC_SOURCES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RELAY_SUPPLIED_OPTIONS (location_type l) - { - return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, std::move (l)); - } -#else - static - symbol_type - make_RELAY_SUPPLIED_OPTIONS (const location_type& l) - { - return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOST_RESERVATION_IDENTIFIERS (location_type l) - { - return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, std::move (l)); - } -#else - static - symbol_type - make_HOST_RESERVATION_IDENTIFIERS (const location_type& l) - { - return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SANITY_CHECKS (location_type l) - { - return symbol_type (token::TOKEN_SANITY_CHECKS, std::move (l)); - } -#else - static - symbol_type - make_SANITY_CHECKS (const location_type& l) - { - return symbol_type (token::TOKEN_SANITY_CHECKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LEASE_CHECKS (location_type l) - { - return symbol_type (token::TOKEN_LEASE_CHECKS, std::move (l)); - } -#else - static - symbol_type - make_LEASE_CHECKS (const location_type& l) - { - return symbol_type (token::TOKEN_LEASE_CHECKS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CLIENT_CLASSES (location_type l) - { - return symbol_type (token::TOKEN_CLIENT_CLASSES, std::move (l)); - } -#else - static - symbol_type - make_CLIENT_CLASSES (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_CLASSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REQUIRE_CLIENT_CLASSES (location_type l) - { - return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, std::move (l)); - } -#else - static - symbol_type - make_REQUIRE_CLIENT_CLASSES (const location_type& l) - { - return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TEST (location_type l) - { - return symbol_type (token::TOKEN_TEST, std::move (l)); - } -#else - static - symbol_type - make_TEST (const location_type& l) - { - return symbol_type (token::TOKEN_TEST, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ONLY_IF_REQUIRED (location_type l) - { - return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, std::move (l)); - } -#else - static - symbol_type - make_ONLY_IF_REQUIRED (const location_type& l) - { - return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CLIENT_CLASS (location_type l) - { - return symbol_type (token::TOKEN_CLIENT_CLASS, std::move (l)); - } -#else - static - symbol_type - make_CLIENT_CLASS (const location_type& l) - { - return symbol_type (token::TOKEN_CLIENT_CLASS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RESERVATIONS (location_type l) - { - return symbol_type (token::TOKEN_RESERVATIONS, std::move (l)); - } -#else - static - symbol_type - make_RESERVATIONS (const location_type& l) - { - return symbol_type (token::TOKEN_RESERVATIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IP_ADDRESSES (location_type l) - { - return symbol_type (token::TOKEN_IP_ADDRESSES, std::move (l)); - } -#else - static - symbol_type - make_IP_ADDRESSES (const location_type& l) - { - return symbol_type (token::TOKEN_IP_ADDRESSES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PREFIXES (location_type l) - { - return symbol_type (token::TOKEN_PREFIXES, std::move (l)); - } -#else - static - symbol_type - make_PREFIXES (const location_type& l) - { - return symbol_type (token::TOKEN_PREFIXES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DUID (location_type l) - { - return symbol_type (token::TOKEN_DUID, std::move (l)); - } -#else - static - symbol_type - make_DUID (const location_type& l) - { - return symbol_type (token::TOKEN_DUID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HW_ADDRESS (location_type l) - { - return symbol_type (token::TOKEN_HW_ADDRESS, std::move (l)); - } -#else - static - symbol_type - make_HW_ADDRESS (const location_type& l) - { - return symbol_type (token::TOKEN_HW_ADDRESS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLEX_ID (location_type l) - { - return symbol_type (token::TOKEN_FLEX_ID, std::move (l)); - } -#else - static - symbol_type - make_FLEX_ID (const location_type& l) - { - return symbol_type (token::TOKEN_FLEX_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RELAY (location_type l) - { - return symbol_type (token::TOKEN_RELAY, std::move (l)); - } -#else - static - symbol_type - make_RELAY (const location_type& l) - { - return symbol_type (token::TOKEN_RELAY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IP_ADDRESS (location_type l) - { - return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l)); - } -#else - static - symbol_type - make_IP_ADDRESS (const location_type& l) - { - return symbol_type (token::TOKEN_IP_ADDRESS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOOKS_LIBRARIES (location_type l) - { - return symbol_type (token::TOKEN_HOOKS_LIBRARIES, std::move (l)); - } -#else - static - symbol_type - make_HOOKS_LIBRARIES (const location_type& l) - { - return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LIBRARY (location_type l) - { - return symbol_type (token::TOKEN_LIBRARY, std::move (l)); - } -#else - static - symbol_type - make_LIBRARY (const location_type& l) - { - return symbol_type (token::TOKEN_LIBRARY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PARAMETERS (location_type l) - { - return symbol_type (token::TOKEN_PARAMETERS, std::move (l)); - } -#else - static - symbol_type - make_PARAMETERS (const location_type& l) - { - return symbol_type (token::TOKEN_PARAMETERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EXPIRED_LEASES_PROCESSING (location_type l) - { - return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, std::move (l)); - } -#else - static - symbol_type - make_EXPIRED_LEASES_PROCESSING (const location_type& l) - { - return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_RECLAIM_TIMER_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_RECLAIM_TIMER_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (location_type l) - { - return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, std::move (l)); - } -#else - static - symbol_type - make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOLD_RECLAIMED_TIME (location_type l) - { - return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, std::move (l)); - } -#else - static - symbol_type - make_HOLD_RECLAIMED_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECLAIM_LEASES (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECLAIM_LEASES (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_RECLAIM_TIME (location_type l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, std::move (l)); - } -#else - static - symbol_type - make_MAX_RECLAIM_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_UNWARNED_RECLAIM_CYCLES (location_type l) - { - return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, std::move (l)); - } -#else - static - symbol_type - make_UNWARNED_RECLAIM_CYCLES (const location_type& l) - { - return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_ID (location_type l) - { - return symbol_type (token::TOKEN_SERVER_ID, std::move (l)); - } -#else - static - symbol_type - make_SERVER_ID (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LLT (location_type l) - { - return symbol_type (token::TOKEN_LLT, std::move (l)); - } -#else - static - symbol_type - make_LLT (const location_type& l) - { - return symbol_type (token::TOKEN_LLT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_EN (location_type l) - { - return symbol_type (token::TOKEN_EN, std::move (l)); - } -#else - static - symbol_type - make_EN (const location_type& l) - { - return symbol_type (token::TOKEN_EN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LL (location_type l) - { - return symbol_type (token::TOKEN_LL, std::move (l)); - } -#else - static - symbol_type - make_LL (const location_type& l) - { - return symbol_type (token::TOKEN_LL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IDENTIFIER (location_type l) - { - return symbol_type (token::TOKEN_IDENTIFIER, std::move (l)); - } -#else - static - symbol_type - make_IDENTIFIER (const location_type& l) - { - return symbol_type (token::TOKEN_IDENTIFIER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HTYPE (location_type l) - { - return symbol_type (token::TOKEN_HTYPE, std::move (l)); - } -#else - static - symbol_type - make_HTYPE (const location_type& l) - { - return symbol_type (token::TOKEN_HTYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TIME (location_type l) - { - return symbol_type (token::TOKEN_TIME, std::move (l)); - } -#else - static - symbol_type - make_TIME (const location_type& l) - { - return symbol_type (token::TOKEN_TIME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENTERPRISE_ID (location_type l) - { - return symbol_type (token::TOKEN_ENTERPRISE_ID, std::move (l)); - } -#else - static - symbol_type - make_ENTERPRISE_ID (const location_type& l) - { - return symbol_type (token::TOKEN_ENTERPRISE_ID, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP4O6_PORT (location_type l) - { - return symbol_type (token::TOKEN_DHCP4O6_PORT, std::move (l)); - } -#else - static - symbol_type - make_DHCP4O6_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP4O6_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_MULTI_THREADING (location_type l) - { - return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, std::move (l)); - } -#else - static - symbol_type - make_DHCP_MULTI_THREADING (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENABLE_MULTI_THREADING (location_type l) - { - return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, std::move (l)); - } -#else - static - symbol_type - make_ENABLE_MULTI_THREADING (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_THREAD_POOL_SIZE (location_type l) - { - return symbol_type (token::TOKEN_THREAD_POOL_SIZE, std::move (l)); - } -#else - static - symbol_type - make_THREAD_POOL_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_THREAD_POOL_SIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PACKET_QUEUE_SIZE (location_type l) - { - return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, std::move (l)); - } -#else - static - symbol_type - make_PACKET_QUEUE_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CONTROL_SOCKET (location_type l) - { - return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l)); - } -#else - static - symbol_type - make_CONTROL_SOCKET (const location_type& l) - { - return symbol_type (token::TOKEN_CONTROL_SOCKET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SOCKET_TYPE (location_type l) - { - return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l)); - } -#else - static - symbol_type - make_SOCKET_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_SOCKET_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SOCKET_NAME (location_type l) - { - return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l)); - } -#else - static - symbol_type - make_SOCKET_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_SOCKET_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_QUEUE_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_DHCP_QUEUE_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENABLE_QUEUE (location_type l) - { - return symbol_type (token::TOKEN_ENABLE_QUEUE, std::move (l)); - } -#else - static - symbol_type - make_ENABLE_QUEUE (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_QUEUE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_QUEUE_TYPE (location_type l) - { - return symbol_type (token::TOKEN_QUEUE_TYPE, std::move (l)); - } -#else - static - symbol_type - make_QUEUE_TYPE (const location_type& l) - { - return symbol_type (token::TOKEN_QUEUE_TYPE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_CAPACITY (location_type l) - { - return symbol_type (token::TOKEN_CAPACITY, std::move (l)); - } -#else - static - symbol_type - make_CAPACITY (const location_type& l) - { - return symbol_type (token::TOKEN_CAPACITY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DHCP_DDNS (location_type l) - { - return symbol_type (token::TOKEN_DHCP_DDNS, std::move (l)); - } -#else - static - symbol_type - make_DHCP_DDNS (const location_type& l) - { - return symbol_type (token::TOKEN_DHCP_DDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ENABLE_UPDATES (location_type l) - { - return symbol_type (token::TOKEN_ENABLE_UPDATES, std::move (l)); - } -#else - static - symbol_type - make_ENABLE_UPDATES (const location_type& l) - { - return symbol_type (token::TOKEN_ENABLE_UPDATES, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_QUALIFYING_SUFFIX (location_type l) - { - return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, std::move (l)); - } -#else - static - symbol_type - make_QUALIFYING_SUFFIX (const location_type& l) - { - return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_IP (location_type l) - { - return symbol_type (token::TOKEN_SERVER_IP, std::move (l)); - } -#else - static - symbol_type - make_SERVER_IP (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_IP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SERVER_PORT (location_type l) - { - return symbol_type (token::TOKEN_SERVER_PORT, std::move (l)); - } -#else - static - symbol_type - make_SERVER_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_SERVER_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SENDER_IP (location_type l) - { - return symbol_type (token::TOKEN_SENDER_IP, std::move (l)); - } -#else - static - symbol_type - make_SENDER_IP (const location_type& l) - { - return symbol_type (token::TOKEN_SENDER_IP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SENDER_PORT (location_type l) - { - return symbol_type (token::TOKEN_SENDER_PORT, std::move (l)); - } -#else - static - symbol_type - make_SENDER_PORT (const location_type& l) - { - return symbol_type (token::TOKEN_SENDER_PORT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAX_QUEUE_SIZE (location_type l) - { - return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, std::move (l)); - } -#else - static - symbol_type - make_MAX_QUEUE_SIZE (const location_type& l) - { - return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NCR_PROTOCOL (location_type l) - { - return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l)); - } -#else - static - symbol_type - make_NCR_PROTOCOL (const location_type& l) - { - return symbol_type (token::TOKEN_NCR_PROTOCOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NCR_FORMAT (location_type l) - { - return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l)); - } -#else - static - symbol_type - make_NCR_FORMAT (const location_type& l) - { - return symbol_type (token::TOKEN_NCR_FORMAT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OVERRIDE_NO_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_OVERRIDE_NO_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OVERRIDE_CLIENT_UPDATE (location_type l) - { - return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, std::move (l)); - } -#else - static - symbol_type - make_OVERRIDE_CLIENT_UPDATE (const location_type& l) - { - return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_REPLACE_CLIENT_NAME (location_type l) - { - return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, std::move (l)); - } -#else - static - symbol_type - make_REPLACE_CLIENT_NAME (const location_type& l) - { - return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_GENERATED_PREFIX (location_type l) - { - return symbol_type (token::TOKEN_GENERATED_PREFIX, std::move (l)); - } -#else - static - symbol_type - make_GENERATED_PREFIX (const location_type& l) - { - return symbol_type (token::TOKEN_GENERATED_PREFIX, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_UDP (location_type l) - { - return symbol_type (token::TOKEN_UDP, std::move (l)); - } -#else - static - symbol_type - make_UDP (const location_type& l) - { - return symbol_type (token::TOKEN_UDP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TCP (location_type l) - { - return symbol_type (token::TOKEN_TCP, std::move (l)); - } -#else - static - symbol_type - make_TCP (const location_type& l) - { - return symbol_type (token::TOKEN_TCP, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_JSON (location_type l) - { - return symbol_type (token::TOKEN_JSON, std::move (l)); - } -#else - static - symbol_type - make_JSON (const location_type& l) - { - return symbol_type (token::TOKEN_JSON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_WHEN_PRESENT (location_type l) - { - return symbol_type (token::TOKEN_WHEN_PRESENT, std::move (l)); - } -#else - static - symbol_type - make_WHEN_PRESENT (const location_type& l) - { - return symbol_type (token::TOKEN_WHEN_PRESENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_NEVER (location_type l) - { - return symbol_type (token::TOKEN_NEVER, std::move (l)); - } -#else - static - symbol_type - make_NEVER (const location_type& l) - { - return symbol_type (token::TOKEN_NEVER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_ALWAYS (location_type l) - { - return symbol_type (token::TOKEN_ALWAYS, std::move (l)); - } -#else - static - symbol_type - make_ALWAYS (const location_type& l) - { - return symbol_type (token::TOKEN_ALWAYS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_WHEN_NOT_PRESENT (location_type l) - { - return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, std::move (l)); - } -#else - static - symbol_type - make_WHEN_NOT_PRESENT (const location_type& l) - { - return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME_CHAR_SET (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME_CHAR_SET (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_HOSTNAME_CHAR_REPLACEMENT (location_type l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, std::move (l)); - } -#else - static - symbol_type - make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l) - { - return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_IP_RESERVATIONS_UNIQUE (location_type l) - { - return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, std::move (l)); - } -#else - static - symbol_type - make_IP_RESERVATIONS_UNIQUE (const location_type& l) - { - return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_LOGGERS (location_type l) - { - return symbol_type (token::TOKEN_LOGGERS, std::move (l)); - } -#else - static - symbol_type - make_LOGGERS (const location_type& l) - { - return symbol_type (token::TOKEN_LOGGERS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUTPUT_OPTIONS (location_type l) - { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l)); - } -#else - static - symbol_type - make_OUTPUT_OPTIONS (const location_type& l) - { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_OUTPUT (location_type l) - { - return symbol_type (token::TOKEN_OUTPUT, std::move (l)); - } -#else - static - symbol_type - make_OUTPUT (const location_type& l) - { - return symbol_type (token::TOKEN_OUTPUT, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_DEBUGLEVEL (location_type l) - { - return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l)); - } -#else - static - symbol_type - make_DEBUGLEVEL (const location_type& l) - { - return symbol_type (token::TOKEN_DEBUGLEVEL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SEVERITY (location_type l) - { - return symbol_type (token::TOKEN_SEVERITY, std::move (l)); - } -#else - static - symbol_type - make_SEVERITY (const location_type& l) - { - return symbol_type (token::TOKEN_SEVERITY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLUSH (location_type l) - { - return symbol_type (token::TOKEN_FLUSH, std::move (l)); - } -#else - static - symbol_type - make_FLUSH (const location_type& l) - { - return symbol_type (token::TOKEN_FLUSH, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAXSIZE (location_type l) - { - return symbol_type (token::TOKEN_MAXSIZE, std::move (l)); - } -#else - static - symbol_type - make_MAXSIZE (const location_type& l) - { - return symbol_type (token::TOKEN_MAXSIZE, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_MAXVER (location_type l) - { - return symbol_type (token::TOKEN_MAXVER, std::move (l)); - } -#else - static - symbol_type - make_MAXVER (const location_type& l) - { - return symbol_type (token::TOKEN_MAXVER, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_PATTERN (location_type l) - { - return symbol_type (token::TOKEN_PATTERN, std::move (l)); - } -#else - static - symbol_type - make_PATTERN (const location_type& l) - { - return symbol_type (token::TOKEN_PATTERN, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TOPLEVEL_JSON (location_type l) - { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l)); - } -#else - static - symbol_type - make_TOPLEVEL_JSON (const location_type& l) - { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_TOPLEVEL_DHCP6 (location_type l) - { - return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, std::move (l)); - } -#else - static - symbol_type - make_TOPLEVEL_DHCP6 (const location_type& l) - { - return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_DHCP6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_DHCP6, std::move (l)); - } -#else - static - symbol_type - make_SUB_DHCP6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_DHCP6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_INTERFACES6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_INTERFACES6, std::move (l)); - } -#else - static - symbol_type - make_SUB_INTERFACES6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_INTERFACES6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_SUBNET6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_SUBNET6, std::move (l)); - } -#else - static - symbol_type - make_SUB_SUBNET6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_SUBNET6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_POOL6 (location_type l) - { - return symbol_type (token::TOKEN_SUB_POOL6, std::move (l)); - } -#else - static - symbol_type - make_SUB_POOL6 (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_POOL6, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_PD_POOL (location_type l) - { - return symbol_type (token::TOKEN_SUB_PD_POOL, std::move (l)); - } -#else - static - symbol_type - make_SUB_PD_POOL (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_PD_POOL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_RESERVATION (location_type l) - { - return symbol_type (token::TOKEN_SUB_RESERVATION, std::move (l)); - } -#else - static - symbol_type - make_SUB_RESERVATION (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_RESERVATION, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DEFS (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEFS, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DEFS (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEFS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DEF (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEF, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DEF (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DEF, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_OPTION_DATA (location_type l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DATA, std::move (l)); - } -#else - static - symbol_type - make_SUB_OPTION_DATA (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_OPTION_DATA, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_HOOKS_LIBRARY (location_type l) - { - return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, std::move (l)); - } -#else - static - symbol_type - make_SUB_HOOKS_LIBRARY (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_DHCP_DDNS (location_type l) - { - return symbol_type (token::TOKEN_SUB_DHCP_DDNS, std::move (l)); - } -#else - static - symbol_type - make_SUB_DHCP_DDNS (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_SUB_CONFIG_CONTROL (location_type l) - { - return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, std::move (l)); - } -#else - static - symbol_type - make_SUB_CONFIG_CONTROL (const location_type& l) - { - return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_STRING (std::string v, location_type l) - { - return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_STRING (const std::string& v, const location_type& l) - { - return symbol_type (token::TOKEN_STRING, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_INTEGER (int64_t v, location_type l) - { - return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_INTEGER (const int64_t& v, const location_type& l) - { - return symbol_type (token::TOKEN_INTEGER, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_FLOAT (double v, location_type l) - { - return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_FLOAT (const double& v, const location_type& l) - { - return symbol_type (token::TOKEN_FLOAT, v, l); - } -#endif -#if 201103L <= YY_CPLUSPLUS - static - symbol_type - make_BOOLEAN (bool v, location_type l) - { - return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l)); - } -#else - static - symbol_type - make_BOOLEAN (const bool& v, const location_type& l) - { - return symbol_type (token::TOKEN_BOOLEAN, v, l); - } -#endif - - - class context - { - public: - context (const Dhcp6Parser& yyparser, const symbol_type& yyla); - 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 - /// number of expected tokens (guaranteed to be less than YYNTOKENS). - int expected_tokens (symbol_kind_type yyarg[], int yyargn) const; - - private: - const Dhcp6Parser& yyparser_; - const symbol_type& yyla_; - }; - private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. + /// This class is not copyable. Dhcp6Parser (const Dhcp6Parser&); - /// Non copyable. Dhcp6Parser& operator= (const Dhcp6Parser&); -#endif - - /// Stored state numbers (used for stacks). - typedef short state_type; - - /// The arguments of the error message. - int yy_syntax_error_arguments_ (const context& yyctx, - symbol_kind_type yyarg[], int yyargn) const; + /// State numbers. + typedef int state_type; /// Generate an error message. - /// \param yyctx the context in which the error occurred. - virtual std::string yysyntax_error_ (const context& yyctx) const; + /// \param yystate the state where the error occurred. + /// \param yyla the lookahead token. + virtual std::string yysyntax_error_ (state_type yystate, + const symbol_type& yyla) const; + /// Compute post-reduction state. /// \param yystate the current state /// \param yysym the nonterminal to push on the stack - static state_type yy_lr_goto_state_ (state_type yystate, int yysym); + state_type yy_lr_goto_state_ (state_type yystate, int yysym); /// Whether the given \c yypact_ value indicates a defaulted state. /// \param yyvalue the value to check @@ -4809,69 +1523,65 @@ switch (yykind) /// \param yyvalue the value to check static bool yy_table_value_is_error_ (int yyvalue); - static const short yypact_ninf_; + static const short int 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_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); + /// Convert a scanner token number \a t to a symbol number. + static token_number_type yytranslate_ (token_type t); - /// For a symbol, its name in clear. - static const char* const yytname_[]; + // Tables. + // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + // STATE-NUM. + static const short int yypact_[]; + // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + // Performed when YYTABLE does not specify something else to do. Zero + // means the default is an error. + static const unsigned short int yydefact_[]; - // Tables. - // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - // STATE-NUM. - static const short yypact_[]; + // YYPGOTO[NTERM-NUM]. + static const short int yypgoto_[]; - // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - // Performed when YYTABLE does not specify something else to do. Zero - // means the default is an error. - static const short yydefact_[]; + // YYDEFGOTO[NTERM-NUM]. + static const short int yydefgoto_[]; - // YYPGOTO[NTERM-NUM]. - static const short yypgoto_[]; + // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + // positive, shift that token. If negative, reduce the rule whose + // number is the opposite. If YYTABLE_NINF, syntax error. + static const unsigned short int yytable_[]; - // YYDEFGOTO[NTERM-NUM]. - static const short yydefgoto_[]; + static const short int yycheck_[]; - // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - // positive, shift that token. If negative, reduce the rule whose - // number is the opposite. If YYTABLE_NINF, syntax error. - static const short yytable_[]; + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. + static const unsigned short int yystos_[]; - static const short yycheck_[]; + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. + static const unsigned short int yyr1_[]; - // YYSTOS[STATE-NUM] -- The (internal number of the) accessing - // symbol of state STATE-NUM. - static const short yystos_[]; + // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. + static const unsigned char yyr2_[]; - // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. - static const short yyr1_[]; - // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. - static const signed char yyr2_[]; + /// Convert the symbol name \a n to a form suitable for a diagnostic. + static std::string yytnamerr_ (const char *n); + /// For a symbol, its name in clear. + static const char* const yytname_[]; #if PARSER6_DEBUG - // YYRLINE[YYN] -- Source line where rule number YYN was defined. - static const short yyrline_[]; + // YYRLINE[YYN] -- Source line where rule number YYN was defined. + static const unsigned short int yyrline_[]; /// Report on the debug stream that the rule \a r is going to be reduced. - virtual void yy_reduce_print_ (int r) const; + virtual void yy_reduce_print_ (int r); /// Print the state stack on the debug stream. - virtual void yy_stack_print_ () const; + virtual void yystack_print_ (); - /// Debugging level. + // Debugging. int yydebug_; - /// Debug stream. std::ostream* yycdebug_; - /// \brief Display a symbol kind, value and location. + /// \brief Display a symbol type, value and location. /// \param yyo The output stream. /// \param yysym The symbol. template <typename Base> @@ -4890,30 +1600,29 @@ switch (yykind) struct by_state { /// Default constructor. - by_state () YY_NOEXCEPT; + by_state (); - /// The symbol kind as needed by the constructor. + /// The symbol type as needed by the constructor. typedef state_type kind_type; /// Constructor. - by_state (kind_type s) YY_NOEXCEPT; + by_state (kind_type s); /// Copy constructor. - by_state (const by_state& that) YY_NOEXCEPT; + by_state (const by_state& other); /// Record that this symbol is empty. - void clear () YY_NOEXCEPT; + void clear (); - /// Steal the symbol kind from \a that. + /// Steal the symbol type from \a that. void move (by_state& that); - /// The symbol kind (corresponding to \a state). - /// \a symbol_kind::S_YYEMPTY when empty. - symbol_kind_type kind () const YY_NOEXCEPT; + /// The (internal) type number (corresponding to \a state). + /// \a empty_symbol when empty. + symbol_number_type type_get () const; /// The state number used to denote an empty symbol. - /// We use the initial state, as it does not have a value. - enum { empty_state = 0 }; + enum { empty_state = -1 }; /// The state. /// \a empty when empty. @@ -4927,139 +1636,12 @@ switch (yykind) typedef basic_symbol<by_state> super_type; /// Construct an empty symbol. stack_symbol_type (); - /// Move or copy construction. - stack_symbol_type (YY_RVREF (stack_symbol_type) that); /// Steal the contents from \a sym to build this. - stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym); -#if YY_CPLUSPLUS < 201103L - /// Assignment, needed by push_back by some old implementations. - /// Moves the contents of that. - stack_symbol_type& operator= (stack_symbol_type& that); - - /// Assignment, needed by push_back by other implementations. - /// Needed by some other old implementations. + stack_symbol_type (state_type s, symbol_type& sym); + /// Assignment, needed by push_back. stack_symbol_type& operator= (const stack_symbol_type& that); -#endif }; - /// A stack with random access from its top. - template <typename T, typename S = std::vector<T> > - class stack - { - public: - // Hide our reversed order. - typedef typename S::iterator iterator; - typedef typename S::const_iterator const_iterator; - typedef typename S::size_type size_type; - typedef typename std::ptrdiff_t index_type; - - stack (size_type n = 200) - : seq_ (n) - {} - -#if 201103L <= YY_CPLUSPLUS - /// Non copyable. - stack (const stack&) = delete; - /// Non copyable. - stack& operator= (const stack&) = delete; -#endif - - /// Random access. - /// - /// Index 0 returns the topmost element. - const T& - operator[] (index_type i) const - { - return seq_[size_type (size () - 1 - i)]; - } - - /// Random access. - /// - /// Index 0 returns the topmost element. - T& - operator[] (index_type i) - { - return seq_[size_type (size () - 1 - i)]; - } - - /// Steal the contents of \a t. - /// - /// Close to move-semantics. - void - push (YY_MOVE_REF (T) t) - { - seq_.push_back (T ()); - operator[] (0).move (t); - } - - /// Pop elements from the stack. - void - pop (std::ptrdiff_t n = 1) YY_NOEXCEPT - { - for (; 0 < n; --n) - seq_.pop_back (); - } - - /// Pop all elements from the stack. - void - clear () YY_NOEXCEPT - { - seq_.clear (); - } - - /// Number of elements on the stack. - index_type - size () const YY_NOEXCEPT - { - return index_type (seq_.size ()); - } - - /// Iterator on top of the stack (going downwards). - const_iterator - begin () const YY_NOEXCEPT - { - return seq_.begin (); - } - - /// Bottom of the stack. - const_iterator - end () const YY_NOEXCEPT - { - return seq_.end (); - } - - /// Present a slice of the top of a stack. - class slice - { - public: - slice (const stack& stack, index_type range) - : stack_ (stack) - , range_ (range) - {} - - const T& - operator[] (index_type i) const - { - return stack_[range_ - i]; - } - - private: - const stack& stack_; - index_type range_; - }; - - private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. - stack (const stack&); - /// Non copyable. - stack& operator= (const stack&); -#endif - /// The wrapped container. - S seq_; - }; - - /// Stack type. typedef stack<stack_symbol_type> stack_type; @@ -5069,46 +1651,48 @@ switch (yykind) /// Push a new state on the stack. /// \param m a debug message to display /// if null, no trace is output. - /// \param sym the symbol + /// \param s the symbol /// \warning the contents of \a s.value is stolen. - void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); + void yypush_ (const char* m, stack_symbol_type& s); /// Push a new look ahead token on the state on the stack. /// \param m a debug message to display /// if null, no trace is output. /// \param s the state /// \param sym the symbol (for its value and location). - /// \warning the contents of \a sym.value is stolen. - void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym); + /// \warning the contents of \a s.value is stolen. + void yypush_ (const char* m, state_type s, symbol_type& sym); - /// Pop \a n symbols from the stack. - void yypop_ (int n = 1); + /// Pop \a n symbols the three stacks. + void yypop_ (unsigned int n = 1); /// Constants. enum { - yylast_ = 1231, ///< Last index in yytable_. - yynnts_ = 426, ///< Number of nonterminal symbols. - yyfinal_ = 30 ///< Termination state number. + yyeof_ = 0, + yylast_ = 1240, ///< Last index in yytable_. + yynnts_ = 427, ///< Number of nonterminal symbols. + yyfinal_ = 30, ///< Termination state number. + yyterror_ = 1, + yyerrcode_ = 256, + yyntokens_ = 203 ///< Number of tokens. }; // User arguments. isc::dhcp::Parser6Context& ctx; - }; + // Symbol number corresponding to token number t. inline - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::yytranslate_ (int t) + Dhcp6Parser::token_number_type + Dhcp6Parser::yytranslate_ (token_type t) { - // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to - // TOKEN-NUM as returned by yylex. static - const unsigned char + const token_number_type translate_table[] = { - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -5153,52 +1737,65 @@ switch (yykind) 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201 + 195, 196, 197, 198, 199, 200, 201, 202 }; - // Last valid token kind. - const int code_max = 456; + const unsigned int user_token_number_max_ = 457; + const token_number_type undef_token_ = 2; - if (t <= 0) - return symbol_kind::S_YYEOF; - else if (t <= code_max) - return YY_CAST (symbol_kind_type, translate_table[t]); + if (static_cast<int>(t) <= yyeof_) + return yyeof_; + else if (static_cast<unsigned int> (t) <= user_token_number_max_) + return translate_table[t]; else - return symbol_kind::S_YYUNDEF; + return undef_token_; } + inline + Dhcp6Parser::syntax_error::syntax_error (const location_type& l, const std::string& m) + : std::runtime_error (m) + , location (l) + {} + // basic_symbol. template <typename Base> - Dhcp6Parser::basic_symbol<Base>::basic_symbol (const basic_symbol& that) - : Base (that) + inline + Dhcp6Parser::basic_symbol<Base>::basic_symbol () + : value () + {} + + template <typename Base> + inline + Dhcp6Parser::basic_symbol<Base>::basic_symbol (const basic_symbol& other) + : Base (other) , value () - , location (that.location) + , location (other.location) { - switch (this->kind ()) + switch (other.type_get ()) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.copy< ElementPtr > (YY_MOVE (that.value)); + case 219: // value + case 223: // map_value + case 264: // ddns_replace_client_name_value + case 304: // db_type + case 405: // hr_mode + case 541: // duid_type + case 584: // ncr_protocol_value + value.copy< ElementPtr > (other.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" - value.copy< bool > (YY_MOVE (that.value)); + case 202: // "boolean" + value.copy< bool > (other.value); break; - case symbol_kind::S_FLOAT: // "floating point" - value.copy< double > (YY_MOVE (that.value)); + case 201: // "floating point" + value.copy< double > (other.value); break; - case symbol_kind::S_INTEGER: // "integer" - value.copy< int64_t > (YY_MOVE (that.value)); + case 200: // "integer" + value.copy< int64_t > (other.value); break; - case symbol_kind::S_STRING: // "constant string" - value.copy< std::string > (YY_MOVE (that.value)); + case 199: // "constant string" + value.copy< std::string > (other.value); break; default: @@ -5208,118 +1805,1483 @@ switch (yykind) } + template <typename Base> + inline + Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const semantic_type& v, const location_type& l) + : Base (t) + , value () + , location (l) + { + (void) v; + switch (this->type_get ()) + { + case 219: // value + case 223: // map_value + case 264: // ddns_replace_client_name_value + case 304: // db_type + case 405: // hr_mode + case 541: // duid_type + case 584: // ncr_protocol_value + value.copy< ElementPtr > (v); + break; + + case 202: // "boolean" + value.copy< bool > (v); + break; + + case 201: // "floating point" + value.copy< double > (v); + break; + + case 200: // "integer" + value.copy< int64_t > (v); + break; + + case 199: // "constant string" + value.copy< std::string > (v); + break; + + default: + break; + } +} + + + // Implementation of basic_symbol constructor for each type. + + template <typename Base> + Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const location_type& l) + : Base (t) + , value () + , location (l) + {} + + template <typename Base> + Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const ElementPtr v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template <typename Base> + Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const bool v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} template <typename Base> - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::basic_symbol<Base>::type_get () const YY_NOEXCEPT + Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const double v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template <typename Base> + Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const int64_t v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + template <typename Base> + Dhcp6Parser::basic_symbol<Base>::basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} + + + template <typename Base> + inline + Dhcp6Parser::basic_symbol<Base>::~basic_symbol () { - return this->kind (); + clear (); } template <typename Base> + inline + void + Dhcp6Parser::basic_symbol<Base>::clear () + { + // User destructor. + symbol_number_type yytype = this->type_get (); + basic_symbol<Base>& yysym = *this; + (void) yysym; + switch (yytype) + { + default: + break; + } + + // Type destructor. + switch (yytype) + { + case 219: // value + case 223: // map_value + case 264: // ddns_replace_client_name_value + case 304: // db_type + case 405: // hr_mode + case 541: // duid_type + case 584: // ncr_protocol_value + value.template destroy< ElementPtr > (); + break; + + case 202: // "boolean" + value.template destroy< bool > (); + break; + + case 201: // "floating point" + value.template destroy< double > (); + break; + + case 200: // "integer" + value.template destroy< int64_t > (); + break; + + case 199: // "constant string" + value.template destroy< std::string > (); + break; + + default: + break; + } + + Base::clear (); + } + + template <typename Base> + inline bool - Dhcp6Parser::basic_symbol<Base>::empty () const YY_NOEXCEPT + Dhcp6Parser::basic_symbol<Base>::empty () const { - return this->kind () == symbol_kind::S_YYEMPTY; + return Base::type_get () == empty_symbol; } template <typename Base> + inline void Dhcp6Parser::basic_symbol<Base>::move (basic_symbol& s) { - super_type::move (s); - switch (this->kind ()) + super_type::move(s); + switch (this->type_get ()) { - case symbol_kind::S_value: // value - case symbol_kind::S_map_value: // map_value - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value - case symbol_kind::S_db_type: // db_type - case symbol_kind::S_hr_mode: // hr_mode - case symbol_kind::S_duid_type: // duid_type - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value - value.move< ElementPtr > (YY_MOVE (s.value)); + case 219: // value + case 223: // map_value + case 264: // ddns_replace_client_name_value + case 304: // db_type + case 405: // hr_mode + case 541: // duid_type + case 584: // ncr_protocol_value + value.move< ElementPtr > (s.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" - value.move< bool > (YY_MOVE (s.value)); + case 202: // "boolean" + value.move< bool > (s.value); break; - case symbol_kind::S_FLOAT: // "floating point" - value.move< double > (YY_MOVE (s.value)); + case 201: // "floating point" + value.move< double > (s.value); break; - case symbol_kind::S_INTEGER: // "integer" - value.move< int64_t > (YY_MOVE (s.value)); + case 200: // "integer" + value.move< int64_t > (s.value); break; - case symbol_kind::S_STRING: // "constant string" - value.move< std::string > (YY_MOVE (s.value)); + case 199: // "constant string" + value.move< std::string > (s.value); break; default: break; } - location = YY_MOVE (s.location); + location = s.location; } - // by_kind. + // by_type. inline - Dhcp6Parser::by_kind::by_kind () - : kind_ (symbol_kind::S_YYEMPTY) + Dhcp6Parser::by_type::by_type () + : type (empty_symbol) {} -#if 201103L <= YY_CPLUSPLUS inline - Dhcp6Parser::by_kind::by_kind (by_kind&& that) - : kind_ (that.kind_) - { - that.clear (); - } -#endif - - inline - Dhcp6Parser::by_kind::by_kind (const by_kind& that) - : kind_ (that.kind_) + Dhcp6Parser::by_type::by_type (const by_type& other) + : type (other.type) {} inline - Dhcp6Parser::by_kind::by_kind (token_kind_type t) - : kind_ (yytranslate_ (t)) + Dhcp6Parser::by_type::by_type (token_type t) + : type (yytranslate_ (t)) {} inline void - Dhcp6Parser::by_kind::clear () + Dhcp6Parser::by_type::clear () { - kind_ = symbol_kind::S_YYEMPTY; + type = empty_symbol; } inline void - Dhcp6Parser::by_kind::move (by_kind& that) + Dhcp6Parser::by_type::move (by_type& that) { - kind_ = that.kind_; + type = that.type; that.clear (); } inline - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::by_kind::kind () const YY_NOEXCEPT + int + Dhcp6Parser::by_type::type_get () const { - return kind_; + return type; } inline - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::by_kind::type_get () const YY_NOEXCEPT + Dhcp6Parser::token_type + Dhcp6Parser::by_type::token () const + { + // YYTOKNUM[NUM] -- (External) token number corresponding to the + // (internal) symbol number NUM (which must be that of a token). */ + static + const unsigned short int + yytoken_number_[] = + { + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457 + }; + return static_cast<token_type> (yytoken_number_[type]); + } + // Implementation of make_symbol for each symbol type. + Dhcp6Parser::symbol_type + Dhcp6Parser::make_END (const location_type& l) + { + return symbol_type (token::TOKEN_END, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_COMMA (const location_type& l) + { + return symbol_type (token::TOKEN_COMMA, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_COLON (const location_type& l) + { + return symbol_type (token::TOKEN_COLON, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LSQUARE_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_LSQUARE_BRACKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RSQUARE_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_RSQUARE_BRACKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LCURLY_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_LCURLY_BRACKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RCURLY_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_RCURLY_BRACKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NULL_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_NULL_TYPE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP6 (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DATA_DIRECTORY (const location_type& l) + { + return symbol_type (token::TOKEN_DATA_DIRECTORY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONFIG_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_CONTROL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONFIG_DATABASES (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_DATABASES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONFIG_FETCH_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_CONFIG_FETCH_WAIT_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACES_CONFIG (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACES_CONFIG, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACES (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RE_DETECT (const location_type& l) + { + return symbol_type (token::TOKEN_RE_DETECT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LEASE_DATABASE (const location_type& l) + { + return symbol_type (token::TOKEN_LEASE_DATABASE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTS_DATABASE (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTS_DATABASE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTS_DATABASES (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTS_DATABASES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_TYPE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MEMFILE (const location_type& l) + { + return symbol_type (token::TOKEN_MEMFILE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MYSQL (const location_type& l) + { + return symbol_type (token::TOKEN_MYSQL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_POSTGRESQL (const location_type& l) + { + return symbol_type (token::TOKEN_POSTGRESQL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CQL (const location_type& l) + { + return symbol_type (token::TOKEN_CQL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_USER (const location_type& l) + { + return symbol_type (token::TOKEN_USER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PASSWORD (const location_type& l) + { + return symbol_type (token::TOKEN_PASSWORD, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOST (const location_type& l) + { + return symbol_type (token::TOKEN_HOST, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_PORT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PERSIST (const location_type& l) + { + return symbol_type (token::TOKEN_PERSIST, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LFC_INTERVAL (const location_type& l) + { + return symbol_type (token::TOKEN_LFC_INTERVAL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_READONLY (const location_type& l) + { + return symbol_type (token::TOKEN_READONLY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONNECT_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONTACT_POINTS (const location_type& l) + { + return symbol_type (token::TOKEN_CONTACT_POINTS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_RECONNECT_TRIES (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECONNECT_TRIES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RECONNECT_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_KEYSPACE (const location_type& l) + { + return symbol_type (token::TOKEN_KEYSPACE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONSISTENCY (const location_type& l) + { + return symbol_type (token::TOKEN_CONSISTENCY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERIAL_CONSISTENCY (const location_type& l) + { + return symbol_type (token::TOKEN_SERIAL_CONSISTENCY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REQUEST_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_REQUEST_TIMEOUT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TCP_KEEPALIVE (const location_type& l) + { + return symbol_type (token::TOKEN_TCP_KEEPALIVE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TCP_NODELAY (const location_type& l) + { + return symbol_type (token::TOKEN_TCP_NODELAY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_ROW_ERRORS (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_ROW_ERRORS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFERRED_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_PREFERRED_LIFETIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MIN_PREFERRED_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MIN_PREFERRED_LIFETIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_PREFERRED_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_PREFERRED_LIFETIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_VALID_LIFETIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MIN_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RENEW_TIMER (const location_type& l) + { + return symbol_type (token::TOKEN_RENEW_TIMER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REBIND_TIMER (const location_type& l) + { + return symbol_type (token::TOKEN_REBIND_TIMER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CALCULATE_TEE_TIMES (const location_type& l) + { + return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_T1_PERCENT (const location_type& l) + { + return symbol_type (token::TOKEN_T1_PERCENT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_T2_PERCENT (const location_type& l) + { + return symbol_type (token::TOKEN_T2_PERCENT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CACHE_THRESHOLD (const location_type& l) + { + return symbol_type (token::TOKEN_CACHE_THRESHOLD, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CACHE_MAX_AGE (const location_type& l) + { + return symbol_type (token::TOKEN_CACHE_MAX_AGE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DECLINE_PROBATION_PERIOD (const location_type& l) + { + return symbol_type (token::TOKEN_DECLINE_PROBATION_PERIOD, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_TAG (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_TAG, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_STATISTIC_DEFAULT_SAMPLE_COUNT (const location_type& l) + { + return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_STATISTIC_DEFAULT_SAMPLE_AGE (const location_type& l) + { + return symbol_type (token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_SEND_UPDATES (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_SEND_UPDATES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_OVERRIDE_NO_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_OVERRIDE_NO_UPDATE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_OVERRIDE_CLIENT_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_REPLACE_CLIENT_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_REPLACE_CLIENT_NAME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_GENERATED_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_GENERATED_PREFIX, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_QUALIFYING_SUFFIX (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_QUALIFYING_SUFFIX, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_UPDATE_ON_RENEW (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_UPDATE_ON_RENEW, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DDNS_USE_CONFLICT_RESOLUTION (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_STORE_EXTENDED_INFO (const location_type& l) + { + return symbol_type (token::TOKEN_STORE_EXTENDED_INFO, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUBNET6 (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OPTION_DEF (const location_type& l) + { + return symbol_type (token::TOKEN_OPTION_DEF, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OPTION_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_OPTION_DATA, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_NAME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_DATA, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CODE (const location_type& l) + { + return symbol_type (token::TOKEN_CODE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SPACE (const location_type& l) + { + return symbol_type (token::TOKEN_SPACE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CSV_FORMAT (const location_type& l) + { + return symbol_type (token::TOKEN_CSV_FORMAT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ALWAYS_SEND (const location_type& l) + { + return symbol_type (token::TOKEN_ALWAYS_SEND, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RECORD_TYPES (const location_type& l) + { + return symbol_type (token::TOKEN_RECORD_TYPES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENCAPSULATE (const location_type& l) + { + return symbol_type (token::TOKEN_ENCAPSULATE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ARRAY (const location_type& l) + { + return symbol_type (token::TOKEN_ARRAY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_POOLS (const location_type& l) + { + return symbol_type (token::TOKEN_POOLS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_POOL (const location_type& l) + { + return symbol_type (token::TOKEN_POOL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PD_POOLS (const location_type& l) + { + return symbol_type (token::TOKEN_PD_POOLS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_PREFIX, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFIX_LEN (const location_type& l) + { + return symbol_type (token::TOKEN_PREFIX_LEN, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EXCLUDED_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_EXCLUDED_PREFIX, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EXCLUDED_PREFIX_LEN (const location_type& l) + { + return symbol_type (token::TOKEN_EXCLUDED_PREFIX_LEN, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DELEGATED_LEN (const location_type& l) + { + return symbol_type (token::TOKEN_DELEGATED_LEN, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_USER_CONTEXT (const location_type& l) + { + return symbol_type (token::TOKEN_USER_CONTEXT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_COMMENT (const location_type& l) + { + return symbol_type (token::TOKEN_COMMENT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUBNET (const location_type& l) + { + return symbol_type (token::TOKEN_SUBNET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACE (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTERFACE_ID (const location_type& l) + { + return symbol_type (token::TOKEN_INTERFACE_ID, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ID (const location_type& l) + { + return symbol_type (token::TOKEN_ID, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RAPID_COMMIT (const location_type& l) + { + return symbol_type (token::TOKEN_RAPID_COMMIT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RESERVATION_MODE (const location_type& l) + { + return symbol_type (token::TOKEN_RESERVATION_MODE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DISABLED (const location_type& l) + { + return symbol_type (token::TOKEN_DISABLED, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OUT_OF_POOL (const location_type& l) + { + return symbol_type (token::TOKEN_OUT_OF_POOL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_GLOBAL (const location_type& l) + { + return symbol_type (token::TOKEN_GLOBAL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ALL (const location_type& l) + { + return symbol_type (token::TOKEN_ALL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SHARED_NETWORKS (const location_type& l) + { + return symbol_type (token::TOKEN_SHARED_NETWORKS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAC_SOURCES (const location_type& l) + { + return symbol_type (token::TOKEN_MAC_SOURCES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RELAY_SUPPLIED_OPTIONS (const location_type& l) + { + return symbol_type (token::TOKEN_RELAY_SUPPLIED_OPTIONS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOST_RESERVATION_IDENTIFIERS (const location_type& l) + { + return symbol_type (token::TOKEN_HOST_RESERVATION_IDENTIFIERS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SANITY_CHECKS (const location_type& l) + { + return symbol_type (token::TOKEN_SANITY_CHECKS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LEASE_CHECKS (const location_type& l) + { + return symbol_type (token::TOKEN_LEASE_CHECKS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CLIENT_CLASSES (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENT_CLASSES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REQUIRE_CLIENT_CLASSES (const location_type& l) + { + return symbol_type (token::TOKEN_REQUIRE_CLIENT_CLASSES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TEST (const location_type& l) + { + return symbol_type (token::TOKEN_TEST, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ONLY_IF_REQUIRED (const location_type& l) + { + return symbol_type (token::TOKEN_ONLY_IF_REQUIRED, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CLIENT_CLASS (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENT_CLASS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RESERVATIONS (const location_type& l) + { + return symbol_type (token::TOKEN_RESERVATIONS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_IP_ADDRESSES (const location_type& l) + { + return symbol_type (token::TOKEN_IP_ADDRESSES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PREFIXES (const location_type& l) + { + return symbol_type (token::TOKEN_PREFIXES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DUID (const location_type& l) + { + return symbol_type (token::TOKEN_DUID, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HW_ADDRESS (const location_type& l) + { + return symbol_type (token::TOKEN_HW_ADDRESS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTNAME (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTNAME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLEX_ID (const location_type& l) + { + return symbol_type (token::TOKEN_FLEX_ID, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RELAY (const location_type& l) + { + return symbol_type (token::TOKEN_RELAY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_IP_ADDRESS (const location_type& l) + { + return symbol_type (token::TOKEN_IP_ADDRESS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOOKS_LIBRARIES (const location_type& l) + { + return symbol_type (token::TOKEN_HOOKS_LIBRARIES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LIBRARY (const location_type& l) + { + return symbol_type (token::TOKEN_LIBRARY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PARAMETERS (const location_type& l) + { + return symbol_type (token::TOKEN_PARAMETERS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EXPIRED_LEASES_PROCESSING (const location_type& l) + { + return symbol_type (token::TOKEN_EXPIRED_LEASES_PROCESSING, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_RECLAIM_TIMER_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOLD_RECLAIMED_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_RECLAIM_LEASES (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_RECLAIM_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_UNWARNED_RECLAIM_CYCLES (const location_type& l) + { + return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_ID (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_ID, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LLT (const location_type& l) + { + return symbol_type (token::TOKEN_LLT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_EN (const location_type& l) + { + return symbol_type (token::TOKEN_EN, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LL (const location_type& l) + { + return symbol_type (token::TOKEN_LL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_IDENTIFIER (const location_type& l) + { + return symbol_type (token::TOKEN_IDENTIFIER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HTYPE (const location_type& l) + { + return symbol_type (token::TOKEN_HTYPE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TIME (const location_type& l) + { + return symbol_type (token::TOKEN_TIME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENTERPRISE_ID (const location_type& l) + { + return symbol_type (token::TOKEN_ENTERPRISE_ID, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP4O6_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP4O6_PORT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP_MULTI_THREADING (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_MULTI_THREADING, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENABLE_MULTI_THREADING (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_MULTI_THREADING, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_THREAD_POOL_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_THREAD_POOL_SIZE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PACKET_QUEUE_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_PACKET_QUEUE_SIZE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CONTROL_SOCKET (const location_type& l) + { + return symbol_type (token::TOKEN_CONTROL_SOCKET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SOCKET_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_SOCKET_TYPE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SOCKET_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_SOCKET_NAME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP_QUEUE_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_QUEUE_CONTROL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENABLE_QUEUE (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_QUEUE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_QUEUE_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_QUEUE_TYPE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CAPACITY (const location_type& l) + { + return symbol_type (token::TOKEN_CAPACITY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DHCP_DDNS (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP_DDNS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ENABLE_UPDATES (const location_type& l) + { + return symbol_type (token::TOKEN_ENABLE_UPDATES, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_QUALIFYING_SUFFIX (const location_type& l) + { + return symbol_type (token::TOKEN_QUALIFYING_SUFFIX, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_IP (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_IP, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SERVER_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_SERVER_PORT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SENDER_IP (const location_type& l) + { + return symbol_type (token::TOKEN_SENDER_IP, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SENDER_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_SENDER_PORT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAX_QUEUE_SIZE (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_QUEUE_SIZE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NCR_PROTOCOL (const location_type& l) + { + return symbol_type (token::TOKEN_NCR_PROTOCOL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NCR_FORMAT (const location_type& l) + { + return symbol_type (token::TOKEN_NCR_FORMAT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OVERRIDE_NO_UPDATE (const location_type& l) { - return this->kind (); + return symbol_type (token::TOKEN_OVERRIDE_NO_UPDATE, l); } -#line 14 "dhcp6_parser.yy" + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OVERRIDE_CLIENT_UPDATE (const location_type& l) + { + return symbol_type (token::TOKEN_OVERRIDE_CLIENT_UPDATE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_REPLACE_CLIENT_NAME (const location_type& l) + { + return symbol_type (token::TOKEN_REPLACE_CLIENT_NAME, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_GENERATED_PREFIX (const location_type& l) + { + return symbol_type (token::TOKEN_GENERATED_PREFIX, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_UDP (const location_type& l) + { + return symbol_type (token::TOKEN_UDP, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TCP (const location_type& l) + { + return symbol_type (token::TOKEN_TCP, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_JSON (const location_type& l) + { + return symbol_type (token::TOKEN_JSON, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_WHEN_PRESENT (const location_type& l) + { + return symbol_type (token::TOKEN_WHEN_PRESENT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_NEVER (const location_type& l) + { + return symbol_type (token::TOKEN_NEVER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_ALWAYS (const location_type& l) + { + return symbol_type (token::TOKEN_ALWAYS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_WHEN_NOT_PRESENT (const location_type& l) + { + return symbol_type (token::TOKEN_WHEN_NOT_PRESENT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTNAME_CHAR_SET (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTNAME_CHAR_SET, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_HOSTNAME_CHAR_REPLACEMENT (const location_type& l) + { + return symbol_type (token::TOKEN_HOSTNAME_CHAR_REPLACEMENT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_IP_RESERVATIONS_UNIQUE (const location_type& l) + { + return symbol_type (token::TOKEN_IP_RESERVATIONS_UNIQUE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_LOGGERS (const location_type& l) + { + return symbol_type (token::TOKEN_LOGGERS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OUTPUT_OPTIONS (const location_type& l) + { + return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_OUTPUT (const location_type& l) + { + return symbol_type (token::TOKEN_OUTPUT, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_DEBUGLEVEL (const location_type& l) + { + return symbol_type (token::TOKEN_DEBUGLEVEL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SEVERITY (const location_type& l) + { + return symbol_type (token::TOKEN_SEVERITY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLUSH (const location_type& l) + { + return symbol_type (token::TOKEN_FLUSH, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAXSIZE (const location_type& l) + { + return symbol_type (token::TOKEN_MAXSIZE, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_MAXVER (const location_type& l) + { + return symbol_type (token::TOKEN_MAXVER, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_PATTERN (const location_type& l) + { + return symbol_type (token::TOKEN_PATTERN, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TOPLEVEL_JSON (const location_type& l) + { + return symbol_type (token::TOKEN_TOPLEVEL_JSON, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_TOPLEVEL_DHCP6 (const location_type& l) + { + return symbol_type (token::TOKEN_TOPLEVEL_DHCP6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_DHCP6 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_DHCP6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_INTERFACES6 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_INTERFACES6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_SUBNET6 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_SUBNET6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_POOL6 (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_POOL6, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_PD_POOL (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_PD_POOL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_RESERVATION (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_RESERVATION, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_OPTION_DEFS (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DEFS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_OPTION_DEF (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DEF, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_OPTION_DATA (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_OPTION_DATA, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_HOOKS_LIBRARY (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_HOOKS_LIBRARY, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_DHCP_DDNS (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_SUB_CONFIG_CONTROL (const location_type& l) + { + return symbol_type (token::TOKEN_SUB_CONFIG_CONTROL, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_STRING (const std::string& v, const location_type& l) + { + return symbol_type (token::TOKEN_STRING, v, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_INTEGER (const int64_t& v, const location_type& l) + { + return symbol_type (token::TOKEN_INTEGER, v, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_FLOAT (const double& v, const location_type& l) + { + return symbol_type (token::TOKEN_FLOAT, v, l); + } + + Dhcp6Parser::symbol_type + Dhcp6Parser::make_BOOLEAN (const bool& v, const location_type& l) + { + return symbol_type (token::TOKEN_BOOLEAN, v, l); + } + + +#line 14 "dhcp6_parser.yy" // lalr1.cc:377 } } // isc::dhcp -#line 5323 "dhcp6_parser.h" +#line 3285 "dhcp6_parser.h" // lalr1.cc:377 diff --git a/src/bin/dhcp6/dhcp6_parser.yy b/src/bin/dhcp6/dhcp6_parser.yy index 367b27bc13..e0fe398404 100644 --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@ -111,6 +111,7 @@ using namespace std; DDNS_GENERATED_PREFIX "ddns-generated-prefix" DDNS_QUALIFYING_SUFFIX "ddns-qualifying-suffix" DDNS_UPDATE_ON_RENEW "ddns-update-on-renew" + DDNS_USE_CONFLICT_RESOLUTION "ddns-use-conflict-resolution" STORE_EXTENDED_INFO "store-extended-info" SUBNET6 "subnet6" OPTION_DEF "option-def" @@ -505,6 +506,7 @@ global_param: data_directory | ddns_generated_prefix | ddns_qualifying_suffix | ddns_update_on_renew + | ddns_use_conflict_resolution | store_extended_info | statistic_default_sample_count | statistic_default_sample_age @@ -675,6 +677,12 @@ ddns_update_on_renew: DDNS_UPDATE_ON_RENEW COLON BOOLEAN { ctx.stack_.back()->set("ddns-update-on-renew", b); }; +ddns_use_conflict_resolution: DDNS_USE_CONFLICT_RESOLUTION COLON BOOLEAN { + ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(@1)); + ElementPtr b(new BoolElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("ddns-use-conflict-resolution", b); +}; + hostname_char_set: HOSTNAME_CHAR_SET { ctx.unique("hostname-char-set", ctx.loc2pos(@1)); ctx.enter(ctx.NO_KEYWORD); @@ -1395,6 +1403,7 @@ subnet6_param: preferred_lifetime | ddns_generated_prefix | ddns_qualifying_suffix | ddns_update_on_renew + | ddns_use_conflict_resolution | store_extended_info | unknown_map_entry ; @@ -1541,6 +1550,7 @@ shared_network_param: name | ddns_generated_prefix | ddns_qualifying_suffix | ddns_update_on_renew + | ddns_use_conflict_resolution | store_extended_info | unknown_map_entry ; diff --git a/src/bin/dhcp6/json_config_parser.cc b/src/bin/dhcp6/json_config_parser.cc index 1632aaddc6..227fb54c16 100644 --- a/src/bin/dhcp6/json_config_parser.cc +++ b/src/bin/dhcp6/json_config_parser.cc @@ -776,6 +776,7 @@ configureDhcp6Server(Dhcpv6Srv& server, isc::data::ConstElementPtr config_set, (config_pair.first == "ddns-generated-prefix") || (config_pair.first == "ddns-qualifying-suffix") || (config_pair.first == "ddns-update-on-renew") || + (config_pair.first == "ddns-use-conflict-resolution") || (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 a24ac29e54..239704683c 100644 --- a/src/bin/dhcp6/location.hh +++ b/src/bin/dhcp6/location.hh @@ -1,9 +1,8 @@ -// Generated 202010091455 -// A Bison parser, made by GNU Bison 3.7.2. +// A Bison parser, made by GNU Bison 3.0.4. // Locations for Bison parsers in C++ -// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 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 @@ -39,164 +38,44 @@ #ifndef YY_PARSER6_LOCATION_HH_INCLUDED # define YY_PARSER6_LOCATION_HH_INCLUDED -# include <iostream> -# include <string> +# include "position.hh" -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // location.cc:296 namespace isc { namespace dhcp { -#line 59 "location.hh" - - /// A point in a source file. - class position - { - public: - /// Type for file name. - typedef const std::string filename_type; - /// Type for line and column numbers. - typedef int counter_type; - - /// Construct a position. - explicit position (filename_type* f = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) - : filename (f) - , line (l) - , column (c) - {} - - - /// Initialization. - void initialize (filename_type* fn = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) - { - filename = fn; - line = l; - column = c; - } - - /** \name Line and Column related manipulators - ** \{ */ - /// (line related) Advance to the COUNT next lines. - void lines (counter_type count = 1) - { - if (count) - { - column = 1; - line = add_ (line, count, 1); - } - } - - /// (column related) Advance to the COUNT next columns. - void columns (counter_type count = 1) - { - column = add_ (column, count, 1); - } - /** \} */ - - /// File name to which this position refers. - filename_type* filename; - /// Current line number. - counter_type line; - /// Current column number. - counter_type column; - - private: - /// Compute max (min, lhs+rhs). - static counter_type add_ (counter_type lhs, counter_type rhs, counter_type min) - { - return lhs + rhs < min ? min : lhs + rhs; - } - }; - - /// Add \a width columns, in place. - inline position& - operator+= (position& res, position::counter_type width) - { - res.columns (width); - return res; - } - - /// Add \a width columns. - inline position - operator+ (position res, position::counter_type width) - { - return res += width; - } - - /// Subtract \a width columns, in place. - inline position& - operator-= (position& res, position::counter_type width) - { - return res += -width; - } - - /// Subtract \a width columns. - inline position - operator- (position res, position::counter_type width) - { - return res -= width; - } - - /** \brief Intercept output stream redirection. - ** \param ostr the destination output stream - ** \param pos a reference to the position to redirect - */ - template <typename YYChar> - std::basic_ostream<YYChar>& - operator<< (std::basic_ostream<YYChar>& ostr, const position& pos) - { - if (pos.filename) - ostr << *pos.filename << ':'; - return ostr << pos.line << '.' << pos.column; - } - - /// Two points in a source file. +#line 46 "location.hh" // location.cc:296 + /// Abstract a location. class location { public: - /// Type for file name. - typedef position::filename_type filename_type; - /// Type for line and column numbers. - typedef position::counter_type counter_type; /// Construct a location from \a b to \a e. location (const position& b, const position& e) : begin (b) , end (e) - {} + { + } /// Construct a 0-width location in \a p. explicit location (const position& p = position ()) : begin (p) , end (p) - {} + { + } /// Construct a 0-width location in \a f, \a l, \a c. - explicit location (filename_type* f, - counter_type l = 1, - counter_type c = 1) + explicit location (std::string* f, + unsigned int l = 1u, + unsigned int c = 1u) : begin (f, l, c) , end (f, l, c) - {} + { + } /// Initialization. - void initialize (filename_type* f = YY_NULLPTR, - counter_type l = 1, - counter_type c = 1) + void initialize (std::string* f = YY_NULLPTR, + unsigned int l = 1u, + unsigned int c = 1u) { begin.initialize (f, l, c); end = begin; @@ -212,13 +91,13 @@ namespace isc { namespace dhcp { } /// Extend the current location to the COUNT next columns. - void columns (counter_type count = 1) + void columns (int count = 1) { end += count; } /// Extend the current location to the COUNT next lines. - void lines (counter_type count = 1) + void lines (int count = 1) { end.lines (count); } @@ -233,49 +112,57 @@ namespace isc { namespace dhcp { }; /// Join two locations, in place. - inline location& - operator+= (location& res, const location& end) + inline location& operator+= (location& res, const location& end) { res.end = end.end; return res; } /// Join two locations. - inline location - operator+ (location res, const location& end) + inline location operator+ (location res, const location& end) { return res += end; } /// Add \a width columns to the end position, in place. - inline location& - operator+= (location& res, location::counter_type width) + inline location& operator+= (location& res, int width) { res.columns (width); return res; } /// Add \a width columns to the end position. - inline location - operator+ (location res, location::counter_type width) + inline location operator+ (location res, int width) { return res += width; } /// Subtract \a width columns to the end position, in place. - inline location& - operator-= (location& res, location::counter_type width) + inline location& operator-= (location& res, int width) { return res += -width; } /// Subtract \a width columns to the end position. - inline location - operator- (location res, location::counter_type width) + inline location operator- (location res, int width) { return res -= width; } + /// Compare two location objects. + inline bool + operator== (const location& loc1, const location& loc2) + { + return loc1.begin == loc2.begin && loc1.end == loc2.end; + } + + /// Compare two location objects. + inline bool + operator!= (const location& loc1, const location& loc2) + { + return !(loc1 == loc2); + } + /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param loc a reference to the location to redirect @@ -283,11 +170,10 @@ namespace isc { namespace dhcp { ** Avoid duplicate information. */ template <typename YYChar> - std::basic_ostream<YYChar>& + inline std::basic_ostream<YYChar>& operator<< (std::basic_ostream<YYChar>& ostr, const location& loc) { - location::counter_type end_col - = 0 < loc.end.column ? loc.end.column - 1 : 0; + unsigned int end_col = 0 < loc.end.column ? loc.end.column - 1 : 0; ostr << loc.begin; if (loc.end.filename && (!loc.begin.filename @@ -300,8 +186,7 @@ namespace isc { namespace dhcp { return ostr; } -#line 14 "dhcp6_parser.yy" +#line 14 "dhcp6_parser.yy" // location.cc:296 } } // isc::dhcp -#line 305 "location.hh" - +#line 192 "location.hh" // location.cc:296 #endif // !YY_PARSER6_LOCATION_HH_INCLUDED diff --git a/src/bin/dhcp6/position.hh b/src/bin/dhcp6/position.hh index 48ecfcbf2b..2ee80e6d0a 100644 --- a/src/bin/dhcp6/position.hh +++ b/src/bin/dhcp6/position.hh @@ -1,12 +1,180 @@ -// Generated 202010091455 -// A Bison parser, made by GNU Bison 3.7.2. - -// Starting with Bison 3.2, this file is useless: the structure it -// used to define is now defined in "location.hh". -// -// To get rid of this file: -// 1. add '%require "3.2"' (or newer) to your grammar file -// 2. remove references to this file from your build system -// 3. if you used to include it, include "location.hh" instead. - -#include "location.hh" +// A Bison parser, made by GNU Bison 3.0.4. + +// Positions for Bison parsers in C++ + +// Copyright (C) 2002-2015 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 +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// 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 <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 +// under terms of your choice, so long as that work isn't itself a +// parser generator using the skeleton or a modified version thereof +// as a parser skeleton. Alternatively, if you modify or redistribute +// the parser skeleton itself, you may (at your option) remove this +// special exception, which will cause the skeleton and the resulting +// Bison output files to be licensed under the GNU General Public +// License without this special exception. + +// This special exception was added by the Free Software Foundation in +// version 2.2 of Bison. + +/** + ** \file position.hh + ** Define the isc::dhcp::position class. + */ + +#ifndef YY_PARSER6_POSITION_HH_INCLUDED +# define YY_PARSER6_POSITION_HH_INCLUDED + +# include <algorithm> // std::max +# include <iostream> +# include <string> + +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif + +#line 14 "dhcp6_parser.yy" // location.cc:296 +namespace isc { namespace dhcp { +#line 56 "position.hh" // location.cc:296 + /// Abstract a position. + class position + { + public: + /// Construct a position. + explicit position (std::string* f = YY_NULLPTR, + unsigned int l = 1u, + unsigned int c = 1u) + : filename (f) + , line (l) + , column (c) + { + } + + + /// Initialization. + void initialize (std::string* fn = YY_NULLPTR, + unsigned int l = 1u, + unsigned int c = 1u) + { + filename = fn; + line = l; + column = c; + } + + /** \name Line and Column related manipulators + ** \{ */ + /// (line related) Advance to the COUNT next lines. + void lines (int count = 1) + { + if (count) + { + column = 1u; + line = add_ (line, count, 1); + } + } + + /// (column related) Advance to the COUNT next columns. + void columns (int count = 1) + { + column = add_ (column, count, 1); + } + /** \} */ + + /// File name to which this position refers. + std::string* filename; + /// Current line number. + unsigned int line; + /// Current column number. + unsigned int column; + + private: + /// Compute max(min, lhs+rhs) (provided min <= lhs). + static unsigned int add_ (unsigned int lhs, int rhs, unsigned int min) + { + return (0 < rhs || -static_cast<unsigned int>(rhs) < lhs + ? rhs + lhs + : min); + } + }; + + /// Add \a width columns, in place. + inline position& + operator+= (position& res, int width) + { + res.columns (width); + return res; + } + + /// Add \a width columns. + inline position + operator+ (position res, int width) + { + return res += width; + } + + /// Subtract \a width columns, in place. + inline position& + operator-= (position& res, int width) + { + return res += -width; + } + + /// Subtract \a width columns. + inline position + operator- (position res, int width) + { + return res -= width; + } + + /// Compare two position objects. + inline bool + operator== (const position& pos1, const position& pos2) + { + return (pos1.line == pos2.line + && pos1.column == pos2.column + && (pos1.filename == pos2.filename + || (pos1.filename && pos2.filename + && *pos1.filename == *pos2.filename))); + } + + /// Compare two position objects. + inline bool + operator!= (const position& pos1, const position& pos2) + { + return !(pos1 == pos2); + } + + /** \brief Intercept output stream redirection. + ** \param ostr the destination output stream + ** \param pos a reference to the position to redirect + */ + template <typename YYChar> + inline std::basic_ostream<YYChar>& + operator<< (std::basic_ostream<YYChar>& ostr, const position& pos) + { + if (pos.filename) + ostr << *pos.filename << ':'; + return ostr << pos.line << '.' << pos.column; + } + +#line 14 "dhcp6_parser.yy" // location.cc:296 +} } // isc::dhcp +#line 180 "position.hh" // location.cc:296 +#endif // !YY_PARSER6_POSITION_HH_INCLUDED diff --git a/src/bin/dhcp6/stack.hh b/src/bin/dhcp6/stack.hh index 1bd3435eff..db2863a06e 100644 --- a/src/bin/dhcp6/stack.hh +++ b/src/bin/dhcp6/stack.hh @@ -1,9 +1,157 @@ -// Generated 202010091455 -// A Bison parser, made by GNU Bison 3.7.2. - -// Starting with Bison 3.2, this file is useless: the structure it -// used to define is now defined with the parser itself. -// -// To get rid of this file: -// 1. add '%require "3.2"' (or newer) to your grammar file -// 2. remove references to this file from your build system. +// A Bison parser, made by GNU Bison 3.0.4. + +// Stack handling for Bison parsers in C++ + +// Copyright (C) 2002-2015 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 +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// 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 <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 +// under terms of your choice, so long as that work isn't itself a +// parser generator using the skeleton or a modified version thereof +// as a parser skeleton. Alternatively, if you modify or redistribute +// the parser skeleton itself, you may (at your option) remove this +// special exception, which will cause the skeleton and the resulting +// Bison output files to be licensed under the GNU General Public +// License without this special exception. + +// This special exception was added by the Free Software Foundation in +// version 2.2 of Bison. + +/** + ** \file stack.hh + ** Define the isc::dhcp::stack class. + */ + +#ifndef YY_PARSER6_STACK_HH_INCLUDED +# define YY_PARSER6_STACK_HH_INCLUDED + +# include <vector> + +#line 14 "dhcp6_parser.yy" // stack.hh:132 +namespace isc { namespace dhcp { +#line 46 "stack.hh" // stack.hh:132 + template <class T, class S = std::vector<T> > + class stack + { + public: + // Hide our reversed order. + typedef typename S::reverse_iterator iterator; + typedef typename S::const_reverse_iterator const_iterator; + + stack () + : seq_ () + { + seq_.reserve (200); + } + + stack (unsigned int n) + : seq_ (n) + {} + + inline + T& + operator[] (unsigned int i) + { + return seq_[seq_.size () - 1 - i]; + } + + inline + const T& + operator[] (unsigned int i) const + { + return seq_[seq_.size () - 1 - i]; + } + + /// Steal the contents of \a t. + /// + /// Close to move-semantics. + inline + void + push (T& t) + { + seq_.push_back (T()); + operator[](0).move (t); + } + + inline + void + pop (unsigned int n = 1) + { + for (; n; --n) + seq_.pop_back (); + } + + void + clear () + { + seq_.clear (); + } + + inline + typename S::size_type + size () const + { + return seq_.size (); + } + + inline + const_iterator + begin () const + { + return seq_.rbegin (); + } + + inline + const_iterator + end () const + { + return seq_.rend (); + } + + private: + stack (const stack&); + stack& operator= (const stack&); + /// The wrapped container. + S seq_; + }; + + /// Present a slice of the top of a stack. + template <class T, class S = stack<T> > + class slice + { + public: + slice (const S& stack, unsigned int range) + : stack_ (stack) + , range_ (range) + {} + + inline + const T& + operator [] (unsigned int i) const + { + return stack_[range_ - i]; + } + + private: + const S& stack_; + unsigned int range_; + }; + +#line 14 "dhcp6_parser.yy" // stack.hh:132 +} } // isc::dhcp +#line 156 "stack.hh" // stack.hh:132 + +#endif // !YY_PARSER6_STACK_HH_INCLUDED diff --git a/src/bin/dhcp6/tests/get_config_unittest.cc b/src/bin/dhcp6/tests/get_config_unittest.cc index 327812c8a0..a8eb129169 100644 --- a/src/bin/dhcp6/tests/get_config_unittest.cc +++ b/src/bin/dhcp6/tests/get_config_unittest.cc @@ -20,6 +20,7 @@ #include <dhcp6/json_config_parser.h> #include <dhcp6/tests/dhcp6_test_utils.h> #include <dhcp6/tests/get_config_unittest.h> +#include <testutils/gtest_utils.h> #include <boost/algorithm/string.hpp> #include <gtest/gtest.h> @@ -1997,6 +1998,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2078,6 +2080,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2193,6 +2196,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2375,6 +2379,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2557,6 +2562,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2739,6 +2745,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2854,6 +2861,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2962,6 +2970,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3070,6 +3079,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3210,6 +3220,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3317,6 +3328,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3426,6 +3438,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3537,6 +3550,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3663,6 +3677,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3772,6 +3787,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3861,6 +3877,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3950,6 +3967,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4048,6 +4066,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4137,6 +4156,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4226,6 +4246,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4350,6 +4371,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4474,6 +4496,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4608,6 +4631,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4725,6 +4749,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4885,6 +4910,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5035,6 +5061,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5195,6 +5222,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5317,6 +5345,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5443,6 +5472,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5524,6 +5554,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5605,6 +5636,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5712,6 +5744,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5819,6 +5852,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6004,6 +6038,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6126,6 +6161,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6256,6 +6292,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": true,\n" @@ -6363,6 +6400,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"when-present\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": true,\n" @@ -6470,6 +6508,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"always\",\n" " \"ddns-send-updates\": false,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": true,\n" @@ -6577,6 +6616,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6809,6 +6849,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6939,6 +6980,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7020,6 +7062,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7101,6 +7144,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7312,6 +7356,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7445,6 +7490,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7526,6 +7572,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7605,6 +7652,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7684,6 +7732,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 12345,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7763,6 +7812,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7856,6 +7906,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7963,6 +8014,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8070,6 +8122,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8178,6 +8231,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8291,6 +8345,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8404,6 +8459,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8513,6 +8569,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8623,6 +8680,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8738,6 +8796,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -8862,6 +8921,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9060,6 +9120,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9259,6 +9320,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9340,6 +9402,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9419,6 +9482,7 @@ const char* UNPARSED_CONFIGS[] = { " \"ddns-replace-client-name\": \"never\",\n" " \"ddns-send-updates\": true,\n" " \"ddns-update-on-renew\": false,\n" +" \"ddns-use-conflict-resolution\": true,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -9719,9 +9783,9 @@ TEST_P(Dhcp6GetConfigTest, run) { // unparse it ConstSrvConfigPtr extracted = CfgMgr::instance().getStagingCfg(); ConstElementPtr unparsed; - ASSERT_NO_THROW(unparsed = extracted->toElement()); + ASSERT_NO_THROW_LOG(unparsed = extracted->toElement()); ConstElementPtr dhcp; - ASSERT_NO_THROW(dhcp = unparsed->get("Dhcp6")); + ASSERT_NO_THROW_LOG(dhcp = unparsed->get("Dhcp6")); ASSERT_TRUE(dhcp); // dump if wanted else check @@ -9731,16 +9795,16 @@ TEST_P(Dhcp6GetConfigTest, run) { std::cerr << ",\n"; } std::cerr << " // CONFIGURATION " << config_counter; - ASSERT_NO_THROW(expected = prettyPrint(dhcp)); - ASSERT_NO_THROW(outputFormatted(dhcp->str())); + ASSERT_NO_THROW_LOG(expected = prettyPrint(dhcp)); + ASSERT_NO_THROW_LOG(outputFormatted(dhcp->str())); } else { expected = UNPARSED_CONFIGS[config_counter]; // get the expected config using the dhcpv6 syntax parser ElementPtr jsond; - ASSERT_NO_THROW(jsond = parseDHCP6(expected, true)); + ASSERT_NO_THROW_LOG(jsond = parseDHCP6(expected, true)); // get the expected config using the generic JSON syntax parser ElementPtr jsonj; - ASSERT_NO_THROW(jsonj = parseJSON(expected)); + ASSERT_NO_THROW_LOG(jsonj = parseJSON(expected)); // the generic JSON parser does not handle comments EXPECT_TRUE(isEquivalent(jsond, moveComments(jsonj))); // check that unparsed and expected values match @@ -9761,7 +9825,7 @@ TEST_P(Dhcp6GetConfigTest, run) { // is it a fixed point? ConstSrvConfigPtr extracted2 = CfgMgr::instance().getStagingCfg(); ConstElementPtr unparsed2; - ASSERT_NO_THROW(unparsed2 = extracted2->toElement()); + ASSERT_NO_THROW_LOG(unparsed2 = extracted2->toElement()); ASSERT_TRUE(unparsed2); EXPECT_TRUE(isEquivalent(unparsed, unparsed2)); } diff --git a/src/bin/dhcp6/tests/get_config_unittest.cc.skel b/src/bin/dhcp6/tests/get_config_unittest.cc.skel index 5c227dbc53..0945e09fa6 100644 --- a/src/bin/dhcp6/tests/get_config_unittest.cc.skel +++ b/src/bin/dhcp6/tests/get_config_unittest.cc.skel @@ -20,6 +20,7 @@ #include <dhcp6/json_config_parser.h> #include <dhcp6/tests/dhcp6_test_utils.h> #include <dhcp6/tests/get_config_unittest.h> +#include <testutils/gtest_utils.h> #include <boost/algorithm/string.hpp> #include <gtest/gtest.h> @@ -306,9 +307,9 @@ TEST_P(Dhcp6GetConfigTest, run) { // unparse it ConstSrvConfigPtr extracted = CfgMgr::instance().getStagingCfg(); ConstElementPtr unparsed; - ASSERT_NO_THROW(unparsed = extracted->toElement()); + ASSERT_NO_THROW_LOG(unparsed = extracted->toElement()); ConstElementPtr dhcp; - ASSERT_NO_THROW(dhcp = unparsed->get("Dhcp6")); + ASSERT_NO_THROW_LOG(dhcp = unparsed->get("Dhcp6")); ASSERT_TRUE(dhcp); // dump if wanted else check @@ -318,16 +319,16 @@ TEST_P(Dhcp6GetConfigTest, run) { std::cerr << ",\n"; } std::cerr << " // CONFIGURATION " << config_counter; - ASSERT_NO_THROW(expected = prettyPrint(dhcp)); - ASSERT_NO_THROW(outputFormatted(dhcp->str())); + ASSERT_NO_THROW_LOG(expected = prettyPrint(dhcp)); + ASSERT_NO_THROW_LOG(outputFormatted(dhcp->str())); } else { expected = UNPARSED_CONFIGS[config_counter]; // get the expected config using the dhcpv6 syntax parser ElementPtr jsond; - ASSERT_NO_THROW(jsond = parseDHCP6(expected, true)); + ASSERT_NO_THROW_LOG(jsond = parseDHCP6(expected, true)); // get the expected config using the generic JSON syntax parser ElementPtr jsonj; - ASSERT_NO_THROW(jsonj = parseJSON(expected)); + ASSERT_NO_THROW_LOG(jsonj = parseJSON(expected)); // the generic JSON parser does not handle comments EXPECT_TRUE(isEquivalent(jsond, moveComments(jsonj))); // check that unparsed and expected values match @@ -348,7 +349,7 @@ TEST_P(Dhcp6GetConfigTest, run) { // is it a fixed point? ConstSrvConfigPtr extracted2 = CfgMgr::instance().getStagingCfg(); ConstElementPtr unparsed2; - ASSERT_NO_THROW(unparsed2 = extracted2->toElement()); + ASSERT_NO_THROW_LOG(unparsed2 = extracted2->toElement()); ASSERT_TRUE(unparsed2); EXPECT_TRUE(isEquivalent(unparsed, unparsed2)); } diff --git a/src/lib/dhcpsrv/parsers/base_network_parser.cc b/src/lib/dhcpsrv/parsers/base_network_parser.cc index 79dc59ff57..abfc37bcac 100644 --- a/src/lib/dhcpsrv/parsers/base_network_parser.cc +++ b/src/lib/dhcpsrv/parsers/base_network_parser.cc @@ -273,7 +273,7 @@ BaseNetworkParser::parseDdnsParams(const data::ConstElementPtr& network_data, } if (network_data->contains("ddns-use-conflict-resolution")) { - network->setDdnsUpdateOnRenew(getBoolean(network_data, "ddns-use-conflict-resolution")); + network->setDdnsUseConflictResolution(getBoolean(network_data, "ddns-use-conflict-resolution")); } } diff --git a/src/lib/dhcpsrv/parsers/simple_parser4.cc b/src/lib/dhcpsrv/parsers/simple_parser4.cc index 7aa709e4a7..fe3a7059a2 100644 --- a/src/lib/dhcpsrv/parsers/simple_parser4.cc +++ b/src/lib/dhcpsrv/parsers/simple_parser4.cc @@ -287,8 +287,7 @@ const ParamsList SimpleParser4::INHERIT_TO_SUBNET4 = { "t2-percent", "store-extended-info", "cache-threshold", - "cache-max-age", - "ddns-use-conflict-resolution" + "cache-max-age" }; /// @brief This table defines all pool parameters. |