From a730cfea4e35b6522a9cb148a37d3b9508840fa9 Mon Sep 17 00:00:00 2001 From: Razvan Becheriu Date: Thu, 18 Mar 2021 22:17:42 +0200 Subject: [PATCH] [#1621] updated parsers --- doc/examples/kea4/backends.json | 2 + doc/examples/kea6/backends.json | 2 + doc/sphinx/arm/database-connectivity.rst | 12 +- src/bin/dhcp4/location.hh | 50 +- src/bin/dhcp4/position.hh | 2 +- src/bin/dhcp4/stack.hh | 2 +- src/bin/dhcp6/dhcp6_lexer.cc | 2375 ++++----- src/bin/dhcp6/dhcp6_parser.cc | 4579 ++++++++--------- src/bin/dhcp6/dhcp6_parser.h | 1639 ++---- src/bin/dhcp6/location.hh | 52 +- src/bin/dhcp6/position.hh | 2 +- src/bin/dhcp6/stack.hh | 2 +- .../tests/database_connection_unittest.cc | 1 + 13 files changed, 4023 insertions(+), 4697 deletions(-) diff --git a/doc/examples/kea4/backends.json b/doc/examples/kea4/backends.json index 6368c962a5..b91e2b49a0 100644 --- a/doc/examples/kea4/backends.json +++ b/doc/examples/kea4/backends.json @@ -42,6 +42,7 @@ // "password": "secret1", // "reconnect-wait-time": 3000, // expressed in ms // "max-reconnect-tries": 3, +// "disable-dhcp-on-db-loss": true, // "connect-timeout": 3 // }, @@ -61,6 +62,7 @@ // "password": "secret1", // "reconnect-wait-time": 3000, // expressed in ms // "max-reconnect-tries": 3, +// "disable-dhcp-on-db-loss": true, // "connect-timeout": 3 // }, diff --git a/doc/examples/kea6/backends.json b/doc/examples/kea6/backends.json index 4d54df56ab..60104f5b31 100644 --- a/doc/examples/kea6/backends.json +++ b/doc/examples/kea6/backends.json @@ -42,6 +42,7 @@ // "password": "secret1", // "reconnect-wait-time": 3000, // expressed in ms // "max-reconnect-tries": 3, +// "disable-dhcp-on-db-loss": true, // "connect-timeout": 3 // }, @@ -61,6 +62,7 @@ // "password": "secret1", // "reconnect-wait-time": 3000, // expressed in ms // "max-reconnect-tries": 3, +// "disable-dhcp-on-db-loss": true, // "connect-timeout": 3 // }, diff --git a/doc/sphinx/arm/database-connectivity.rst b/doc/sphinx/arm/database-connectivity.rst index 856f3819a6..a077b9bd66 100644 --- a/doc/sphinx/arm/database-connectivity.rst +++ b/doc/sphinx/arm/database-connectivity.rst @@ -6,7 +6,8 @@ Database Connectivity Kea servers (kea-dhcp4 and kea-dhcp6) can be configured to use a variety of database backends for leases, hosts, and configuration. All of them may be configured to support automatic recovery when connectivity is lost (see -``max-reconnect-tries`` and ``reconnect-wait-time``). +``max-reconnect-tries``, ``reconnect-wait-time`` and +``disable-dhcp-on-db-loss``). It is important to understand how and when automatic recovery comes into play. Automatic recovery, when configured, only operates after a successful startup @@ -28,7 +29,8 @@ allows the configuration to be corrected via command, if required. During normal operations, if connectivity to any of the backends is lost and automatic recovery for that backend is enabled, the server disconnects from the respective backend and then attempts to reconnect. During the recovery process, -the server ceases to serve clients but continues to respond to commands. If -connectivity to all backends is restored, the server returns to normal -operations. If connectivity cannot be restored after ``max-reconnect-tries``, -the server issues a fatal error and exits. +the server ceases to serve clients according to the ``disable-dhcp-on-db-loss`` +configured option, but continues to respond to commands. If connectivity to all +backends is restored, the server returns to normal operations. If connectivity +cannot be restored after ``max-reconnect-tries``, the server issues a fatal +error and exits. diff --git a/src/bin/dhcp4/location.hh b/src/bin/dhcp4/location.hh index 1f2986e43f..915e6678be 100644 --- a/src/bin/dhcp4/location.hh +++ b/src/bin/dhcp4/location.hh @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.5. +// A Bison parser, made by GNU Bison 3.5.1. // Locations for Bison parsers in C++ @@ -61,13 +61,11 @@ namespace isc { namespace dhcp { 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, + explicit position (std::string* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) : filename (f) @@ -77,7 +75,7 @@ namespace isc { namespace dhcp { /// Initialization. - void initialize (filename_type* fn = YY_NULLPTR, + void initialize (std::string* fn = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -106,7 +104,7 @@ namespace isc { namespace dhcp { /** \} */ /// File name to which this position refers. - filename_type* filename; + std::string* filename; /// Current line number. counter_type line; /// Current column number. @@ -149,6 +147,24 @@ namespace isc { namespace dhcp { 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 @@ -166,8 +182,6 @@ namespace isc { namespace dhcp { 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; @@ -184,7 +198,7 @@ namespace isc { namespace dhcp { {} /// Construct a 0-width location in \a f, \a l, \a c. - explicit location (filename_type* f, + explicit location (std::string* f, counter_type l = 1, counter_type c = 1) : begin (f, l, c) @@ -193,7 +207,7 @@ namespace isc { namespace dhcp { /// Initialization. - void initialize (filename_type* f = YY_NULLPTR, + void initialize (std::string* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -275,6 +289,20 @@ namespace isc { namespace dhcp { 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 @@ -301,6 +329,6 @@ namespace isc { namespace dhcp { #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 305 "location.hh" +#line 333 "location.hh" #endif // !YY_PARSER4_LOCATION_HH_INCLUDED diff --git a/src/bin/dhcp4/position.hh b/src/bin/dhcp4/position.hh index 2d3317f224..bf34c1c57a 100644 --- a/src/bin/dhcp4/position.hh +++ b/src/bin/dhcp4/position.hh @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.5. +// A Bison parser, made by GNU Bison 3.5.1. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined in "location.hh". diff --git a/src/bin/dhcp4/stack.hh b/src/bin/dhcp4/stack.hh index fe7f93f75b..c15d84c73d 100644 --- a/src/bin/dhcp4/stack.hh +++ b/src/bin/dhcp4/stack.hh @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.5. +// A Bison parser, made by GNU Bison 3.5.1. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined with the parser itself. diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index 3de363b960..d5c31cbd5f 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -1,6 +1,6 @@ -#line 1 "dhcp6_lexer.cc" +#line 2 "dhcp6_lexer.cc" -#line 3 "dhcp6_lexer.cc" +#line 4 "dhcp6_lexer.cc" #define YY_INT_ALIGNED short int @@ -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 213 -#define YY_END_OF_BUFFER 214 +#define YY_NUM_RULES 214 +#define YY_END_OF_BUFFER 215 /* 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[1953] = +static const flex_int16_t yy_accept[1970] = { 0, - 206, 206, 0, 0, 0, 0, 0, 0, 0, 0, - 214, 212, 10, 11, 212, 1, 206, 203, 206, 206, - 212, 205, 204, 212, 212, 212, 212, 212, 199, 200, - 212, 212, 212, 201, 202, 5, 5, 5, 212, 212, - 212, 10, 11, 0, 0, 194, 0, 0, 0, 0, + 207, 207, 0, 0, 0, 0, 0, 0, 0, 0, + 215, 213, 10, 11, 213, 1, 207, 204, 207, 207, + 213, 206, 205, 213, 213, 213, 213, 213, 200, 201, + 213, 213, 213, 202, 203, 5, 5, 5, 213, 213, + 213, 10, 11, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 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, 206, 206, - 0, 205, 206, 3, 2, 6, 0, 206, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 9, 0, 195, + 0, 0, 0, 0, 0, 0, 0, 1, 207, 207, + 0, 206, 207, 3, 2, 6, 0, 207, 0, 0, + 0, 0, 0, 0, 4, 0, 0, 9, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,201 +722,202 @@ static const flex_int16_t yy_accept[1953] = 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, 167, 0, 0, 168, 0, 0, 0, + 8, 0, 0, 168, 0, 0, 169, 0, 0, 0, - 0, 0, 0, 0, 196, 198, 0, 0, 0, 0, + 0, 0, 0, 0, 197, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 114, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 211, 209, 0, - 208, 207, 0, 0, 0, 0, 0, 166, 0, 28, - 0, 27, 0, 0, 121, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 212, 210, 0, + 209, 208, 0, 0, 0, 0, 0, 167, 0, 28, + 0, 27, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 118, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 210, 207, 0, 0, 0, 0, 29, 0, 31, - 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, - 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, - 0, 0, 0, 0, 0, 151, 0, 0, 0, 0, + 0, 211, 208, 0, 0, 0, 0, 29, 0, 31, + 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, + 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, + 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, 0, 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, 98, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, + 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 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, 146, 0, 171, 51, 0, + 0, 0, 0, 0, 0, 147, 0, 172, 51, 0, 56, 0, 0, 0, 0, 37, 34, 33, 0, 0, - 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, + 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, - 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, + 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, 0, 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, 136, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, + 0, 0, 0, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 110, + 0, 112, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 164, 134, 0, - 0, 0, 0, 0, 0, 0, 138, 52, 0, 0, + 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 165, 135, + 0, 0, 0, 0, 0, 0, 0, 139, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 140, 0, 60, 0, 0, 0, 0, 0, 0, + 0, 0, 141, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, - 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 154, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 57, 102, 0, 0, 0, 150, 0, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, + 0, 0, 57, 103, 0, 0, 0, 151, 0, 0, + 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, + 0, 193, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 0, 166, 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 153, 170, 0, 40, 0, 162, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 20, 0, 0, 0, 97, 0, 0, 0, + 0, 0, 164, 54, 0, 105, 0, 191, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 83, 0, 0, 0, 0, 0, 131, + 132, 0, 0, 0, 0, 0, 0, 0, 0, 101, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 98, 120, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 80, 0, 0, 0, 0, 0, 0, 17, 0, + 15, 0, 188, 187, 0, 0, 0, 70, 0, 0, + 0, 0, 0, 30, 0, 0, 0, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 181, 0, 0, 190, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 114, 0, 150, 0, 43, 0, 61, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, + 0, 0, 0, 0, 0, 0, 116, 81, 0, 0, + 158, 0, 0, 0, 0, 0, 149, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 110, 0, 0, 134, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, + 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 16, 0, 0, 165, 14, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 141, 0, + 0, 0, 0, 42, 0, 0, 0, 0, 69, 0, + 0, 0, 0, 0, 0, 144, 47, 0, 0, 0, + 71, 186, 38, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 45, 0, 0, 0, 44, + 0, 18, 0, 0, 0, 73, 0, 0, 0, 0, + 0, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 152, 169, 0, - 40, 0, 161, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, - 0, 0, 96, 0, 0, 0, 0, 0, 163, 54, - 0, 104, 0, 190, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, - 0, 0, 0, 0, 0, 130, 131, 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, 77, 0, 133, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 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, 187, 186, 0, - 0, 0, 69, 0, 0, 0, 0, 0, 30, 0, - 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 180, 0, 189, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 113, 0, 149, 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, 157, 0, 0, 0, 0, 0, - 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 109, 0, 0, 133, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 107, 0, 0, 0, 172, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 143, 47, - 0, 0, 0, 70, 185, 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, 135, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 76, 0, 132, 0, 0, - - 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 105, 0, 0, 0, 0, 0, 162, - 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, - 0, 95, 0, 0, 0, 0, 36, 0, 48, 0, + 0, 0, 106, 0, 0, 0, 0, 0, 163, 0, + 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, + 96, 0, 0, 0, 0, 36, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, - 0, 0, 0, 178, 0, 0, 0, 0, 147, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, + 0, 0, 0, 179, 0, 0, 0, 0, 148, 0, - 0, 0, 0, 0, 0, 0, 183, 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, 184, 0, - 13, 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, 184, 0, 0, 0, + 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 39, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, + 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 177, 0, 78, 0, 77, 0, 21, - 73, 0, 0, 0, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 189, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 178, 0, 79, 0, 78, + 0, 21, 74, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 106, 0, 0, 176, 0, 0, - 0, 0, 71, 0, 0, 0, 66, 0, 23, 0, - 122, 0, 0, 0, 94, 0, 0, 0, 0, 0, - 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, + 0, 65, 0, 0, 0, 130, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, + 177, 0, 0, 0, 0, 72, 0, 0, 0, 66, + 0, 23, 0, 123, 0, 0, 0, 95, 0, 0, + 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 49, 0, 0, 90, 0, - 0, 0, 182, 0, 0, 0, 0, 193, 75, 74, - 22, 0, 127, 144, 123, 0, 0, 0, 0, 86, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 0, 0, 91, 0, 0, 0, 0, 183, 0, - 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, - 179, 0, 88, 0, 81, 0, 0, 0, 0, 124, - 0, 0, 0, 173, 0, 0, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, - 0, 92, 0, 128, 84, 0, 0, 0, 0, 83, - 175, 0 + 0, 0, 0, 194, 76, 75, 22, 0, 128, 145, + 124, 0, 0, 0, 0, 87, 0, 0, 0, 67, + 0, 0, 0, 0, 175, 0, 0, 180, 0, 89, + 0, 82, 0, 0, 0, 0, 125, 0, 0, 0, + 174, 0, 0, 26, 0, 0, 0, 0, 0, 0, + 0, 0, 88, 0, 0, 0, 0, 0, 93, 0, + 129, 85, 0, 0, 0, 0, 84, 176, 0 } ; static const YY_CHAR yy_ec[256] = @@ -963,450 +964,454 @@ static const YY_CHAR yy_meta[74] = 1, 1, 1 } ; -static const flex_int16_t yy_base[1961] = +static const flex_int16_t yy_base[1978] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 2340, 2341, 34, 2336, 145, 0, 207, 2341, 214, 221, - 13, 228, 2341, 2316, 118, 25, 2, 6, 2341, 2341, - 73, 11, 17, 2341, 2341, 2341, 104, 2324, 2277, 0, - 2314, 108, 2331, 24, 256, 2341, 67, 2280, 2300, 84, - 75, 2300, 88, 226, 91, 89, 284, 196, 203, 279, - 193, 224, 216, 60, 242, 2280, 286, 288, 314, 300, - 319, 2263, 204, 324, 356, 329, 2282, 0, 380, 400, - 420, 427, 406, 2341, 0, 2341, 385, 443, 238, 241, - 310, 269, 299, 314, 2341, 2279, 2320, 2341, 405, 2341, + 2356, 2357, 34, 2352, 145, 0, 207, 2357, 214, 221, + 13, 228, 2357, 2332, 118, 25, 2, 6, 2357, 2357, + 73, 11, 17, 2357, 2357, 2357, 104, 2340, 2293, 0, + 2330, 108, 2347, 24, 256, 2357, 67, 2296, 2316, 84, + 75, 2316, 88, 226, 91, 89, 284, 196, 203, 279, + 193, 224, 216, 60, 242, 2296, 286, 288, 314, 300, + 319, 2279, 204, 324, 356, 329, 2298, 0, 380, 400, + 420, 427, 406, 2357, 0, 2357, 385, 443, 238, 241, + 310, 269, 299, 314, 2357, 2295, 2336, 2357, 405, 2357, - 419, 400, 2277, 2318, 326, 10, 262, 407, 224, 409, - 352, 206, 2317, 0, 480, 412, 2259, 415, 2267, 406, - 2263, 2252, 2253, 2258, 442, 2268, 2251, 2260, 327, 431, - 226, 2254, 2252, 452, 2241, 2299, 399, 2244, 2297, 2237, - 2260, 2257, 2257, 2251, 339, 2244, 2242, 2243, 2235, 2240, - 2234, 414, 2245, 2238, 2229, 2228, 2242, 454, 2280, 2227, - 450, 2239, 421, 2227, 476, 2228, 480, 2240, 2237, 2238, - 293, 2236, 2271, 2270, 439, 2216, 2216, 2220, 2216, 2208, - 2225, 2217, 0, 447, 484, 401, 457, 489, 498, 2216, - 2341, 509, 2211, 2341, 498, 504, 2341, 2265, 515, 2264, + 419, 400, 2293, 2334, 326, 10, 262, 407, 224, 409, + 352, 206, 2333, 0, 480, 412, 2275, 415, 2283, 406, + 2279, 2268, 2269, 2274, 442, 2284, 2267, 2276, 327, 431, + 226, 2270, 2268, 452, 2257, 2315, 399, 2260, 2313, 2253, + 2276, 2273, 2273, 2267, 339, 2260, 2258, 2259, 2251, 2256, + 2250, 414, 2261, 2254, 2245, 2244, 2258, 454, 2296, 2243, + 450, 2255, 421, 2243, 476, 2244, 480, 2256, 2253, 2254, + 293, 2252, 2287, 2286, 439, 2232, 2232, 2236, 2232, 2224, + 2241, 2233, 0, 447, 484, 401, 457, 489, 498, 2232, + 2357, 509, 2227, 2357, 498, 504, 2357, 2281, 515, 2280, - 517, 2263, 513, 2262, 2341, 2341, 559, 2261, 533, 2220, - 2212, 2216, 2217, 2212, 2211, 2202, 529, 2253, 2247, 2211, - 2192, 2189, 2197, 2203, 2191, 2205, 2201, 2202, 2202, 2197, - 2189, 2191, 2175, 2179, 2192, 2194, 2191, 2183, 2173, 2176, - 2190, 2341, 2176, 2184, 80, 2169, 2168, 2220, 2167, 2177, - 2217, 490, 2176, 2215, 2160, 2162, 2173, 2211, 531, 2215, - 2150, 2165, 538, 2155, 2161, 2170, 2151, 2149, 2152, 2148, - 2154, 2145, 2144, 2157, 2150, 2140, 2151, 2155, 2154, 2148, - 220, 2155, 2150, 2142, 2132, 2147, 2142, 2146, 497, 2144, - 2130, 2136, 2143, 2125, 2126, 2129, 2126, 2125, 555, 2120, + 517, 2279, 513, 2278, 2357, 2357, 559, 2277, 533, 2236, + 2228, 2232, 2233, 2228, 2227, 2218, 529, 2269, 2263, 2227, + 2208, 2205, 2213, 2219, 2207, 2221, 2217, 2218, 2218, 2213, + 2205, 2207, 2191, 2195, 2208, 2210, 2207, 2199, 2189, 2192, + 2206, 2357, 2192, 2200, 80, 2185, 2184, 2236, 2183, 2193, + 2233, 490, 2192, 2231, 2176, 2178, 2189, 2227, 531, 2231, + 2166, 2181, 538, 2171, 2177, 2186, 2167, 2165, 2168, 2164, + 2170, 2161, 2160, 2173, 2166, 2156, 2167, 2171, 2170, 2164, + 220, 2171, 2166, 2158, 2148, 2163, 2158, 2162, 497, 2160, + 2146, 2152, 2159, 2141, 2142, 2145, 2142, 2141, 555, 2136, - 2134, 2133, 2132, 2135, 2117, 2125, 541, 2341, 2341, 542, - 2341, 2341, 2112, 519, 2159, 551, 2170, 2341, 535, 2341, - 2169, 2341, 2163, 597, 2341, 530, 2103, 2122, 2105, 2122, - 2110, 2162, 2117, 2112, 2115, 2110, 556, 2341, 2112, 584, - 2151, 2109, 2106, 2107, 542, 2111, 2151, 2099, 2094, 2091, - 2087, 2089, 2140, 2097, 2086, 2102, 2136, 2082, 620, 2095, - 2095, 2078, 2079, 2092, 2090, 2078, 2088, 2083, 2090, 2085, - 2070, 566, 2079, 2082, 2077, 536, 2076, 2072, 2122, 579, - 569, 2341, 2116, 2066, 2065, 2058, 2060, 2072, 2063, 2052, - 2069, 2058, 2063, 590, 2110, 2063, 584, 2060, 2063, 2063, + 2150, 2149, 2148, 2151, 2133, 2141, 541, 2357, 2357, 542, + 2357, 2357, 2128, 519, 2175, 551, 2186, 2357, 535, 2357, + 2185, 2357, 2179, 597, 2357, 530, 2119, 2138, 2121, 2138, + 2126, 2178, 2133, 2128, 2131, 2126, 556, 2357, 2128, 584, + 2167, 2125, 2122, 2123, 542, 2127, 2167, 2115, 2110, 2107, + 2103, 2105, 2156, 2113, 2102, 2118, 2152, 2098, 620, 2111, + 2111, 2094, 2095, 2108, 2106, 2094, 2104, 2099, 2106, 2101, + 2086, 566, 2095, 2098, 2093, 536, 2092, 2088, 2138, 579, + 569, 2357, 2132, 2082, 2081, 2074, 2076, 2088, 2079, 2068, + 2085, 2074, 2079, 590, 2126, 2079, 584, 2076, 2079, 2079, - 2061, 2050, 2050, 2062, 576, 2037, 2038, 2059, 587, 2041, - 2038, 2052, 2055, 2050, 2036, 2048, 2047, 2046, 2041, 2044, - 2043, 2042, 2041, 432, 2084, 2043, 2082, 2081, 2023, 644, - 2036, 2341, 2341, 2035, 600, 2077, 2076, 2341, 2075, 2341, - 617, 671, 606, 2074, 2068, 2021, 2023, 2011, 2341, 2016, - 2022, 2025, 2008, 2023, 2010, 2009, 2341, 2019, 605, 2010, - 2007, 2019, 604, 2004, 2006, 2341, 2012, 1997, 1999, 2010, - 2008, 2003, 650, 2010, 1998, 1991, 2042, 2341, 1989, 2005, - 2039, 2043, 1999, 1993, 1995, 1996, 1980, 1997, 2031, 1982, - 1977, 1976, 1978, 1974, 1970, 602, 1989, 1963, 1970, 1975, + 2077, 2066, 2066, 2078, 576, 2053, 2054, 2075, 587, 2057, + 2054, 2068, 2071, 2066, 2052, 2064, 2063, 2062, 2057, 2060, + 2059, 2058, 2057, 432, 2100, 2059, 2098, 2097, 2039, 644, + 2052, 2357, 2357, 2051, 600, 2093, 2092, 2357, 2091, 2357, + 617, 671, 606, 2090, 2084, 2037, 2039, 2027, 2357, 2032, + 2038, 2041, 2024, 2039, 2026, 2025, 2357, 2035, 605, 2026, + 2023, 2035, 604, 2020, 2022, 2357, 2028, 2013, 2015, 2026, + 2024, 2019, 650, 2026, 2014, 2007, 2058, 2357, 2005, 2021, + 2055, 2059, 2015, 2009, 2011, 2012, 1996, 2013, 2047, 1998, + 1993, 1992, 1994, 1990, 1986, 602, 2005, 1979, 1986, 1991, - 1968, 1984, 2018, 2022, 2341, 1967, 1963, 2019, 1970, 1964, - 1971, 1956, 1966, 1954, 1968, 1957, 1953, 1955, 1950, 2341, - 2007, 2341, 1949, 1948, 1941, 1958, 1997, 1996, 1941, 1946, - 1955, 1949, 1943, 1952, 652, 1989, 1951, 1934, 1934, 1929, - 1925, 1931, 1936, 1929, 1937, 1941, 1924, 1982, 1923, 1975, - 1920, 1921, 1920, 1932, 1921, 2341, 1931, 2341, 2341, 1920, - 2341, 1930, 1966, 1926, 1969, 2341, 2341, 2341, 640, 639, - 666, 2341, 617, 1928, 1908, 1961, 1906, 1959, 1904, 1903, - 1902, 1909, 1902, 1910, 1913, 1895, 1895, 1910, 1909, 619, - 1908, 1907, 1891, 1906, 1888, 1935, 1902, 1940, 1884, 1886, + 1984, 2000, 2034, 2038, 2357, 1983, 1979, 2035, 1986, 1980, + 1987, 1972, 1982, 1970, 1984, 1973, 1969, 1971, 1966, 2357, + 2023, 2357, 1965, 1964, 1957, 1974, 2013, 2012, 1957, 1962, + 1971, 1965, 1959, 1968, 652, 2005, 1967, 1950, 1950, 1945, + 1941, 1947, 1952, 1945, 1953, 1957, 1940, 1998, 1939, 1991, + 1936, 1937, 1936, 1948, 1937, 2357, 1947, 2357, 2357, 1936, + 2357, 1946, 1982, 1942, 1985, 2357, 2357, 2357, 640, 639, + 666, 2357, 617, 1944, 1924, 1977, 1922, 1975, 1920, 1919, + 1918, 1925, 1918, 1926, 1929, 1911, 1911, 1926, 1925, 619, + 1924, 1923, 1907, 1922, 1904, 1951, 1918, 1956, 1900, 1902, - 1898, 1898, 1897, 2341, 1882, 1879, 1937, 1892, 1884, 1890, - 1881, 1889, 2341, 1874, 1885, 1889, 1871, 1883, 1884, 568, - 1866, 1860, 1865, 1862, 1877, 1876, 1877, 1856, 1866, 1872, - 1915, 1870, 1869, 1861, 1852, 2341, 1853, 1855, 2341, 1863, - 1902, 1901, 16, 1862, 1899, 1844, 1845, 1848, 1849, 1840, - 2341, 1854, 1840, 695, 1832, 1836, 1852, 1849, 1841, 1886, - 1838, 1845, 1883, 2341, 1829, 1827, 1841, 1825, 1839, 1842, - 1876, 1875, 1874, 1873, 1818, 1871, 1870, 2341, 1815, 1829, - 675, 1830, 1829, 1826, 1826, 1863, 1823, 1812, 1814, 2341, - 2341, 666, 663, 1806, 1823, 1815, 1802, 1796, 1817, 1858, + 1914, 1914, 1913, 2357, 1898, 1895, 1953, 1908, 1900, 1906, + 1897, 1905, 2357, 1890, 1901, 1905, 1887, 1899, 1900, 568, + 1882, 1876, 1881, 1878, 1893, 1892, 1893, 1872, 1882, 1888, + 1931, 1886, 1885, 1877, 1868, 2357, 1869, 1871, 2357, 1879, + 1918, 1917, 16, 1878, 1915, 1860, 1861, 1864, 1865, 1856, + 2357, 1870, 1856, 695, 1848, 1852, 1868, 1865, 1857, 1902, + 1854, 1861, 1899, 2357, 1845, 1843, 1857, 1841, 1855, 1858, + 1892, 1891, 1890, 1889, 1834, 1887, 1886, 2357, 1831, 1845, + 675, 1846, 1845, 1842, 1842, 1879, 1839, 1828, 1830, 2357, + 2357, 666, 663, 1822, 1839, 1831, 1818, 1812, 1833, 1874, - 656, 1852, 1812, 1850, 1849, 1801, 1795, 1798, 1806, 1809, - 1793, 1794, 1803, 1801, 1783, 1838, 1798, 1788, 1796, 1834, - 1795, 650, 1786, 1784, 92, 209, 269, 294, 313, 2341, - 502, 498, 554, 609, 614, 641, 638, 661, 660, 648, - 664, 662, 677, 674, 719, 720, 664, 677, 663, 673, - 721, 680, 729, 2341, 730, 686, 684, 686, 682, 676, - 731, 694, 683, 2341, 686, 697, 686, 699, 701, 745, - 688, 747, 690, 705, 2341, 699, 693, 704, 689, 700, + 656, 1868, 1828, 1866, 1865, 1817, 1811, 1814, 1822, 1825, + 1809, 1810, 1819, 1817, 1799, 1854, 1814, 1804, 1812, 1850, + 680, 650, 1803, 1805, 1805, 20, 135, 170, 225, 2357, + 296, 309, 486, 502, 572, 609, 606, 644, 659, 647, + 661, 661, 669, 673, 718, 719, 663, 676, 662, 673, + 721, 680, 729, 2357, 730, 686, 684, 686, 682, 676, + 731, 694, 683, 2357, 686, 697, 686, 699, 701, 745, + 688, 747, 690, 705, 2357, 699, 693, 704, 689, 700, 713, 692, 698, 753, 717, 701, 701, 714, 758, 759, 760, 707, 725, 720, 727, 722, 707, 719, 720, 726, - 713, 2341, 778, 736, 738, 728, 740, 730, 743, 734, - 740, 784, 760, 747, 729, 736, 750, 795, 745, 2341, + 713, 2357, 778, 736, 738, 728, 740, 730, 743, 734, + 740, 784, 760, 747, 729, 736, 750, 795, 745, 2357, 743, 758, 755, 741, 748, 747, 745, 764, 761, 762, 750, 757, 758, 767, 771, 807, 769, 759, 772, 758, - 757, 764, 820, 761, 762, 768, 784, 767, 821, 776, - 2341, 786, 786, 779, 790, 788, 833, 775, 777, 792, - 793, 781, 779, 841, 798, 784, 787, 2341, 2341, 803, - 802, 803, 808, 796, 806, 808, 2341, 2341, 808, 810, - 797, 815, 802, 800, 818, 805, 805, 856, 803, 807, - 865, 2341, 866, 2341, 811, 825, 825, 870, 818, 817, + 757, 764, 777, 821, 762, 763, 769, 785, 768, 822, + 777, 2357, 787, 787, 780, 791, 789, 834, 776, 778, + 793, 794, 782, 780, 842, 799, 785, 788, 2357, 2357, + 804, 803, 804, 809, 797, 807, 809, 2357, 2357, 809, + 811, 798, 816, 803, 801, 819, 806, 806, 857, 804, + 808, 866, 2357, 867, 2357, 812, 826, 826, 871, 819, - 821, 815, 875, 828, 818, 819, 815, 825, 829, 840, - 824, 842, 837, 839, 832, 834, 835, 847, 837, 852, - 893, 850, 855, 832, 855, 839, 2341, 846, 847, 861, - 852, 850, 900, 847, 862, 880, 888, 857, 906, 868, - 908, 2341, 874, 862, 857, 858, 870, 877, 866, 867, - 863, 881, 867, 868, 878, 887, 923, 870, 888, 880, - 876, 929, 936, 893, 884, 2341, 888, 896, 898, 883, - 899, 889, 901, 895, 942, 908, 892, 893, 2341, 909, - 912, 895, 897, 955, 898, 917, 2341, 916, 919, 900, - 918, 906, 959, 917, 913, 910, 963, 912, 965, 927, + 818, 822, 816, 876, 829, 819, 820, 816, 826, 830, + 841, 825, 843, 838, 840, 833, 835, 836, 848, 838, + 853, 894, 851, 856, 833, 856, 840, 2357, 847, 848, + 862, 853, 851, 901, 848, 863, 881, 889, 858, 907, + 869, 909, 2357, 875, 863, 858, 859, 871, 878, 867, + 868, 864, 882, 868, 869, 879, 888, 924, 871, 889, + 881, 877, 930, 937, 894, 885, 893, 2357, 890, 898, + 900, 885, 901, 891, 903, 897, 944, 910, 894, 895, + 2357, 911, 914, 897, 899, 957, 900, 919, 2357, 918, + 921, 902, 920, 908, 961, 919, 915, 912, 965, 914, - 913, 931, 930, 916, 931, 923, 919, 937, 936, 923, - 2341, 2341, 931, 978, 931, 2341, 939, 942, 935, 988, - 2341, 937, 943, 987, 938, 939, 951, 945, 949, 947, - 945, 956, 1001, 945, 950, 1004, 1005, 949, 961, 2341, - 949, 957, 955, 1006, 968, 955, 956, 965, 977, 964, - 962, 976, 977, 993, 998, 980, 985, 968, 968, 970, - 970, 990, 989, 980, 969, 986, 993, 1036, 978, 998, - 991, 995, 999, 982, 999, 990, 1045, 992, 996, 2341, - 1043, 992, 993, 993, 1014, 1011, 1051, 1000, 1018, 1019, - 1005, 1013, 1022, 1002, 1017, 1024, 1066, 1067, 2341, 1020, + 967, 929, 915, 933, 932, 918, 933, 925, 921, 939, + 938, 925, 2357, 2357, 933, 980, 933, 2357, 941, 944, + 937, 990, 2357, 939, 945, 989, 940, 941, 953, 947, + 951, 949, 947, 958, 1003, 947, 952, 1006, 1007, 951, + 963, 2357, 951, 959, 957, 1008, 970, 957, 958, 967, + 979, 966, 964, 978, 979, 995, 1000, 982, 987, 970, + 970, 972, 972, 992, 991, 982, 971, 988, 995, 1038, + 980, 1000, 993, 997, 1001, 984, 1001, 992, 1047, 994, + 998, 2357, 1045, 994, 1012, 996, 996, 1017, 1014, 1054, + 1003, 1021, 1022, 1008, 1016, 1025, 1005, 1020, 1027, 1069, - 1069, 1070, 1012, 1022, 1032, 1035, 1018, 1020, 1020, 1027, - 1036, 1024, 1031, 1026, 1033, 1045, 1086, 1033, 1032, 1049, - 1090, 1040, 1044, 1042, 1040, 1035, 1096, 1097, 1047, 1099, - 1095, 1101, 1054, 2341, 1059, 1052, 1043, 1062, 1056, 1051, - 1061, 1058, 1063, 1059, 1071, 2341, 1056, 1058, 2341, 2341, - 1058, 1118, 1057, 1076, 1077, 1079, 1070, 1124, 1125, 1078, - 1063, 1077, 1085, 1067, 1072, 1111, 1102, 1134, 1089, 1089, - 1093, 1080, 1082, 1099, 1094, 1098, 1143, 1091, 1095, 2341, - 1092, 1088, 1105, 1085, 1106, 1096, 1147, 1100, 2341, 1113, - 1112, 1115, 1099, 1111, 1116, 1103, 1163, 1116, 1121, 1108, + 1070, 2357, 1023, 1072, 1073, 1015, 1025, 1035, 1038, 1021, + 1023, 1023, 1030, 1039, 1027, 1034, 1029, 1036, 1048, 1089, + 1036, 1035, 1052, 1093, 1043, 1047, 1045, 1043, 1038, 1099, + 1100, 1050, 1102, 1098, 1104, 1057, 2357, 1062, 1055, 1046, + 1065, 1059, 1054, 1064, 1061, 1066, 1062, 1074, 2357, 1059, + 1061, 2357, 2357, 1061, 1121, 1060, 1079, 1080, 1082, 1073, + 1127, 1128, 1081, 1066, 1080, 1088, 1070, 1075, 1114, 1105, + 1137, 1092, 1092, 1096, 1083, 1085, 1102, 1097, 1101, 1146, + 1094, 1098, 2357, 1095, 1091, 1108, 1088, 1109, 1099, 1150, + 1103, 2357, 1116, 1115, 1118, 1102, 1107, 1115, 1121, 1107, - 1119, 1111, 1117, 1113, 1131, 1132, 1133, 2341, 2341, 1131, - 2341, 1133, 2341, 1118, 1129, 1120, 1139, 1129, 1181, 1138, - 1135, 1179, 1143, 1132, 1139, 1144, 1141, 1147, 2341, 1140, - 1132, 1193, 2341, 1194, 1141, 1148, 1192, 1154, 2341, 2341, - 1151, 2341, 1142, 2341, 1142, 1145, 1159, 1164, 1147, 1158, - 1207, 1164, 1165, 1166, 1206, 1162, 1213, 1166, 1215, 2341, - 1162, 1217, 1218, 1175, 1177, 2341, 2341, 1160, 1222, 1218, - 1182, 1166, 1178, 1197, 1228, 2341, 1185, 1176, 1187, 1232, - 1179, 1194, 1230, 1182, 2341, 1178, 1194, 1182, 1196, 1197, - 1194, 1238, 1201, 1191, 1201, 1207, 1195, 1195, 1250, 1246, + 1167, 1120, 1125, 1112, 1123, 1115, 1121, 1117, 1135, 1136, + 1137, 2357, 2357, 1135, 2357, 1137, 2357, 1122, 1133, 1124, + 1143, 1133, 1185, 1142, 1139, 1183, 1147, 1136, 1143, 1148, + 1145, 1151, 2357, 1144, 1136, 1197, 2357, 1198, 1145, 1152, + 1196, 1158, 2357, 2357, 1155, 2357, 1146, 2357, 1146, 1149, + 1163, 1168, 1151, 1162, 1211, 1168, 1169, 1170, 1210, 1166, + 1217, 1170, 1219, 2357, 1166, 1221, 1222, 1179, 1181, 2357, + 2357, 1164, 1226, 1222, 1186, 1170, 1182, 1201, 1232, 2357, + 1189, 1180, 1191, 1236, 1183, 1198, 1234, 1186, 2357, 1182, + 1198, 1186, 1200, 1201, 1198, 1242, 1205, 1195, 1205, 1211, - 1252, 1209, 2341, 1211, 1211, 1213, 1206, 1215, 1216, 1213, - 1203, 1206, 1207, 1266, 1213, 1268, 1215, 1270, 1213, 1272, - 2341, 1230, 1209, 1224, 1218, 1221, 1234, 1237, 1236, 1234, - 1284, 1237, 2341, 2341, 1233, 1243, 1228, 1284, 1245, 1231, - 1292, 1293, 1237, 1247, 1296, 1253, 2341, 1245, 1245, 1247, - 1249, 1302, 1245, 2341, 1246, 2341, 1248, 2341, 2341, 1261, - 1264, 1265, 2341, 1252, 1260, 1312, 1261, 1293, 2341, 1315, - 1265, 1312, 2341, 1260, 1268, 1262, 1259, 1262, 1265, 1265, - 1261, 1283, 1322, 1275, 1287, 1290, 1278, 1281, 1274, 1334, - 1282, 2341, 1277, 2341, 1280, 1339, 1292, 1283, 1298, 1298, + 1199, 1199, 1254, 1250, 1251, 1257, 1214, 2357, 1217, 1216, + 1218, 1211, 1220, 1221, 1218, 1208, 1212, 1212, 1271, 1218, + 1273, 1220, 1275, 1218, 1277, 2357, 1235, 1214, 1230, 1223, + 1226, 1239, 1242, 1241, 1239, 1288, 1242, 2357, 2357, 1238, + 1248, 1233, 1289, 1250, 1236, 1297, 1298, 1242, 1252, 1301, + 1258, 2357, 1250, 1250, 1252, 1254, 1307, 1250, 2357, 1251, + 2357, 1253, 2357, 2357, 1266, 1269, 1270, 2357, 1257, 1265, + 1317, 1266, 1298, 2357, 1320, 1270, 1317, 2357, 1265, 1273, + 1267, 1264, 1267, 1270, 1270, 1266, 1288, 1327, 1280, 1292, + 1295, 1283, 1286, 1279, 1339, 1287, 2357, 1287, 1284, 2357, - 1301, 1301, 1298, 1342, 1304, 2341, 1296, 2341, 1297, 2341, - 1307, 2341, 1347, 1309, 1310, 1307, 1351, 1299, 1314, 1354, - 1316, 1308, 2341, 1305, 1305, 1311, 1310, 1308, 1323, 1323, - 2341, 2341, 1364, 1311, 2341, 1328, 1313, 1313, 1315, 1321, - 2341, 1330, 1377, 1320, 1330, 1341, 1339, 1383, 1337, 1346, - 2341, 1343, 1362, 2341, 1346, 1331, 1391, 1392, 1349, 1354, - 1336, 1396, 1397, 1398, 1394, 1358, 1355, 1351, 1344, 1399, - 1357, 1358, 2341, 1348, 1361, 1409, 2341, 1347, 1407, 1370, - 1366, 1411, 1359, 1364, 1362, 1421, 1377, 1365, 1424, 1374, - 1426, 1387, 1376, 1370, 1430, 1372, 1381, 1374, 1388, 1391, + 1286, 1345, 1298, 1289, 1304, 1304, 1307, 1307, 1304, 1348, + 1310, 2357, 1302, 2357, 1303, 2357, 1313, 2357, 1353, 1315, + 1316, 1313, 1357, 1305, 1320, 1360, 1322, 1314, 2357, 1311, + 1311, 1317, 1316, 1314, 1329, 1329, 2357, 2357, 1370, 1317, + 2357, 1334, 1319, 1319, 1321, 1327, 2357, 1336, 1383, 1326, + 1336, 1347, 1345, 1389, 1343, 1352, 2357, 1349, 1368, 2357, + 1352, 1337, 1397, 1398, 1355, 1360, 1342, 1402, 1403, 1404, + 1400, 1364, 1361, 1357, 1350, 1405, 1363, 1364, 2357, 1354, + 1361, 1368, 1416, 2357, 1355, 1414, 1377, 1374, 1418, 1366, + 1371, 1369, 1428, 1384, 1372, 1431, 1381, 1433, 1394, 1383, - 1436, 1378, 1395, 1391, 1381, 1396, 1380, 1438, 1439, 1440, - 1387, 1442, 1405, 1398, 1397, 1391, 2341, 1408, 1395, 1394, - 1450, 2341, 1391, 1409, 1458, 1428, 1460, 1413, 2341, 2341, - 1404, 1415, 1464, 2341, 2341, 2341, 1410, 1415, 1413, 1463, - 1421, 1426, 1414, 1430, 1419, 1417, 1418, 2341, 1476, 1422, - 1473, 1417, 1423, 1483, 1431, 1441, 1442, 2341, 1488, 1441, - 1485, 2341, 1443, 2341, 1434, 1449, 1437, 2341, 1447, 1448, - 1449, 1498, 1456, 2341, 1495, 1461, 1437, 1455, 1456, 1465, - 1447, 1453, 1455, 1509, 1468, 1467, 1458, 1508, 1455, 1462, - 1516, 1466, 1470, 1475, 1468, 2341, 1521, 2341, 1470, 1523, + 1377, 1437, 1379, 1388, 1381, 1395, 1398, 1443, 1385, 1402, + 1398, 1388, 1403, 1387, 1445, 1446, 1447, 1394, 1449, 1412, + 1405, 1404, 1398, 2357, 1415, 1402, 1401, 1457, 2357, 1398, + 1416, 1465, 1435, 1467, 1420, 2357, 2357, 1411, 1422, 1471, + 2357, 2357, 2357, 1417, 1422, 1420, 1470, 1428, 1433, 1421, + 1437, 1426, 1424, 1477, 1426, 2357, 1484, 1430, 1482, 1425, + 1431, 1491, 1439, 1449, 1451, 2357, 1496, 1449, 1493, 2357, + 1451, 2357, 1442, 1457, 1445, 2357, 1455, 1456, 1457, 1506, + 1464, 2357, 1503, 1469, 1445, 1463, 1464, 1473, 1455, 1461, + 1463, 1517, 1476, 1475, 1466, 1516, 1463, 1470, 1524, 1474, - 1465, 2341, 1468, 1478, 1522, 1470, 1485, 1472, 1487, 1473, - 1480, 1480, 1491, 2341, 1485, 1480, 1479, 1539, 1492, 2341, - 1536, 1487, 1484, 2341, 1498, 1485, 1501, 1503, 1548, 1501, - 1498, 1506, 1500, 2341, 1553, 1494, 1496, 1512, 1505, 1495, - 1511, 1512, 1506, 1522, 2341, 1512, 1564, 1524, 1508, 1562, - 1526, 2341, 1510, 1517, 1571, 1567, 2341, 1529, 2341, 1569, - 1531, 1532, 1517, 1518, 1526, 1580, 1528, 1577, 1578, 1533, - 1545, 1542, 1533, 1540, 2341, 1537, 1542, 1540, 1592, 1593, - 1541, 1551, 1538, 2341, 1553, 1554, 1555, 1556, 2341, 1546, - 1558, 1603, 1560, 1605, 1547, 1555, 1549, 1557, 1570, 2341, + 1478, 1483, 1476, 2357, 1529, 2357, 1478, 1531, 1473, 2357, + 1476, 1486, 1530, 1478, 1493, 1480, 1495, 1481, 1488, 1488, + 1500, 1500, 2357, 1494, 1489, 1488, 1548, 1501, 2357, 1545, + 1496, 1493, 2357, 1507, 1494, 1510, 1512, 1557, 1510, 1507, + 1515, 1509, 2357, 1562, 1503, 1505, 1521, 1514, 1504, 1520, + 1521, 1515, 1531, 2357, 1521, 1573, 1533, 1517, 1571, 1535, + 2357, 1519, 1526, 1580, 1576, 2357, 1538, 2357, 1578, 1540, + 1541, 1526, 1527, 1535, 1589, 1537, 1586, 1587, 1542, 1553, + 1555, 1552, 1543, 1550, 2357, 1547, 1552, 1550, 1602, 1603, + 1551, 1561, 1548, 2357, 1563, 1564, 1565, 1566, 2357, 1556, - 1571, 1552, 1559, 1550, 1610, 1571, 2341, 1575, 1560, 1560, - 1575, 1568, 1567, 1578, 1565, 2341, 1581, 1569, 1572, 1628, - 1586, 1577, 1589, 1580, 1589, 1591, 1595, 2341, 2341, 1588, - 1578, 1638, 1581, 1640, 1582, 1642, 1600, 1644, 2341, 1645, - 2341, 1641, 1603, 1600, 1605, 1592, 1600, 1611, 1608, 1654, - 1597, 1602, 1593, 1658, 1611, 1612, 1602, 1619, 1618, 1659, - 1603, 1622, 1623, 2341, 1620, 1669, 1626, 1627, 1672, 1629, - 1632, 1619, 1628, 2341, 1677, 2341, 1630, 2341, 1639, 2341, - 2341, 1621, 1681, 1628, 1683, 1626, 1685, 1633, 1682, 2341, - 1648, 1689, 1648, 2341, 1639, 1629, 1688, 1654, 1647, 1643, + 1568, 1613, 1570, 1615, 1557, 1565, 1559, 1567, 1580, 2357, + 1581, 1562, 1569, 1560, 1620, 1581, 2357, 1585, 1570, 1570, + 1585, 1578, 1577, 1588, 1575, 2357, 1591, 1579, 1582, 1638, + 1634, 1597, 1588, 1600, 1591, 1600, 1602, 1606, 2357, 2357, + 1599, 1589, 1649, 1592, 1651, 1593, 1653, 1611, 1655, 2357, + 1656, 2357, 1652, 1614, 1611, 1616, 1603, 1611, 1622, 1619, + 1665, 1608, 1613, 1604, 1669, 1622, 1623, 1613, 1630, 1629, + 1670, 1614, 1633, 1634, 2357, 1628, 1632, 1681, 1638, 1639, + 1684, 1641, 1644, 1631, 1640, 2357, 1689, 2357, 1642, 2357, + 1651, 2357, 2357, 1633, 1693, 1640, 1695, 1638, 1697, 1645, - 1697, 1640, 1642, 1647, 2341, 1643, 1645, 2341, 1650, 1660, - 1645, 1654, 2341, 1655, 1649, 1661, 2341, 1657, 2341, 1667, - 2341, 1668, 1658, 1662, 2341, 1664, 1672, 1717, 1658, 1660, - 1657, 1681, 2341, 1668, 1675, 1678, 1667, 1721, 1668, 1676, - 1685, 1686, 1687, 1688, 1681, 1676, 1677, 1677, 1683, 1683, - 1695, 1740, 2341, 1686, 1698, 1743, 1692, 1694, 1692, 1747, - 1700, 1687, 1702, 1707, 1752, 1753, 1754, 1755, 1712, 1757, - 1758, 1759, 1706, 1710, 1704, 2341, 1720, 1764, 2341, 1721, - 1706, 1724, 2341, 1715, 1729, 1725, 1718, 2341, 2341, 2341, - 2341, 1772, 2341, 2341, 2341, 1722, 1730, 1775, 1736, 2341, + 1694, 2357, 1660, 1701, 1660, 2357, 1651, 1641, 1700, 1666, + 1659, 1655, 1709, 1652, 1654, 1658, 1660, 2357, 1656, 1658, + 2357, 1663, 1673, 1658, 1667, 2357, 1668, 1662, 1674, 2357, + 1670, 2357, 1680, 2357, 1681, 1671, 1675, 2357, 1677, 1685, + 1730, 1671, 1673, 1670, 1694, 2357, 1681, 1688, 1679, 1692, + 1681, 1735, 1682, 1690, 1699, 1700, 1701, 1702, 1695, 1690, + 1691, 1691, 1697, 1697, 1709, 1754, 2357, 1700, 1712, 1757, + 1706, 1708, 1706, 1703, 1762, 1715, 1702, 1717, 1722, 1767, + 1768, 1769, 1770, 1727, 1772, 1773, 1774, 1721, 1725, 1719, + 2357, 1735, 1779, 2357, 1736, 1721, 1739, 1783, 2357, 1731, - 1777, 1719, 1779, 1734, 1733, 1734, 1724, 2341, 1784, 1780, - 2341, 1727, 2341, 1739, 2341, 1788, 1730, 1746, 1791, 2341, - 1752, 1749, 1741, 2341, 1791, 1740, 2341, 1752, 1745, 1800, - 1748, 1743, 1745, 1760, 1745, 2341, 1806, 1759, 1808, 1809, - 1757, 2341, 1759, 2341, 2341, 1753, 1769, 1814, 1815, 2341, - 2341, 2341, 1821, 1824, 1827, 1828, 1830, 1833, 1836, 1839 + 1745, 1741, 1734, 2357, 2357, 2357, 2357, 1788, 2357, 2357, + 2357, 1738, 1746, 1791, 1752, 2357, 1793, 1735, 1795, 2357, + 1750, 1749, 1750, 1740, 2357, 1800, 1796, 2357, 1743, 2357, + 1755, 2357, 1804, 1746, 1762, 1807, 2357, 1768, 1765, 1757, + 2357, 1807, 1756, 2357, 1768, 1761, 1816, 1764, 1759, 1761, + 1776, 1761, 2357, 1822, 1775, 1824, 1825, 1773, 2357, 1775, + 2357, 2357, 1769, 1785, 1830, 1831, 2357, 2357, 2357, 1837, + 1840, 1843, 1844, 1846, 1849, 1852, 1855 } ; -static const flex_int16_t yy_def[1961] = +static const flex_int16_t yy_def[1978] = { 0, - 1953, 1953, 1954, 1954, 1953, 1953, 1953, 1953, 1953, 1953, - 1952, 1952, 1952, 1952, 1952, 1955, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1956, - 1952, 1952, 1952, 1957, 15, 1952, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1958, 45, 45, 45, + 1970, 1970, 1971, 1971, 1970, 1970, 1970, 1970, 1970, 1970, + 1969, 1969, 1969, 1969, 1969, 1972, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1973, + 1969, 1969, 1969, 1974, 15, 1969, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1975, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1955, 1952, 1952, - 1952, 1952, 1952, 1952, 1959, 1952, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952, 1952, 1952, 1956, 1952, 1957, 1952, + 45, 45, 45, 45, 45, 45, 45, 1972, 1969, 1969, + 1969, 1969, 1969, 1969, 1976, 1969, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1973, 1969, 1974, 1969, - 1952, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1960, 45, 1958, 45, 45, 45, 45, 45, + 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1977, 45, 1975, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1959, 1952, 1952, 1952, 1952, 1952, 1952, 1952, - 1952, 45, 45, 1952, 45, 45, 1952, 45, 45, 45, + 45, 45, 1976, 1969, 1969, 1969, 1969, 1969, 1969, 1969, + 1969, 45, 45, 1969, 45, 45, 1969, 45, 45, 45, - 45, 45, 45, 1960, 1952, 1952, 115, 45, 45, 45, + 45, 45, 45, 1977, 1969, 1969, 115, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1952, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 45, 45, 45, 45, 1952, 45, 1952, - 45, 1952, 45, 115, 1952, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1952, 45, 45, + 45, 45, 45, 45, 45, 45, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 45, 45, 45, 45, 1969, 45, 1969, + 45, 1969, 45, 115, 1969, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1952, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1952, 1952, 1952, 45, 45, 45, 1952, 45, 1952, - 45, 115, 45, 45, 45, 45, 45, 45, 1952, 45, - 45, 45, 45, 45, 45, 45, 1952, 45, 45, 45, - 45, 45, 45, 45, 45, 1952, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1952, 45, 45, + 45, 1969, 1969, 1969, 45, 45, 45, 1969, 45, 1969, + 45, 115, 45, 45, 45, 45, 45, 45, 1969, 45, + 45, 45, 45, 45, 45, 45, 1969, 45, 45, 45, + 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1952, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1952, - 45, 1952, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1969, + 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1952, 45, 1952, 1952, 45, - 1952, 45, 45, 1952, 45, 1952, 1952, 1952, 45, 45, - 45, 1952, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1969, 45, 1969, 1969, 45, + 1969, 45, 45, 1969, 45, 1969, 1969, 1969, 45, 45, + 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1952, 45, 45, 45, 45, 45, 45, - 45, 45, 1952, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, + 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1952, 45, 45, 1952, 45, + 45, 45, 45, 45, 45, 1969, 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1952, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1952, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1952, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1952, - 1952, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1969, + 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1952, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1952, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1952, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1952, 45, 45, 45, 45, 45, + 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1952, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1952, + 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1952, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1952, 1952, 45, - 45, 45, 45, 45, 45, 45, 1952, 1952, 45, 45, + 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1969, 1969, + 45, 45, 45, 45, 45, 45, 45, 1969, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1952, 45, 1952, 45, 45, 45, 45, 45, 45, + 45, 45, 1969, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1952, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1952, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1952, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1952, 45, - 45, 45, 45, 45, 45, 45, 1952, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1969, 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1952, 1952, 45, 45, 45, 1952, 45, 45, 45, 45, - 1952, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1952, + 45, 45, 1969, 1969, 45, 45, 45, 1969, 45, 45, + 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1952, + 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1969, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1969, 45, + 45, 1969, 1969, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, + 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1969, 1969, 45, 1969, 45, 1969, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1969, 45, 45, 45, 1969, 45, 45, 45, + 45, 45, 1969, 1969, 45, 1969, 45, 1969, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1969, 45, 45, 45, 45, 45, 1969, + 1969, 45, 45, 45, 45, 45, 45, 45, 45, 1969, + 45, 45, 45, 45, 45, 45, 45, 45, 1969, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1969, 1969, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1969, 45, 45, 45, 45, 45, 45, 1969, 45, + 1969, 45, 1969, 1969, 45, 45, 45, 1969, 45, 45, + 45, 45, 45, 1969, 45, 45, 45, 1969, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1969, 45, 45, 1969, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1969, 45, 1969, 45, 1969, 45, 1969, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1969, 45, + 45, 45, 45, 45, 45, 45, 1969, 1969, 45, 45, + 1969, 45, 45, 45, 45, 45, 1969, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1969, 45, 45, 1969, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1969, 45, + 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1952, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1952, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1952, 45, 45, 1952, 1952, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1952, - 45, 45, 45, 45, 45, 45, 45, 45, 1952, 45, + 45, 45, 45, 1969, 45, 45, 45, 45, 1969, 45, + 45, 45, 45, 45, 45, 1969, 1969, 45, 45, 45, + 1969, 1969, 1969, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1969, 45, 45, 45, 1969, + 45, 1969, 45, 45, 45, 1969, 45, 45, 45, 45, + 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1952, 1952, 45, - 1952, 45, 1952, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1952, 45, - 45, 45, 1952, 45, 45, 45, 45, 45, 1952, 1952, - 45, 1952, 45, 1952, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1952, - 45, 45, 45, 45, 45, 1952, 1952, 45, 45, 45, - 45, 45, 45, 45, 45, 1952, 45, 45, 45, 45, - 45, 45, 45, 45, 1952, 45, 45, 45, 45, 45, + 45, 45, 45, 1969, 45, 1969, 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1969, 45, 45, 45, 45, 45, 1969, 45, + 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, + 1969, 45, 45, 45, 45, 1969, 45, 1969, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, + 45, 45, 45, 1969, 45, 45, 45, 45, 1969, 45, - 45, 45, 1952, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1969, + 45, 45, 45, 45, 45, 45, 1969, 45, 45, 45, + 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1969, 1969, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1969, + 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1952, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1952, 1952, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1952, 45, 45, 45, - 45, 45, 45, 1952, 45, 1952, 45, 1952, 1952, 45, - 45, 45, 1952, 45, 45, 45, 45, 45, 1952, 45, - 45, 45, 1952, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1952, 45, 1952, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1969, 45, 1969, 45, 1969, + 45, 1969, 1969, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1952, 45, 1952, 45, 1952, - 45, 1952, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1952, 45, 45, 45, 45, 45, 45, 45, - 1952, 1952, 45, 45, 1952, 45, 45, 45, 45, 45, - 1952, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1952, 45, 45, 1952, 45, 45, 45, 45, 45, 45, + 45, 1969, 45, 45, 45, 1969, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1969, 45, 45, + 1969, 45, 45, 45, 45, 1969, 45, 45, 45, 1969, + 45, 1969, 45, 1969, 45, 45, 45, 1969, 45, 45, + 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1952, 45, 45, 45, 1952, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1969, 45, 45, 1969, 45, 45, 45, 45, 1969, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1952, 45, 45, 45, - 45, 1952, 45, 45, 45, 45, 45, 45, 1952, 1952, - 45, 45, 45, 1952, 1952, 1952, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1952, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1952, 45, 45, - 45, 1952, 45, 1952, 45, 45, 45, 1952, 45, 45, - 45, 45, 45, 1952, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1952, 45, 1952, 45, 45, - - 45, 1952, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1952, 45, 45, 45, 45, 45, 1952, - 45, 45, 45, 1952, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1952, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1952, 45, 45, 45, 45, 45, - 45, 1952, 45, 45, 45, 45, 1952, 45, 1952, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1952, 45, 45, 45, 45, 45, - 45, 45, 45, 1952, 45, 45, 45, 45, 1952, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1952, - - 45, 45, 45, 45, 45, 45, 1952, 45, 45, 45, - 45, 45, 45, 45, 45, 1952, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1952, 1952, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1952, 45, - 1952, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1952, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1952, 45, 1952, 45, 1952, 45, 1952, - 1952, 45, 45, 45, 45, 45, 45, 45, 45, 1952, - 45, 45, 45, 1952, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 1952, 45, 45, 1952, 45, 45, - 45, 45, 1952, 45, 45, 45, 1952, 45, 1952, 45, - 1952, 45, 45, 45, 1952, 45, 45, 45, 45, 45, - 45, 45, 1952, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1952, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1952, 45, 45, 1952, 45, - 45, 45, 1952, 45, 45, 45, 45, 1952, 1952, 1952, - 1952, 45, 1952, 1952, 1952, 45, 45, 45, 45, 1952, - - 45, 45, 45, 45, 45, 45, 45, 1952, 45, 45, - 1952, 45, 1952, 45, 1952, 45, 45, 45, 45, 1952, - 45, 45, 45, 1952, 45, 45, 1952, 45, 45, 45, - 45, 45, 45, 45, 45, 1952, 45, 45, 45, 45, - 45, 1952, 45, 1952, 1952, 45, 45, 45, 45, 1952, - 1952, 0, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952 + 45, 45, 45, 1969, 1969, 1969, 1969, 45, 1969, 1969, + 1969, 45, 45, 45, 45, 1969, 45, 45, 45, 1969, + 45, 45, 45, 45, 1969, 45, 45, 1969, 45, 1969, + 45, 1969, 45, 45, 45, 45, 1969, 45, 45, 45, + 1969, 45, 45, 1969, 45, 45, 45, 45, 45, 45, + 45, 45, 1969, 45, 45, 45, 45, 45, 1969, 45, + 1969, 1969, 45, 45, 45, 45, 1969, 1969, 0, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969 } ; -static const flex_int16_t yy_nxt[2415] = +static const flex_int16_t yy_nxt[2431] = { 0, - 1952, 13, 14, 13, 1952, 15, 16, 1952, 17, 18, + 1969, 13, 14, 13, 1969, 15, 16, 1969, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 84, 764, 37, 14, 37, 85, 25, 26, 38, 100, - 1952, 27, 37, 14, 37, 42, 28, 42, 38, 90, + 851, 27, 37, 14, 37, 42, 28, 42, 38, 90, 91, 29, 196, 30, 13, 14, 13, 89, 90, 25, 31, 91, 13, 14, 13, 13, 14, 13, 32, 40, 765, 13, 14, 13, 33, 40, 101, 90, 91, 196, @@ -1418,7 +1423,7 @@ static const flex_int16_t yy_nxt[2415] = 106, 42, 41, 29, 108, 30, 111, 112, 92, 134, 41, 25, 31, 102, 135, 364, 87, 136, 87, 105, 32, 88, 88, 88, 88, 88, 33, 108, 106, 111, - 849, 112, 365, 34, 35, 44, 44, 44, 45, 45, + 852, 112, 365, 34, 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 45, 48, 49, 50, 45, 51, 52, 53, 45, 45, 45, @@ -1426,13 +1431,13 @@ static const flex_int16_t yy_nxt[2415] = 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, 850, + 76, 77, 56, 45, 45, 45, 45, 45, 79, 853, 80, 80, 80, 80, 80, 79, 102, 82, 82, 82, 82, 82, 203, 81, 83, 83, 83, 83, 83, 79, 81, 82, 82, 82, 82, 82, 105, 81, 118, 164, 109, 129, 116, 165, 81, 203, 81, 200, 117, 119, 110, 130, 120, 81, 121, 132, 122, 197, 184, 105, - 81, 185, 133, 109, 851, 233, 404, 81, 45, 405, + 81, 185, 133, 109, 854, 233, 404, 81, 45, 405, 131, 45, 45, 45, 200, 45, 45, 45, 110, 114, 137, 234, 45, 45, 184, 45, 45, 185, 198, 184, @@ -1440,9 +1445,9 @@ static const flex_int16_t yy_nxt[2415] = 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, 852, 128, 144, 45, 186, 45, 115, + 108, 147, 45, 855, 128, 144, 45, 186, 45, 115, 153, 186, 295, 148, 111, 188, 195, 149, 154, 150, - 155, 151, 853, 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, 195, 169, 170, 202, 251, 180, 171, 172, 110, 230, 181, 83, 83, 83, 83, 83, 88, 88, @@ -1462,221 +1467,222 @@ static const flex_int16_t yy_nxt[2415] = 307, 238, 272, 273, 308, 239, 266, 267, 268, 308, 310, 279, 280, 281, 309, 207, 207, 207, 207, 207, 207, 314, 282, 316, 283, 317, 284, 285, 288, 286, - 308, 319, 289, 321, 323, 311, 290, 312, 385, 854, - 413, 855, 463, 373, 314, 314, 374, 319, 464, 435, + 308, 319, 289, 321, 323, 311, 290, 312, 385, 857, + 413, 858, 463, 373, 314, 314, 374, 319, 464, 435, 320, 316, 317, 414, 319, 424, 321, 432, 432, 439, 435, 323, 324, 324, 324, 324, 324, 437, 326, 334, 381, 324, 324, 324, 324, 324, 324, 335, 435, 457, 432, 433, 336, 337, 458, 520, 501, 439, 386, 443, 437, 454, 502, 439, 324, 324, 324, 324, 324, 324, - 442, 442, 442, 442, 442, 742, 743, 856, 455, 442, + 442, 442, 442, 442, 442, 742, 743, 859, 455, 442, 442, 442, 442, 442, 442, 478, 494, 495, 496, 506, 479, 508, 497, 524, 533, 565, 538, 525, 534, 507, 539, 565, 442, 442, 442, 442, 442, 442, 569, 561, - 570, 627, 594, 521, 562, 604, 585, 664, 857, 858, + 570, 627, 594, 521, 562, 604, 585, 664, 860, 861, 605, 628, 665, 565, 586, 595, 587, 588, 589, 571, 590, 691, 692, 693, 695, 569, 694, 570, 480, 713, 802, 696, 714, 481, 45, 45, 45, 45, 45, 813, - 859, 860, 803, 45, 45, 45, 45, 45, 45, 692, + 843, 862, 803, 45, 45, 45, 45, 45, 45, 692, - 775, 693, 812, 821, 822, 776, 823, 844, 861, 862, - 863, 845, 813, 864, 865, 846, 45, 45, 45, 45, - 45, 45, 866, 867, 868, 869, 870, 871, 872, 873, - 812, 875, 874, 876, 877, 878, 879, 880, 881, 882, - 883, 884, 885, 886, 777, 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, 915, 917, 918, 921, 922, 923, 925, - 916, 926, 919, 927, 924, 928, 920, 929, 930, 931, - 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, + 775, 693, 812, 821, 822, 776, 823, 845, 863, 864, + 865, 846, 813, 866, 867, 847, 45, 45, 45, 45, + 45, 45, 868, 869, 870, 871, 872, 873, 844, 874, + 812, 876, 875, 877, 878, 879, 880, 881, 882, 883, + 884, 885, 886, 887, 777, 888, 889, 890, 891, 892, + 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, + 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, + 913, 914, 915, 916, 918, 919, 922, 923, 924, 926, + 917, 927, 920, 928, 925, 929, 921, 930, 931, 932, + 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, - 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, - 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, - 962, 963, 964, 937, 965, 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, 995, 996, 997, 998, 999, 1000, - 1001, 1002, 1003, 1004, 1006, 1007, 1008, 1005, 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, 1038, 1039, 1040, 1041, + 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, 980, 981, + 983, 984, 985, 986, 982, 987, 988, 989, 990, 991, + 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, + 1002, 1003, 1004, 1005, 1006, 1008, 1009, 1010, 1007, 1011, + 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, + 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, + 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1040, 1041, 1042, - 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1037, 1049, 1050, - 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, - 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, - 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1055, 1078, 1079, - 1054, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, - 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, - 1099, 1102, 1103, 1104, 1105, 1100, 1106, 1107, 1108, 1109, - 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, - 1120, 1121, 1122, 1123, 1124, 1126, 1127, 1128, 1129, 1130, - 1131, 1132, 1133, 1134, 1135, 1125, 1136, 1137, 1138, 1139, + 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1039, 1051, + 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, + 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, + 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1057, 1080, + 1081, 1056, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, + 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, + 1100, 1101, 1102, 1105, 1106, 1107, 1108, 1103, 1109, 1110, + 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, + 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1129, 1130, 1131, + 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1128, 1139, 1140, - 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, - 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1101, 1158, - 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1168, 1167, - 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, - 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, - 1189, 1190, 1191, 1192, 1193, 1166, 1167, 1194, 1195, 1196, - 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, - 1207, 1208, 1209, 1210, 1211, 1213, 1215, 1216, 1217, 1212, - 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, - 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, + 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, + 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, + 1104, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, + 1171, 1170, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, + 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, + 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1169, 1170, 1197, + 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, + 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1217, 1219, + 1220, 1221, 1216, 1222, 1223, 1224, 1225, 1226, 1227, 1228, + 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, - 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, - 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1214, - 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, - 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, - 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, - 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, - 1274, 1297, 1298, 1299, 1300, 1301, 1275, 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, 1331, 1332, 1333, 1334, + 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, + 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, + 1259, 1260, 1218, 1261, 1262, 1263, 1264, 1265, 1266, 1267, + 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, + 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, + 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, + 1298, 1299, 1300, 1278, 1301, 1302, 1303, 1304, 1305, 1279, + 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, + 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, + 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, - 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, - 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1353, 1354, 1355, - 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, - 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1375, 1376, - 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, - 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, - 1368, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1352, - 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, - 1415, 1374, 1417, 1418, 1419, 1420, 1421, 1422, 1416, 1423, - 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, + 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, + 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, + 1356, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, + 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, + 1377, 1378, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, + 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, + 1398, 1399, 1400, 1401, 1373, 1402, 1403, 1404, 1405, 1406, + 1407, 1408, 1409, 1357, 1410, 1411, 1412, 1413, 1414, 1415, + 1416, 1417, 1418, 1419, 1420, 1379, 1421, 1423, 1424, 1425, + 1426, 1427, 1428, 1429, 1422, 1430, 1431, 1432, 1433, 1434, - 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1443, 1444, - 1445, 1446, 1442, 1447, 1448, 1449, 1450, 1451, 1452, 1453, - 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, - 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, - 1474, 1475, 1453, 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, 1517, 1515, 1518, 1519, 1520, 1521, 1522, 1516, - 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, + 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, + 1445, 1446, 1447, 1449, 1450, 1451, 1452, 1448, 1453, 1454, + 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, + 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, + 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1459, 1482, 1483, + 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, + 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, + 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, + 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1524, 1522, + 1525, 1526, 1527, 1528, 1529, 1523, 1530, 1531, 1532, 1533, - 1533, 1534, 1535, 1536, 1537, 1538, 1540, 1541, 1542, 1543, - 1544, 1545, 1546, 1547, 1548, 1549, 1539, 1550, 1551, 1552, - 1526, 1553, 1554, 1555, 1556, 1557, 1558, 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, 1601, 1602, - 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, - 1613, 1614, 1616, 1617, 1559, 1618, 1615, 1619, 1620, 1621, - 1622, 1623, 1597, 1624, 1625, 1626, 1627, 1628, 1629, 1630, + 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, + 1544, 1545, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, + 1555, 1556, 1546, 1557, 1558, 1559, 1533, 1560, 1561, 1562, + 1563, 1564, 1565, 1566, 1568, 1569, 1570, 1571, 1572, 1573, + 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, + 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, + 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, + 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, + 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, + 1625, 1567, 1626, 1627, 1624, 1628, 1629, 1630, 1631, 1605, - 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, - 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, - 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, - 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, - 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, - 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, - 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, - 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, - 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, - 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, + 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, + 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, + 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, + 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, + 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, + 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, + 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, + 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, + 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, + 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, - 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, - 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, - 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, - 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, - 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, - 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, - 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, - 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, - 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, - 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, + 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, + 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, + 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, + 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, + 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, + 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, + 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, + 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, + 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, + 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, - 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, - 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, - 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, - 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, - 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, - 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, - 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, - 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, - 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, - 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1930, 1929, + 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, + 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, + 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, + 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, + 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, + 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, + 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, + 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, + 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, + 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, - 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, - 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, - 1951, 12, 12, 12, 36, 36, 36, 78, 97, 78, - 99, 99, 99, 113, 113, 113, 183, 848, 183, 204, - 204, 204, 847, 843, 842, 841, 840, 839, 838, 837, - 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, - 826, 825, 824, 820, 819, 818, 817, 816, 815, 814, - 811, 810, 809, 808, 807, 806, 805, 804, 801, 800, - 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, - 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, + 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, + 1942, 1943, 1944, 1945, 1947, 1946, 1948, 1949, 1950, 1951, + 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, + 1962, 1963, 1964, 1965, 1966, 1967, 1968, 12, 12, 12, + 36, 36, 36, 78, 97, 78, 99, 99, 99, 113, + 113, 113, 183, 850, 183, 204, 204, 204, 849, 848, + 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, + 832, 831, 830, 829, 828, 827, 826, 825, 824, 820, + 819, 818, 817, 816, 815, 814, 811, 810, 809, 808, + 807, 806, 805, 804, 801, 800, 799, 798, 797, 796, - 779, 778, 774, 773, 772, 771, 770, 769, 768, 767, - 766, 763, 762, 761, 760, 759, 758, 757, 756, 755, - 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, - 744, 741, 740, 739, 738, 737, 736, 735, 734, 733, - 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, - 722, 721, 720, 719, 718, 717, 716, 715, 712, 711, - 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, - 700, 699, 698, 697, 691, 690, 689, 688, 687, 686, - 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, - 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, + 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, + 785, 784, 783, 782, 781, 780, 779, 778, 774, 773, + 772, 771, 770, 769, 768, 767, 766, 763, 762, 761, + 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, + 750, 749, 748, 747, 746, 745, 744, 741, 740, 739, + 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, + 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, + 718, 717, 716, 715, 712, 711, 710, 709, 708, 707, + 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, + 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, - 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, 626, 625, 624, 623, 622, - 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, - 611, 610, 609, 608, 607, 606, 603, 602, 601, 600, - 599, 598, 597, 596, 593, 592, 591, 584, 583, 582, - 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, - 568, 567, 566, 564, 563, 560, 559, 558, 557, 556, - 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, + 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, + 671, 670, 669, 668, 667, 666, 663, 662, 661, 660, + 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, + 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, + 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, + 629, 626, 625, 624, 623, 622, 621, 620, 619, 618, + 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, + 607, 606, 603, 602, 601, 600, 599, 598, 597, 596, + 593, 592, 591, 584, 583, 582, 581, 580, 579, 578, + 577, 576, 575, 574, 573, 572, 568, 567, 566, 564, - 543, 542, 541, 540, 537, 536, 535, 532, 531, 530, - 529, 528, 527, 526, 523, 522, 519, 518, 517, 516, - 515, 514, 513, 512, 511, 510, 509, 505, 504, 503, - 500, 499, 498, 493, 492, 491, 490, 489, 488, 487, - 486, 485, 484, 483, 482, 477, 476, 475, 474, 473, - 472, 471, 470, 469, 468, 467, 466, 465, 462, 461, - 460, 459, 456, 453, 452, 451, 450, 449, 448, 447, - 446, 445, 444, 441, 440, 438, 436, 434, 431, 430, - 429, 428, 427, 426, 425, 423, 422, 421, 420, 419, - 418, 417, 416, 415, 412, 411, 410, 409, 408, 407, + 563, 560, 559, 558, 557, 556, 553, 552, 551, 550, + 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, + 537, 536, 535, 532, 531, 530, 529, 528, 527, 526, + 523, 522, 519, 518, 517, 516, 515, 514, 513, 512, + 511, 510, 509, 505, 504, 503, 500, 499, 498, 493, + 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, + 482, 477, 476, 475, 474, 473, 472, 471, 470, 469, + 468, 467, 466, 465, 462, 461, 460, 459, 456, 453, + 452, 451, 450, 449, 448, 447, 446, 445, 444, 441, + 440, 438, 436, 434, 431, 430, 429, 428, 427, 426, - 406, 403, 402, 401, 400, 399, 398, 397, 396, 395, - 394, 393, 392, 391, 390, 389, 388, 387, 384, 383, - 382, 380, 379, 378, 377, 376, 375, 371, 370, 369, - 368, 367, 366, 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, 338, 333, - 332, 331, 330, 329, 328, 327, 325, 205, 322, 320, - 318, 315, 313, 306, 305, 304, 303, 302, 301, 300, - 298, 297, 296, 293, 292, 291, 287, 277, 274, 270, - 269, 264, 263, 262, 261, 260, 258, 257, 256, 255, + 425, 423, 422, 421, 420, 419, 418, 417, 416, 415, + 412, 411, 410, 409, 408, 407, 406, 403, 402, 401, + 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, + 390, 389, 388, 387, 384, 383, 382, 380, 379, 378, + 377, 376, 375, 371, 370, 369, 368, 367, 366, 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, 338, 333, 332, 331, 330, 329, + 328, 327, 325, 205, 322, 320, 318, 315, 313, 306, + 305, 304, 303, 302, 301, 300, 298, 297, 296, 293, - 254, 253, 250, 249, 248, 247, 246, 245, 244, 241, - 240, 236, 235, 227, 226, 225, 221, 220, 219, 218, - 214, 210, 205, 194, 193, 191, 190, 182, 163, 140, - 107, 104, 103, 43, 98, 96, 95, 86, 43, 1952, - 11, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, + 292, 291, 287, 277, 274, 270, 269, 264, 263, 262, + 261, 260, 258, 257, 256, 255, 254, 253, 250, 249, + 248, 247, 246, 245, 244, 241, 240, 236, 235, 227, + 226, 225, 221, 220, 219, 218, 214, 210, 205, 194, + 193, 191, 190, 182, 163, 140, 107, 104, 103, 43, + 98, 96, 95, 86, 43, 1969, 11, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952 + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969 } ; -static const flex_int16_t yy_chk[2415] = +static const flex_int16_t yy_chk[2431] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 21, 643, 3, 3, 3, 21, 1, 1, 3, 44, - 0, 1, 4, 4, 4, 13, 1, 13, 4, 27, + 726, 1, 4, 4, 4, 13, 1, 13, 4, 27, 28, 1, 106, 1, 5, 5, 5, 26, 32, 1, 1, 33, 6, 6, 6, 7, 7, 7, 1, 7, 643, 8, 8, 8, 1, 8, 44, 27, 28, 106, @@ -1688,7 +1694,7 @@ static const flex_int16_t yy_chk[2415] = 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, - 725, 56, 245, 2, 2, 15, 15, 15, 15, 15, + 727, 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, @@ -1696,13 +1702,13 @@ static const flex_int16_t yy_chk[2415] = 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, 726, + 15, 15, 15, 15, 15, 15, 15, 15, 17, 728, 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, 727, 131, 281, 22, 45, 281, + 20, 90, 63, 54, 729, 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, @@ -1710,9 +1716,9 @@ static const flex_int16_t yy_chk[2415] = 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, 728, 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, 729, 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, @@ -1732,27 +1738,27 @@ static const flex_int16_t yy_chk[2415] = 184, 134, 161, 161, 185, 134, 158, 158, 158, 188, 187, 165, 165, 165, 189, 115, 115, 115, 115, 115, 115, 192, 165, 195, 165, 196, 165, 165, 167, 165, - 185, 199, 167, 201, 203, 188, 167, 189, 263, 731, - 289, 732, 345, 252, 192, 209, 252, 259, 345, 314, + 185, 199, 167, 201, 203, 188, 167, 189, 263, 733, + 289, 734, 345, 252, 192, 209, 252, 259, 345, 314, 299, 195, 196, 289, 199, 299, 201, 307, 310, 319, 326, 203, 207, 207, 207, 207, 207, 316, 209, 217, 259, 207, 207, 207, 207, 207, 207, 217, 314, 340, 307, 310, 217, 217, 340, 394, 376, 319, 263, 326, 316, 337, 376, 381, 207, 207, 207, 207, 207, 207, - 324, 324, 324, 324, 324, 620, 620, 733, 337, 324, + 324, 324, 324, 324, 324, 620, 620, 735, 337, 324, 324, 324, 324, 324, 324, 359, 372, 372, 372, 380, 359, 381, 372, 397, 405, 435, 409, 397, 405, 380, 409, 443, 324, 324, 324, 324, 324, 324, 441, 430, - 441, 496, 463, 394, 430, 473, 459, 535, 734, 735, + 441, 496, 463, 394, 430, 473, 459, 535, 736, 737, 473, 496, 535, 435, 459, 463, 459, 459, 459, 443, 459, 571, 569, 570, 573, 441, 571, 441, 359, 590, 681, 573, 590, 359, 442, 442, 442, 442, 442, 693, - 736, 737, 681, 442, 442, 442, 442, 442, 442, 569, + 721, 738, 681, 442, 442, 442, 442, 442, 442, 569, - 654, 570, 692, 701, 701, 654, 701, 722, 738, 739, - 740, 722, 693, 741, 742, 722, 442, 442, 442, 442, - 442, 442, 743, 744, 745, 746, 747, 748, 749, 750, + 654, 570, 692, 701, 701, 654, 701, 722, 739, 740, + 741, 722, 693, 742, 743, 722, 442, 442, 442, 442, + 442, 442, 744, 745, 746, 747, 748, 749, 721, 750, 692, 751, 750, 752, 753, 755, 756, 757, 758, 759, 760, 761, 762, 763, 654, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 776, 777, 778, 779, 780, @@ -1764,181 +1770,182 @@ static const flex_int16_t yy_chk[2415] = 818, 819, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 813, 842, 843, 844, 845, 846, 847, - 848, 849, 850, 852, 853, 854, 855, 856, 857, 858, - 859, 860, 861, 857, 862, 863, 864, 865, 866, 867, - 870, 871, 872, 873, 874, 875, 876, 879, 880, 881, - 882, 883, 884, 885, 886, 887, 888, 885, 889, 890, - 891, 893, 895, 896, 897, 898, 899, 900, 901, 902, + 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, 928, 929, 930, 918, 931, 932, - 933, 934, 935, 936, 937, 938, 939, 940, 941, 943, + 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, 937, 961, 962, - 936, 963, 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, + 954, 955, 956, 957, 958, 959, 960, 961, 938, 962, + 963, 937, 964, 965, 966, 967, 969, 970, 971, 972, + 973, 974, 975, 976, 977, 978, 979, 980, 982, 983, + 984, 985, 986, 987, 988, 990, 991, 986, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, - 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1013, 1014, 1015, - 1017, 1018, 1019, 1020, 1022, 1008, 1023, 1024, 1025, 1026, + 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1015, + 1016, 1017, 1019, 1020, 1021, 1022, 1024, 1010, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, - 1037, 1038, 1039, 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, + 1037, 1038, 1039, 1040, 1041, 1043, 1044, 1045, 1046, 1047, + 986, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, + 1058, 1057, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, - 1077, 1078, 1079, 1081, 1082, 1054, 1055, 1083, 1084, 1085, + 1077, 1078, 1079, 1080, 1081, 1083, 1084, 1056, 1057, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, - 1096, 1097, 1098, 1100, 1101, 1102, 1103, 1104, 1105, 1101, - 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, + 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, 1135, 1136, - 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1102, - 1147, 1148, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, + 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, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1190, - 1166, 1191, 1192, 1193, 1194, 1195, 1167, 1196, 1197, 1198, - 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1210, - 1212, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, - 1223, 1224, 1225, 1226, 1227, 1228, 1230, 1231, 1232, 1234, + 1179, 1180, 1181, 1182, 1184, 1185, 1186, 1187, 1188, 1189, + 1190, 1191, 1193, 1169, 1194, 1195, 1196, 1197, 1198, 1170, + 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, + 1209, 1210, 1211, 1214, 1216, 1218, 1219, 1220, 1221, 1222, + 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, - 1235, 1236, 1237, 1238, 1241, 1243, 1245, 1246, 1247, 1248, + 1234, 1235, 1236, 1238, 1239, 1240, 1241, 1242, 1245, 1247, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, - 1259, 1261, 1262, 1263, 1264, 1265, 1268, 1269, 1270, 1271, - 1272, 1273, 1274, 1275, 1277, 1278, 1279, 1280, 1281, 1282, - 1283, 1284, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, - 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1304, - 1274, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1255, - 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1322, 1323, - 1324, 1280, 1325, 1326, 1327, 1328, 1329, 1330, 1324, 1331, - 1332, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, + 1259, 1260, 1261, 1262, 1263, 1265, 1266, 1267, 1268, 1269, + 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1281, 1282, + 1283, 1284, 1285, 1286, 1287, 1288, 1290, 1291, 1292, 1293, + 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, + 1304, 1305, 1306, 1307, 1278, 1309, 1310, 1311, 1312, 1313, + 1314, 1315, 1316, 1259, 1317, 1318, 1319, 1320, 1321, 1322, + 1323, 1324, 1325, 1327, 1328, 1284, 1329, 1330, 1331, 1332, + 1333, 1334, 1335, 1336, 1329, 1337, 1340, 1341, 1342, 1343, - 1344, 1345, 1346, 1348, 1349, 1350, 1351, 1352, 1353, 1355, - 1357, 1360, 1352, 1361, 1362, 1364, 1365, 1366, 1367, 1368, - 1370, 1371, 1372, 1374, 1375, 1376, 1377, 1378, 1379, 1380, + 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1353, 1354, + 1355, 1356, 1357, 1358, 1360, 1362, 1365, 1357, 1366, 1367, + 1369, 1370, 1371, 1372, 1373, 1375, 1376, 1377, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, - 1391, 1393, 1368, 1395, 1396, 1397, 1398, 1399, 1400, 1401, - 1402, 1403, 1404, 1405, 1407, 1409, 1411, 1413, 1414, 1415, - 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1424, 1425, 1426, - 1427, 1428, 1429, 1430, 1433, 1434, 1436, 1437, 1438, 1439, - 1440, 1442, 1443, 1442, 1444, 1445, 1446, 1447, 1448, 1442, - 1449, 1450, 1452, 1453, 1455, 1456, 1457, 1458, 1459, 1460, + 1391, 1392, 1393, 1394, 1395, 1396, 1398, 1373, 1399, 1401, + 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, + 1413, 1415, 1417, 1419, 1420, 1421, 1422, 1423, 1424, 1425, + 1426, 1427, 1428, 1430, 1431, 1432, 1433, 1434, 1435, 1436, + 1439, 1440, 1442, 1443, 1444, 1445, 1446, 1448, 1449, 1448, + 1450, 1451, 1452, 1453, 1454, 1448, 1455, 1456, 1458, 1459, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, - 1471, 1472, 1474, 1475, 1476, 1478, 1466, 1479, 1480, 1481, - 1453, 1482, 1483, 1484, 1485, 1485, 1486, 1487, 1488, 1489, - 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, + 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1480, 1481, + 1482, 1483, 1472, 1485, 1486, 1487, 1459, 1488, 1489, 1490, + 1491, 1492, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, - 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1518, 1519, 1520, - 1521, 1523, 1524, 1525, 1526, 1527, 1528, 1531, 1532, 1533, - 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, - 1547, 1549, 1550, 1551, 1486, 1552, 1549, 1553, 1554, 1555, - 1556, 1557, 1526, 1559, 1560, 1561, 1563, 1565, 1566, 1567, + 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, + 1520, 1521, 1522, 1523, 1525, 1526, 1527, 1528, 1530, 1531, + 1532, 1533, 1534, 1535, 1538, 1539, 1540, 1544, 1545, 1546, + 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1557, + 1558, 1493, 1559, 1560, 1557, 1561, 1562, 1563, 1564, 1533, - 1569, 1570, 1571, 1572, 1573, 1575, 1576, 1577, 1578, 1579, - 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, - 1590, 1591, 1592, 1593, 1594, 1595, 1597, 1599, 1600, 1601, - 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, - 1613, 1615, 1616, 1617, 1618, 1619, 1621, 1622, 1623, 1625, - 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1635, 1636, - 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1646, 1647, - 1648, 1649, 1650, 1651, 1653, 1654, 1655, 1656, 1658, 1660, - 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, - 1671, 1672, 1673, 1674, 1676, 1677, 1678, 1679, 1680, 1681, + 1565, 1567, 1568, 1569, 1571, 1573, 1574, 1575, 1577, 1578, + 1579, 1580, 1581, 1583, 1584, 1585, 1586, 1587, 1588, 1589, + 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, + 1600, 1601, 1602, 1603, 1605, 1607, 1608, 1609, 1611, 1612, + 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, + 1624, 1625, 1626, 1627, 1628, 1630, 1631, 1632, 1634, 1635, + 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1644, 1645, 1646, + 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1655, 1656, 1657, + 1658, 1659, 1660, 1662, 1663, 1664, 1665, 1667, 1669, 1670, + 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, - 1682, 1683, 1685, 1686, 1687, 1688, 1690, 1691, 1692, 1693, - 1694, 1695, 1696, 1697, 1698, 1699, 1701, 1702, 1703, 1704, - 1705, 1706, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, - 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, - 1727, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, - 1740, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, - 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, - 1761, 1762, 1763, 1765, 1766, 1767, 1768, 1769, 1770, 1771, - 1772, 1773, 1775, 1777, 1779, 1782, 1783, 1784, 1785, 1786, - 1787, 1788, 1789, 1791, 1792, 1793, 1795, 1796, 1797, 1798, + 1681, 1682, 1683, 1684, 1686, 1687, 1688, 1689, 1690, 1691, + 1692, 1693, 1695, 1696, 1697, 1698, 1700, 1701, 1702, 1703, + 1704, 1705, 1706, 1707, 1708, 1709, 1711, 1712, 1713, 1714, + 1715, 1716, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, + 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, + 1737, 1738, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, + 1749, 1751, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, + 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, + 1771, 1772, 1773, 1774, 1776, 1777, 1778, 1779, 1780, 1781, + 1782, 1783, 1784, 1785, 1787, 1789, 1791, 1794, 1795, 1796, - 1799, 1800, 1801, 1802, 1803, 1804, 1806, 1807, 1809, 1810, - 1811, 1812, 1814, 1815, 1816, 1818, 1820, 1822, 1823, 1824, - 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1834, 1835, 1836, - 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, - 1847, 1848, 1849, 1850, 1851, 1852, 1854, 1855, 1856, 1857, - 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, - 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1877, 1878, - 1880, 1881, 1882, 1884, 1885, 1886, 1887, 1892, 1896, 1897, - 1898, 1899, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1909, - 1910, 1912, 1914, 1916, 1917, 1918, 1919, 1921, 1922, 1921, + 1797, 1798, 1799, 1800, 1801, 1803, 1804, 1805, 1807, 1808, + 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1819, + 1820, 1822, 1823, 1824, 1825, 1827, 1828, 1829, 1831, 1833, + 1835, 1836, 1837, 1839, 1840, 1841, 1842, 1843, 1844, 1845, + 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, + 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, + 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, + 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, + 1888, 1889, 1890, 1892, 1893, 1895, 1896, 1897, 1898, 1900, + 1901, 1902, 1903, 1908, 1912, 1913, 1914, 1915, 1917, 1918, - 1923, 1925, 1926, 1928, 1929, 1930, 1931, 1932, 1933, 1934, - 1935, 1937, 1938, 1939, 1940, 1941, 1943, 1946, 1947, 1948, - 1949, 1953, 1953, 1953, 1954, 1954, 1954, 1955, 1956, 1955, - 1957, 1957, 1957, 1958, 1958, 1958, 1959, 724, 1959, 1960, - 1960, 1960, 723, 721, 720, 719, 718, 717, 716, 715, - 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, - 704, 703, 702, 700, 699, 698, 697, 696, 695, 694, - 689, 688, 687, 686, 685, 684, 683, 682, 680, 679, - 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, - 667, 666, 665, 663, 662, 661, 660, 659, 658, 657, + 1919, 1921, 1922, 1923, 1924, 1926, 1927, 1929, 1931, 1933, + 1934, 1935, 1936, 1938, 1939, 1938, 1940, 1942, 1943, 1945, + 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1954, 1955, 1956, + 1957, 1958, 1960, 1963, 1964, 1965, 1966, 1970, 1970, 1970, + 1971, 1971, 1971, 1972, 1973, 1972, 1974, 1974, 1974, 1975, + 1975, 1975, 1976, 725, 1976, 1977, 1977, 1977, 724, 723, + 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, + 710, 709, 708, 707, 706, 705, 704, 703, 702, 700, + 699, 698, 697, 696, 695, 694, 689, 688, 687, 686, + 685, 684, 683, 682, 680, 679, 677, 676, 675, 674, - 656, 655, 653, 652, 650, 649, 648, 647, 646, 645, - 644, 642, 641, 640, 638, 637, 635, 634, 633, 632, - 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, - 621, 619, 618, 617, 616, 615, 614, 612, 611, 610, - 609, 608, 607, 606, 605, 603, 602, 601, 600, 599, - 598, 597, 596, 595, 594, 593, 592, 591, 589, 588, - 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, - 577, 576, 575, 574, 565, 564, 563, 562, 560, 557, - 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, - 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, + 673, 672, 671, 670, 669, 668, 667, 666, 665, 663, + 662, 661, 660, 659, 658, 657, 656, 655, 653, 652, + 650, 649, 648, 647, 646, 645, 644, 642, 641, 640, + 638, 637, 635, 634, 633, 632, 631, 630, 629, 628, + 627, 626, 625, 624, 623, 622, 621, 619, 618, 617, + 616, 615, 614, 612, 611, 610, 609, 608, 607, 606, + 605, 603, 602, 601, 600, 599, 598, 597, 596, 595, + 594, 593, 592, 591, 589, 588, 587, 586, 585, 584, + 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, + 565, 564, 563, 562, 560, 557, 555, 554, 553, 552, - 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, - 524, 523, 521, 519, 518, 517, 516, 515, 514, 513, - 512, 511, 510, 509, 508, 507, 506, 504, 503, 502, - 501, 500, 499, 498, 497, 495, 494, 493, 492, 491, - 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, - 480, 479, 477, 476, 475, 474, 472, 471, 470, 469, - 468, 467, 465, 464, 462, 461, 460, 458, 456, 455, - 454, 453, 452, 451, 450, 448, 447, 446, 445, 444, - 439, 437, 436, 434, 431, 429, 428, 427, 426, 425, - 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, + 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, + 541, 540, 539, 538, 537, 536, 534, 533, 532, 531, + 530, 529, 528, 527, 526, 525, 524, 523, 521, 519, + 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, + 508, 507, 506, 504, 503, 502, 501, 500, 499, 498, + 497, 495, 494, 493, 492, 491, 490, 489, 488, 487, + 486, 485, 484, 483, 482, 481, 480, 479, 477, 476, + 475, 474, 472, 471, 470, 469, 468, 467, 465, 464, + 462, 461, 460, 458, 456, 455, 454, 453, 452, 451, + 450, 448, 447, 446, 445, 444, 439, 437, 436, 434, - 413, 412, 411, 410, 408, 407, 406, 404, 403, 402, - 401, 400, 399, 398, 396, 395, 393, 392, 391, 390, - 389, 388, 387, 386, 385, 384, 383, 379, 378, 377, - 375, 374, 373, 371, 370, 369, 368, 367, 366, 365, - 364, 363, 362, 361, 360, 358, 357, 356, 355, 354, - 353, 352, 351, 350, 349, 348, 347, 346, 344, 343, - 342, 341, 339, 336, 335, 334, 333, 332, 331, 330, - 329, 328, 327, 323, 321, 317, 315, 313, 306, 305, - 304, 303, 302, 301, 300, 298, 297, 296, 295, 294, - 293, 292, 291, 290, 288, 287, 286, 285, 284, 283, + 431, 429, 428, 427, 426, 425, 423, 422, 421, 420, + 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, + 408, 407, 406, 404, 403, 402, 401, 400, 399, 398, + 396, 395, 393, 392, 391, 390, 389, 388, 387, 386, + 385, 384, 383, 379, 378, 377, 375, 374, 373, 371, + 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, + 360, 358, 357, 356, 355, 354, 353, 352, 351, 350, + 349, 348, 347, 346, 344, 343, 342, 341, 339, 336, + 335, 334, 333, 332, 331, 330, 329, 328, 327, 323, + 321, 317, 315, 313, 306, 305, 304, 303, 302, 301, - 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, 204, 202, 200, - 198, 193, 190, 182, 181, 180, 179, 178, 177, 176, - 174, 173, 172, 170, 169, 168, 166, 164, 162, 160, - 159, 157, 156, 155, 154, 153, 151, 150, 149, 148, + 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, 204, 202, 200, 198, 193, 190, 182, + 181, 180, 179, 178, 177, 176, 174, 173, 172, 170, - 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, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, + 169, 168, 166, 164, 162, 160, 159, 157, 156, 155, + 154, 153, 151, 150, 149, 148, 147, 146, 144, 143, + 142, 141, 140, 139, 138, 136, 135, 133, 132, 128, + 127, 126, 124, 123, 122, 121, 119, 117, 113, 104, + 103, 97, 96, 77, 72, 66, 52, 49, 48, 43, + 41, 39, 38, 24, 14, 11, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, - 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, - 1952, 1952, 1952, 1952 + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, + 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969 } ; static yy_state_type yy_last_accepting_state; @@ -1947,7 +1954,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[213] = +static const flex_int16_t yy_rule_linenum[214] = { 0, 148, 150, 152, 157, 158, 163, 164, 165, 177, 180, 185, 192, 201, 210, 219, 228, 237, 246, 255, 264, @@ -1956,23 +1963,23 @@ static const flex_int16_t yy_rule_linenum[213] = 468, 477, 486, 495, 504, 513, 522, 531, 540, 549, 558, 571, 580, 589, 598, 607, 618, 629, 640, 651, 663, 674, 685, 696, 707, 718, 729, 740, 751, 762, - 773, 784, 793, 804, 815, 826, 837, 848, 859, 870, - 881, 890, 899, 908, 917, 928, 939, 950, 961, 972, - 983, 994, 1006, 1016, 1027, 1036, 1045, 1060, 1076, 1085, + 773, 784, 795, 804, 815, 826, 837, 848, 859, 870, + 881, 892, 901, 910, 919, 928, 939, 950, 961, 972, + 983, 994, 1005, 1017, 1027, 1038, 1047, 1056, 1071, 1087, - 1094, 1103, 1112, 1121, 1130, 1139, 1148, 1157, 1166, 1190, - 1214, 1223, 1233, 1243, 1252, 1262, 1273, 1282, 1291, 1300, - 1309, 1318, 1329, 1340, 1351, 1361, 1370, 1379, 1388, 1399, - 1410, 1421, 1432, 1443, 1452, 1461, 1470, 1479, 1488, 1497, - 1506, 1515, 1524, 1534, 1546, 1559, 1568, 1577, 1587, 1597, - 1606, 1617, 1627, 1636, 1646, 1656, 1665, 1674, 1683, 1692, - 1702, 1711, 1720, 1729, 1738, 1747, 1756, 1765, 1774, 1783, - 1792, 1801, 1810, 1819, 1828, 1837, 1846, 1855, 1864, 1873, - 1882, 1891, 1900, 1909, 1918, 1927, 1936, 1945, 1954, 1963, - 1972, 1981, 1990, 1999, 2100, 2116, 2165, 2173, 2188, 2189, + 1096, 1105, 1114, 1123, 1132, 1141, 1150, 1159, 1168, 1177, + 1201, 1225, 1234, 1244, 1254, 1263, 1273, 1284, 1293, 1302, + 1311, 1320, 1329, 1340, 1351, 1362, 1372, 1381, 1390, 1399, + 1410, 1421, 1432, 1443, 1454, 1463, 1472, 1481, 1490, 1499, + 1508, 1517, 1526, 1535, 1545, 1557, 1570, 1579, 1588, 1598, + 1608, 1617, 1628, 1638, 1647, 1657, 1667, 1676, 1685, 1694, + 1703, 1713, 1722, 1731, 1740, 1749, 1758, 1767, 1776, 1785, + 1794, 1803, 1812, 1821, 1830, 1839, 1848, 1857, 1866, 1875, + 1884, 1893, 1902, 1911, 1920, 1929, 1938, 1947, 1956, 1965, + 1974, 1983, 1992, 2001, 2010, 2111, 2127, 2176, 2184, 2199, - 2190, 2191, 2192, 2193, 2195, 2213, 2226, 2231, 2235, 2237, - 2239, 2241 + 2200, 2201, 2202, 2203, 2204, 2206, 2224, 2237, 2242, 2246, + 2248, 2250, 2252 } ; /* The intent behind this definition is that it'll catch @@ -2026,7 +2033,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) -#line 2029 "dhcp6_lexer.cc" +#line 2037 "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 @@ -2052,8 +2059,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 2055 "dhcp6_lexer.cc" -#line 2056 "dhcp6_lexer.cc" +#line 2063 "dhcp6_lexer.cc" +#line 2064 "dhcp6_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2383,7 +2390,7 @@ YY_DECL } -#line 2386 "dhcp6_lexer.cc" +#line 2394 "dhcp6_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2412,13 +2419,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 >= 1953 ) + if ( yy_current_state >= 1970 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1952 ); + while ( yy_current_state != 1969 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2437,13 +2444,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 < 213 ) + else if ( yy_act < 214 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 213 ) + else if ( yy_act == 214 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 214 ) + else if ( yy_act == 215 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3257,9 +3264,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_REQUEST_TIMEOUT(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DISABLE_DHCP_ON_DB_LOSS(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("request-timeout", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("disable-dhcp-on-db-loss", driver.loc_); } } YY_BREAK @@ -3271,9 +3278,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_TCP_KEEPALIVE(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_REQUEST_TIMEOUT(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("tcp-keepalive", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("request-timeout", driver.loc_); } } YY_BREAK @@ -3285,9 +3292,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_TCP_NODELAY(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_TCP_KEEPALIVE(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("tcp-nodelay", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("tcp-keepalive", driver.loc_); } } YY_BREAK @@ -3299,9 +3306,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_CONTACT_POINTS(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_TCP_NODELAY(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("contact-points", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("tcp-nodelay", driver.loc_); } } YY_BREAK @@ -3313,9 +3320,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_MAX_RECONNECT_TRIES(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_CONTACT_POINTS(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("contact-points", driver.loc_); } } YY_BREAK @@ -3325,23 +3332,23 @@ YY_RULE_SETUP { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: - return isc::dhcp::Dhcp6Parser::make_MAX_ROW_ERRORS(driver.loc_); + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp6Parser::make_MAX_RECONNECT_TRIES(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("max_row_errors", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_); } } YY_BREAK case 73: YY_RULE_SETUP -#line 793 "dhcp6_lexer.ll" +#line 795 "dhcp6_lexer.ll" { switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DHCP6: - case isc::dhcp::Parser6Context::SUBNET6: - case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_PREFERRED_LIFETIME(driver.loc_); + case isc::dhcp::Parser6Context::LEASE_DATABASE: + return isc::dhcp::Dhcp6Parser::make_MAX_ROW_ERRORS(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("max_row_errors", driver.loc_); } } YY_BREAK @@ -3353,9 +3360,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_MIN_PREFERRED_LIFETIME(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_PREFERRED_LIFETIME(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("min-preferred-lifetime", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_); } } YY_BREAK @@ -3367,9 +3374,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_MAX_PREFERRED_LIFETIME(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_MIN_PREFERRED_LIFETIME(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("max-preferred-lifetime", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("min-preferred-lifetime", driver.loc_); } } YY_BREAK @@ -3381,9 +3388,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_VALID_LIFETIME(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_MAX_PREFERRED_LIFETIME(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("max-preferred-lifetime", driver.loc_); } } YY_BREAK @@ -3395,9 +3402,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_MIN_VALID_LIFETIME(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_VALID_LIFETIME(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("min-valid-lifetime", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_); } } YY_BREAK @@ -3409,9 +3416,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_MAX_VALID_LIFETIME(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_MIN_VALID_LIFETIME(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("max-valid-lifetime", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("min-valid-lifetime", driver.loc_); } } YY_BREAK @@ -3423,9 +3430,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_MAX_VALID_LIFETIME(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("max-valid-lifetime", driver.loc_); } } YY_BREAK @@ -3437,15 +3444,29 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_REBIND_TIMER(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_); } } YY_BREAK case 81: YY_RULE_SETUP #line 881 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_REBIND_TIMER(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_); + } +} + YY_BREAK +case 82: +YY_RULE_SETUP +#line 892 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3455,9 +3476,9 @@ YY_RULE_SETUP } } YY_BREAK -case 82: +case 83: YY_RULE_SETUP -#line 890 "dhcp6_lexer.ll" +#line 901 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3467,9 +3488,9 @@ YY_RULE_SETUP } } YY_BREAK -case 83: +case 84: YY_RULE_SETUP -#line 899 "dhcp6_lexer.ll" +#line 910 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3479,9 +3500,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 85: YY_RULE_SETUP -#line 908 "dhcp6_lexer.ll" +#line 919 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3491,20 +3512,6 @@ YY_RULE_SETUP } } YY_BREAK -case 85: -YY_RULE_SETUP -#line 917 "dhcp6_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DHCP6: - case isc::dhcp::Parser6Context::SUBNET6: - case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_SEND_UPDATES(driver.loc_); - default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-send-updates", driver.loc_); - } -} - YY_BREAK case 86: YY_RULE_SETUP #line 928 "dhcp6_lexer.ll" @@ -3513,9 +3520,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_OVERRIDE_NO_UPDATE(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DDNS_SEND_UPDATES(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-no-update", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-send-updates", driver.loc_); } } YY_BREAK @@ -3527,9 +3534,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_OVERRIDE_CLIENT_UPDATE(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DDNS_OVERRIDE_NO_UPDATE(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-client-update", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-no-update", driver.loc_); } } YY_BREAK @@ -3541,9 +3548,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_REPLACE_CLIENT_NAME(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DDNS_OVERRIDE_CLIENT_UPDATE(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-replace-client-name", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-client-update", driver.loc_); } } YY_BREAK @@ -3555,9 +3562,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_GENERATED_PREFIX(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DDNS_REPLACE_CLIENT_NAME(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-generated-prefix", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-replace-client-name", driver.loc_); } } YY_BREAK @@ -3569,9 +3576,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_QUALIFYING_SUFFIX(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DDNS_GENERATED_PREFIX(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-qualifying-suffix", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-generated-prefix", driver.loc_); } } YY_BREAK @@ -3583,15 +3590,29 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_UPDATE_ON_RENEW(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DDNS_QUALIFYING_SUFFIX(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-qualifying-suffix", driver.loc_); } } YY_BREAK case 92: YY_RULE_SETUP #line 994 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_DDNS_UPDATE_ON_RENEW(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_); + } +} + YY_BREAK +case 93: +YY_RULE_SETUP +#line 1005 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3603,9 +3624,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 94: YY_RULE_SETUP -#line 1006 "dhcp6_lexer.ll" +#line 1017 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3616,9 +3637,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 95: YY_RULE_SETUP -#line 1016 "dhcp6_lexer.ll" +#line 1027 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3630,9 +3651,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 96: YY_RULE_SETUP -#line 1027 "dhcp6_lexer.ll" +#line 1038 "dhcp6_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3642,9 +3663,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 97: YY_RULE_SETUP -#line 1036 "dhcp6_lexer.ll" +#line 1047 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3654,9 +3675,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 98: YY_RULE_SETUP -#line 1045 "dhcp6_lexer.ll" +#line 1056 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3672,9 +3693,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 99: YY_RULE_SETUP -#line 1060 "dhcp6_lexer.ll" +#line 1071 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3691,9 +3712,9 @@ YY_RULE_SETUP } } YY_BREAK -case 99: +case 100: YY_RULE_SETUP -#line 1076 "dhcp6_lexer.ll" +#line 1087 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3703,9 +3724,9 @@ YY_RULE_SETUP } } YY_BREAK -case 100: +case 101: YY_RULE_SETUP -#line 1085 "dhcp6_lexer.ll" +#line 1096 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3715,9 +3736,9 @@ YY_RULE_SETUP } } YY_BREAK -case 101: +case 102: YY_RULE_SETUP -#line 1094 "dhcp6_lexer.ll" +#line 1105 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3727,9 +3748,9 @@ YY_RULE_SETUP } } YY_BREAK -case 102: +case 103: YY_RULE_SETUP -#line 1103 "dhcp6_lexer.ll" +#line 1114 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3739,9 +3760,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 104: YY_RULE_SETUP -#line 1112 "dhcp6_lexer.ll" +#line 1123 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3751,9 +3772,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 105: YY_RULE_SETUP -#line 1121 "dhcp6_lexer.ll" +#line 1132 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3763,9 +3784,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 106: YY_RULE_SETUP -#line 1130 "dhcp6_lexer.ll" +#line 1141 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3775,9 +3796,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 107: YY_RULE_SETUP -#line 1139 "dhcp6_lexer.ll" +#line 1150 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3787,9 +3808,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 108: YY_RULE_SETUP -#line 1148 "dhcp6_lexer.ll" +#line 1159 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3799,9 +3820,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 1157 "dhcp6_lexer.ll" +#line 1168 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::POOLS: @@ -3811,9 +3832,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 110: YY_RULE_SETUP -#line 1166 "dhcp6_lexer.ll" +#line 1177 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3838,9 +3859,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 111: YY_RULE_SETUP -#line 1190 "dhcp6_lexer.ll" +#line 1201 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3865,9 +3886,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 112: YY_RULE_SETUP -#line 1214 "dhcp6_lexer.ll" +#line 1225 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3877,9 +3898,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 113: YY_RULE_SETUP -#line 1223 "dhcp6_lexer.ll" +#line 1234 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3890,9 +3911,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 114: YY_RULE_SETUP -#line 1233 "dhcp6_lexer.ll" +#line 1244 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3903,9 +3924,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 115: YY_RULE_SETUP -#line 1243 "dhcp6_lexer.ll" +#line 1254 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3915,9 +3936,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 116: YY_RULE_SETUP -#line 1252 "dhcp6_lexer.ll" +#line 1263 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3928,9 +3949,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 117: YY_RULE_SETUP -#line 1262 "dhcp6_lexer.ll" +#line 1273 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3942,9 +3963,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 118: YY_RULE_SETUP -#line 1273 "dhcp6_lexer.ll" +#line 1284 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3954,9 +3975,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 119: YY_RULE_SETUP -#line 1282 "dhcp6_lexer.ll" +#line 1293 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3966,9 +3987,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 120: YY_RULE_SETUP -#line 1291 "dhcp6_lexer.ll" +#line 1302 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3978,9 +3999,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 121: YY_RULE_SETUP -#line 1300 "dhcp6_lexer.ll" +#line 1311 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3990,9 +4011,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 122: YY_RULE_SETUP -#line 1309 "dhcp6_lexer.ll" +#line 1320 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -4002,20 +4023,6 @@ YY_RULE_SETUP } } YY_BREAK -case 122: -YY_RULE_SETUP -#line 1318 "dhcp6_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DHCP6: - case isc::dhcp::Parser6Context::SUBNET6: - case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_RESERVATIONS_GLOBAL(driver.loc_); - default: - return isc::dhcp::Dhcp6Parser::make_STRING("reservations-global", driver.loc_); - } -} - YY_BREAK case 123: YY_RULE_SETUP #line 1329 "dhcp6_lexer.ll" @@ -4024,9 +4031,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_RESERVATIONS_IN_SUBNET(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_RESERVATIONS_GLOBAL(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("reservations-in-subnet", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("reservations-global", driver.loc_); } } YY_BREAK @@ -4038,15 +4045,29 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_RESERVATIONS_OUT_OF_POOL(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_RESERVATIONS_IN_SUBNET(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("reservations-out-of-pool", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("reservations-in-subnet", driver.loc_); } } YY_BREAK case 125: YY_RULE_SETUP #line 1351 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_RESERVATIONS_OUT_OF_POOL(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("reservations-out-of-pool", driver.loc_); + } +} + YY_BREAK +case 126: +YY_RULE_SETUP +#line 1362 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4057,9 +4078,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 127: YY_RULE_SETUP -#line 1361 "dhcp6_lexer.ll" +#line 1372 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4069,9 +4090,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 128: YY_RULE_SETUP -#line 1370 "dhcp6_lexer.ll" +#line 1381 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4081,9 +4102,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 129: YY_RULE_SETUP -#line 1379 "dhcp6_lexer.ll" +#line 1390 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4093,20 +4114,6 @@ YY_RULE_SETUP } } YY_BREAK -case 129: -YY_RULE_SETUP -#line 1388 "dhcp6_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DHCP6: - case isc::dhcp::Parser6Context::SUBNET6: - case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_CALCULATE_TEE_TIMES(driver.loc_); - default: - return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_); - } -} - YY_BREAK case 130: YY_RULE_SETUP #line 1399 "dhcp6_lexer.ll" @@ -4115,9 +4122,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_CALCULATE_TEE_TIMES(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_); } } YY_BREAK @@ -4129,9 +4136,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_); } } YY_BREAK @@ -4143,9 +4150,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_CACHE_THRESHOLD(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("cache-threshold", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_); } } YY_BREAK @@ -4157,15 +4164,29 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_CACHE_MAX_AGE(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_CACHE_THRESHOLD(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("cache-max-age", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("cache-threshold", driver.loc_); } } YY_BREAK case 134: YY_RULE_SETUP #line 1443 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_CACHE_MAX_AGE(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("cache-max-age", driver.loc_); + } +} + YY_BREAK +case 135: +YY_RULE_SETUP +#line 1454 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4175,9 +4196,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 136: YY_RULE_SETUP -#line 1452 "dhcp6_lexer.ll" +#line 1463 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4187,9 +4208,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 137: YY_RULE_SETUP -#line 1461 "dhcp6_lexer.ll" +#line 1472 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4199,9 +4220,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 138: YY_RULE_SETUP -#line 1470 "dhcp6_lexer.ll" +#line 1481 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4211,9 +4232,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 139: YY_RULE_SETUP -#line 1479 "dhcp6_lexer.ll" +#line 1490 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4223,9 +4244,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 140: YY_RULE_SETUP -#line 1488 "dhcp6_lexer.ll" +#line 1499 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4235,9 +4256,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 141: YY_RULE_SETUP -#line 1497 "dhcp6_lexer.ll" +#line 1508 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4247,9 +4268,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 142: YY_RULE_SETUP -#line 1506 "dhcp6_lexer.ll" +#line 1517 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4259,9 +4280,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 143: YY_RULE_SETUP -#line 1515 "dhcp6_lexer.ll" +#line 1526 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4271,9 +4292,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 144: YY_RULE_SETUP -#line 1524 "dhcp6_lexer.ll" +#line 1535 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4284,9 +4305,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 145: YY_RULE_SETUP -#line 1534 "dhcp6_lexer.ll" +#line 1545 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4299,9 +4320,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 146: YY_RULE_SETUP -#line 1546 "dhcp6_lexer.ll" +#line 1557 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4315,9 +4336,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 147: YY_RULE_SETUP -#line 1559 "dhcp6_lexer.ll" +#line 1570 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4327,9 +4348,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 148: YY_RULE_SETUP -#line 1568 "dhcp6_lexer.ll" +#line 1579 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4339,9 +4360,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 149: YY_RULE_SETUP -#line 1577 "dhcp6_lexer.ll" +#line 1588 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4352,9 +4373,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 150: YY_RULE_SETUP -#line 1587 "dhcp6_lexer.ll" +#line 1598 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4365,9 +4386,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 151: YY_RULE_SETUP -#line 1597 "dhcp6_lexer.ll" +#line 1608 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4377,9 +4398,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 152: YY_RULE_SETUP -#line 1606 "dhcp6_lexer.ll" +#line 1617 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -4391,9 +4412,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 153: YY_RULE_SETUP -#line 1617 "dhcp6_lexer.ll" +#line 1628 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4404,9 +4425,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 154: YY_RULE_SETUP -#line 1627 "dhcp6_lexer.ll" +#line 1638 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4416,9 +4437,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 155: YY_RULE_SETUP -#line 1636 "dhcp6_lexer.ll" +#line 1647 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4429,9 +4450,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 156: YY_RULE_SETUP -#line 1646 "dhcp6_lexer.ll" +#line 1657 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4442,9 +4463,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 157: YY_RULE_SETUP -#line 1656 "dhcp6_lexer.ll" +#line 1667 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4454,9 +4475,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 158: YY_RULE_SETUP -#line 1665 "dhcp6_lexer.ll" +#line 1676 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4466,9 +4487,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 159: YY_RULE_SETUP -#line 1674 "dhcp6_lexer.ll" +#line 1685 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4478,9 +4499,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 160: YY_RULE_SETUP -#line 1683 "dhcp6_lexer.ll" +#line 1694 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4490,9 +4511,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 161: YY_RULE_SETUP -#line 1692 "dhcp6_lexer.ll" +#line 1703 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4503,9 +4524,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 162: YY_RULE_SETUP -#line 1702 "dhcp6_lexer.ll" +#line 1713 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RELAY: @@ -4515,9 +4536,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 163: YY_RULE_SETUP -#line 1711 "dhcp6_lexer.ll" +#line 1722 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4527,9 +4548,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 164: YY_RULE_SETUP -#line 1720 "dhcp6_lexer.ll" +#line 1731 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4539,9 +4560,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 165: YY_RULE_SETUP -#line 1729 "dhcp6_lexer.ll" +#line 1740 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4551,9 +4572,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 166: YY_RULE_SETUP -#line 1738 "dhcp6_lexer.ll" +#line 1749 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4563,9 +4584,9 @@ YY_RULE_SETUP } } YY_BREAK -case 166: +case 167: YY_RULE_SETUP -#line 1747 "dhcp6_lexer.ll" +#line 1758 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4575,9 +4596,9 @@ YY_RULE_SETUP } } YY_BREAK -case 167: +case 168: YY_RULE_SETUP -#line 1756 "dhcp6_lexer.ll" +#line 1767 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4587,9 +4608,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 169: YY_RULE_SETUP -#line 1765 "dhcp6_lexer.ll" +#line 1776 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4599,9 +4620,9 @@ YY_RULE_SETUP } } YY_BREAK -case 169: +case 170: YY_RULE_SETUP -#line 1774 "dhcp6_lexer.ll" +#line 1785 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4611,9 +4632,9 @@ YY_RULE_SETUP } } YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 1783 "dhcp6_lexer.ll" +#line 1794 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4623,9 +4644,9 @@ YY_RULE_SETUP } } YY_BREAK -case 171: +case 172: YY_RULE_SETUP -#line 1792 "dhcp6_lexer.ll" +#line 1803 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4635,9 +4656,9 @@ YY_RULE_SETUP } } YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 1801 "dhcp6_lexer.ll" +#line 1812 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4647,9 +4668,9 @@ YY_RULE_SETUP } } YY_BREAK -case 173: +case 174: YY_RULE_SETUP -#line 1810 "dhcp6_lexer.ll" +#line 1821 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4659,9 +4680,9 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 175: YY_RULE_SETUP -#line 1819 "dhcp6_lexer.ll" +#line 1830 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4671,9 +4692,9 @@ YY_RULE_SETUP } } YY_BREAK -case 175: +case 176: YY_RULE_SETUP -#line 1828 "dhcp6_lexer.ll" +#line 1839 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4683,9 +4704,9 @@ YY_RULE_SETUP } } YY_BREAK -case 176: +case 177: YY_RULE_SETUP -#line 1837 "dhcp6_lexer.ll" +#line 1848 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4695,9 +4716,9 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 178: YY_RULE_SETUP -#line 1846 "dhcp6_lexer.ll" +#line 1857 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4707,9 +4728,9 @@ YY_RULE_SETUP } } YY_BREAK -case 178: +case 179: YY_RULE_SETUP -#line 1855 "dhcp6_lexer.ll" +#line 1866 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4719,9 +4740,9 @@ YY_RULE_SETUP } } YY_BREAK -case 179: +case 180: YY_RULE_SETUP -#line 1864 "dhcp6_lexer.ll" +#line 1875 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4731,9 +4752,9 @@ YY_RULE_SETUP } } YY_BREAK -case 180: +case 181: YY_RULE_SETUP -#line 1873 "dhcp6_lexer.ll" +#line 1884 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4743,9 +4764,9 @@ YY_RULE_SETUP } } YY_BREAK -case 181: +case 182: YY_RULE_SETUP -#line 1882 "dhcp6_lexer.ll" +#line 1893 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4755,9 +4776,9 @@ YY_RULE_SETUP } } YY_BREAK -case 182: +case 183: YY_RULE_SETUP -#line 1891 "dhcp6_lexer.ll" +#line 1902 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -4767,9 +4788,9 @@ YY_RULE_SETUP } } YY_BREAK -case 183: +case 184: YY_RULE_SETUP -#line 1900 "dhcp6_lexer.ll" +#line 1911 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -4779,9 +4800,9 @@ YY_RULE_SETUP } } YY_BREAK -case 184: +case 185: YY_RULE_SETUP -#line 1909 "dhcp6_lexer.ll" +#line 1920 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -4791,9 +4812,9 @@ YY_RULE_SETUP } } YY_BREAK -case 185: +case 186: YY_RULE_SETUP -#line 1918 "dhcp6_lexer.ll" +#line 1929 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4803,9 +4824,9 @@ YY_RULE_SETUP } } YY_BREAK -case 186: +case 187: YY_RULE_SETUP -#line 1927 "dhcp6_lexer.ll" +#line 1938 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4815,9 +4836,9 @@ YY_RULE_SETUP } } YY_BREAK -case 187: +case 188: YY_RULE_SETUP -#line 1936 "dhcp6_lexer.ll" +#line 1947 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4827,9 +4848,9 @@ YY_RULE_SETUP } } YY_BREAK -case 188: +case 189: YY_RULE_SETUP -#line 1945 "dhcp6_lexer.ll" +#line 1956 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4839,9 +4860,9 @@ YY_RULE_SETUP } } YY_BREAK -case 189: +case 190: YY_RULE_SETUP -#line 1954 "dhcp6_lexer.ll" +#line 1965 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4851,9 +4872,9 @@ YY_RULE_SETUP } } YY_BREAK -case 190: +case 191: YY_RULE_SETUP -#line 1963 "dhcp6_lexer.ll" +#line 1974 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4863,9 +4884,9 @@ YY_RULE_SETUP } } YY_BREAK -case 191: +case 192: YY_RULE_SETUP -#line 1972 "dhcp6_lexer.ll" +#line 1983 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -4875,9 +4896,9 @@ YY_RULE_SETUP } } YY_BREAK -case 192: +case 193: YY_RULE_SETUP -#line 1981 "dhcp6_lexer.ll" +#line 1992 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4887,9 +4908,9 @@ YY_RULE_SETUP } } YY_BREAK -case 193: +case 194: YY_RULE_SETUP -#line 1990 "dhcp6_lexer.ll" +#line 2001 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4899,9 +4920,9 @@ YY_RULE_SETUP } } YY_BREAK -case 194: +case 195: YY_RULE_SETUP -#line 1999 "dhcp6_lexer.ll" +#line 2010 "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. @@ -5003,10 +5024,10 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 195: -/* rule 195 can match eol */ +case 196: +/* rule 196 can match eol */ YY_RULE_SETUP -#line 2100 "dhcp6_lexer.ll" +#line 2111 "dhcp6_lexer.ll" { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -5023,10 +5044,10 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 196: -/* rule 196 can match eol */ +case 197: +/* rule 197 can match eol */ YY_RULE_SETUP -#line 2116 "dhcp6_lexer.ll" +#line 2127 "dhcp6_lexer.ll" { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -5076,9 +5097,9 @@ YY_RULE_SETUP pos); } YY_BREAK -case 197: +case 198: YY_RULE_SETUP -#line 2165 "dhcp6_lexer.ll" +#line 2176 "dhcp6_lexer.ll" { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -5087,9 +5108,9 @@ YY_RULE_SETUP raw.size() + 1); } YY_BREAK -case 198: +case 199: YY_RULE_SETUP -#line 2173 "dhcp6_lexer.ll" +#line 2184 "dhcp6_lexer.ll" { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5105,39 +5126,39 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 199: -YY_RULE_SETUP -#line 2188 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } - YY_BREAK case 200: YY_RULE_SETUP -#line 2189 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } +#line 2199 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK case 201: YY_RULE_SETUP -#line 2190 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } +#line 2200 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK case 202: YY_RULE_SETUP -#line 2191 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } +#line 2201 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK case 203: YY_RULE_SETUP -#line 2192 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } +#line 2202 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK case 204: YY_RULE_SETUP -#line 2193 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } +#line 2203 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } YY_BREAK case 205: YY_RULE_SETUP -#line 2195 "dhcp6_lexer.ll" +#line 2204 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } + YY_BREAK +case 206: +YY_RULE_SETUP +#line 2206 "dhcp6_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -5156,9 +5177,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 206: +case 207: YY_RULE_SETUP -#line 2213 "dhcp6_lexer.ll" +#line 2224 "dhcp6_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -5172,43 +5193,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 207: +case 208: YY_RULE_SETUP -#line 2226 "dhcp6_lexer.ll" +#line 2237 "dhcp6_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 208: +case 209: YY_RULE_SETUP -#line 2231 "dhcp6_lexer.ll" +#line 2242 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 209: -YY_RULE_SETUP -#line 2235 "dhcp6_lexer.ll" -driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); - YY_BREAK case 210: YY_RULE_SETUP -#line 2237 "dhcp6_lexer.ll" -driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); +#line 2246 "dhcp6_lexer.ll" +driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK case 211: YY_RULE_SETUP -#line 2239 "dhcp6_lexer.ll" -driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); +#line 2248 "dhcp6_lexer.ll" +driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK case 212: YY_RULE_SETUP -#line 2241 "dhcp6_lexer.ll" +#line 2250 "dhcp6_lexer.ll" +driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); + YY_BREAK +case 213: +YY_RULE_SETUP +#line 2252 "dhcp6_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2243 "dhcp6_lexer.ll" +#line 2254 "dhcp6_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -5232,12 +5253,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 213: +case 214: YY_RULE_SETUP -#line 2266 "dhcp6_lexer.ll" +#line 2277 "dhcp6_lexer.ll" ECHO; YY_BREAK -#line 5240 "dhcp6_lexer.cc" +#line 5262 "dhcp6_lexer.cc" case YY_END_OF_BUFFER: { @@ -5556,7 +5577,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 >= 1953 ) + if ( yy_current_state >= 1970 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5589,11 +5610,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 >= 1953 ) + if ( yy_current_state >= 1970 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1952); + yy_is_jam = (yy_current_state == 1969); return yy_is_jam ? 0 : yy_current_state; } @@ -6342,7 +6363,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2266 "dhcp6_lexer.ll" +#line 2277 "dhcp6_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index 7d71eb1545..c742a525c0 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.5. +// A Bison parser, made by GNU Bison 3.5.1. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -30,9 +30,8 @@ // 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. +// Undocumented macros, especially those whose name start with YY_, +// are private implementation details. Do not rely on them. // Take the name prefix into account. @@ -48,7 +47,7 @@ #include -#line 52 "dhcp6_parser.cc" +#line 51 "dhcp6_parser.cc" #ifndef YY_ @@ -63,7 +62,6 @@ # endif #endif - // Whether we are compiled with exception support. #ifndef YY_EXCEPTIONS # if defined __GNUC__ && !defined __EXCEPTIONS @@ -119,13 +117,13 @@ # 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) YY_USE (Symbol) +# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol) # define YY_REDUCE_PRINT(Rule) static_cast (0) # define YY_STACK_PRINT() static_cast (0) @@ -141,7 +139,49 @@ #line 14 "dhcp6_parser.yy" namespace isc { namespace dhcp { -#line 145 "dhcp6_parser.cc" +#line 143 "dhcp6_parser.cc" + + + /* 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; + } + /// Build a parser object. Dhcp6Parser::Dhcp6Parser (isc::dhcp::Parser6Context& ctx_yyarg) @@ -161,7 +201,7 @@ namespace isc { namespace dhcp { {} /*---------------. - | symbol kinds. | + | Symbol types. | `---------------*/ @@ -192,13 +232,13 @@ namespace isc { namespace dhcp { : state (s) {} - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::by_state::kind () const YY_NOEXCEPT + Dhcp6Parser::symbol_number_type + Dhcp6Parser::by_state::type_get () const YY_NOEXCEPT { if (state == empty_state) - return symbol_kind::S_YYEMPTY; + return empty_symbol; else - return YY_CAST (symbol_kind_type, yystos_[+state]); + return yystos_[+state]; } Dhcp6Parser::stack_symbol_type::stack_symbol_type () @@ -207,31 +247,31 @@ namespace isc { namespace dhcp { 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 ()) + switch (that.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 + case 223: // value + case 227: // map_value + case 268: // ddns_replace_client_name_value + case 308: // db_type + case 413: // hr_mode + case 549: // duid_type + case 592: // ncr_protocol_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 206: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case symbol_kind::S_FLOAT: // "floating point" + case 205: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); break; - case symbol_kind::S_INTEGER: // "integer" + case 204: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); break; - case symbol_kind::S_STRING: // "constant string" + case 203: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; @@ -248,31 +288,31 @@ namespace isc { namespace dhcp { Dhcp6Parser::stack_symbol_type::stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) that) : super_type (s, YY_MOVE (that.location)) { - switch (that.kind ()) + switch (that.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 + case 223: // value + case 227: // map_value + case 268: // ddns_replace_client_name_value + case 308: // db_type + case 413: // hr_mode + case 549: // duid_type + case 592: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (that.value)); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 206: // "boolean" value.move< bool > (YY_MOVE (that.value)); break; - case symbol_kind::S_FLOAT: // "floating point" + case 205: // "floating point" value.move< double > (YY_MOVE (that.value)); break; - case symbol_kind::S_INTEGER: // "integer" + case 204: // "integer" value.move< int64_t > (YY_MOVE (that.value)); break; - case symbol_kind::S_STRING: // "constant string" + case 203: // "constant string" value.move< std::string > (YY_MOVE (that.value)); break; @@ -281,7 +321,7 @@ namespace isc { namespace dhcp { } // that is emptied. - that.kind_ = symbol_kind::S_YYEMPTY; + that.type = empty_symbol; } #if YY_CPLUSPLUS < 201103L @@ -289,31 +329,31 @@ namespace isc { namespace dhcp { Dhcp6Parser::stack_symbol_type::operator= (const stack_symbol_type& that) { state = that.state; - switch (that.kind ()) + switch (that.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 + case 223: // value + case 227: // map_value + case 268: // ddns_replace_client_name_value + case 308: // db_type + case 413: // hr_mode + case 549: // duid_type + case 592: // ncr_protocol_value value.copy< ElementPtr > (that.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 206: // "boolean" value.copy< bool > (that.value); break; - case symbol_kind::S_FLOAT: // "floating point" + case 205: // "floating point" value.copy< double > (that.value); break; - case symbol_kind::S_INTEGER: // "integer" + case 204: // "integer" value.copy< int64_t > (that.value); break; - case symbol_kind::S_STRING: // "constant string" + case 203: // "constant string" value.copy< std::string > (that.value); break; @@ -329,31 +369,31 @@ namespace isc { namespace dhcp { Dhcp6Parser::stack_symbol_type::operator= (stack_symbol_type& that) { state = that.state; - switch (that.kind ()) + switch (that.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 + case 223: // value + case 227: // map_value + case 268: // ddns_replace_client_name_value + case 308: // db_type + case 413: // hr_mode + case 549: // duid_type + case 592: // ncr_protocol_value value.move< ElementPtr > (that.value); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 206: // "boolean" value.move< bool > (that.value); break; - case symbol_kind::S_FLOAT: // "floating point" + case 205: // "floating point" value.move< double > (that.value); break; - case symbol_kind::S_INTEGER: // "integer" + case 204: // "integer" value.move< int64_t > (that.value); break; - case symbol_kind::S_STRING: // "constant string" + case 203: // "constant string" value.move< std::string > (that.value); break; @@ -379,91 +419,93 @@ namespace isc { namespace dhcp { #if PARSER6_DEBUG template void - Dhcp6Parser::yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const + Dhcp6Parser::yy_print_ (std::ostream& yyo, + const basic_symbol& yysym) const { std::ostream& yyoutput = yyo; - YY_USE (yyoutput); + YYUSE (yyoutput); + symbol_number_type yytype = yysym.type_get (); +#if defined __GNUC__ && ! defined __clang__ && ! defined __ICC && __GNUC__ * 100 + __GNUC_MINOR__ <= 408 + // Avoid a (spurious) G++ 4.8 warning about "array subscript is + // below array bounds". if (yysym.empty ()) - yyo << "empty symbol"; - else - { - symbol_kind_type yykind = yysym.kind (); - yyo << (yykind < YYNTOKENS ? "token" : "nterm") - << ' ' << yysym.name () << " (" - << yysym.location << ": "; - switch (yykind) + std::abort (); +#endif + yyo << (yytype < yyntokens_ ? "token" : "nterm") + << ' ' << yytname_[yytype] << " (" + << yysym.location << ": "; + switch (yytype) { - case symbol_kind::S_STRING: // "constant string" -#line 283 "dhcp6_parser.yy" + case 203: // "constant string" +#line 284 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } -#line 400 "dhcp6_parser.cc" +#line 443 "dhcp6_parser.cc" break; - case symbol_kind::S_INTEGER: // "integer" -#line 283 "dhcp6_parser.yy" + case 204: // "integer" +#line 284 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } -#line 406 "dhcp6_parser.cc" +#line 449 "dhcp6_parser.cc" break; - case symbol_kind::S_FLOAT: // "floating point" -#line 283 "dhcp6_parser.yy" + case 205: // "floating point" +#line 284 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < double > (); } -#line 412 "dhcp6_parser.cc" +#line 455 "dhcp6_parser.cc" break; - case symbol_kind::S_BOOLEAN: // "boolean" -#line 283 "dhcp6_parser.yy" + case 206: // "boolean" +#line 284 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < bool > (); } -#line 418 "dhcp6_parser.cc" +#line 461 "dhcp6_parser.cc" break; - case symbol_kind::S_value: // value -#line 283 "dhcp6_parser.yy" + case 223: // value +#line 284 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 424 "dhcp6_parser.cc" +#line 467 "dhcp6_parser.cc" break; - case symbol_kind::S_map_value: // map_value -#line 283 "dhcp6_parser.yy" + case 227: // map_value +#line 284 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 430 "dhcp6_parser.cc" +#line 473 "dhcp6_parser.cc" break; - case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 283 "dhcp6_parser.yy" + case 268: // ddns_replace_client_name_value +#line 284 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 436 "dhcp6_parser.cc" +#line 479 "dhcp6_parser.cc" break; - case symbol_kind::S_db_type: // db_type -#line 283 "dhcp6_parser.yy" + case 308: // db_type +#line 284 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 442 "dhcp6_parser.cc" +#line 485 "dhcp6_parser.cc" break; - case symbol_kind::S_hr_mode: // hr_mode -#line 283 "dhcp6_parser.yy" + case 413: // hr_mode +#line 284 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 448 "dhcp6_parser.cc" +#line 491 "dhcp6_parser.cc" break; - case symbol_kind::S_duid_type: // duid_type -#line 283 "dhcp6_parser.yy" + case 549: // duid_type +#line 284 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 454 "dhcp6_parser.cc" +#line 497 "dhcp6_parser.cc" break; - case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 283 "dhcp6_parser.yy" + case 592: // ncr_protocol_value +#line 284 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 460 "dhcp6_parser.cc" +#line 503 "dhcp6_parser.cc" break; default: break; } - yyo << ')'; - } + yyo << ')'; } #endif @@ -522,11 +564,11 @@ namespace isc { namespace dhcp { 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 @@ -586,7 +628,6 @@ namespace isc { namespace dhcp { `-----------------------------------------------*/ yynewstate: YYCDEBUG << "Entering state " << int (yystack_[0].state) << '\n'; - YY_STACK_PRINT (); // Accept? if (yystack_[0].state == yyfinal_) @@ -607,7 +648,7 @@ namespace isc { namespace dhcp { // Read a lookahead token. if (yyla.empty ()) { - YYCDEBUG << "Reading a token\n"; + YYCDEBUG << "Reading a token: "; #if YY_EXCEPTIONS try #endif // YY_EXCEPTIONS @@ -626,20 +667,10 @@ namespace isc { namespace dhcp { } 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 ()) + yyn += yyla.type_get (); + if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ()) { goto yydefault; } @@ -686,29 +717,29 @@ namespace isc { namespace dhcp { 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 + case 223: // value + case 227: // map_value + case 268: // ddns_replace_client_name_value + case 308: // db_type + case 413: // hr_mode + case 549: // duid_type + case 592: // ncr_protocol_value yylhs.value.emplace< ElementPtr > (); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 206: // "boolean" yylhs.value.emplace< bool > (); break; - case symbol_kind::S_FLOAT: // "floating point" + case 205: // "floating point" yylhs.value.emplace< double > (); break; - case symbol_kind::S_INTEGER: // "integer" + case 204: // "integer" yylhs.value.emplace< int64_t > (); break; - case symbol_kind::S_STRING: // "constant string" + case 203: // "constant string" yylhs.value.emplace< std::string > (); break; @@ -732,283 +763,283 @@ namespace isc { namespace dhcp { { switch (yyn) { - case 2: // $@1: %empty -#line 292 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 739 "dhcp6_parser.cc" - break; - - case 4: // $@2: %empty + case 2: #line 293 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.CONFIG; } -#line 745 "dhcp6_parser.cc" + { ctx.ctx_ = ctx.NO_KEYWORD; } +#line 770 "dhcp6_parser.cc" break; - case 6: // $@3: %empty + case 4: #line 294 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.DHCP6; } -#line 751 "dhcp6_parser.cc" + { ctx.ctx_ = ctx.CONFIG; } +#line 776 "dhcp6_parser.cc" break; - case 8: // $@4: %empty + case 6: #line 295 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.INTERFACES_CONFIG; } -#line 757 "dhcp6_parser.cc" + { ctx.ctx_ = ctx.DHCP6; } +#line 782 "dhcp6_parser.cc" break; - case 10: // $@5: %empty + case 8: #line 296 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.SUBNET6; } -#line 763 "dhcp6_parser.cc" + { ctx.ctx_ = ctx.INTERFACES_CONFIG; } +#line 788 "dhcp6_parser.cc" break; - case 12: // $@6: %empty + case 10: #line 297 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.POOLS; } -#line 769 "dhcp6_parser.cc" + { ctx.ctx_ = ctx.SUBNET6; } +#line 794 "dhcp6_parser.cc" break; - case 14: // $@7: %empty + case 12: #line 298 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.PD_POOLS; } -#line 775 "dhcp6_parser.cc" + { ctx.ctx_ = ctx.POOLS; } +#line 800 "dhcp6_parser.cc" break; - case 16: // $@8: %empty + case 14: #line 299 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.RESERVATIONS; } -#line 781 "dhcp6_parser.cc" + { ctx.ctx_ = ctx.PD_POOLS; } +#line 806 "dhcp6_parser.cc" break; - case 18: // $@9: %empty + case 16: #line 300 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.DHCP6; } -#line 787 "dhcp6_parser.cc" + { ctx.ctx_ = ctx.RESERVATIONS; } +#line 812 "dhcp6_parser.cc" break; - case 20: // $@10: %empty + case 18: #line 301 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.OPTION_DEF; } -#line 793 "dhcp6_parser.cc" + { ctx.ctx_ = ctx.DHCP6; } +#line 818 "dhcp6_parser.cc" break; - case 22: // $@11: %empty + case 20: #line 302 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.OPTION_DATA; } -#line 799 "dhcp6_parser.cc" + { ctx.ctx_ = ctx.OPTION_DEF; } +#line 824 "dhcp6_parser.cc" break; - case 24: // $@12: %empty + case 22: #line 303 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 805 "dhcp6_parser.cc" + { ctx.ctx_ = ctx.OPTION_DATA; } +#line 830 "dhcp6_parser.cc" break; - case 26: // $@13: %empty + case 24: #line 304 "dhcp6_parser.yy" - { ctx.ctx_ = ctx.DHCP_DDNS; } -#line 811 "dhcp6_parser.cc" + { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } +#line 836 "dhcp6_parser.cc" break; - case 28: // $@14: %empty + case 26: #line 305 "dhcp6_parser.yy" + { ctx.ctx_ = ctx.DHCP_DDNS; } +#line 842 "dhcp6_parser.cc" + break; + + case 28: +#line 306 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } -#line 817 "dhcp6_parser.cc" +#line 848 "dhcp6_parser.cc" break; - case 30: // value: "integer" -#line 313 "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" - break; - - case 31: // value: "floating point" + case 30: #line 314 "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" + { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } +#line 854 "dhcp6_parser.cc" break; - case 32: // value: "boolean" + case 31: #line 315 "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" + { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } +#line 860 "dhcp6_parser.cc" break; - case 33: // value: "constant string" + case 32: #line 316 "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" + { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } +#line 866 "dhcp6_parser.cc" break; - case 34: // value: "null" + case 33: #line 317 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 847 "dhcp6_parser.cc" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } +#line 872 "dhcp6_parser.cc" break; - case 35: // value: map2 + case 34: #line 318 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 853 "dhcp6_parser.cc" + { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } +#line 878 "dhcp6_parser.cc" break; - case 36: // value: list_generic + case 35: #line 319 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 859 "dhcp6_parser.cc" + { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 884 "dhcp6_parser.cc" break; - case 37: // sub_json: value -#line 322 "dhcp6_parser.yy" + case 36: +#line 320 "dhcp6_parser.yy" + { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } +#line 890 "dhcp6_parser.cc" + break; + + case 37: +#line 323 "dhcp6_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); } -#line 868 "dhcp6_parser.cc" +#line 899 "dhcp6_parser.cc" break; - case 38: // $@15: %empty -#line 327 "dhcp6_parser.yy" + case 38: +#line 328 "dhcp6_parser.yy" { // 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 910 "dhcp6_parser.cc" break; - case 39: // map2: "{" $@15 map_content "}" -#line 332 "dhcp6_parser.yy" + case 39: +#line 333 "dhcp6_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. } -#line 889 "dhcp6_parser.cc" +#line 920 "dhcp6_parser.cc" break; - case 40: // map_value: map2 -#line 338 "dhcp6_parser.yy" + case 40: +#line 339 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 895 "dhcp6_parser.cc" +#line 926 "dhcp6_parser.cc" break; - case 43: // not_empty_map: "constant string" ":" value -#line 345 "dhcp6_parser.yy" + case 43: +#line 346 "dhcp6_parser.yy" { // 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 > ()); } -#line 905 "dhcp6_parser.cc" +#line 936 "dhcp6_parser.cc" break; - case 44: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 350 "dhcp6_parser.yy" + case 44: +#line 351 "dhcp6_parser.yy" { // 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 > ()); } -#line 916 "dhcp6_parser.cc" +#line 947 "dhcp6_parser.cc" break; - case 45: // $@16: %empty -#line 358 "dhcp6_parser.yy" + case 45: +#line 359 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 925 "dhcp6_parser.cc" +#line 956 "dhcp6_parser.cc" break; - case 46: // list_generic: "[" $@16 list_content "]" -#line 361 "dhcp6_parser.yy" + case 46: +#line 362 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here } -#line 933 "dhcp6_parser.cc" +#line 964 "dhcp6_parser.cc" break; - case 49: // not_empty_list: value -#line 369 "dhcp6_parser.yy" + case 49: +#line 370 "dhcp6_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); } -#line 942 "dhcp6_parser.cc" +#line 973 "dhcp6_parser.cc" break; - case 50: // not_empty_list: not_empty_list "," value -#line 373 "dhcp6_parser.yy" + case 50: +#line 374 "dhcp6_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); } -#line 951 "dhcp6_parser.cc" +#line 982 "dhcp6_parser.cc" break; - case 51: // $@17: %empty -#line 380 "dhcp6_parser.yy" + case 51: +#line 381 "dhcp6_parser.yy" { // List parsing about to start } -#line 959 "dhcp6_parser.cc" +#line 990 "dhcp6_parser.cc" break; - case 52: // list_strings: "[" $@17 list_strings_content "]" -#line 382 "dhcp6_parser.yy" + case 52: +#line 383 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); } -#line 968 "dhcp6_parser.cc" +#line 999 "dhcp6_parser.cc" break; - case 55: // not_empty_list_strings: "constant string" -#line 391 "dhcp6_parser.yy" + case 55: +#line 392 "dhcp6_parser.yy" { 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 1008 "dhcp6_parser.cc" break; - case 56: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 395 "dhcp6_parser.yy" + case 56: +#line 396 "dhcp6_parser.yy" { 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 1017 "dhcp6_parser.cc" break; - case 57: // unknown_map_entry: "constant string" ":" -#line 406 "dhcp6_parser.yy" + case 57: +#line 407 "dhcp6_parser.yy" { const std::string& where = ctx.contextName(); 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 1028 "dhcp6_parser.cc" break; - case 58: // $@18: %empty -#line 415 "dhcp6_parser.yy" + case 58: +#line 416 "dhcp6_parser.yy" { // 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 1039 "dhcp6_parser.cc" break; - case 59: // syntax_map: "{" $@18 global_object "}" -#line 420 "dhcp6_parser.yy" + case 59: +#line 421 "dhcp6_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1017,11 +1048,11 @@ 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 1052 "dhcp6_parser.cc" break; - case 60: // $@19: %empty -#line 430 "dhcp6_parser.yy" + case 60: +#line 431 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1032,443 +1063,443 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP6); } -#line 1036 "dhcp6_parser.cc" +#line 1067 "dhcp6_parser.cc" break; - case 61: // global_object: "Dhcp6" $@19 ":" "{" global_params "}" -#line 439 "dhcp6_parser.yy" + case 61: +#line 440 "dhcp6_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1046 "dhcp6_parser.cc" +#line 1077 "dhcp6_parser.cc" break; - case 62: // $@20: %empty -#line 447 "dhcp6_parser.yy" + case 62: +#line 448 "dhcp6_parser.yy" { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1056 "dhcp6_parser.cc" +#line 1087 "dhcp6_parser.cc" break; - case 63: // sub_dhcp6: "{" $@20 global_params "}" -#line 451 "dhcp6_parser.yy" + case 63: +#line 452 "dhcp6_parser.yy" { // No global parameter is required // parsing completed } -#line 1065 "dhcp6_parser.cc" +#line 1096 "dhcp6_parser.cc" break; - case 127: // $@21: %empty -#line 525 "dhcp6_parser.yy" + case 127: +#line 526 "dhcp6_parser.yy" { ctx.unique("data-directory", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1074 "dhcp6_parser.cc" +#line 1105 "dhcp6_parser.cc" break; - case 128: // data_directory: "data-directory" $@21 ":" "constant string" -#line 528 "dhcp6_parser.yy" + case 128: +#line 529 "dhcp6_parser.yy" { ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data-directory", datadir); ctx.leave(); } -#line 1084 "dhcp6_parser.cc" +#line 1115 "dhcp6_parser.cc" break; - case 129: // preferred_lifetime: "preferred-lifetime" ":" "integer" -#line 534 "dhcp6_parser.yy" + case 129: +#line 535 "dhcp6_parser.yy" { ctx.unique("preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("preferred-lifetime", prf); } -#line 1094 "dhcp6_parser.cc" +#line 1125 "dhcp6_parser.cc" break; - case 130: // min_preferred_lifetime: "min-preferred-lifetime" ":" "integer" -#line 540 "dhcp6_parser.yy" + case 130: +#line 541 "dhcp6_parser.yy" { ctx.unique("min-preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("min-preferred-lifetime", prf); } -#line 1104 "dhcp6_parser.cc" +#line 1135 "dhcp6_parser.cc" break; - case 131: // max_preferred_lifetime: "max-preferred-lifetime" ":" "integer" -#line 546 "dhcp6_parser.yy" + case 131: +#line 547 "dhcp6_parser.yy" { ctx.unique("max-preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-preferred-lifetime", prf); } -#line 1114 "dhcp6_parser.cc" +#line 1145 "dhcp6_parser.cc" break; - case 132: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 552 "dhcp6_parser.yy" + case 132: +#line 553 "dhcp6_parser.yy" { ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("valid-lifetime", prf); } -#line 1124 "dhcp6_parser.cc" +#line 1155 "dhcp6_parser.cc" break; - case 133: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 558 "dhcp6_parser.yy" + case 133: +#line 559 "dhcp6_parser.yy" { ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("min-valid-lifetime", prf); } -#line 1134 "dhcp6_parser.cc" +#line 1165 "dhcp6_parser.cc" break; - case 134: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 564 "dhcp6_parser.yy" + case 134: +#line 565 "dhcp6_parser.yy" { ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-valid-lifetime", prf); } -#line 1144 "dhcp6_parser.cc" +#line 1175 "dhcp6_parser.cc" break; - case 135: // renew_timer: "renew-timer" ":" "integer" -#line 570 "dhcp6_parser.yy" + case 135: +#line 571 "dhcp6_parser.yy" { ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("renew-timer", prf); } -#line 1154 "dhcp6_parser.cc" +#line 1185 "dhcp6_parser.cc" break; - case 136: // rebind_timer: "rebind-timer" ":" "integer" -#line 576 "dhcp6_parser.yy" + case 136: +#line 577 "dhcp6_parser.yy" { ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rebind-timer", prf); } -#line 1164 "dhcp6_parser.cc" +#line 1195 "dhcp6_parser.cc" break; - case 137: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 582 "dhcp6_parser.yy" + case 137: +#line 583 "dhcp6_parser.yy" { ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location)); ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("calculate-tee-times", ctt); } -#line 1174 "dhcp6_parser.cc" +#line 1205 "dhcp6_parser.cc" break; - case 138: // t1_percent: "t1-percent" ":" "floating point" -#line 588 "dhcp6_parser.yy" + case 138: +#line 589 "dhcp6_parser.yy" { ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("t1-percent", t1); } -#line 1184 "dhcp6_parser.cc" +#line 1215 "dhcp6_parser.cc" break; - case 139: // t2_percent: "t2-percent" ":" "floating point" -#line 594 "dhcp6_parser.yy" + case 139: +#line 595 "dhcp6_parser.yy" { ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("t2-percent", t2); } -#line 1194 "dhcp6_parser.cc" +#line 1225 "dhcp6_parser.cc" break; - case 140: // cache_threshold: "cache-threshold" ":" "floating point" -#line 600 "dhcp6_parser.yy" + case 140: +#line 601 "dhcp6_parser.yy" { ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location)); ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cache-threshold", ct); } -#line 1204 "dhcp6_parser.cc" +#line 1235 "dhcp6_parser.cc" break; - case 141: // cache_max_age: "cache-max-age" ":" "integer" -#line 606 "dhcp6_parser.yy" + case 141: +#line 607 "dhcp6_parser.yy" { ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location)); ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cache-max-age", cm); } -#line 1214 "dhcp6_parser.cc" +#line 1245 "dhcp6_parser.cc" break; - case 142: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 612 "dhcp6_parser.yy" + case 142: +#line 613 "dhcp6_parser.yy" { ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location)); ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("decline-probation-period", dpp); } -#line 1224 "dhcp6_parser.cc" +#line 1255 "dhcp6_parser.cc" break; - case 143: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 618 "dhcp6_parser.yy" + case 143: +#line 619 "dhcp6_parser.yy" { ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-send-updates", b); } -#line 1234 "dhcp6_parser.cc" +#line 1265 "dhcp6_parser.cc" break; - case 144: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 624 "dhcp6_parser.yy" + case 144: +#line 625 "dhcp6_parser.yy" { ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-override-no-update", b); } -#line 1244 "dhcp6_parser.cc" +#line 1275 "dhcp6_parser.cc" break; - case 145: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 630 "dhcp6_parser.yy" + case 145: +#line 631 "dhcp6_parser.yy" { ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-override-client-update", b); } -#line 1254 "dhcp6_parser.cc" +#line 1285 "dhcp6_parser.cc" break; - case 146: // $@22: %empty -#line 636 "dhcp6_parser.yy" + case 146: +#line 637 "dhcp6_parser.yy" { ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 1263 "dhcp6_parser.cc" +#line 1294 "dhcp6_parser.cc" break; - case 147: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value -#line 639 "dhcp6_parser.yy" + case 147: +#line 640 "dhcp6_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1272 "dhcp6_parser.cc" +#line 1303 "dhcp6_parser.cc" break; - case 148: // ddns_replace_client_name_value: "when-present" -#line 645 "dhcp6_parser.yy" + case 148: +#line 646 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 1280 "dhcp6_parser.cc" +#line 1311 "dhcp6_parser.cc" break; - case 149: // ddns_replace_client_name_value: "never" -#line 648 "dhcp6_parser.yy" + case 149: +#line 649 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 1288 "dhcp6_parser.cc" +#line 1319 "dhcp6_parser.cc" break; - case 150: // ddns_replace_client_name_value: "always" -#line 651 "dhcp6_parser.yy" + case 150: +#line 652 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 1296 "dhcp6_parser.cc" +#line 1327 "dhcp6_parser.cc" break; - case 151: // ddns_replace_client_name_value: "when-not-present" -#line 654 "dhcp6_parser.yy" + case 151: +#line 655 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 1304 "dhcp6_parser.cc" +#line 1335 "dhcp6_parser.cc" break; - case 152: // ddns_replace_client_name_value: "boolean" -#line 657 "dhcp6_parser.yy" + case 152: +#line 658 "dhcp6_parser.yy" { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); } -#line 1313 "dhcp6_parser.cc" +#line 1344 "dhcp6_parser.cc" break; - case 153: // $@23: %empty -#line 663 "dhcp6_parser.yy" + case 153: +#line 664 "dhcp6_parser.yy" { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1322 "dhcp6_parser.cc" +#line 1353 "dhcp6_parser.cc" break; - case 154: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" -#line 666 "dhcp6_parser.yy" + case 154: +#line 667 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-generated-prefix", s); ctx.leave(); } -#line 1332 "dhcp6_parser.cc" +#line 1363 "dhcp6_parser.cc" break; - case 155: // $@24: %empty -#line 672 "dhcp6_parser.yy" + case 155: +#line 673 "dhcp6_parser.yy" { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1341 "dhcp6_parser.cc" +#line 1372 "dhcp6_parser.cc" break; - case 156: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" -#line 675 "dhcp6_parser.yy" + case 156: +#line 676 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-qualifying-suffix", s); ctx.leave(); } -#line 1351 "dhcp6_parser.cc" +#line 1382 "dhcp6_parser.cc" break; - case 157: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 681 "dhcp6_parser.yy" + case 157: +#line 682 "dhcp6_parser.yy" { ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-update-on-renew", b); } -#line 1361 "dhcp6_parser.cc" +#line 1392 "dhcp6_parser.cc" break; - case 158: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" -#line 687 "dhcp6_parser.yy" + case 158: +#line 688 "dhcp6_parser.yy" { ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-use-conflict-resolution", b); } -#line 1371 "dhcp6_parser.cc" +#line 1402 "dhcp6_parser.cc" break; - case 159: // $@25: %empty -#line 693 "dhcp6_parser.yy" + case 159: +#line 694 "dhcp6_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1380 "dhcp6_parser.cc" +#line 1411 "dhcp6_parser.cc" break; - case 160: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string" -#line 696 "dhcp6_parser.yy" + case 160: +#line 697 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 1390 "dhcp6_parser.cc" +#line 1421 "dhcp6_parser.cc" break; - case 161: // $@26: %empty -#line 702 "dhcp6_parser.yy" + case 161: +#line 703 "dhcp6_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1399 "dhcp6_parser.cc" +#line 1430 "dhcp6_parser.cc" break; - case 162: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string" -#line 705 "dhcp6_parser.yy" + case 162: +#line 706 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 1409 "dhcp6_parser.cc" +#line 1440 "dhcp6_parser.cc" break; - case 163: // store_extended_info: "store-extended-info" ":" "boolean" -#line 711 "dhcp6_parser.yy" + case 163: +#line 712 "dhcp6_parser.yy" { ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("store-extended-info", b); } -#line 1419 "dhcp6_parser.cc" +#line 1450 "dhcp6_parser.cc" break; - case 164: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 717 "dhcp6_parser.yy" + case 164: +#line 718 "dhcp6_parser.yy" { ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location)); ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("statistic-default-sample-count", count); } -#line 1429 "dhcp6_parser.cc" +#line 1460 "dhcp6_parser.cc" break; - case 165: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 723 "dhcp6_parser.yy" + case 165: +#line 724 "dhcp6_parser.yy" { ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location)); ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("statistic-default-sample-age", age); } -#line 1439 "dhcp6_parser.cc" +#line 1470 "dhcp6_parser.cc" break; - case 166: // $@27: %empty -#line 729 "dhcp6_parser.yy" + case 166: +#line 730 "dhcp6_parser.yy" { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1448 "dhcp6_parser.cc" +#line 1479 "dhcp6_parser.cc" break; - case 167: // server_tag: "server-tag" $@27 ":" "constant string" -#line 732 "dhcp6_parser.yy" + case 167: +#line 733 "dhcp6_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); ctx.leave(); } -#line 1458 "dhcp6_parser.cc" +#line 1489 "dhcp6_parser.cc" break; - case 168: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 738 "dhcp6_parser.yy" + case 168: +#line 739 "dhcp6_parser.yy" { ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location)); ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-reservations-unique", unique); } -#line 1468 "dhcp6_parser.cc" +#line 1499 "dhcp6_parser.cc" break; - case 169: // $@28: %empty -#line 744 "dhcp6_parser.yy" + case 169: +#line 745 "dhcp6_parser.yy" { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1476,40 +1507,40 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1480 "dhcp6_parser.cc" +#line 1511 "dhcp6_parser.cc" break; - case 170: // interfaces_config: "interfaces-config" $@28 ":" "{" interfaces_config_params "}" -#line 750 "dhcp6_parser.yy" + case 170: +#line 751 "dhcp6_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1490 "dhcp6_parser.cc" +#line 1521 "dhcp6_parser.cc" break; - case 171: // $@29: %empty -#line 756 "dhcp6_parser.yy" + case 171: +#line 757 "dhcp6_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1500 "dhcp6_parser.cc" +#line 1531 "dhcp6_parser.cc" break; - case 172: // sub_interfaces6: "{" $@29 interfaces_config_params "}" -#line 760 "dhcp6_parser.yy" + case 172: +#line 761 "dhcp6_parser.yy" { // No interfaces config param is required // parsing completed } -#line 1509 "dhcp6_parser.cc" +#line 1540 "dhcp6_parser.cc" break; - case 180: // $@30: %empty -#line 776 "dhcp6_parser.yy" + case 180: +#line 777 "dhcp6_parser.yy" { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1517,30 +1548,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1521 "dhcp6_parser.cc" +#line 1552 "dhcp6_parser.cc" break; - case 181: // interfaces_list: "interfaces" $@30 ":" list_strings -#line 782 "dhcp6_parser.yy" + case 181: +#line 783 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1530 "dhcp6_parser.cc" +#line 1561 "dhcp6_parser.cc" break; - case 182: // re_detect: "re-detect" ":" "boolean" -#line 787 "dhcp6_parser.yy" + case 182: +#line 788 "dhcp6_parser.yy" { ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("re-detect", b); } -#line 1540 "dhcp6_parser.cc" +#line 1571 "dhcp6_parser.cc" break; - case 183: // $@31: %empty -#line 793 "dhcp6_parser.yy" + case 183: +#line 794 "dhcp6_parser.yy" { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1548,22 +1579,22 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1552 "dhcp6_parser.cc" +#line 1583 "dhcp6_parser.cc" break; - case 184: // lease_database: "lease-database" $@31 ":" "{" database_map_params "}" -#line 799 "dhcp6_parser.yy" + case 184: +#line 800 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1563 "dhcp6_parser.cc" +#line 1594 "dhcp6_parser.cc" break; - case 185: // $@32: %empty -#line 806 "dhcp6_parser.yy" + case 185: +#line 807 "dhcp6_parser.yy" { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1571,22 +1602,22 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1575 "dhcp6_parser.cc" +#line 1606 "dhcp6_parser.cc" break; - case 186: // hosts_database: "hosts-database" $@32 ":" "{" database_map_params "}" -#line 812 "dhcp6_parser.yy" + case 186: +#line 813 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1586 "dhcp6_parser.cc" +#line 1617 "dhcp6_parser.cc" break; - case 187: // $@33: %empty -#line 819 "dhcp6_parser.yy" + case 187: +#line 820 "dhcp6_parser.yy" { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1594,344 +1625,354 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1598 "dhcp6_parser.cc" +#line 1629 "dhcp6_parser.cc" break; - case 188: // hosts_databases: "hosts-databases" $@33 ":" "[" database_list "]" -#line 825 "dhcp6_parser.yy" + case 188: +#line 826 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1607 "dhcp6_parser.cc" +#line 1638 "dhcp6_parser.cc" break; - case 193: // $@34: %empty -#line 838 "dhcp6_parser.yy" + case 193: +#line 839 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1617 "dhcp6_parser.cc" +#line 1648 "dhcp6_parser.cc" break; - case 194: // database: "{" $@34 database_map_params "}" -#line 842 "dhcp6_parser.yy" + case 194: +#line 843 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1627 "dhcp6_parser.cc" +#line 1658 "dhcp6_parser.cc" break; - case 218: // $@35: %empty -#line 875 "dhcp6_parser.yy" + case 219: +#line 877 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_TYPE); } -#line 1636 "dhcp6_parser.cc" +#line 1667 "dhcp6_parser.cc" break; - case 219: // database_type: "type" $@35 ":" db_type -#line 878 "dhcp6_parser.yy" + case 220: +#line 880 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1645 "dhcp6_parser.cc" +#line 1676 "dhcp6_parser.cc" break; - case 220: // db_type: "memfile" -#line 883 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1651 "dhcp6_parser.cc" - break; - - case 221: // db_type: "mysql" -#line 884 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1657 "dhcp6_parser.cc" - break; - - case 222: // db_type: "postgresql" + case 221: #line 885 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1663 "dhcp6_parser.cc" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } +#line 1682 "dhcp6_parser.cc" break; - case 223: // db_type: "cql" + case 222: #line 886 "dhcp6_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } -#line 1669 "dhcp6_parser.cc" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } +#line 1688 "dhcp6_parser.cc" break; - case 224: // $@36: %empty -#line 889 "dhcp6_parser.yy" + case 223: +#line 887 "dhcp6_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } +#line 1694 "dhcp6_parser.cc" + break; + + case 224: +#line 888 "dhcp6_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } +#line 1700 "dhcp6_parser.cc" + break; + + case 225: +#line 891 "dhcp6_parser.yy" { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1678 "dhcp6_parser.cc" +#line 1709 "dhcp6_parser.cc" break; - case 225: // user: "user" $@36 ":" "constant string" -#line 892 "dhcp6_parser.yy" + case 226: +#line 894 "dhcp6_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); ctx.leave(); } -#line 1688 "dhcp6_parser.cc" +#line 1719 "dhcp6_parser.cc" break; - case 226: // $@37: %empty -#line 898 "dhcp6_parser.yy" + case 227: +#line 900 "dhcp6_parser.yy" { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1697 "dhcp6_parser.cc" +#line 1728 "dhcp6_parser.cc" break; - case 227: // password: "password" $@37 ":" "constant string" -#line 901 "dhcp6_parser.yy" + case 228: +#line 903 "dhcp6_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); ctx.leave(); } -#line 1707 "dhcp6_parser.cc" +#line 1738 "dhcp6_parser.cc" break; - case 228: // $@38: %empty -#line 907 "dhcp6_parser.yy" + case 229: +#line 909 "dhcp6_parser.yy" { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1716 "dhcp6_parser.cc" +#line 1747 "dhcp6_parser.cc" break; - case 229: // host: "host" $@38 ":" "constant string" -#line 910 "dhcp6_parser.yy" + case 230: +#line 912 "dhcp6_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); ctx.leave(); } -#line 1726 "dhcp6_parser.cc" +#line 1757 "dhcp6_parser.cc" break; - case 230: // port: "port" ":" "integer" -#line 916 "dhcp6_parser.yy" + case 231: +#line 918 "dhcp6_parser.yy" { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", p); } -#line 1736 "dhcp6_parser.cc" +#line 1767 "dhcp6_parser.cc" break; - case 231: // $@39: %empty -#line 922 "dhcp6_parser.yy" + case 232: +#line 924 "dhcp6_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1745 "dhcp6_parser.cc" +#line 1776 "dhcp6_parser.cc" break; - case 232: // name: "name" $@39 ":" "constant string" -#line 925 "dhcp6_parser.yy" + case 233: +#line 927 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1755 "dhcp6_parser.cc" +#line 1786 "dhcp6_parser.cc" break; - case 233: // persist: "persist" ":" "boolean" -#line 931 "dhcp6_parser.yy" + case 234: +#line 933 "dhcp6_parser.yy" { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); } -#line 1765 "dhcp6_parser.cc" +#line 1796 "dhcp6_parser.cc" break; - case 234: // lfc_interval: "lfc-interval" ":" "integer" -#line 937 "dhcp6_parser.yy" + case 235: +#line 939 "dhcp6_parser.yy" { ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); } -#line 1775 "dhcp6_parser.cc" +#line 1806 "dhcp6_parser.cc" break; - case 235: // readonly: "readonly" ":" "boolean" -#line 943 "dhcp6_parser.yy" + case 236: +#line 945 "dhcp6_parser.yy" { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); } -#line 1785 "dhcp6_parser.cc" +#line 1816 "dhcp6_parser.cc" break; - case 236: // connect_timeout: "connect-timeout" ":" "integer" -#line 949 "dhcp6_parser.yy" + case 237: +#line 951 "dhcp6_parser.yy" { ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("connect-timeout", n); } -#line 1795 "dhcp6_parser.cc" +#line 1826 "dhcp6_parser.cc" break; - case 237: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 955 "dhcp6_parser.yy" + case 238: +#line 957 "dhcp6_parser.yy" { ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 1805 "dhcp6_parser.cc" +#line 1836 "dhcp6_parser.cc" break; - case 238: // max_row_errors: "max-row-errors" ":" "integer" -#line 961 "dhcp6_parser.yy" + case 239: +#line 963 "dhcp6_parser.yy" + { + ctx.unique("disable-dhcp-on-db-loss", ctx.loc2pos(yystack_[2].location)); + ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("disable-dhcp-on-db-loss", n); +} +#line 1846 "dhcp6_parser.cc" + break; + + case 240: +#line 969 "dhcp6_parser.yy" { ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-row-errors", n); } -#line 1815 "dhcp6_parser.cc" +#line 1856 "dhcp6_parser.cc" break; - case 239: // request_timeout: "request-timeout" ":" "integer" -#line 967 "dhcp6_parser.yy" + case 241: +#line 975 "dhcp6_parser.yy" { ctx.unique("request-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("request-timeout", n); } -#line 1825 "dhcp6_parser.cc" +#line 1866 "dhcp6_parser.cc" break; - case 240: // tcp_keepalive: "tcp-keepalive" ":" "integer" -#line 973 "dhcp6_parser.yy" + case 242: +#line 981 "dhcp6_parser.yy" { ctx.unique("tcp-keepalive", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-keepalive", n); } -#line 1835 "dhcp6_parser.cc" +#line 1876 "dhcp6_parser.cc" break; - case 241: // tcp_nodelay: "tcp-nodelay" ":" "boolean" -#line 979 "dhcp6_parser.yy" + case 243: +#line 987 "dhcp6_parser.yy" { ctx.unique("tcp-nodelay", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-nodelay", n); } -#line 1845 "dhcp6_parser.cc" +#line 1886 "dhcp6_parser.cc" break; - case 242: // $@40: %empty -#line 985 "dhcp6_parser.yy" + case 244: +#line 993 "dhcp6_parser.yy" { ctx.unique("contact-points", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1854 "dhcp6_parser.cc" +#line 1895 "dhcp6_parser.cc" break; - case 243: // contact_points: "contact-points" $@40 ":" "constant string" -#line 988 "dhcp6_parser.yy" + case 245: +#line 996 "dhcp6_parser.yy" { ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("contact-points", cp); ctx.leave(); } -#line 1864 "dhcp6_parser.cc" +#line 1905 "dhcp6_parser.cc" break; - case 244: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 994 "dhcp6_parser.yy" + case 246: +#line 1002 "dhcp6_parser.yy" { ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 1874 "dhcp6_parser.cc" +#line 1915 "dhcp6_parser.cc" break; - case 245: // $@41: %empty -#line 1000 "dhcp6_parser.yy" + case 247: +#line 1008 "dhcp6_parser.yy" { ctx.unique("keyspace", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1883 "dhcp6_parser.cc" +#line 1924 "dhcp6_parser.cc" break; - case 246: // keyspace: "keyspace" $@41 ":" "constant string" -#line 1003 "dhcp6_parser.yy" + case 248: +#line 1011 "dhcp6_parser.yy" { ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("keyspace", ks); ctx.leave(); } -#line 1893 "dhcp6_parser.cc" +#line 1934 "dhcp6_parser.cc" break; - case 247: // $@42: %empty -#line 1009 "dhcp6_parser.yy" + case 249: +#line 1017 "dhcp6_parser.yy" { ctx.unique("consistency", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1902 "dhcp6_parser.cc" +#line 1943 "dhcp6_parser.cc" break; - case 248: // consistency: "consistency" $@42 ":" "constant string" -#line 1012 "dhcp6_parser.yy" + case 250: +#line 1020 "dhcp6_parser.yy" { ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("consistency", c); ctx.leave(); } -#line 1912 "dhcp6_parser.cc" +#line 1953 "dhcp6_parser.cc" break; - case 249: // $@43: %empty -#line 1018 "dhcp6_parser.yy" + case 251: +#line 1026 "dhcp6_parser.yy" { ctx.unique("serial-consistency", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1921 "dhcp6_parser.cc" +#line 1962 "dhcp6_parser.cc" break; - case 250: // serial_consistency: "serial-consistency" $@43 ":" "constant string" -#line 1021 "dhcp6_parser.yy" + case 252: +#line 1029 "dhcp6_parser.yy" { ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("serial-consistency", c); ctx.leave(); } -#line 1931 "dhcp6_parser.cc" +#line 1972 "dhcp6_parser.cc" break; - case 251: // $@44: %empty -#line 1027 "dhcp6_parser.yy" + case 253: +#line 1035 "dhcp6_parser.yy" { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1939,29 +1980,29 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 1943 "dhcp6_parser.cc" +#line 1984 "dhcp6_parser.cc" break; - case 252: // sanity_checks: "sanity-checks" $@44 ":" "{" sanity_checks_params "}" -#line 1033 "dhcp6_parser.yy" + case 254: +#line 1041 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1952 "dhcp6_parser.cc" +#line 1993 "dhcp6_parser.cc" break; - case 256: // $@45: %empty -#line 1043 "dhcp6_parser.yy" + case 258: +#line 1051 "dhcp6_parser.yy" { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 1961 "dhcp6_parser.cc" +#line 2002 "dhcp6_parser.cc" break; - case 257: // lease_checks: "lease-checks" $@45 ":" "constant string" -#line 1046 "dhcp6_parser.yy" + case 259: +#line 1054 "dhcp6_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1977,11 +2018,11 @@ namespace isc { namespace dhcp { ", supported values are: none, warn, fix, fix-del, del"); } } -#line 1981 "dhcp6_parser.cc" +#line 2022 "dhcp6_parser.cc" break; - case 258: // $@46: %empty -#line 1062 "dhcp6_parser.yy" + case 260: +#line 1070 "dhcp6_parser.yy" { ctx.unique("mac-sources", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1989,38 +2030,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.MAC_SOURCES); } -#line 1993 "dhcp6_parser.cc" +#line 2034 "dhcp6_parser.cc" break; - case 259: // mac_sources: "mac-sources" $@46 ":" "[" mac_sources_list "]" -#line 1068 "dhcp6_parser.yy" + case 261: +#line 1076 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2002 "dhcp6_parser.cc" +#line 2043 "dhcp6_parser.cc" break; - case 264: // duid_id: "duid" -#line 1081 "dhcp6_parser.yy" + case 266: +#line 1089 "dhcp6_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2011 "dhcp6_parser.cc" +#line 2052 "dhcp6_parser.cc" break; - case 265: // string_id: "constant string" -#line 1086 "dhcp6_parser.yy" + case 267: +#line 1094 "dhcp6_parser.yy" { ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2020 "dhcp6_parser.cc" +#line 2061 "dhcp6_parser.cc" break; - case 266: // $@47: %empty -#line 1091 "dhcp6_parser.yy" + case 268: +#line 1099 "dhcp6_parser.yy" { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2028,38 +2069,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 2032 "dhcp6_parser.cc" +#line 2073 "dhcp6_parser.cc" break; - case 267: // host_reservation_identifiers: "host-reservation-identifiers" $@47 ":" "[" host_reservation_identifiers_list "]" -#line 1097 "dhcp6_parser.yy" + case 269: +#line 1105 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2041 "dhcp6_parser.cc" +#line 2082 "dhcp6_parser.cc" break; - case 273: // hw_address_id: "hw-address" -#line 1111 "dhcp6_parser.yy" + case 275: +#line 1119 "dhcp6_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 2050 "dhcp6_parser.cc" +#line 2091 "dhcp6_parser.cc" break; - case 274: // flex_id: "flex-id" -#line 1116 "dhcp6_parser.yy" + case 276: +#line 1124 "dhcp6_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 2059 "dhcp6_parser.cc" +#line 2100 "dhcp6_parser.cc" break; - case 275: // $@48: %empty -#line 1123 "dhcp6_parser.yy" + case 277: +#line 1131 "dhcp6_parser.yy" { ctx.unique("relay-supplied-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2067,20 +2108,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2071 "dhcp6_parser.cc" +#line 2112 "dhcp6_parser.cc" break; - case 276: // relay_supplied_options: "relay-supplied-options" $@48 ":" "[" list_content "]" -#line 1129 "dhcp6_parser.yy" + case 278: +#line 1137 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2080 "dhcp6_parser.cc" +#line 2121 "dhcp6_parser.cc" break; - case 277: // $@49: %empty -#line 1136 "dhcp6_parser.yy" + case 279: +#line 1144 "dhcp6_parser.yy" { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2088,52 +2129,52 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(mt); ctx.enter(ctx.DHCP_MULTI_THREADING); } -#line 2092 "dhcp6_parser.cc" +#line 2133 "dhcp6_parser.cc" break; - case 278: // dhcp_multi_threading: "multi-threading" $@49 ":" "{" multi_threading_params "}" -#line 1142 "dhcp6_parser.yy" + case 280: +#line 1150 "dhcp6_parser.yy" { // The enable parameter is required. ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 2103 "dhcp6_parser.cc" +#line 2144 "dhcp6_parser.cc" break; - case 287: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1161 "dhcp6_parser.yy" + case 289: +#line 1169 "dhcp6_parser.yy" { ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-multi-threading", b); } -#line 2113 "dhcp6_parser.cc" +#line 2154 "dhcp6_parser.cc" break; - case 288: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1167 "dhcp6_parser.yy" + case 290: +#line 1175 "dhcp6_parser.yy" { ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("thread-pool-size", prf); } -#line 2123 "dhcp6_parser.cc" +#line 2164 "dhcp6_parser.cc" break; - case 289: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1173 "dhcp6_parser.yy" + case 291: +#line 1181 "dhcp6_parser.yy" { ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("packet-queue-size", prf); } -#line 2133 "dhcp6_parser.cc" +#line 2174 "dhcp6_parser.cc" break; - case 290: // $@50: %empty -#line 1179 "dhcp6_parser.yy" + case 292: +#line 1187 "dhcp6_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2141,97 +2182,97 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2145 "dhcp6_parser.cc" +#line 2186 "dhcp6_parser.cc" break; - case 291: // hooks_libraries: "hooks-libraries" $@50 ":" "[" hooks_libraries_list "]" -#line 1185 "dhcp6_parser.yy" + case 293: +#line 1193 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2154 "dhcp6_parser.cc" +#line 2195 "dhcp6_parser.cc" break; - case 296: // $@51: %empty -#line 1198 "dhcp6_parser.yy" + case 298: +#line 1206 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2164 "dhcp6_parser.cc" +#line 2205 "dhcp6_parser.cc" break; - case 297: // hooks_library: "{" $@51 hooks_params "}" -#line 1202 "dhcp6_parser.yy" + case 299: +#line 1210 "dhcp6_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2174 "dhcp6_parser.cc" +#line 2215 "dhcp6_parser.cc" break; - case 298: // $@52: %empty -#line 1208 "dhcp6_parser.yy" + case 300: +#line 1216 "dhcp6_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2184 "dhcp6_parser.cc" +#line 2225 "dhcp6_parser.cc" break; - case 299: // sub_hooks_library: "{" $@52 hooks_params "}" -#line 1212 "dhcp6_parser.yy" + case 301: +#line 1220 "dhcp6_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2194 "dhcp6_parser.cc" +#line 2235 "dhcp6_parser.cc" break; - case 305: // $@53: %empty -#line 1227 "dhcp6_parser.yy" + case 307: +#line 1235 "dhcp6_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2203 "dhcp6_parser.cc" +#line 2244 "dhcp6_parser.cc" break; - case 306: // library: "library" $@53 ":" "constant string" -#line 1230 "dhcp6_parser.yy" + case 308: +#line 1238 "dhcp6_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 2213 "dhcp6_parser.cc" +#line 2254 "dhcp6_parser.cc" break; - case 307: // $@54: %empty -#line 1236 "dhcp6_parser.yy" + case 309: +#line 1244 "dhcp6_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2222 "dhcp6_parser.cc" +#line 2263 "dhcp6_parser.cc" break; - case 308: // parameters: "parameters" $@54 ":" map_value -#line 1239 "dhcp6_parser.yy" + case 310: +#line 1247 "dhcp6_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2231 "dhcp6_parser.cc" +#line 2272 "dhcp6_parser.cc" break; - case 309: // $@55: %empty -#line 1245 "dhcp6_parser.yy" + case 311: +#line 1253 "dhcp6_parser.yy" { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2239,81 +2280,81 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2243 "dhcp6_parser.cc" +#line 2284 "dhcp6_parser.cc" break; - case 310: // expired_leases_processing: "expired-leases-processing" $@55 ":" "{" expired_leases_params "}" -#line 1251 "dhcp6_parser.yy" + case 312: +#line 1259 "dhcp6_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2253 "dhcp6_parser.cc" +#line 2294 "dhcp6_parser.cc" break; - case 319: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1269 "dhcp6_parser.yy" + case 321: +#line 1277 "dhcp6_parser.yy" { ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 2263 "dhcp6_parser.cc" +#line 2304 "dhcp6_parser.cc" break; - case 320: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1275 "dhcp6_parser.yy" + case 322: +#line 1283 "dhcp6_parser.yy" { ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 2273 "dhcp6_parser.cc" +#line 2314 "dhcp6_parser.cc" break; - case 321: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1281 "dhcp6_parser.yy" + case 323: +#line 1289 "dhcp6_parser.yy" { ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2283 "dhcp6_parser.cc" +#line 2324 "dhcp6_parser.cc" break; - case 322: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1287 "dhcp6_parser.yy" + case 324: +#line 1295 "dhcp6_parser.yy" { ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2293 "dhcp6_parser.cc" +#line 2334 "dhcp6_parser.cc" break; - case 323: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1293 "dhcp6_parser.yy" + case 325: +#line 1301 "dhcp6_parser.yy" { ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2303 "dhcp6_parser.cc" +#line 2344 "dhcp6_parser.cc" break; - case 324: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1299 "dhcp6_parser.yy" + case 326: +#line 1307 "dhcp6_parser.yy" { ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2313 "dhcp6_parser.cc" +#line 2354 "dhcp6_parser.cc" break; - case 325: // $@56: %empty -#line 1308 "dhcp6_parser.yy" + case 327: +#line 1316 "dhcp6_parser.yy" { ctx.unique("subnet6", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2321,30 +2362,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET6); } -#line 2325 "dhcp6_parser.cc" +#line 2366 "dhcp6_parser.cc" break; - case 326: // subnet6_list: "subnet6" $@56 ":" "[" subnet6_list_content "]" -#line 1314 "dhcp6_parser.yy" + case 328: +#line 1322 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2334 "dhcp6_parser.cc" +#line 2375 "dhcp6_parser.cc" break; - case 331: // $@57: %empty -#line 1334 "dhcp6_parser.yy" + case 333: +#line 1342 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2344 "dhcp6_parser.cc" +#line 2385 "dhcp6_parser.cc" break; - case 332: // subnet6: "{" $@57 subnet6_params "}" -#line 1338 "dhcp6_parser.yy" + case 334: +#line 1346 "dhcp6_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -2366,107 +2407,107 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2370 "dhcp6_parser.cc" +#line 2411 "dhcp6_parser.cc" break; - case 333: // $@58: %empty -#line 1360 "dhcp6_parser.yy" + case 335: +#line 1368 "dhcp6_parser.yy" { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2380 "dhcp6_parser.cc" +#line 2421 "dhcp6_parser.cc" break; - case 334: // sub_subnet6: "{" $@58 subnet6_params "}" -#line 1364 "dhcp6_parser.yy" + case 336: +#line 1372 "dhcp6_parser.yy" { // The subnet subnet6 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2390 "dhcp6_parser.cc" +#line 2431 "dhcp6_parser.cc" break; - case 380: // $@59: %empty -#line 1421 "dhcp6_parser.yy" + case 382: +#line 1429 "dhcp6_parser.yy" { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2399 "dhcp6_parser.cc" +#line 2440 "dhcp6_parser.cc" break; - case 381: // subnet: "subnet" $@59 ":" "constant string" -#line 1424 "dhcp6_parser.yy" + case 383: +#line 1432 "dhcp6_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2409 "dhcp6_parser.cc" +#line 2450 "dhcp6_parser.cc" break; - case 382: // $@60: %empty -#line 1430 "dhcp6_parser.yy" + case 384: +#line 1438 "dhcp6_parser.yy" { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2418 "dhcp6_parser.cc" +#line 2459 "dhcp6_parser.cc" break; - case 383: // interface: "interface" $@60 ":" "constant string" -#line 1433 "dhcp6_parser.yy" + case 385: +#line 1441 "dhcp6_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2428 "dhcp6_parser.cc" +#line 2469 "dhcp6_parser.cc" break; - case 384: // $@61: %empty -#line 1439 "dhcp6_parser.yy" + case 386: +#line 1447 "dhcp6_parser.yy" { ctx.unique("interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2437 "dhcp6_parser.cc" +#line 2478 "dhcp6_parser.cc" break; - case 385: // interface_id: "interface-id" $@61 ":" "constant string" -#line 1442 "dhcp6_parser.yy" + case 387: +#line 1450 "dhcp6_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface-id", iface); ctx.leave(); } -#line 2447 "dhcp6_parser.cc" +#line 2488 "dhcp6_parser.cc" break; - case 386: // $@62: %empty -#line 1448 "dhcp6_parser.yy" + case 388: +#line 1456 "dhcp6_parser.yy" { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2456 "dhcp6_parser.cc" +#line 2497 "dhcp6_parser.cc" break; - case 387: // client_class: "client-class" $@62 ":" "constant string" -#line 1451 "dhcp6_parser.yy" + case 389: +#line 1459 "dhcp6_parser.yy" { ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 2466 "dhcp6_parser.cc" +#line 2507 "dhcp6_parser.cc" break; - case 388: // $@63: %empty -#line 1457 "dhcp6_parser.yy" + case 390: +#line 1465 "dhcp6_parser.yy" { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2474,112 +2515,112 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2478 "dhcp6_parser.cc" +#line 2519 "dhcp6_parser.cc" break; - case 389: // require_client_classes: "require-client-classes" $@63 ":" list_strings -#line 1463 "dhcp6_parser.yy" + case 391: +#line 1471 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2487 "dhcp6_parser.cc" +#line 2528 "dhcp6_parser.cc" break; - case 390: // reservations_global: "reservations-global" ":" "boolean" -#line 1468 "dhcp6_parser.yy" + case 392: +#line 1476 "dhcp6_parser.yy" { ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-global", b); } -#line 2497 "dhcp6_parser.cc" +#line 2538 "dhcp6_parser.cc" break; - case 391: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" -#line 1474 "dhcp6_parser.yy" + case 393: +#line 1482 "dhcp6_parser.yy" { ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-in-subnet", b); } -#line 2507 "dhcp6_parser.cc" +#line 2548 "dhcp6_parser.cc" break; - case 392: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" -#line 1480 "dhcp6_parser.yy" + case 394: +#line 1488 "dhcp6_parser.yy" { ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-out-of-pool", b); } -#line 2517 "dhcp6_parser.cc" +#line 2558 "dhcp6_parser.cc" break; - case 393: // $@64: %empty -#line 1486 "dhcp6_parser.yy" + case 395: +#line 1494 "dhcp6_parser.yy" { ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.RESERVATION_MODE); } -#line 2526 "dhcp6_parser.cc" +#line 2567 "dhcp6_parser.cc" break; - case 394: // reservation_mode: "reservation-mode" $@64 ":" hr_mode -#line 1489 "dhcp6_parser.yy" + case 396: +#line 1497 "dhcp6_parser.yy" { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2535 "dhcp6_parser.cc" +#line 2576 "dhcp6_parser.cc" break; - case 395: // hr_mode: "disabled" -#line 1494 "dhcp6_parser.yy" + case 397: +#line 1502 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2541 "dhcp6_parser.cc" +#line 2582 "dhcp6_parser.cc" break; - case 396: // hr_mode: "out-of-pool" -#line 1495 "dhcp6_parser.yy" + case 398: +#line 1503 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2547 "dhcp6_parser.cc" +#line 2588 "dhcp6_parser.cc" break; - case 397: // hr_mode: "global" -#line 1496 "dhcp6_parser.yy" + case 399: +#line 1504 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2553 "dhcp6_parser.cc" +#line 2594 "dhcp6_parser.cc" break; - case 398: // hr_mode: "all" -#line 1497 "dhcp6_parser.yy" + case 400: +#line 1505 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2559 "dhcp6_parser.cc" +#line 2600 "dhcp6_parser.cc" break; - case 399: // id: "id" ":" "integer" -#line 1500 "dhcp6_parser.yy" + case 401: +#line 1508 "dhcp6_parser.yy" { ctx.unique("id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2569 "dhcp6_parser.cc" +#line 2610 "dhcp6_parser.cc" break; - case 400: // rapid_commit: "rapid-commit" ":" "boolean" -#line 1506 "dhcp6_parser.yy" + case 402: +#line 1514 "dhcp6_parser.yy" { ctx.unique("rapid-commit", ctx.loc2pos(yystack_[2].location)); ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } -#line 2579 "dhcp6_parser.cc" +#line 2620 "dhcp6_parser.cc" break; - case 401: // $@65: %empty -#line 1514 "dhcp6_parser.yy" + case 403: +#line 1522 "dhcp6_parser.yy" { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2587,38 +2628,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2591 "dhcp6_parser.cc" +#line 2632 "dhcp6_parser.cc" break; - case 402: // shared_networks: "shared-networks" $@65 ":" "[" shared_networks_content "]" -#line 1520 "dhcp6_parser.yy" + case 404: +#line 1528 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2600 "dhcp6_parser.cc" +#line 2641 "dhcp6_parser.cc" break; - case 407: // $@66: %empty -#line 1535 "dhcp6_parser.yy" + case 409: +#line 1543 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2610 "dhcp6_parser.cc" +#line 2651 "dhcp6_parser.cc" break; - case 408: // shared_network: "{" $@66 shared_network_params "}" -#line 1539 "dhcp6_parser.yy" + case 410: +#line 1547 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 2618 "dhcp6_parser.cc" +#line 2659 "dhcp6_parser.cc" break; - case 451: // $@67: %empty -#line 1593 "dhcp6_parser.yy" + case 453: +#line 1601 "dhcp6_parser.yy" { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2626,47 +2667,47 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2630 "dhcp6_parser.cc" +#line 2671 "dhcp6_parser.cc" break; - case 452: // option_def_list: "option-def" $@67 ":" "[" option_def_list_content "]" -#line 1599 "dhcp6_parser.yy" + case 454: +#line 1607 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2639 "dhcp6_parser.cc" +#line 2680 "dhcp6_parser.cc" break; - case 453: // $@68: %empty -#line 1607 "dhcp6_parser.yy" + case 455: +#line 1615 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2648 "dhcp6_parser.cc" +#line 2689 "dhcp6_parser.cc" break; - case 454: // sub_option_def_list: "{" $@68 option_def_list "}" -#line 1610 "dhcp6_parser.yy" + case 456: +#line 1618 "dhcp6_parser.yy" { // parsing completed } -#line 2656 "dhcp6_parser.cc" +#line 2697 "dhcp6_parser.cc" break; - case 459: // $@69: %empty -#line 1626 "dhcp6_parser.yy" + case 461: +#line 1634 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2666 "dhcp6_parser.cc" +#line 2707 "dhcp6_parser.cc" break; - case 460: // option_def_entry: "{" $@69 option_def_params "}" -#line 1630 "dhcp6_parser.yy" + case 462: +#line 1638 "dhcp6_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2674,21 +2715,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2678 "dhcp6_parser.cc" +#line 2719 "dhcp6_parser.cc" break; - case 461: // $@70: %empty -#line 1641 "dhcp6_parser.yy" + case 463: +#line 1649 "dhcp6_parser.yy" { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2688 "dhcp6_parser.cc" +#line 2729 "dhcp6_parser.cc" break; - case 462: // sub_option_def: "{" $@70 option_def_params "}" -#line 1645 "dhcp6_parser.yy" + case 464: +#line 1653 "dhcp6_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2696,107 +2737,107 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2700 "dhcp6_parser.cc" +#line 2741 "dhcp6_parser.cc" break; - case 478: // code: "code" ":" "integer" -#line 1677 "dhcp6_parser.yy" + case 480: +#line 1685 "dhcp6_parser.yy" { ctx.unique("code", ctx.loc2pos(yystack_[2].location)); ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 2710 "dhcp6_parser.cc" +#line 2751 "dhcp6_parser.cc" break; - case 480: // $@71: %empty -#line 1685 "dhcp6_parser.yy" + case 482: +#line 1693 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2719 "dhcp6_parser.cc" +#line 2760 "dhcp6_parser.cc" break; - case 481: // option_def_type: "type" $@71 ":" "constant string" -#line 1688 "dhcp6_parser.yy" + case 483: +#line 1696 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 2729 "dhcp6_parser.cc" +#line 2770 "dhcp6_parser.cc" break; - case 482: // $@72: %empty -#line 1694 "dhcp6_parser.yy" + case 484: +#line 1702 "dhcp6_parser.yy" { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2738 "dhcp6_parser.cc" +#line 2779 "dhcp6_parser.cc" break; - case 483: // option_def_record_types: "record-types" $@72 ":" "constant string" -#line 1697 "dhcp6_parser.yy" + case 485: +#line 1705 "dhcp6_parser.yy" { ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } -#line 2748 "dhcp6_parser.cc" +#line 2789 "dhcp6_parser.cc" break; - case 484: // $@73: %empty -#line 1703 "dhcp6_parser.yy" + case 486: +#line 1711 "dhcp6_parser.yy" { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2757 "dhcp6_parser.cc" +#line 2798 "dhcp6_parser.cc" break; - case 485: // space: "space" $@73 ":" "constant string" -#line 1706 "dhcp6_parser.yy" + case 487: +#line 1714 "dhcp6_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 2767 "dhcp6_parser.cc" +#line 2808 "dhcp6_parser.cc" break; - case 487: // $@74: %empty -#line 1714 "dhcp6_parser.yy" + case 489: +#line 1722 "dhcp6_parser.yy" { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2776 "dhcp6_parser.cc" +#line 2817 "dhcp6_parser.cc" break; - case 488: // option_def_encapsulate: "encapsulate" $@74 ":" "constant string" -#line 1717 "dhcp6_parser.yy" + case 490: +#line 1725 "dhcp6_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 2786 "dhcp6_parser.cc" +#line 2827 "dhcp6_parser.cc" break; - case 489: // option_def_array: "array" ":" "boolean" -#line 1723 "dhcp6_parser.yy" + case 491: +#line 1731 "dhcp6_parser.yy" { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 2796 "dhcp6_parser.cc" +#line 2837 "dhcp6_parser.cc" break; - case 490: // $@75: %empty -#line 1733 "dhcp6_parser.yy" + case 492: +#line 1741 "dhcp6_parser.yy" { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2804,97 +2845,97 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 2808 "dhcp6_parser.cc" +#line 2849 "dhcp6_parser.cc" break; - case 491: // option_data_list: "option-data" $@75 ":" "[" option_data_list_content "]" -#line 1739 "dhcp6_parser.yy" + case 493: +#line 1747 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2817 "dhcp6_parser.cc" +#line 2858 "dhcp6_parser.cc" break; - case 496: // $@76: %empty -#line 1758 "dhcp6_parser.yy" + case 498: +#line 1766 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2827 "dhcp6_parser.cc" +#line 2868 "dhcp6_parser.cc" break; - case 497: // option_data_entry: "{" $@76 option_data_params "}" -#line 1762 "dhcp6_parser.yy" + case 499: +#line 1770 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 2836 "dhcp6_parser.cc" +#line 2877 "dhcp6_parser.cc" break; - case 498: // $@77: %empty -#line 1770 "dhcp6_parser.yy" + case 500: +#line 1778 "dhcp6_parser.yy" { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2846 "dhcp6_parser.cc" +#line 2887 "dhcp6_parser.cc" break; - case 499: // sub_option_data: "{" $@77 option_data_params "}" -#line 1774 "dhcp6_parser.yy" + case 501: +#line 1782 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed } -#line 2855 "dhcp6_parser.cc" +#line 2896 "dhcp6_parser.cc" break; - case 514: // $@78: %empty -#line 1807 "dhcp6_parser.yy" + case 516: +#line 1815 "dhcp6_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2864 "dhcp6_parser.cc" +#line 2905 "dhcp6_parser.cc" break; - case 515: // option_data_data: "data" $@78 ":" "constant string" -#line 1810 "dhcp6_parser.yy" + case 517: +#line 1818 "dhcp6_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 2874 "dhcp6_parser.cc" +#line 2915 "dhcp6_parser.cc" break; - case 518: // option_data_csv_format: "csv-format" ":" "boolean" -#line 1820 "dhcp6_parser.yy" + case 520: +#line 1828 "dhcp6_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 2884 "dhcp6_parser.cc" +#line 2925 "dhcp6_parser.cc" break; - case 519: // option_data_always_send: "always-send" ":" "boolean" -#line 1826 "dhcp6_parser.yy" + case 521: +#line 1834 "dhcp6_parser.yy" { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 2894 "dhcp6_parser.cc" +#line 2935 "dhcp6_parser.cc" break; - case 520: // $@79: %empty -#line 1835 "dhcp6_parser.yy" + case 522: +#line 1843 "dhcp6_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2902,87 +2943,87 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 2906 "dhcp6_parser.cc" +#line 2947 "dhcp6_parser.cc" break; - case 521: // pools_list: "pools" $@79 ":" "[" pools_list_content "]" -#line 1841 "dhcp6_parser.yy" + case 523: +#line 1849 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2915 "dhcp6_parser.cc" +#line 2956 "dhcp6_parser.cc" break; - case 526: // $@80: %empty -#line 1856 "dhcp6_parser.yy" + case 528: +#line 1864 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2925 "dhcp6_parser.cc" +#line 2966 "dhcp6_parser.cc" break; - case 527: // pool_list_entry: "{" $@80 pool_params "}" -#line 1860 "dhcp6_parser.yy" + case 529: +#line 1868 "dhcp6_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2935 "dhcp6_parser.cc" +#line 2976 "dhcp6_parser.cc" break; - case 528: // $@81: %empty -#line 1866 "dhcp6_parser.yy" + case 530: +#line 1874 "dhcp6_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2945 "dhcp6_parser.cc" +#line 2986 "dhcp6_parser.cc" break; - case 529: // sub_pool6: "{" $@81 pool_params "}" -#line 1870 "dhcp6_parser.yy" + case 531: +#line 1878 "dhcp6_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2955 "dhcp6_parser.cc" +#line 2996 "dhcp6_parser.cc" break; - case 539: // $@82: %empty -#line 1889 "dhcp6_parser.yy" + case 541: +#line 1897 "dhcp6_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2964 "dhcp6_parser.cc" +#line 3005 "dhcp6_parser.cc" break; - case 540: // pool_entry: "pool" $@82 ":" "constant string" -#line 1892 "dhcp6_parser.yy" + case 542: +#line 1900 "dhcp6_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 2974 "dhcp6_parser.cc" +#line 3015 "dhcp6_parser.cc" break; - case 541: // $@83: %empty -#line 1898 "dhcp6_parser.yy" + case 543: +#line 1906 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2982 "dhcp6_parser.cc" +#line 3023 "dhcp6_parser.cc" break; - case 542: // user_context: "user-context" $@83 ":" map_value -#line 1900 "dhcp6_parser.yy" + case 544: +#line 1908 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3005,19 +3046,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3009 "dhcp6_parser.cc" +#line 3050 "dhcp6_parser.cc" break; - case 543: // $@84: %empty -#line 1923 "dhcp6_parser.yy" + case 545: +#line 1931 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3017 "dhcp6_parser.cc" +#line 3058 "dhcp6_parser.cc" break; - case 544: // comment: "comment" $@84 ":" "constant string" -#line 1925 "dhcp6_parser.yy" + case 546: +#line 1933 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3042,11 +3083,11 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3046 "dhcp6_parser.cc" +#line 3087 "dhcp6_parser.cc" break; - case 545: // $@85: %empty -#line 1953 "dhcp6_parser.yy" + case 547: +#line 1961 "dhcp6_parser.yy" { ctx.unique("pd-pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3054,30 +3095,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.PD_POOLS); } -#line 3058 "dhcp6_parser.cc" +#line 3099 "dhcp6_parser.cc" break; - case 546: // pd_pools_list: "pd-pools" $@85 ":" "[" pd_pools_list_content "]" -#line 1959 "dhcp6_parser.yy" + case 548: +#line 1967 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3067 "dhcp6_parser.cc" +#line 3108 "dhcp6_parser.cc" break; - case 551: // $@86: %empty -#line 1974 "dhcp6_parser.yy" + case 553: +#line 1982 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3077 "dhcp6_parser.cc" +#line 3118 "dhcp6_parser.cc" break; - case 552: // pd_pool_entry: "{" $@86 pd_pool_params "}" -#line 1978 "dhcp6_parser.yy" + case 554: +#line 1986 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3085,21 +3126,21 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3089 "dhcp6_parser.cc" +#line 3130 "dhcp6_parser.cc" break; - case 553: // $@87: %empty -#line 1986 "dhcp6_parser.yy" + case 555: +#line 1994 "dhcp6_parser.yy" { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3099 "dhcp6_parser.cc" +#line 3140 "dhcp6_parser.cc" break; - case 554: // sub_pd_pool: "{" $@87 pd_pool_params "}" -#line 1990 "dhcp6_parser.yy" + case 556: +#line 1998 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3107,79 +3148,79 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3111 "dhcp6_parser.cc" +#line 3152 "dhcp6_parser.cc" break; - case 568: // $@88: %empty -#line 2015 "dhcp6_parser.yy" + case 570: +#line 2023 "dhcp6_parser.yy" { ctx.unique("prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3120 "dhcp6_parser.cc" +#line 3161 "dhcp6_parser.cc" break; - case 569: // pd_prefix: "prefix" $@88 ":" "constant string" -#line 2018 "dhcp6_parser.yy" + case 571: +#line 2026 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } -#line 3130 "dhcp6_parser.cc" +#line 3171 "dhcp6_parser.cc" break; - case 570: // pd_prefix_len: "prefix-len" ":" "integer" -#line 2024 "dhcp6_parser.yy" + case 572: +#line 2032 "dhcp6_parser.yy" { ctx.unique("prefix-len", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 3140 "dhcp6_parser.cc" +#line 3181 "dhcp6_parser.cc" break; - case 571: // $@89: %empty -#line 2030 "dhcp6_parser.yy" + case 573: +#line 2038 "dhcp6_parser.yy" { ctx.unique("excluded-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3149 "dhcp6_parser.cc" +#line 3190 "dhcp6_parser.cc" break; - case 572: // excluded_prefix: "excluded-prefix" $@89 ":" "constant string" -#line 2033 "dhcp6_parser.yy" + case 574: +#line 2041 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix", prf); ctx.leave(); } -#line 3159 "dhcp6_parser.cc" +#line 3200 "dhcp6_parser.cc" break; - case 573: // excluded_prefix_len: "excluded-prefix-len" ":" "integer" -#line 2039 "dhcp6_parser.yy" + case 575: +#line 2047 "dhcp6_parser.yy" { ctx.unique("excluded-prefix-len", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 3169 "dhcp6_parser.cc" +#line 3210 "dhcp6_parser.cc" break; - case 574: // pd_delegated_len: "delegated-len" ":" "integer" -#line 2045 "dhcp6_parser.yy" + case 576: +#line 2053 "dhcp6_parser.yy" { ctx.unique("delegated-len", ctx.loc2pos(yystack_[2].location)); ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 3179 "dhcp6_parser.cc" +#line 3220 "dhcp6_parser.cc" break; - case 575: // $@90: %empty -#line 2054 "dhcp6_parser.yy" + case 577: +#line 2062 "dhcp6_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3187,58 +3228,58 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3191 "dhcp6_parser.cc" +#line 3232 "dhcp6_parser.cc" break; - case 576: // reservations: "reservations" $@90 ":" "[" reservations_list "]" -#line 2060 "dhcp6_parser.yy" + case 578: +#line 2068 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3200 "dhcp6_parser.cc" +#line 3241 "dhcp6_parser.cc" break; - case 581: // $@91: %empty -#line 2073 "dhcp6_parser.yy" + case 583: +#line 2081 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3210 "dhcp6_parser.cc" +#line 3251 "dhcp6_parser.cc" break; - case 582: // reservation: "{" $@91 reservation_params "}" -#line 2077 "dhcp6_parser.yy" + case 584: +#line 2085 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3219 "dhcp6_parser.cc" +#line 3260 "dhcp6_parser.cc" break; - case 583: // $@92: %empty -#line 2082 "dhcp6_parser.yy" + case 585: +#line 2090 "dhcp6_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3229 "dhcp6_parser.cc" +#line 3270 "dhcp6_parser.cc" break; - case 584: // sub_reservation: "{" $@92 reservation_params "}" -#line 2086 "dhcp6_parser.yy" + case 586: +#line 2094 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 3238 "dhcp6_parser.cc" +#line 3279 "dhcp6_parser.cc" break; - case 600: // $@93: %empty -#line 2113 "dhcp6_parser.yy" + case 602: +#line 2121 "dhcp6_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3246,20 +3287,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3250 "dhcp6_parser.cc" +#line 3291 "dhcp6_parser.cc" break; - case 601: // ip_addresses: "ip-addresses" $@93 ":" list_strings -#line 2119 "dhcp6_parser.yy" + case 603: +#line 2127 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3259 "dhcp6_parser.cc" +#line 3300 "dhcp6_parser.cc" break; - case 602: // $@94: %empty -#line 2124 "dhcp6_parser.yy" + case 604: +#line 2132 "dhcp6_parser.yy" { ctx.unique("prefixes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3267,96 +3308,96 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3271 "dhcp6_parser.cc" +#line 3312 "dhcp6_parser.cc" break; - case 603: // prefixes: "prefixes" $@94 ":" list_strings -#line 2130 "dhcp6_parser.yy" + case 605: +#line 2138 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3280 "dhcp6_parser.cc" +#line 3321 "dhcp6_parser.cc" break; - case 604: // $@95: %empty -#line 2135 "dhcp6_parser.yy" + case 606: +#line 2143 "dhcp6_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3289 "dhcp6_parser.cc" +#line 3330 "dhcp6_parser.cc" break; - case 605: // duid: "duid" $@95 ":" "constant string" -#line 2138 "dhcp6_parser.yy" + case 607: +#line 2146 "dhcp6_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 3299 "dhcp6_parser.cc" +#line 3340 "dhcp6_parser.cc" break; - case 606: // $@96: %empty -#line 2144 "dhcp6_parser.yy" + case 608: +#line 2152 "dhcp6_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3308 "dhcp6_parser.cc" +#line 3349 "dhcp6_parser.cc" break; - case 607: // hw_address: "hw-address" $@96 ":" "constant string" -#line 2147 "dhcp6_parser.yy" + case 609: +#line 2155 "dhcp6_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 3318 "dhcp6_parser.cc" +#line 3359 "dhcp6_parser.cc" break; - case 608: // $@97: %empty -#line 2153 "dhcp6_parser.yy" + case 610: +#line 2161 "dhcp6_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3327 "dhcp6_parser.cc" +#line 3368 "dhcp6_parser.cc" break; - case 609: // hostname: "hostname" $@97 ":" "constant string" -#line 2156 "dhcp6_parser.yy" + case 611: +#line 2164 "dhcp6_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 3337 "dhcp6_parser.cc" +#line 3378 "dhcp6_parser.cc" break; - case 610: // $@98: %empty -#line 2162 "dhcp6_parser.yy" + case 612: +#line 2170 "dhcp6_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3346 "dhcp6_parser.cc" +#line 3387 "dhcp6_parser.cc" break; - case 611: // flex_id_value: "flex-id" $@98 ":" "constant string" -#line 2165 "dhcp6_parser.yy" + case 613: +#line 2173 "dhcp6_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 3356 "dhcp6_parser.cc" +#line 3397 "dhcp6_parser.cc" break; - case 612: // $@99: %empty -#line 2171 "dhcp6_parser.yy" + case 614: +#line 2179 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3364,20 +3405,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3368 "dhcp6_parser.cc" +#line 3409 "dhcp6_parser.cc" break; - case 613: // reservation_client_classes: "client-classes" $@99 ":" list_strings -#line 2177 "dhcp6_parser.yy" + case 615: +#line 2185 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3377 "dhcp6_parser.cc" +#line 3418 "dhcp6_parser.cc" break; - case 614: // $@100: %empty -#line 2185 "dhcp6_parser.yy" + case 616: +#line 2193 "dhcp6_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3385,39 +3426,39 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3389 "dhcp6_parser.cc" +#line 3430 "dhcp6_parser.cc" break; - case 615: // relay: "relay" $@100 ":" "{" relay_map "}" -#line 2191 "dhcp6_parser.yy" + case 617: +#line 2199 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3398 "dhcp6_parser.cc" +#line 3439 "dhcp6_parser.cc" break; - case 618: // $@101: %empty -#line 2200 "dhcp6_parser.yy" + case 620: +#line 2208 "dhcp6_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3407 "dhcp6_parser.cc" +#line 3448 "dhcp6_parser.cc" break; - case 619: // ip_address: "ip-address" $@101 ":" "constant string" -#line 2203 "dhcp6_parser.yy" + case 621: +#line 2211 "dhcp6_parser.yy" { ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } -#line 3417 "dhcp6_parser.cc" +#line 3458 "dhcp6_parser.cc" break; - case 620: // $@102: %empty -#line 2212 "dhcp6_parser.yy" + case 622: +#line 2220 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3425,69 +3466,69 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3429 "dhcp6_parser.cc" +#line 3470 "dhcp6_parser.cc" break; - case 621: // client_classes: "client-classes" $@102 ":" "[" client_classes_list "]" -#line 2218 "dhcp6_parser.yy" + case 623: +#line 2226 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3438 "dhcp6_parser.cc" +#line 3479 "dhcp6_parser.cc" break; - case 624: // $@103: %empty -#line 2227 "dhcp6_parser.yy" + case 626: +#line 2235 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3448 "dhcp6_parser.cc" +#line 3489 "dhcp6_parser.cc" break; - case 625: // client_class_entry: "{" $@103 client_class_params "}" -#line 2231 "dhcp6_parser.yy" + case 627: +#line 2239 "dhcp6_parser.yy" { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3458 "dhcp6_parser.cc" +#line 3499 "dhcp6_parser.cc" break; - case 638: // $@104: %empty -#line 2256 "dhcp6_parser.yy" + case 640: +#line 2264 "dhcp6_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3467 "dhcp6_parser.cc" +#line 3508 "dhcp6_parser.cc" break; - case 639: // client_class_test: "test" $@104 ":" "constant string" -#line 2259 "dhcp6_parser.yy" + case 641: +#line 2267 "dhcp6_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3477 "dhcp6_parser.cc" +#line 3518 "dhcp6_parser.cc" break; - case 640: // only_if_required: "only-if-required" ":" "boolean" -#line 2265 "dhcp6_parser.yy" + case 642: +#line 2273 "dhcp6_parser.yy" { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3487 "dhcp6_parser.cc" +#line 3528 "dhcp6_parser.cc" break; - case 641: // $@105: %empty -#line 2274 "dhcp6_parser.yy" + case 643: +#line 2282 "dhcp6_parser.yy" { ctx.unique("server-id", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3495,117 +3536,117 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } -#line 3499 "dhcp6_parser.cc" +#line 3540 "dhcp6_parser.cc" break; - case 642: // server_id: "server-id" $@105 ":" "{" server_id_params "}" -#line 2280 "dhcp6_parser.yy" + case 644: +#line 2288 "dhcp6_parser.yy" { // The type parameter is required. ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3510 "dhcp6_parser.cc" +#line 3551 "dhcp6_parser.cc" break; - case 654: // $@106: %empty -#line 2302 "dhcp6_parser.yy" + case 656: +#line 2310 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DUID_TYPE); } -#line 3519 "dhcp6_parser.cc" +#line 3560 "dhcp6_parser.cc" break; - case 655: // server_id_type: "type" $@106 ":" duid_type -#line 2305 "dhcp6_parser.yy" + case 657: +#line 2313 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3528 "dhcp6_parser.cc" +#line 3569 "dhcp6_parser.cc" break; - case 656: // duid_type: "LLT" -#line 2310 "dhcp6_parser.yy" + case 658: +#line 2318 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 3534 "dhcp6_parser.cc" +#line 3575 "dhcp6_parser.cc" break; - case 657: // duid_type: "EN" -#line 2311 "dhcp6_parser.yy" + case 659: +#line 2319 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 3540 "dhcp6_parser.cc" +#line 3581 "dhcp6_parser.cc" break; - case 658: // duid_type: "LL" -#line 2312 "dhcp6_parser.yy" + case 660: +#line 2320 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 3546 "dhcp6_parser.cc" +#line 3587 "dhcp6_parser.cc" break; - case 659: // htype: "htype" ":" "integer" -#line 2315 "dhcp6_parser.yy" + case 661: +#line 2323 "dhcp6_parser.yy" { ctx.unique("htype", ctx.loc2pos(yystack_[2].location)); ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } -#line 3556 "dhcp6_parser.cc" +#line 3597 "dhcp6_parser.cc" break; - case 660: // $@107: %empty -#line 2321 "dhcp6_parser.yy" + case 662: +#line 2329 "dhcp6_parser.yy" { ctx.unique("identifier", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3565 "dhcp6_parser.cc" +#line 3606 "dhcp6_parser.cc" break; - case 661: // identifier: "identifier" $@107 ":" "constant string" -#line 2324 "dhcp6_parser.yy" + case 663: +#line 2332 "dhcp6_parser.yy" { ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } -#line 3575 "dhcp6_parser.cc" +#line 3616 "dhcp6_parser.cc" break; - case 662: // time: "time" ":" "integer" -#line 2330 "dhcp6_parser.yy" + case 664: +#line 2338 "dhcp6_parser.yy" { ctx.unique("time", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 3585 "dhcp6_parser.cc" +#line 3626 "dhcp6_parser.cc" break; - case 663: // enterprise_id: "enterprise-id" ":" "integer" -#line 2336 "dhcp6_parser.yy" + case 665: +#line 2344 "dhcp6_parser.yy" { ctx.unique("enterprise-id", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 3595 "dhcp6_parser.cc" +#line 3636 "dhcp6_parser.cc" break; - case 664: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2344 "dhcp6_parser.yy" + case 666: +#line 2352 "dhcp6_parser.yy" { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 3605 "dhcp6_parser.cc" +#line 3646 "dhcp6_parser.cc" break; - case 665: // $@108: %empty -#line 2352 "dhcp6_parser.yy" + case 667: +#line 2360 "dhcp6_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3613,58 +3654,58 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 3617 "dhcp6_parser.cc" +#line 3658 "dhcp6_parser.cc" break; - case 666: // control_socket: "control-socket" $@108 ":" "{" control_socket_params "}" -#line 2358 "dhcp6_parser.yy" + case 668: +#line 2366 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3626 "dhcp6_parser.cc" +#line 3667 "dhcp6_parser.cc" break; - case 674: // $@109: %empty -#line 2374 "dhcp6_parser.yy" + case 676: +#line 2382 "dhcp6_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3635 "dhcp6_parser.cc" +#line 3676 "dhcp6_parser.cc" break; - case 675: // socket_type: "socket-type" $@109 ":" "constant string" -#line 2377 "dhcp6_parser.yy" + case 677: +#line 2385 "dhcp6_parser.yy" { ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } -#line 3645 "dhcp6_parser.cc" +#line 3686 "dhcp6_parser.cc" break; - case 676: // $@110: %empty -#line 2383 "dhcp6_parser.yy" + case 678: +#line 2391 "dhcp6_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3654 "dhcp6_parser.cc" +#line 3695 "dhcp6_parser.cc" break; - case 677: // socket_name: "socket-name" $@110 ":" "constant string" -#line 2386 "dhcp6_parser.yy" + case 679: +#line 2394 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 3664 "dhcp6_parser.cc" +#line 3705 "dhcp6_parser.cc" break; - case 678: // $@111: %empty -#line 2395 "dhcp6_parser.yy" + case 680: +#line 2403 "dhcp6_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3672,79 +3713,79 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 3676 "dhcp6_parser.cc" +#line 3717 "dhcp6_parser.cc" break; - case 679: // dhcp_queue_control: "dhcp-queue-control" $@111 ":" "{" queue_control_params "}" -#line 2401 "dhcp6_parser.yy" + case 681: +#line 2409 "dhcp6_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3687 "dhcp6_parser.cc" +#line 3728 "dhcp6_parser.cc" break; - case 688: // enable_queue: "enable-queue" ":" "boolean" -#line 2420 "dhcp6_parser.yy" + case 690: +#line 2428 "dhcp6_parser.yy" { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 3697 "dhcp6_parser.cc" +#line 3738 "dhcp6_parser.cc" break; - case 689: // $@112: %empty -#line 2426 "dhcp6_parser.yy" + case 691: +#line 2434 "dhcp6_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3706 "dhcp6_parser.cc" +#line 3747 "dhcp6_parser.cc" break; - case 690: // queue_type: "queue-type" $@112 ":" "constant string" -#line 2429 "dhcp6_parser.yy" + case 692: +#line 2437 "dhcp6_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); ctx.leave(); } -#line 3716 "dhcp6_parser.cc" +#line 3757 "dhcp6_parser.cc" break; - case 691: // capacity: "capacity" ":" "integer" -#line 2435 "dhcp6_parser.yy" + case 693: +#line 2443 "dhcp6_parser.yy" { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 3726 "dhcp6_parser.cc" +#line 3767 "dhcp6_parser.cc" break; - case 692: // $@113: %empty -#line 2441 "dhcp6_parser.yy" + case 694: +#line 2449 "dhcp6_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3735 "dhcp6_parser.cc" +#line 3776 "dhcp6_parser.cc" break; - case 693: // arbitrary_map_entry: "constant string" $@113 ":" value -#line 2444 "dhcp6_parser.yy" + case 695: +#line 2452 "dhcp6_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3744 "dhcp6_parser.cc" +#line 3785 "dhcp6_parser.cc" break; - case 694: // $@114: %empty -#line 2451 "dhcp6_parser.yy" + case 696: +#line 2459 "dhcp6_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3752,283 +3793,283 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 3756 "dhcp6_parser.cc" +#line 3797 "dhcp6_parser.cc" break; - case 695: // dhcp_ddns: "dhcp-ddns" $@114 ":" "{" dhcp_ddns_params "}" -#line 2457 "dhcp6_parser.yy" + case 697: +#line 2465 "dhcp6_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3767 "dhcp6_parser.cc" +#line 3808 "dhcp6_parser.cc" break; - case 696: // $@115: %empty -#line 2464 "dhcp6_parser.yy" + case 698: +#line 2472 "dhcp6_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3777 "dhcp6_parser.cc" +#line 3818 "dhcp6_parser.cc" break; - case 697: // sub_dhcp_ddns: "{" $@115 dhcp_ddns_params "}" -#line 2468 "dhcp6_parser.yy" + case 699: +#line 2476 "dhcp6_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3787 "dhcp6_parser.cc" +#line 3828 "dhcp6_parser.cc" break; - case 718: // enable_updates: "enable-updates" ":" "boolean" -#line 2498 "dhcp6_parser.yy" + case 720: +#line 2506 "dhcp6_parser.yy" { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 3797 "dhcp6_parser.cc" +#line 3838 "dhcp6_parser.cc" break; - case 719: // $@116: %empty -#line 2505 "dhcp6_parser.yy" + case 721: +#line 2513 "dhcp6_parser.yy" { ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3806 "dhcp6_parser.cc" +#line 3847 "dhcp6_parser.cc" break; - case 720: // dep_qualifying_suffix: "qualifying-suffix" $@116 ":" "constant string" -#line 2508 "dhcp6_parser.yy" + case 722: +#line 2516 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); ctx.leave(); } -#line 3816 "dhcp6_parser.cc" +#line 3857 "dhcp6_parser.cc" break; - case 721: // $@117: %empty -#line 2514 "dhcp6_parser.yy" + case 723: +#line 2522 "dhcp6_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3825 "dhcp6_parser.cc" +#line 3866 "dhcp6_parser.cc" break; - case 722: // server_ip: "server-ip" $@117 ":" "constant string" -#line 2517 "dhcp6_parser.yy" + case 724: +#line 2525 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 3835 "dhcp6_parser.cc" +#line 3876 "dhcp6_parser.cc" break; - case 723: // server_port: "server-port" ":" "integer" -#line 2523 "dhcp6_parser.yy" + case 725: +#line 2531 "dhcp6_parser.yy" { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 3845 "dhcp6_parser.cc" +#line 3886 "dhcp6_parser.cc" break; - case 724: // $@118: %empty -#line 2529 "dhcp6_parser.yy" + case 726: +#line 2537 "dhcp6_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3854 "dhcp6_parser.cc" +#line 3895 "dhcp6_parser.cc" break; - case 725: // sender_ip: "sender-ip" $@118 ":" "constant string" -#line 2532 "dhcp6_parser.yy" + case 727: +#line 2540 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 3864 "dhcp6_parser.cc" +#line 3905 "dhcp6_parser.cc" break; - case 726: // sender_port: "sender-port" ":" "integer" -#line 2538 "dhcp6_parser.yy" + case 728: +#line 2546 "dhcp6_parser.yy" { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 3874 "dhcp6_parser.cc" +#line 3915 "dhcp6_parser.cc" break; - case 727: // max_queue_size: "max-queue-size" ":" "integer" -#line 2544 "dhcp6_parser.yy" + case 729: +#line 2552 "dhcp6_parser.yy" { ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 3884 "dhcp6_parser.cc" +#line 3925 "dhcp6_parser.cc" break; - case 728: // $@119: %empty -#line 2550 "dhcp6_parser.yy" + case 730: +#line 2558 "dhcp6_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 3893 "dhcp6_parser.cc" +#line 3934 "dhcp6_parser.cc" break; - case 729: // ncr_protocol: "ncr-protocol" $@119 ":" ncr_protocol_value -#line 2553 "dhcp6_parser.yy" + case 731: +#line 2561 "dhcp6_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3902 "dhcp6_parser.cc" +#line 3943 "dhcp6_parser.cc" break; - case 730: // ncr_protocol_value: "UDP" -#line 2559 "dhcp6_parser.yy" + case 732: +#line 2567 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 3908 "dhcp6_parser.cc" +#line 3949 "dhcp6_parser.cc" break; - case 731: // ncr_protocol_value: "TCP" -#line 2560 "dhcp6_parser.yy" + case 733: +#line 2568 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 3914 "dhcp6_parser.cc" +#line 3955 "dhcp6_parser.cc" break; - case 732: // $@120: %empty -#line 2563 "dhcp6_parser.yy" + case 734: +#line 2571 "dhcp6_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 3923 "dhcp6_parser.cc" +#line 3964 "dhcp6_parser.cc" break; - case 733: // ncr_format: "ncr-format" $@120 ":" "JSON" -#line 2566 "dhcp6_parser.yy" + case 735: +#line 2574 "dhcp6_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 3933 "dhcp6_parser.cc" +#line 3974 "dhcp6_parser.cc" break; - case 734: // dep_override_no_update: "override-no-update" ":" "boolean" -#line 2573 "dhcp6_parser.yy" + case 736: +#line 2581 "dhcp6_parser.yy" { ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 3943 "dhcp6_parser.cc" +#line 3984 "dhcp6_parser.cc" break; - case 735: // dep_override_client_update: "override-client-update" ":" "boolean" -#line 2580 "dhcp6_parser.yy" + case 737: +#line 2588 "dhcp6_parser.yy" { ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 3953 "dhcp6_parser.cc" +#line 3994 "dhcp6_parser.cc" break; - case 736: // $@121: %empty -#line 2587 "dhcp6_parser.yy" + case 738: +#line 2595 "dhcp6_parser.yy" { ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 3962 "dhcp6_parser.cc" +#line 4003 "dhcp6_parser.cc" break; - case 737: // dep_replace_client_name: "replace-client-name" $@121 ":" ddns_replace_client_name_value -#line 2590 "dhcp6_parser.yy" + case 739: +#line 2598 "dhcp6_parser.yy" { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3971 "dhcp6_parser.cc" +#line 4012 "dhcp6_parser.cc" break; - case 738: // $@122: %empty -#line 2596 "dhcp6_parser.yy" + case 740: +#line 2604 "dhcp6_parser.yy" { ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3980 "dhcp6_parser.cc" +#line 4021 "dhcp6_parser.cc" break; - case 739: // dep_generated_prefix: "generated-prefix" $@122 ":" "constant string" -#line 2599 "dhcp6_parser.yy" + case 741: +#line 2607 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); ctx.leave(); } -#line 3990 "dhcp6_parser.cc" +#line 4031 "dhcp6_parser.cc" break; - case 740: // $@123: %empty -#line 2606 "dhcp6_parser.yy" + case 742: +#line 2614 "dhcp6_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3999 "dhcp6_parser.cc" +#line 4040 "dhcp6_parser.cc" break; - case 741: // dep_hostname_char_set: "hostname-char-set" $@123 ":" "constant string" -#line 2609 "dhcp6_parser.yy" + case 743: +#line 2617 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 4009 "dhcp6_parser.cc" +#line 4050 "dhcp6_parser.cc" break; - case 742: // $@124: %empty -#line 2616 "dhcp6_parser.yy" + case 744: +#line 2624 "dhcp6_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4018 "dhcp6_parser.cc" +#line 4059 "dhcp6_parser.cc" break; - case 743: // dep_hostname_char_replacement: "hostname-char-replacement" $@124 ":" "constant string" -#line 2619 "dhcp6_parser.yy" + case 745: +#line 2627 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 4028 "dhcp6_parser.cc" +#line 4069 "dhcp6_parser.cc" break; - case 744: // $@125: %empty -#line 2628 "dhcp6_parser.yy" + case 746: +#line 2636 "dhcp6_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4036,40 +4077,40 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 4040 "dhcp6_parser.cc" +#line 4081 "dhcp6_parser.cc" break; - case 745: // config_control: "config-control" $@125 ":" "{" config_control_params "}" -#line 2634 "dhcp6_parser.yy" + case 747: +#line 2642 "dhcp6_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4050 "dhcp6_parser.cc" +#line 4091 "dhcp6_parser.cc" break; - case 746: // $@126: %empty -#line 2640 "dhcp6_parser.yy" + case 748: +#line 2648 "dhcp6_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4060 "dhcp6_parser.cc" +#line 4101 "dhcp6_parser.cc" break; - case 747: // sub_config_control: "{" $@126 config_control_params "}" -#line 2644 "dhcp6_parser.yy" + case 749: +#line 2652 "dhcp6_parser.yy" { // No config_control params are required // parsing completed } -#line 4069 "dhcp6_parser.cc" +#line 4110 "dhcp6_parser.cc" break; - case 752: // $@127: %empty -#line 2659 "dhcp6_parser.yy" + case 754: +#line 2667 "dhcp6_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4077,30 +4118,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 4081 "dhcp6_parser.cc" +#line 4122 "dhcp6_parser.cc" break; - case 753: // config_databases: "config-databases" $@127 ":" "[" database_list "]" -#line 2665 "dhcp6_parser.yy" + case 755: +#line 2673 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4090 "dhcp6_parser.cc" +#line 4131 "dhcp6_parser.cc" break; - case 754: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 2670 "dhcp6_parser.yy" + case 756: +#line 2678 "dhcp6_parser.yy" { ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 4100 "dhcp6_parser.cc" +#line 4141 "dhcp6_parser.cc" break; - case 755: // $@128: %empty -#line 2678 "dhcp6_parser.yy" + case 757: +#line 2686 "dhcp6_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4108,67 +4149,67 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 4112 "dhcp6_parser.cc" +#line 4153 "dhcp6_parser.cc" break; - case 756: // loggers: "loggers" $@128 ":" "[" loggers_entries "]" -#line 2684 "dhcp6_parser.yy" + case 758: +#line 2692 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4121 "dhcp6_parser.cc" +#line 4162 "dhcp6_parser.cc" break; - case 759: // $@129: %empty -#line 2696 "dhcp6_parser.yy" + case 761: +#line 2704 "dhcp6_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 4131 "dhcp6_parser.cc" +#line 4172 "dhcp6_parser.cc" break; - case 760: // logger_entry: "{" $@129 logger_params "}" -#line 2700 "dhcp6_parser.yy" + case 762: +#line 2708 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4139 "dhcp6_parser.cc" +#line 4180 "dhcp6_parser.cc" break; - case 770: // debuglevel: "debuglevel" ":" "integer" -#line 2717 "dhcp6_parser.yy" + case 772: +#line 2725 "dhcp6_parser.yy" { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 4149 "dhcp6_parser.cc" +#line 4190 "dhcp6_parser.cc" break; - case 771: // $@130: %empty -#line 2723 "dhcp6_parser.yy" + case 773: +#line 2731 "dhcp6_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4158 "dhcp6_parser.cc" +#line 4199 "dhcp6_parser.cc" break; - case 772: // severity: "severity" $@130 ":" "constant string" -#line 2726 "dhcp6_parser.yy" + case 774: +#line 2734 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 4168 "dhcp6_parser.cc" +#line 4209 "dhcp6_parser.cc" break; - case 773: // $@131: %empty -#line 2732 "dhcp6_parser.yy" + case 775: +#line 2740 "dhcp6_parser.yy" { ctx.unique("output_options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4176,106 +4217,106 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4180 "dhcp6_parser.cc" +#line 4221 "dhcp6_parser.cc" break; - case 774: // output_options_list: "output_options" $@131 ":" "[" output_options_list_content "]" -#line 2738 "dhcp6_parser.yy" + case 776: +#line 2746 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4189 "dhcp6_parser.cc" +#line 4230 "dhcp6_parser.cc" break; - case 777: // $@132: %empty -#line 2747 "dhcp6_parser.yy" + case 779: +#line 2755 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4199 "dhcp6_parser.cc" +#line 4240 "dhcp6_parser.cc" break; - case 778: // output_entry: "{" $@132 output_params_list "}" -#line 2751 "dhcp6_parser.yy" + case 780: +#line 2759 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4207 "dhcp6_parser.cc" +#line 4248 "dhcp6_parser.cc" break; - case 786: // $@133: %empty -#line 2766 "dhcp6_parser.yy" + case 788: +#line 2774 "dhcp6_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4216 "dhcp6_parser.cc" +#line 4257 "dhcp6_parser.cc" break; - case 787: // output: "output" $@133 ":" "constant string" -#line 2769 "dhcp6_parser.yy" + case 789: +#line 2777 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 4226 "dhcp6_parser.cc" +#line 4267 "dhcp6_parser.cc" break; - case 788: // flush: "flush" ":" "boolean" -#line 2775 "dhcp6_parser.yy" + case 790: +#line 2783 "dhcp6_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 4236 "dhcp6_parser.cc" +#line 4277 "dhcp6_parser.cc" break; - case 789: // maxsize: "maxsize" ":" "integer" -#line 2781 "dhcp6_parser.yy" + case 791: +#line 2789 "dhcp6_parser.yy" { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 4246 "dhcp6_parser.cc" +#line 4287 "dhcp6_parser.cc" break; - case 790: // maxver: "maxver" ":" "integer" -#line 2787 "dhcp6_parser.yy" + case 792: +#line 2795 "dhcp6_parser.yy" { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 4256 "dhcp6_parser.cc" +#line 4297 "dhcp6_parser.cc" break; - case 791: // $@134: %empty -#line 2793 "dhcp6_parser.yy" + case 793: +#line 2801 "dhcp6_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4265 "dhcp6_parser.cc" +#line 4306 "dhcp6_parser.cc" break; - case 792: // pattern: "pattern" $@134 ":" "constant string" -#line 2796 "dhcp6_parser.yy" + case 794: +#line 2804 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 4275 "dhcp6_parser.cc" +#line 4316 "dhcp6_parser.cc" break; -#line 4279 "dhcp6_parser.cc" +#line 4320 "dhcp6_parser.cc" default: break; @@ -4292,6 +4333,7 @@ namespace isc { namespace dhcp { YY_SYMBOL_PRINT ("-> $$ =", yylhs); yypop_ (yylen); yylen = 0; + YY_STACK_PRINT (); // Shift the result of the reduction. yypush_ (YY_NULLPTR, YY_MOVE (yylhs)); @@ -4307,9 +4349,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)); } @@ -4320,7 +4360,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 ()) { @@ -4346,7 +4386,6 @@ namespace isc { namespace dhcp { this YYERROR. */ yypop_ (yylen); yylen = 0; - YY_STACK_PRINT (); goto yyerrlab1; @@ -4355,33 +4394,31 @@ namespace isc { namespace dhcp { `-------------------------------------------------------------*/ 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 += yy_error_token_; + if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yy_error_token_) + { + 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); @@ -4419,7 +4456,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]); @@ -4453,100 +4489,18 @@ namespace isc { namespace dhcp { 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. */ + // Generate an error message. std::string - Dhcp6Parser::yytnamerr_ (const char *yystr) + Dhcp6Parser::yysyntax_error_ (state_type yystate, const symbol_type& yyla) const { - if (*yystr == '"') - { - std::string yyr; - char const *yyp = yystr; + // Number of reported tokens (one for the "unexpected", one per + // "expected"). + std::ptrdiff_t yycount = 0; + // Its maximum. + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + // Arguments of yyformat. + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - 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; - } - - std::string - Dhcp6Parser::symbol_name (symbol_kind_type yysymbol) - { - 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; - } - - - - 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 @@ -4571,26 +4525,35 @@ namespace isc { namespace dhcp { 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; - } - return 0; - } + symbol_number_type yytoken = yyla.type_get (); + yyarg[yycount++] = yytname_[yytoken]; - // 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); + 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 != yy_error_token_ + && !yy_table_value_is_error_ (yytable_[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + break; + } + else + yyarg[yycount++] = yytname_[yyx]; + } + } + } char const* yyformat = YY_NULLPTR; switch (yycount) @@ -4615,7 +4578,7 @@ namespace isc { namespace dhcp { 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 @@ -4624,142 +4587,142 @@ namespace isc { namespace dhcp { } - const short Dhcp6Parser::yypact_ninf_ = -964; + const short Dhcp6Parser::yypact_ninf_ = -967; const signed char Dhcp6Parser::yytable_ninf_ = -1; const short Dhcp6Parser::yypact_[] = { - 510, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, 59, 33, 44, 54, 60, - 95, 105, 131, 139, 146, 192, 208, 219, 226, 233, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, 33, -131, - 86, 116, 52, 278, 276, 485, 286, 39, 41, 119, - -61, 588, 322, -964, 236, 259, 268, 255, 288, -964, - 343, -964, -964, -964, -964, -964, -964, 351, 358, 361, - 362, 382, 385, 394, 432, 434, 435, 436, 438, 440, - 442, -964, 444, 448, 449, 452, 454, -964, -964, -964, - 460, 464, 465, -964, -964, -964, -964, -964, -964, -964, - 468, 469, 479, -964, -964, -964, -964, -964, -964, -964, - -964, -964, 480, -964, -964, -964, -964, -964, -964, 481, - -964, 488, -964, 75, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, 494, -964, 89, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, 496, - 500, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, 92, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, 96, -964, -964, -964, -964, -964, - 501, -964, 503, 504, -964, -964, -964, -964, -964, -964, - 134, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, 345, 393, - -964, -964, -964, -964, -964, -964, -964, -964, 391, -964, - -964, 506, -964, -964, -964, 512, -964, -964, 406, 430, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, 513, 517, -964, -964, -964, -964, 516, - 486, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, 144, -964, -964, -964, 522, -964, -964, - 524, -964, 525, 532, -964, -964, 535, 537, -964, -964, - -964, -964, -964, -964, -964, 210, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, 539, 231, -964, -964, -964, -964, 33, - 33, -964, 312, 541, -964, 542, 545, 546, 547, 549, - 550, 352, 359, 363, 365, 366, 367, 379, 380, 354, - 357, 360, 407, 396, 411, 561, 412, 413, 414, 415, - 416, 594, 613, 614, 418, 423, 424, 620, 622, 623, - 626, 629, 632, 635, 437, 441, 443, 636, 643, 645, - 646, 647, 649, 650, 652, 653, 458, 660, 661, 662, - 663, 664, 665, 466, 666, -964, 116, -964, 668, 476, - 52, -964, 669, 679, 680, 681, 682, 487, 483, 685, - 687, 688, 278, -964, 689, 276, -964, 690, 492, 692, - 509, 511, 485, -964, 709, 711, 714, 715, 716, 717, - 718, -964, 286, -964, 719, 720, 523, 721, 723, 724, - 530, -964, 41, 725, 531, 533, -964, 119, 733, 735, - -73, -964, 536, 736, 739, 554, 754, 557, 558, 755, - 758, 562, 563, 759, 762, 765, 766, 588, -964, 767, - 569, 322, -964, -964, -964, 769, 768, 572, 770, 771, - 772, 773, 776, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, 574, -964, -964, - -964, -964, -964, 56, 580, 581, -964, -964, -964, 779, - 780, 781, 782, 784, 586, 395, -964, -964, -964, 787, - 788, 789, 790, 791, 793, 794, 795, 796, -964, 797, - 798, 799, 800, 587, 593, -964, 803, -964, 804, -964, - -964, 805, 806, 598, 599, 610, -964, -964, 804, 611, - 807, -964, 615, -964, 616, -964, 617, -964, -964, -964, - 804, 804, 804, 618, 619, 621, 624, -964, 625, 627, - -964, 628, 630, 631, -964, -964, 633, -964, -964, -964, - 634, 784, -964, -964, 637, 638, -964, 639, -964, -964, - -121, 644, -964, -964, 56, 640, 641, 642, -964, 811, - -964, -964, 33, 116, -964, 322, 52, 247, 247, 815, - -964, -964, -964, -964, -964, -964, -964, -964, -964, 817, - 818, 821, 824, -964, -964, -964, -964, -964, -964, -964, - -964, -78, 33, 191, 727, 827, 831, 838, 174, 64, - 154, 67, 48, 588, -964, -964, 839, -964, -964, 840, - 841, -964, -964, -964, -964, -964, -80, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, 815, -964, 249, 250, - 262, -964, -964, -964, -964, 845, 846, 847, 848, 849, - -964, 850, 851, -964, -964, -964, 852, 853, 854, 855, - -964, 309, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, 311, -964, 856, 857, -964, -964, 858, - 860, -964, -964, 859, 863, -964, -964, 861, 865, -964, - -964, 864, 866, -964, -964, -964, 57, -964, -964, -964, - 867, -964, -964, -964, 78, -964, -964, -964, -964, 346, - -964, -964, -964, 103, -964, -964, 868, 869, -964, -964, - 870, 872, -964, 873, 874, 875, 876, 877, 878, 349, - -964, -964, -964, -964, -964, -964, -964, -964, -964, 879, - 880, 881, -964, -964, -964, -964, 356, -964, -964, -964, - -964, -964, -964, 882, 883, 884, -964, 376, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, 377, - -964, -964, -964, 885, -964, 886, -964, -964, -964, 384, - -964, -964, -964, -964, -964, 392, -964, 151, -964, 659, - -964, 887, 888, -964, -964, 889, 891, -964, -964, -964, - 890, -964, 893, -964, -964, -964, 892, 896, 897, 898, - 694, 698, 701, 700, 703, 903, 705, 706, 907, 908, - 910, 712, 722, 713, 734, 247, -964, -964, 247, -964, - 815, 278, -964, 817, 41, -964, 818, 119, -964, 821, - 540, -964, 824, -78, -964, -964, 191, -964, 923, 727, - -964, 224, 827, -964, 286, -964, 831, -61, -964, 838, - 740, 741, 742, 753, 756, 801, 174, -964, 924, 961, - 809, 834, 835, 64, -964, 785, 843, 844, 154, -964, - 967, 980, 67, -964, 792, 989, 862, 992, 48, -964, - -964, 329, 839, -964, -964, 994, 1031, 276, -964, 840, - 485, -964, 841, 1039, -964, -964, 556, 842, 871, 894, - -964, -964, -964, -964, -964, 895, -964, -964, 901, 902, - 904, -964, -964, -964, -964, -964, 408, -964, 409, -964, - 1041, -964, 1042, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - 410, -964, -964, -964, -964, -964, -964, -964, -964, 905, - -964, -964, 1048, -964, -964, -964, -964, -964, 1045, 1051, - -964, -964, -964, -964, -964, 1047, -964, 419, -964, -964, - -964, -964, -964, -964, -964, -964, 53, 906, -964, -964, - -964, -964, -964, -964, -964, -964, 909, 911, -964, -964, - 912, -964, 33, -964, -964, 1052, -964, -964, -964, -964, - -964, 420, -964, -964, -964, -964, -964, -964, 913, 421, - -964, 422, -964, 914, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - 540, -964, -964, 1053, 915, -964, 224, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, 1054, 916, - 1055, 329, -964, -964, -964, -964, -964, -964, 919, -964, - -964, 1056, -964, 920, -964, -964, 1057, -964, -964, 206, - -964, -36, 1057, -964, -964, 1058, 1062, 1063, -964, 429, - -964, -964, -964, -964, -964, -964, -964, 1064, 918, 921, - 922, 1065, -36, -964, 925, -964, -964, -964, 926, -964, - -964, -964 + 379, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, 39, 33, 36, 97, 103, + 117, 153, 184, 191, 205, 209, 234, 244, 247, 257, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, 33, -146, + 49, 116, 52, 540, 24, 186, 29, -7, 137, 269, + -65, 526, 119, -967, 65, 93, 110, 262, 297, -967, + 296, -967, -967, -967, -967, -967, -967, 306, 310, 335, + 389, 397, 403, 404, 409, 412, 413, 414, 416, 417, + 418, -967, 419, 420, 421, 422, 423, -967, -967, -967, + 424, 425, 426, -967, -967, -967, -967, -967, -967, -967, + 428, 429, 432, -967, -967, -967, -967, -967, -967, -967, + -967, -967, 433, -967, -967, -967, -967, -967, -967, 434, + -967, 435, -967, 48, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, 436, -967, 58, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, 438, + 440, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, 75, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, 189, -967, -967, -967, -967, -967, + 442, -967, 444, 445, -967, -967, -967, -967, -967, -967, + 232, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, 348, 449, + -967, -967, -967, -967, -967, -967, -967, -967, 376, -967, + -967, 450, -967, -967, -967, 451, -967, -967, 448, 455, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, 460, 464, -967, -967, -967, -967, 461, + 470, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, 250, -967, -967, -967, 474, -967, -967, + 476, -967, 479, 480, -967, -967, 481, 484, -967, -967, + -967, -967, -967, -967, -967, 263, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, 485, 283, -967, -967, -967, -967, 33, + 33, -967, 292, 488, -967, 490, 492, 494, 496, 500, + 501, 249, 304, 305, 307, 308, 312, 313, 317, 301, + 309, 319, 321, 324, 325, 506, 327, 332, 333, 337, + 339, 537, 542, 545, 344, 345, 347, 550, 551, 553, + 555, 557, 558, 560, 359, 360, 377, 578, 580, 594, + 595, 596, 597, 607, 608, 610, 411, 612, 613, 616, + 617, 619, 623, 437, 624, -967, 116, -967, 625, 441, + 52, -967, 626, 627, 636, 638, 644, 446, 443, 647, + 648, 650, 540, -967, 651, 24, -967, 657, 459, 661, + 462, 463, 186, -967, 664, 665, 666, 667, 668, 669, + 675, -967, 29, -967, 676, 677, 495, 692, 694, 696, + 499, -967, 137, 697, 502, 503, -967, 269, 698, 702, + 162, -967, 504, 703, 707, 508, 709, 510, 511, 712, + 715, 514, 515, 718, 719, 720, 721, 526, -967, 722, + 523, 119, -967, -967, -967, 724, 728, 533, 730, 731, + 732, 733, 736, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, 539, -967, -967, + -967, -967, -967, 107, 554, 556, -967, -967, -967, 753, + 755, 766, 769, 768, 573, 100, -967, -967, -967, 772, + 773, 774, 775, 776, 778, 779, 780, 781, -967, 782, + 783, 786, 789, 577, 582, -967, 794, -967, 795, -967, + -967, 796, 797, 583, 603, 604, -967, -967, 795, 605, + 802, -967, 611, -967, 614, -967, 615, -967, -967, -967, + 795, 795, 795, 618, 621, 622, 628, -967, 629, 630, + -967, 631, 632, 633, -967, -967, 634, -967, -967, -967, + 635, 768, -967, -967, 637, 639, -967, 640, -967, -967, + 171, 641, -967, -967, 107, 642, 643, 645, -967, 805, + -967, -967, 33, 116, -967, 119, 52, 294, 294, 804, + -967, -967, -967, -967, -967, -967, -967, -967, -967, 809, + 812, 813, 815, -967, -967, -967, -967, -967, -967, -967, + -967, -83, 33, 291, 716, 819, 821, 822, 219, 64, + 7, -44, 154, 526, -967, -967, 823, -967, -967, 832, + 834, -967, -967, -967, -967, -967, -58, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, 804, -967, 289, 295, + 303, -967, -967, -967, -967, 840, 843, 845, 846, 847, + -967, 848, 849, 850, -967, -967, -967, 851, 852, 853, + 854, -967, 352, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, 355, -967, 855, 856, -967, + -967, 857, 859, -967, -967, 858, 862, -967, -967, 860, + 864, -967, -967, 863, 865, -967, -967, -967, 78, -967, + -967, -967, 866, -967, -967, -967, 89, -967, -967, -967, + -967, 356, -967, -967, -967, 136, -967, -967, 867, 868, + -967, -967, 869, 871, -967, 874, 875, 876, 877, 878, + 879, 362, -967, -967, -967, -967, -967, -967, -967, -967, + -967, 880, 881, 882, -967, -967, -967, -967, 363, -967, + -967, -967, -967, -967, -967, 883, 884, 885, -967, 364, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, 366, -967, -967, -967, 886, -967, 887, -967, -967, + -967, 372, -967, -967, -967, -967, -967, 374, -967, 140, + -967, 689, -967, 888, 890, -967, -967, 889, 893, -967, + -967, -967, 891, -967, 892, -967, -967, -967, 896, 897, + 899, 900, 656, 691, 701, 700, 704, 903, 705, 706, + 708, 907, 908, 911, 713, 714, 725, 717, 294, -967, + -967, 294, -967, 804, 540, -967, 809, 137, -967, 812, + 269, -967, 813, 699, -967, 815, -83, -967, -967, 291, + -967, 924, 716, -967, 170, 819, -967, 29, -967, 821, + -65, -967, 822, 726, 742, 743, 744, 758, 764, 219, + -967, 936, 955, 770, 792, 799, 64, -967, 787, 803, + 811, 7, -967, 983, 995, -44, -967, 831, 996, 836, + 1037, 154, -967, -967, 195, 823, -967, -967, 1040, 1044, + 24, -967, 832, 186, -967, 834, 1045, -967, -967, 381, + 861, 870, 872, -967, -967, -967, -967, -967, 873, -967, + -967, -967, 894, 895, 904, -967, -967, -967, -967, -967, + 378, -967, 380, -967, 1042, -967, 1047, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, 382, -967, -967, -967, -967, -967, + -967, -967, -967, 906, -967, -967, 1048, -967, -967, -967, + -967, -967, 1049, 1050, -967, -967, -967, -967, -967, 1051, + -967, 384, -967, -967, -967, -967, -967, -967, -967, -967, + 179, 909, -967, -967, -967, -967, -967, -967, -967, -967, + 910, 912, -967, -967, 913, -967, 33, -967, -967, 1052, + -967, -967, -967, -967, -967, 388, -967, -967, -967, -967, + -967, -967, 914, 391, -967, 392, -967, 915, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, 699, -967, -967, 1054, 905, -967, + 170, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, 1056, 898, 1057, 195, -967, -967, -967, -967, + -967, -967, 916, -967, -967, 1060, -967, 917, -967, -967, + 1055, -967, -967, 228, -967, 8, 1055, -967, -967, 1063, + 1064, 1065, -967, 394, -967, -967, -967, -967, -967, -967, + -967, 1066, 918, 902, 919, 1067, 8, -967, 922, -967, + -967, -967, 923, -967, -967, -967 }; const short @@ -4769,44 +4732,44 @@ namespace isc { namespace dhcp { 20, 22, 24, 26, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 45, 38, 34, 33, 30, 31, 32, 37, 3, - 35, 36, 58, 5, 62, 7, 171, 9, 333, 11, - 528, 13, 553, 15, 583, 17, 453, 19, 461, 21, - 498, 23, 298, 25, 696, 27, 746, 29, 47, 41, - 0, 0, 0, 0, 0, 0, 585, 0, 463, 500, + 35, 36, 58, 5, 62, 7, 171, 9, 335, 11, + 530, 13, 555, 15, 585, 17, 455, 19, 463, 21, + 500, 23, 300, 25, 698, 27, 748, 29, 47, 41, + 0, 0, 0, 0, 0, 0, 587, 0, 465, 502, 0, 0, 0, 49, 0, 48, 0, 0, 42, 60, - 0, 127, 744, 169, 183, 185, 187, 0, 0, 0, + 0, 127, 746, 169, 183, 185, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, 146, 153, 155, - 0, 0, 0, 325, 451, 490, 401, 541, 543, 393, - 0, 0, 0, 258, 275, 266, 251, 620, 575, 290, - 309, 641, 0, 277, 665, 678, 694, 159, 161, 0, - 755, 0, 126, 0, 64, 66, 67, 68, 69, 70, + 0, 0, 0, 327, 453, 492, 403, 543, 545, 395, + 0, 0, 0, 260, 277, 268, 253, 622, 577, 292, + 311, 643, 0, 279, 667, 680, 696, 159, 161, 0, + 757, 0, 126, 0, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 105, 106, 107, 108, 109, 75, 113, 114, 115, 116, 117, 118, 119, 120, 111, 112, 121, 122, 123, 100, 125, 78, 79, 80, 81, 97, 82, 84, 83, 124, 88, 89, 76, 102, 103, 104, 101, 77, 86, 87, 95, 96, 98, 85, 90, 91, 92, 93, 94, 99, 110, 180, 0, 179, 0, 173, - 175, 176, 177, 178, 520, 545, 380, 382, 384, 0, - 0, 388, 386, 614, 379, 337, 338, 339, 340, 341, - 342, 343, 344, 363, 364, 365, 366, 367, 370, 371, - 372, 373, 374, 375, 376, 377, 368, 369, 378, 0, - 335, 348, 349, 350, 353, 354, 357, 358, 359, 356, - 351, 352, 345, 346, 361, 362, 347, 355, 360, 539, - 538, 534, 535, 533, 0, 530, 532, 536, 537, 568, - 0, 571, 0, 0, 567, 561, 562, 560, 565, 566, - 0, 555, 557, 558, 563, 564, 559, 612, 600, 602, - 604, 606, 608, 610, 599, 596, 597, 598, 0, 586, - 587, 591, 592, 589, 593, 594, 595, 590, 0, 480, - 231, 0, 484, 482, 487, 0, 476, 477, 0, 464, - 465, 467, 479, 468, 469, 470, 486, 471, 472, 473, - 474, 475, 514, 0, 0, 512, 513, 516, 517, 0, - 501, 502, 504, 505, 506, 507, 508, 509, 510, 511, - 305, 307, 302, 0, 300, 303, 304, 0, 719, 721, - 0, 724, 0, 0, 728, 732, 0, 0, 736, 738, - 740, 742, 717, 715, 716, 0, 698, 700, 712, 701, - 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, - 713, 714, 752, 0, 0, 748, 750, 751, 46, 0, + 175, 176, 177, 178, 522, 547, 382, 384, 386, 0, + 0, 390, 388, 616, 381, 339, 340, 341, 342, 343, + 344, 345, 346, 365, 366, 367, 368, 369, 372, 373, + 374, 375, 376, 377, 378, 379, 370, 371, 380, 0, + 337, 350, 351, 352, 355, 356, 359, 360, 361, 358, + 353, 354, 347, 348, 363, 364, 349, 357, 362, 541, + 540, 536, 537, 535, 0, 532, 534, 538, 539, 570, + 0, 573, 0, 0, 569, 563, 564, 562, 567, 568, + 0, 557, 559, 560, 565, 566, 561, 614, 602, 604, + 606, 608, 610, 612, 601, 598, 599, 600, 0, 588, + 589, 593, 594, 591, 595, 596, 597, 592, 0, 482, + 232, 0, 486, 484, 489, 0, 478, 479, 0, 466, + 467, 469, 481, 470, 471, 472, 488, 473, 474, 475, + 476, 477, 516, 0, 0, 514, 515, 518, 519, 0, + 503, 504, 506, 507, 508, 509, 510, 511, 512, 513, + 307, 309, 304, 0, 302, 305, 306, 0, 721, 723, + 0, 726, 0, 0, 730, 734, 0, 0, 738, 740, + 742, 744, 719, 717, 718, 0, 700, 702, 714, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 715, 716, 754, 0, 0, 750, 752, 753, 46, 0, 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, @@ -4815,313 +4778,315 @@ namespace isc { namespace dhcp { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 63, 0, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 334, 0, 0, 529, 0, 0, 0, - 0, 0, 0, 554, 0, 0, 0, 0, 0, 0, - 0, 584, 0, 454, 0, 0, 0, 0, 0, 0, - 0, 462, 0, 0, 0, 0, 499, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, - 0, 0, 747, 50, 43, 0, 0, 0, 0, 0, + 0, 0, 0, 336, 0, 0, 531, 0, 0, 0, + 0, 0, 0, 556, 0, 0, 0, 0, 0, 0, + 0, 586, 0, 456, 0, 0, 0, 0, 0, 0, + 0, 464, 0, 0, 0, 0, 501, 0, 0, 0, + 0, 301, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 699, 0, + 0, 0, 749, 50, 43, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 0, 164, 165, 143, 144, 145, 0, 0, 0, 157, 158, 163, 0, - 0, 0, 0, 0, 0, 0, 390, 391, 392, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 664, 0, + 0, 0, 0, 0, 0, 0, 392, 393, 394, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, 168, 0, 65, 0, 182, - 174, 0, 0, 0, 0, 0, 399, 400, 0, 0, - 0, 336, 0, 531, 0, 570, 0, 573, 574, 556, - 0, 0, 0, 0, 0, 0, 0, 588, 0, 0, - 478, 0, 0, 0, 489, 466, 0, 518, 519, 503, - 0, 0, 301, 718, 0, 0, 723, 0, 726, 727, - 0, 0, 734, 735, 0, 0, 0, 0, 699, 0, - 754, 749, 0, 0, 128, 0, 0, 0, 0, 189, - 167, 148, 149, 150, 151, 152, 147, 154, 156, 327, - 455, 492, 403, 40, 542, 544, 395, 396, 397, 398, - 394, 0, 47, 0, 0, 0, 577, 292, 0, 0, - 0, 0, 0, 0, 160, 162, 0, 51, 181, 522, - 547, 381, 383, 385, 389, 387, 0, 540, 569, 572, - 613, 601, 603, 605, 607, 609, 611, 481, 232, 485, - 483, 488, 515, 306, 308, 720, 722, 725, 730, 731, - 729, 733, 737, 739, 741, 743, 189, 44, 0, 0, - 0, 218, 224, 226, 228, 0, 0, 0, 0, 0, - 242, 0, 0, 245, 247, 249, 0, 0, 0, 0, - 217, 0, 195, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 209, 216, 210, 211, 212, 207, 208, - 213, 214, 215, 0, 193, 0, 190, 191, 331, 0, - 328, 329, 459, 0, 456, 457, 496, 0, 493, 494, - 407, 0, 404, 405, 264, 265, 0, 260, 262, 263, - 0, 273, 274, 270, 0, 268, 271, 272, 256, 0, - 253, 255, 624, 0, 622, 581, 0, 578, 579, 296, - 0, 293, 294, 0, 0, 0, 0, 0, 0, 0, - 311, 313, 314, 315, 316, 317, 318, 654, 660, 0, - 0, 0, 653, 650, 651, 652, 0, 643, 645, 648, - 646, 647, 649, 0, 0, 0, 286, 0, 279, 281, - 282, 283, 284, 285, 674, 676, 673, 671, 672, 0, - 667, 669, 670, 0, 689, 0, 692, 685, 686, 0, - 680, 682, 683, 684, 687, 0, 759, 0, 757, 53, - 526, 0, 523, 524, 551, 0, 548, 549, 618, 617, - 0, 616, 0, 61, 745, 170, 0, 0, 0, 0, + 174, 0, 0, 0, 0, 0, 401, 402, 0, 0, + 0, 338, 0, 533, 0, 572, 0, 575, 576, 558, + 0, 0, 0, 0, 0, 0, 0, 590, 0, 0, + 480, 0, 0, 0, 491, 468, 0, 520, 521, 505, + 0, 0, 303, 720, 0, 0, 725, 0, 728, 729, + 0, 0, 736, 737, 0, 0, 0, 0, 701, 0, + 756, 751, 0, 0, 128, 0, 0, 0, 0, 189, + 167, 148, 149, 150, 151, 152, 147, 154, 156, 329, + 457, 494, 405, 40, 544, 546, 397, 398, 399, 400, + 396, 0, 47, 0, 0, 0, 579, 294, 0, 0, + 0, 0, 0, 0, 160, 162, 0, 51, 181, 524, + 549, 383, 385, 387, 391, 389, 0, 542, 571, 574, + 615, 603, 605, 607, 609, 611, 613, 483, 233, 487, + 485, 490, 517, 308, 310, 722, 724, 727, 732, 733, + 731, 735, 739, 741, 743, 745, 189, 44, 0, 0, + 0, 219, 225, 227, 229, 0, 0, 0, 0, 0, + 244, 0, 0, 0, 247, 249, 251, 0, 0, 0, + 0, 218, 0, 195, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 209, 210, 217, 211, 212, 213, + 207, 208, 214, 215, 216, 0, 193, 0, 190, 191, + 333, 0, 330, 331, 461, 0, 458, 459, 498, 0, + 495, 496, 409, 0, 406, 407, 266, 267, 0, 262, + 264, 265, 0, 275, 276, 272, 0, 270, 273, 274, + 258, 0, 255, 257, 626, 0, 624, 583, 0, 580, + 581, 298, 0, 295, 296, 0, 0, 0, 0, 0, + 0, 0, 313, 315, 316, 317, 318, 319, 320, 656, + 662, 0, 0, 0, 655, 652, 653, 654, 0, 645, + 647, 650, 648, 649, 651, 0, 0, 0, 288, 0, + 281, 283, 284, 285, 286, 287, 676, 678, 675, 673, + 674, 0, 669, 671, 672, 0, 691, 0, 694, 687, + 688, 0, 682, 684, 685, 686, 689, 0, 761, 0, + 759, 53, 528, 0, 525, 526, 553, 0, 550, 551, + 620, 619, 0, 618, 0, 61, 747, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 184, 186, 0, 188, - 0, 0, 326, 0, 463, 452, 0, 500, 491, 0, - 0, 402, 0, 0, 259, 276, 0, 267, 0, 0, - 252, 626, 0, 621, 585, 576, 0, 0, 291, 0, - 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, - 0, 0, 0, 0, 642, 0, 0, 0, 0, 278, - 0, 0, 0, 666, 0, 0, 0, 0, 0, 679, - 695, 0, 0, 756, 55, 0, 54, 0, 521, 0, - 0, 546, 0, 0, 615, 753, 0, 0, 0, 0, - 230, 233, 234, 235, 236, 0, 244, 237, 0, 0, - 0, 239, 240, 241, 238, 196, 0, 192, 0, 330, - 0, 458, 0, 495, 450, 425, 426, 427, 429, 430, - 431, 415, 416, 434, 435, 436, 437, 438, 441, 442, - 443, 444, 445, 446, 447, 448, 439, 440, 449, 411, - 412, 413, 414, 423, 424, 420, 421, 422, 419, 428, - 0, 409, 417, 432, 433, 418, 406, 261, 269, 0, - 254, 638, 0, 636, 637, 633, 634, 635, 0, 627, - 628, 630, 631, 632, 623, 0, 580, 0, 295, 319, - 320, 321, 322, 323, 324, 312, 0, 0, 659, 662, - 663, 644, 287, 288, 289, 280, 0, 0, 668, 688, - 0, 691, 0, 681, 773, 0, 771, 769, 763, 767, - 768, 0, 761, 765, 766, 764, 758, 52, 0, 0, - 525, 0, 550, 0, 220, 221, 222, 223, 219, 225, - 227, 229, 243, 246, 248, 250, 194, 332, 460, 497, - 0, 408, 257, 0, 0, 625, 0, 582, 297, 656, - 657, 658, 655, 661, 675, 677, 690, 693, 0, 0, - 0, 0, 760, 56, 527, 552, 619, 410, 0, 640, - 629, 0, 770, 0, 762, 639, 0, 772, 777, 0, - 775, 0, 0, 774, 786, 0, 0, 0, 791, 0, - 779, 781, 782, 783, 784, 785, 776, 0, 0, 0, - 0, 0, 0, 778, 0, 788, 789, 790, 0, 780, - 787, 792 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, + 186, 0, 188, 0, 0, 328, 0, 465, 454, 0, + 502, 493, 0, 0, 404, 0, 0, 261, 278, 0, + 269, 0, 0, 254, 628, 0, 623, 587, 578, 0, + 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 0, 0, 0, 0, 0, 0, 644, 0, 0, + 0, 0, 280, 0, 0, 0, 668, 0, 0, 0, + 0, 0, 681, 697, 0, 0, 758, 55, 0, 54, + 0, 523, 0, 0, 548, 0, 0, 617, 755, 0, + 0, 0, 0, 231, 234, 235, 236, 237, 0, 246, + 238, 239, 0, 0, 0, 241, 242, 243, 240, 196, + 0, 192, 0, 332, 0, 460, 0, 497, 452, 427, + 428, 429, 431, 432, 433, 417, 418, 436, 437, 438, + 439, 440, 443, 444, 445, 446, 447, 448, 449, 450, + 441, 442, 451, 413, 414, 415, 416, 425, 426, 422, + 423, 424, 421, 430, 0, 411, 419, 434, 435, 420, + 408, 263, 271, 0, 256, 640, 0, 638, 639, 635, + 636, 637, 0, 629, 630, 632, 633, 634, 625, 0, + 582, 0, 297, 321, 322, 323, 324, 325, 326, 314, + 0, 0, 661, 664, 665, 646, 289, 290, 291, 282, + 0, 0, 670, 690, 0, 693, 0, 683, 775, 0, + 773, 771, 765, 769, 770, 0, 763, 767, 768, 766, + 760, 52, 0, 0, 527, 0, 552, 0, 221, 222, + 223, 224, 220, 226, 228, 230, 245, 248, 250, 252, + 194, 334, 462, 499, 0, 410, 259, 0, 0, 627, + 0, 584, 299, 658, 659, 660, 657, 663, 677, 679, + 692, 695, 0, 0, 0, 0, 762, 56, 529, 554, + 621, 412, 0, 642, 631, 0, 772, 0, 764, 641, + 0, 774, 779, 0, 777, 0, 0, 776, 788, 0, + 0, 0, 793, 0, 781, 783, 784, 785, 786, 787, + 778, 0, 0, 0, 0, 0, 0, 780, 0, 790, + 791, 792, 0, 782, 789, 794 }; const short Dhcp6Parser::yypgoto_[] = { - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -10, -964, -564, -964, - 200, -964, -964, -964, -964, 170, -964, -595, -964, -964, - -964, -71, -964, -964, -964, -964, -964, -964, 378, 584, - -964, -964, -59, -43, -42, -40, -39, -28, -27, -26, - -23, -21, -15, -9, -3, -964, -1, 17, 18, 20, - -964, 388, 25, -964, 28, -964, 30, 32, 35, -964, - 38, -964, 40, -964, -964, -964, -964, -964, -964, -964, - -964, -964, 381, 585, -964, -964, -964, -964, -964, -964, - -964, -964, -964, 298, -964, 98, -964, -676, 101, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -67, - -964, -714, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, 80, -964, -964, -964, -964, -964, 87, -698, - -964, -964, -964, -964, 85, -964, -964, -964, -964, -964, - -964, -964, 58, -964, -964, -964, -964, -964, -964, -964, - 73, -964, -964, -964, 76, 544, -964, -964, -964, -964, - -964, -964, -964, 69, -964, -964, -964, -964, -964, -964, - -963, -964, -964, -964, 104, -964, -964, -964, 107, 589, - -964, -964, -962, -964, -961, -964, 51, -964, 55, -964, - 42, 45, 46, 50, -964, -964, -964, -955, -964, -964, - -964, -964, 97, -964, -964, -120, 1015, -964, -964, -964, - -964, -964, 108, -964, -964, -964, 109, -964, 567, -964, - -66, -964, -964, -964, -964, -964, -47, -964, -964, -964, - -964, -964, 13, -964, -964, -964, 106, -964, -964, -964, - 113, -964, 573, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, 63, -964, -964, -964, 62, 612, - -964, -964, -55, -964, 1, -964, -964, -964, -964, -964, - 66, -964, -964, -964, 79, 651, -964, -964, -964, -964, - -964, -964, -964, -57, -964, -964, -964, 120, -964, -964, - -964, 126, -964, 609, 386, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -954, -964, - -964, -964, -964, -964, -964, -964, 132, -964, -964, -964, - -83, -964, -964, -964, -964, -964, -964, -964, 112, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, 110, -964, -964, -964, -964, -964, -964, -964, 99, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - 403, 583, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, -964, -964, -964, -964, -964, -964, -964, -964, -964, - -964, 446, 577, -964, -964, -964, -964, -964, -964, 102, - -964, -964, -85, -964, -964, -964, -964, -964, -964, -105, - -964, -964, -124, -964, -964, -964, -964, -964, -964, -964 + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -10, -967, -559, -967, + 199, -967, -967, -967, -967, 350, -967, -597, -967, -967, + -967, -71, -967, -967, -967, -967, -967, -967, 385, 588, + -967, -967, -59, -43, -42, -40, -39, -28, -27, -26, + -23, -21, -15, -9, -3, -967, -1, 17, 18, 20, + -967, 393, 25, -967, 28, -967, 30, 32, 35, -967, + 38, -967, 40, -967, -967, -967, -967, -967, -967, -967, + -967, -967, 383, 590, -967, -967, -967, -967, -967, -967, + -967, -967, -967, 311, -967, 98, -967, -676, 104, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -67, + -967, -714, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, 81, -967, -967, -967, -967, -967, 88, + -698, -967, -967, -967, -967, 86, -967, -967, -967, -967, + -967, -967, -967, 57, -967, -967, -967, -967, -967, -967, + -967, 74, -967, -967, -967, 79, 552, -967, -967, -967, + -967, -967, -967, -967, 71, -967, -967, -967, -967, -967, + -967, -966, -967, -967, -967, 105, -967, -967, -967, 109, + 592, -967, -967, -965, -967, -964, -967, 51, -967, 55, + -967, 42, 45, 46, 50, -967, -967, -967, -958, -967, + -967, -967, -967, 101, -967, -967, -119, 1022, -967, -967, + -967, -967, -967, 111, -967, -967, -967, 123, -967, 571, + -967, -66, -967, -967, -967, -967, -967, -47, -967, -967, + -967, -967, -967, 13, -967, -967, -967, 122, -967, -967, + -967, 131, -967, 585, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, 76, -967, -967, -967, 77, + 646, -967, -967, -55, -967, 1, -967, -967, -967, -967, + -967, 80, -967, -967, -967, 83, 620, -967, -967, -967, + -967, -967, -967, -967, -57, -967, -967, -967, 120, -967, + -967, -967, 124, -967, 654, 387, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -957, + -967, -967, -967, -967, -967, -967, -967, 125, -967, -967, + -967, -86, -967, -967, -967, -967, -967, -967, -967, 112, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, 102, -967, -967, -967, -967, -967, -967, -967, + 99, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, 406, 584, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, -967, -967, -967, -967, -967, -967, -967, -967, + -967, -967, 447, 587, -967, -967, -967, -967, -967, -967, + 113, -967, -967, -91, -967, -967, -967, -967, -967, -967, + -111, -967, -967, -130, -967, -967, -967, -967, -967, -967, + -967 }; const short Dhcp6Parser::yydefgoto_[] = { - 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, + -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 83, 39, 40, 69, - 714, 87, 88, 41, 68, 84, 85, 738, 939, 1045, - 1046, 800, 43, 70, 90, 423, 45, 71, 153, 154, + 714, 87, 88, 41, 68, 84, 85, 738, 941, 1048, + 1049, 801, 43, 70, 90, 423, 45, 71, 153, 154, 155, 425, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 451, 706, 174, 452, 175, 453, 176, 177, 178, 481, 179, 482, 180, 181, 182, 183, 445, 184, 185, 427, 47, 72, 218, 219, 220, 488, 221, 186, 428, 187, - 429, 188, 430, 825, 826, 827, 978, 801, 802, 803, - 956, 1198, 804, 957, 805, 958, 806, 959, 807, 808, - 525, 809, 810, 811, 812, 813, 814, 815, 816, 817, - 818, 965, 819, 820, 968, 821, 969, 822, 970, 189, - 470, 859, 860, 861, 998, 190, 467, 846, 847, 848, - 849, 191, 469, 854, 855, 856, 857, 192, 468, 193, - 477, 907, 908, 909, 910, 911, 194, 473, 870, 871, - 872, 1007, 63, 80, 373, 374, 375, 538, 376, 539, - 195, 474, 879, 880, 881, 882, 883, 884, 885, 886, - 196, 457, 829, 830, 831, 981, 49, 73, 259, 260, - 261, 494, 262, 495, 263, 496, 264, 500, 265, 499, - 197, 198, 199, 200, 463, 720, 270, 271, 201, 460, - 841, 842, 843, 990, 1120, 1121, 202, 458, 57, 77, - 833, 834, 835, 984, 59, 78, 338, 339, 340, 341, - 342, 343, 344, 524, 345, 528, 346, 527, 347, 348, - 529, 349, 203, 459, 837, 838, 839, 987, 61, 79, - 359, 360, 361, 362, 363, 533, 364, 365, 366, 367, - 273, 492, 941, 942, 943, 1047, 51, 74, 284, 285, - 286, 504, 204, 461, 205, 462, 276, 493, 945, 946, - 947, 1050, 53, 75, 300, 301, 302, 507, 303, 304, - 509, 305, 306, 206, 472, 866, 867, 868, 1004, 55, - 76, 318, 319, 320, 321, 515, 322, 516, 323, 517, - 324, 518, 325, 519, 326, 520, 327, 514, 278, 501, - 950, 951, 1053, 207, 471, 863, 864, 1001, 1138, 1139, - 1140, 1141, 1142, 1213, 1143, 208, 475, 896, 897, 898, - 1018, 1222, 899, 900, 1019, 901, 902, 209, 210, 478, - 919, 920, 921, 1030, 922, 1031, 211, 479, 929, 930, - 931, 932, 1035, 933, 934, 1037, 212, 480, 65, 81, - 395, 396, 397, 398, 543, 399, 544, 400, 401, 546, - 402, 403, 404, 549, 770, 405, 550, 406, 407, 408, - 553, 409, 554, 410, 555, 411, 556, 213, 426, 67, - 82, 414, 415, 416, 559, 417, 214, 484, 937, 938, - 1041, 1181, 1182, 1183, 1184, 1230, 1185, 1228, 1249, 1250, - 1251, 1259, 1260, 1261, 1267, 1262, 1263, 1264, 1265, 1271 + 429, 188, 430, 827, 828, 829, 981, 802, 803, 804, + 958, 1202, 805, 959, 806, 960, 807, 961, 808, 809, + 525, 810, 811, 812, 813, 814, 815, 816, 817, 818, + 819, 820, 967, 821, 822, 971, 823, 972, 824, 973, + 189, 470, 861, 862, 863, 1001, 190, 467, 848, 849, + 850, 851, 191, 469, 856, 857, 858, 859, 192, 468, + 193, 477, 909, 910, 911, 912, 913, 194, 473, 872, + 873, 874, 1010, 63, 80, 373, 374, 375, 538, 376, + 539, 195, 474, 881, 882, 883, 884, 885, 886, 887, + 888, 196, 457, 831, 832, 833, 984, 49, 73, 259, + 260, 261, 494, 262, 495, 263, 496, 264, 500, 265, + 499, 197, 198, 199, 200, 463, 720, 270, 271, 201, + 460, 843, 844, 845, 993, 1124, 1125, 202, 458, 57, + 77, 835, 836, 837, 987, 59, 78, 338, 339, 340, + 341, 342, 343, 344, 524, 345, 528, 346, 527, 347, + 348, 529, 349, 203, 459, 839, 840, 841, 990, 61, + 79, 359, 360, 361, 362, 363, 533, 364, 365, 366, + 367, 273, 492, 943, 944, 945, 1050, 51, 74, 284, + 285, 286, 504, 204, 461, 205, 462, 276, 493, 947, + 948, 949, 1053, 53, 75, 300, 301, 302, 507, 303, + 304, 509, 305, 306, 206, 472, 868, 869, 870, 1007, + 55, 76, 318, 319, 320, 321, 515, 322, 516, 323, + 517, 324, 518, 325, 519, 326, 520, 327, 514, 278, + 501, 952, 953, 1056, 207, 471, 865, 866, 1004, 1142, + 1143, 1144, 1145, 1146, 1217, 1147, 208, 475, 898, 899, + 900, 1021, 1226, 901, 902, 1022, 903, 904, 209, 210, + 478, 921, 922, 923, 1033, 924, 1034, 211, 479, 931, + 932, 933, 934, 1038, 935, 936, 1040, 212, 480, 65, + 81, 395, 396, 397, 398, 543, 399, 544, 400, 401, + 546, 402, 403, 404, 549, 770, 405, 550, 406, 407, + 408, 553, 409, 554, 410, 555, 411, 556, 213, 426, + 67, 82, 414, 415, 416, 559, 417, 214, 484, 939, + 940, 1044, 1185, 1186, 1187, 1188, 1234, 1189, 1232, 1253, + 1254, 1255, 1263, 1264, 1265, 1271, 1266, 1267, 1268, 1269, + 1275 }; const short Dhcp6Parser::yytable_[] = { 152, 217, 234, 280, 294, 314, 38, 336, 355, 372, - 392, 337, 356, 357, 235, 893, 277, 222, 274, 287, - 298, 316, 823, 350, 368, 853, 393, 1110, 1111, 1112, - 236, 237, 358, 238, 239, 1119, 1125, 308, 31, 713, - 32, 844, 33, 744, 948, 240, 241, 242, 768, 769, - 243, 42, 244, 370, 371, 750, 751, 752, 245, 30, - 993, 44, 329, 994, 246, 370, 371, 46, 215, 216, - 247, 86, 248, 223, 275, 288, 299, 317, 486, 351, - 369, 996, 394, 487, 997, 887, 272, 283, 297, 315, - 249, 250, 490, 251, 786, 502, 89, 491, 252, 505, - 503, 253, 48, 254, 506, 255, 1002, 713, 256, 1003, - 124, 257, 50, 258, 330, 266, 331, 332, 267, 268, - 333, 334, 335, 269, 845, 281, 295, 91, 92, 282, - 296, 93, 127, 128, 94, 95, 96, 512, 52, 127, - 128, 151, 513, 127, 128, 1254, 54, 540, 1255, 1256, - 1257, 1258, 541, 56, 1042, 127, 128, 1043, 127, 128, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 1219, - 1220, 1221, 330, 352, 331, 332, 353, 354, 126, 58, - 923, 924, 925, 888, 889, 890, 891, 127, 128, 1252, - 127, 128, 1253, 557, 129, 60, 914, 915, 558, 130, - 131, 132, 133, 134, 135, 136, 62, 137, 701, 702, - 703, 704, 138, 64, 561, 34, 35, 36, 37, 562, - 66, 139, 418, 151, 140, 127, 128, 1110, 1111, 1112, - 926, 141, 486, 561, 151, 1119, 1125, 953, 954, 142, - 143, 705, 419, 421, 144, 490, 151, 145, 781, 151, - 955, 146, 420, 782, 783, 784, 785, 786, 787, 788, - 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, - 799, 422, 147, 148, 149, 150, 125, 330, 853, 903, - 904, 905, 1076, 873, 874, 875, 876, 877, 878, 893, - 844, 851, 975, 852, 975, 127, 128, 976, 151, 977, - 330, 151, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 412, 413, 1131, 1132, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 125, 999, - 125, 424, 1016, 521, 1000, 431, 151, 1017, 125, 1023, - 279, 224, 432, 225, 1024, 433, 434, 127, 128, 127, - 128, 226, 227, 228, 229, 230, 129, 127, 128, 1028, - 1032, 130, 131, 132, 1029, 1033, 435, 1038, 231, 436, - 231, 232, 1039, 232, 138, 557, 522, 307, 437, 523, - 1040, 233, 330, 308, 309, 310, 311, 312, 313, 563, - 564, 975, 502, 1210, 531, 152, 1206, 1207, 1211, 217, - 127, 128, 540, 1231, 505, 512, 151, 1218, 1232, 1234, - 1235, 234, 1272, 532, 280, 222, 438, 1273, 439, 440, - 441, 294, 442, 235, 443, 277, 444, 274, 446, 151, - 287, 314, 447, 448, 147, 148, 449, 298, 450, 236, - 237, 336, 238, 239, 454, 337, 355, 316, 455, 456, - 356, 357, 464, 465, 240, 241, 242, 350, 151, 243, - 151, 244, 368, 466, 476, 483, 392, 245, 151, 537, - 358, 223, 485, 246, 716, 717, 718, 719, 489, 247, - 497, 248, 393, 275, 498, 508, 288, 510, 511, 1174, - 526, 1175, 1176, 299, 565, 272, 530, 534, 283, 249, - 250, 535, 251, 317, 536, 297, 542, 252, 545, 547, - 253, 151, 254, 351, 255, 315, 548, 256, 369, 551, - 257, 552, 258, 560, 266, 566, 567, 267, 268, 568, - 569, 570, 269, 571, 572, 573, 281, 125, 394, 581, - 282, 582, 574, 295, 583, 587, 575, 296, 576, 577, - 578, 289, 290, 291, 292, 293, 127, 128, 1194, 1195, - 1196, 1197, 579, 580, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 231, 593, 585, - 232, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 584, 125, 330, 586, 588, 589, 594, 595, 590, - 591, 592, 152, 596, 599, 217, 600, 601, 597, 598, - 602, 127, 128, 603, 227, 228, 604, 230, 129, 605, - 609, 222, 606, 130, 131, 132, 607, 610, 608, 611, - 612, 613, 231, 614, 615, 232, 616, 617, 892, 906, - 916, 618, 392, 233, 619, 620, 621, 622, 623, 624, - 626, 625, 628, 631, 894, 912, 917, 927, 393, 127, - 128, 629, 777, 632, 633, 634, 635, 151, 637, 638, - 636, 639, 640, 642, 644, 645, 646, 223, 1, 2, + 392, 337, 356, 357, 235, 895, 277, 222, 274, 287, + 298, 316, 825, 350, 368, 855, 393, 1114, 1115, 1116, + 236, 237, 358, 238, 239, 1123, 1129, 846, 31, 30, + 32, 744, 33, 42, 713, 240, 241, 242, 127, 128, + 243, 486, 244, 750, 751, 752, 487, 86, 245, 89, + 308, 490, 370, 371, 246, 124, 491, 950, 215, 216, + 247, 418, 248, 223, 275, 288, 299, 317, 502, 351, + 369, 996, 394, 503, 997, 889, 272, 283, 297, 315, + 249, 250, 999, 251, 786, 1000, 419, 125, 252, 127, + 128, 253, 125, 254, 44, 255, 916, 917, 256, 279, + 46, 257, 713, 258, 420, 266, 127, 128, 267, 268, + 847, 127, 128, 269, 48, 281, 295, 91, 92, 282, + 296, 93, 412, 413, 94, 95, 96, 231, 151, 1005, + 232, 307, 1006, 1045, 127, 128, 1046, 308, 309, 310, + 311, 312, 313, 905, 906, 907, 127, 128, 329, 151, + 50, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 1258, 52, 505, 1259, 1260, 1261, 1262, 506, 54, 126, + 716, 717, 718, 719, 890, 891, 892, 893, 127, 128, + 151, 330, 56, 331, 332, 129, 58, 333, 334, 335, + 130, 131, 132, 133, 134, 135, 136, 151, 137, 127, + 128, 1256, 151, 138, 1257, 512, 34, 35, 36, 37, + 513, 60, 139, 125, 330, 140, 127, 128, 1114, 1115, + 1116, 62, 141, 540, 64, 151, 1123, 1129, 541, 125, + 142, 143, 127, 128, 66, 144, 557, 151, 145, 330, + 421, 558, 146, 289, 290, 291, 292, 293, 127, 128, + 701, 702, 703, 704, 1135, 1136, 561, 127, 128, 370, + 371, 562, 486, 147, 148, 149, 150, 955, 561, 231, + 422, 855, 232, 956, 424, 1080, 490, 925, 926, 927, + 431, 957, 895, 705, 432, 781, 1223, 1224, 1225, 151, + 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, + 792, 793, 794, 795, 796, 797, 798, 799, 800, 433, + 151, 768, 769, 330, 352, 331, 332, 353, 354, 875, + 876, 877, 878, 879, 880, 978, 521, 928, 978, 1002, + 979, 127, 128, 980, 1003, 1019, 1026, 1031, 330, 1035, + 1020, 1027, 1032, 151, 1036, 1041, 1178, 557, 1179, 1180, + 1042, 978, 1043, 502, 523, 1214, 1210, 540, 1211, 151, + 1215, 1235, 1222, 434, 505, 512, 1236, 1276, 151, 1238, + 1239, 435, 1277, 1198, 1199, 1200, 1201, 436, 437, 563, + 564, 846, 853, 438, 854, 152, 439, 440, 441, 217, + 442, 443, 444, 446, 447, 448, 449, 450, 454, 455, + 456, 234, 464, 465, 280, 222, 466, 476, 483, 485, + 489, 294, 497, 235, 498, 277, 508, 274, 510, 511, + 287, 314, 522, 573, 526, 530, 531, 298, 532, 236, + 237, 336, 238, 239, 534, 337, 355, 316, 535, 536, + 356, 357, 151, 537, 240, 241, 242, 350, 542, 243, + 545, 244, 368, 547, 548, 551, 392, 245, 552, 560, + 358, 223, 566, 246, 567, 565, 568, 151, 569, 247, + 570, 248, 393, 275, 571, 572, 288, 581, 574, 575, + 587, 576, 577, 299, 582, 272, 578, 579, 283, 249, + 250, 580, 251, 317, 583, 297, 584, 252, 585, 586, + 253, 588, 254, 351, 255, 315, 589, 256, 369, 590, + 257, 593, 258, 591, 266, 592, 594, 267, 268, 595, + 596, 597, 269, 598, 599, 600, 281, 601, 394, 602, + 282, 603, 604, 295, 605, 606, 607, 296, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 647, 650, 648, 651, 147, 148, 652, 653, - 654, 655, 656, 658, 659, 661, 660, 662, 663, 666, - 895, 913, 918, 928, 394, 664, 667, 670, 668, 671, - 674, 673, 151, 675, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 676, 677, 680, - 678, 679, 681, 684, 390, 391, 685, 682, 683, 686, - 687, 689, 690, 692, 694, 693, 700, 695, 696, 697, - 698, 699, 707, 708, 709, 710, 711, 712, 715, 734, - 151, 32, 721, 722, 723, 735, 725, 724, 726, 727, - 741, 742, 728, 729, 730, 731, 732, 733, 736, 737, - 739, 740, 743, 745, 746, 771, 776, 747, 748, 749, - 753, 754, 824, 755, 828, 832, 756, 757, 836, 758, - 759, 840, 760, 761, 862, 762, 763, 858, 865, 765, - 766, 767, 773, 774, 775, 869, 936, 940, 944, 960, - 961, 962, 963, 964, 966, 967, 971, 972, 973, 974, - 980, 1044, 979, 983, 982, 985, 986, 988, 989, 992, - 991, 764, 1006, 995, 1005, 1009, 1008, 1010, 1011, 1012, - 1013, 1014, 1015, 1020, 1021, 1022, 1025, 1026, 1027, 1034, - 1036, 1049, 850, 1048, 1052, 1051, 1056, 1060, 1054, 1055, - 1057, 1058, 1059, 1061, 1062, 1063, 1064, 1065, 1066, 1067, - 234, 1068, 1069, 336, 1070, 1071, 355, 337, 1073, 1084, - 356, 357, 235, 1109, 277, 1072, 274, 1129, 1156, 350, - 1133, 1085, 368, 314, 1134, 1123, 372, 1074, 236, 237, - 358, 238, 239, 1149, 1150, 1151, 1136, 1086, 1087, 316, - 1088, 1089, 892, 240, 241, 242, 1152, 906, 243, 1153, - 244, 916, 1090, 1091, 1092, 1157, 245, 1093, 894, 1094, - 1177, 1166, 246, 912, 1178, 1095, 280, 917, 247, 294, - 248, 1096, 275, 927, 1167, 351, 1179, 1097, 369, 1098, - 1162, 1124, 287, 1170, 272, 298, 1172, 1169, 249, 250, - 1187, 251, 1137, 1122, 1154, 317, 252, 1099, 1100, 253, - 1101, 254, 1158, 255, 1135, 1102, 256, 315, 1103, 257, - 1104, 258, 1105, 266, 895, 1106, 267, 268, 1107, 913, - 1108, 269, 1115, 918, 1188, 1116, 1117, 1159, 1160, 928, - 1118, 1113, 1180, 1193, 1199, 1114, 1163, 1164, 288, 1208, - 1209, 299, 1214, 1215, 1216, 1217, 1229, 1238, 1241, 1243, - 283, 1246, 1268, 297, 1248, 1171, 1269, 1270, 1274, 1278, - 627, 778, 772, 1200, 952, 630, 1075, 780, 1077, 1130, - 1127, 1128, 1148, 1147, 672, 1155, 1165, 1079, 1078, 1126, - 1237, 641, 328, 1080, 1081, 1083, 1201, 1202, 281, 665, - 1082, 295, 282, 1203, 1204, 296, 1205, 1212, 1223, 1189, - 669, 1224, 1190, 1225, 1226, 1233, 1236, 643, 1192, 1242, - 1239, 1245, 1247, 1275, 1276, 1277, 1146, 1280, 1281, 1191, - 1145, 657, 949, 1240, 1144, 1161, 935, 1173, 691, 1084, - 688, 779, 1168, 1109, 1186, 1133, 1244, 1266, 1279, 1134, - 0, 1085, 0, 0, 0, 1123, 0, 0, 0, 0, - 1177, 1136, 1227, 649, 1178, 0, 0, 1086, 1087, 0, - 1088, 1089, 0, 0, 0, 0, 1179, 0, 0, 0, - 0, 0, 1090, 1091, 1092, 0, 0, 1093, 0, 1094, - 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, - 0, 1096, 0, 0, 0, 0, 0, 1097, 0, 1098, - 0, 1124, 0, 0, 0, 0, 0, 1137, 0, 0, - 0, 0, 0, 1122, 0, 0, 0, 1099, 1100, 1135, - 1101, 0, 1180, 0, 0, 1102, 0, 0, 1103, 0, - 1104, 0, 1105, 0, 0, 1106, 0, 0, 1107, 0, - 1108, 0, 1115, 0, 0, 1116, 1117, 0, 0, 0, - 1118, 1113, 0, 0, 0, 1114 + 13, 14, 609, 608, 610, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 611, 612, + 613, 614, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 615, 616, 125, 617, 618, 619, 620, 127, 128, + 621, 622, 152, 623, 224, 217, 225, 624, 626, 628, + 631, 632, 127, 128, 226, 227, 228, 229, 230, 129, + 633, 222, 634, 625, 130, 131, 132, 629, 635, 637, + 636, 638, 639, 231, 640, 642, 232, 138, 894, 908, + 918, 644, 392, 645, 233, 646, 647, 648, 650, 651, + 652, 653, 654, 655, 896, 914, 919, 929, 393, 656, + 658, 659, 777, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 661, 223, 662, 660, + 663, 666, 670, 390, 391, 664, 671, 674, 667, 668, + 673, 675, 676, 677, 678, 679, 680, 147, 148, 681, + 682, 683, 684, 685, 686, 687, 689, 690, 692, 151, + 897, 915, 920, 930, 394, 693, 694, 695, 696, 697, + 698, 699, 700, 151, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 707, 709, 708, + 710, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 711, 125, 330, 712, 32, 715, 721, 722, 723, + 734, 725, 724, 726, 727, 735, 741, 728, 729, 730, + 731, 127, 128, 732, 227, 228, 733, 230, 129, 736, + 737, 739, 740, 130, 131, 132, 742, 743, 745, 746, + 776, 826, 231, 771, 747, 232, 830, 748, 749, 834, + 838, 753, 842, 233, 754, 755, 864, 860, 867, 871, + 938, 756, 757, 758, 759, 760, 761, 762, 763, 942, + 765, 946, 766, 767, 962, 773, 774, 963, 775, 964, + 965, 966, 968, 969, 970, 974, 975, 976, 977, 983, + 1063, 982, 986, 985, 988, 989, 991, 992, 995, 994, + 764, 1009, 998, 1008, 1012, 1011, 147, 148, 1013, 1014, + 1015, 1016, 1017, 1018, 1023, 1024, 1025, 1028, 1029, 1030, + 1037, 1039, 1047, 1052, 1051, 1054, 1055, 1064, 1058, 1057, + 1059, 1060, 151, 1061, 1062, 1065, 1066, 1068, 1067, 1069, + 1070, 1072, 1073, 234, 1071, 1074, 336, 1075, 1076, 355, + 337, 1078, 1088, 356, 357, 235, 1113, 277, 1133, 274, + 1153, 1077, 350, 1137, 1089, 368, 314, 1138, 1127, 372, + 1160, 236, 237, 358, 238, 239, 1154, 1155, 1156, 1140, + 1090, 1091, 316, 1092, 1093, 894, 240, 241, 242, 1161, + 908, 243, 1157, 244, 918, 1094, 1095, 1096, 1158, 245, + 1097, 896, 1098, 1181, 1162, 246, 914, 1182, 1099, 280, + 919, 247, 294, 248, 1100, 275, 929, 1170, 351, 1183, + 1101, 369, 1102, 1166, 1128, 287, 1163, 272, 298, 1171, + 1174, 249, 250, 1164, 251, 1141, 1126, 1167, 317, 252, + 1103, 1104, 253, 1105, 254, 1168, 255, 1139, 1106, 256, + 315, 1107, 257, 1108, 258, 1109, 266, 897, 1110, 267, + 268, 1111, 915, 1112, 269, 1119, 920, 1173, 1120, 1121, + 1175, 1176, 930, 1122, 1117, 1184, 1191, 1192, 1118, 1197, + 1212, 288, 1218, 1220, 299, 1213, 1233, 1219, 1242, 1221, + 1245, 1247, 1252, 283, 1203, 1250, 297, 1272, 1273, 1274, + 1278, 1282, 852, 1204, 627, 1205, 1206, 772, 778, 780, + 630, 1081, 1079, 1134, 1131, 1132, 1152, 954, 1169, 1151, + 1159, 1083, 672, 1082, 641, 1241, 1130, 1207, 1208, 328, + 1085, 281, 1246, 665, 295, 282, 1280, 1209, 296, 1216, + 1084, 1243, 1227, 1228, 1087, 1229, 1230, 1237, 1240, 1249, + 1251, 1086, 669, 1281, 1279, 1284, 1285, 1193, 1194, 1150, + 1148, 1149, 649, 951, 1244, 1196, 1195, 1172, 1165, 937, + 1177, 688, 779, 1088, 1248, 1270, 1283, 1113, 691, 1137, + 0, 643, 0, 1138, 0, 1089, 0, 0, 1190, 1127, + 0, 0, 0, 0, 1181, 1140, 1231, 0, 1182, 0, + 0, 1090, 1091, 0, 1092, 1093, 657, 0, 0, 0, + 1183, 0, 0, 0, 0, 0, 1094, 1095, 1096, 0, + 0, 1097, 0, 1098, 0, 0, 0, 0, 0, 1099, + 0, 0, 0, 0, 0, 1100, 0, 0, 0, 0, + 0, 1101, 0, 1102, 0, 1128, 0, 0, 0, 0, + 0, 1141, 0, 0, 0, 0, 0, 1126, 0, 0, + 0, 1103, 1104, 1139, 1105, 0, 1184, 0, 0, 1106, + 0, 0, 1107, 0, 1108, 0, 1109, 0, 0, 1110, + 0, 0, 1111, 0, 1112, 0, 1119, 0, 0, 1120, + 1121, 0, 0, 0, 1122, 1117, 0, 0, 0, 1118 }; const short @@ -5129,350 +5094,350 @@ namespace isc { namespace dhcp { { 71, 72, 73, 74, 75, 76, 16, 78, 79, 80, 81, 78, 79, 79, 73, 729, 73, 72, 73, 74, - 75, 76, 698, 78, 79, 723, 81, 990, 990, 990, - 73, 73, 79, 73, 73, 990, 990, 117, 5, 603, - 7, 119, 9, 638, 124, 73, 73, 73, 169, 170, - 73, 7, 73, 126, 127, 650, 651, 652, 73, 0, - 3, 7, 21, 6, 73, 126, 127, 7, 16, 17, - 73, 202, 73, 72, 73, 74, 75, 76, 3, 78, + 75, 76, 698, 78, 79, 723, 81, 993, 993, 993, + 73, 73, 79, 73, 73, 993, 993, 120, 5, 0, + 7, 638, 9, 7, 603, 73, 73, 73, 92, 93, + 73, 3, 73, 650, 651, 652, 8, 203, 73, 10, + 118, 3, 127, 128, 73, 72, 8, 125, 16, 17, + 73, 6, 73, 72, 73, 74, 75, 76, 3, 78, 79, 3, 81, 8, 6, 21, 73, 74, 75, 76, - 73, 73, 3, 73, 30, 3, 10, 8, 73, 3, - 8, 73, 7, 73, 8, 73, 3, 671, 73, 6, - 71, 73, 7, 73, 73, 73, 75, 76, 73, 73, - 79, 80, 81, 73, 202, 74, 75, 11, 12, 74, - 75, 15, 91, 92, 18, 19, 20, 3, 7, 91, - 92, 202, 8, 91, 92, 181, 7, 3, 184, 185, - 186, 187, 8, 7, 3, 91, 92, 6, 91, 92, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 73, 73, 3, 73, 30, 6, 3, 73, 73, 92, + 93, 73, 73, 73, 7, 73, 150, 151, 73, 85, + 7, 73, 671, 73, 4, 73, 92, 93, 73, 73, + 203, 92, 93, 73, 7, 74, 75, 11, 12, 74, + 75, 15, 13, 14, 18, 19, 20, 113, 203, 3, + 116, 112, 6, 3, 92, 93, 6, 118, 119, 120, + 121, 122, 123, 146, 147, 148, 92, 93, 21, 203, + 7, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 136, - 137, 138, 73, 74, 75, 76, 77, 78, 82, 7, - 152, 153, 154, 139, 140, 141, 142, 91, 92, 3, - 91, 92, 6, 3, 98, 7, 149, 150, 8, 103, - 104, 105, 106, 107, 108, 109, 7, 111, 172, 173, - 174, 175, 116, 7, 3, 202, 203, 204, 205, 8, - 7, 125, 6, 202, 128, 91, 92, 1210, 1210, 1210, - 202, 135, 3, 3, 202, 1210, 1210, 8, 8, 143, - 144, 205, 3, 8, 148, 3, 202, 151, 21, 202, - 8, 155, 4, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 3, 176, 177, 178, 179, 72, 73, 996, 145, - 146, 147, 978, 129, 130, 131, 132, 133, 134, 1023, - 119, 120, 3, 122, 3, 91, 92, 8, 202, 8, - 73, 202, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 13, 14, 113, 114, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 72, 3, - 72, 8, 3, 8, 8, 4, 202, 8, 72, 3, - 84, 83, 4, 85, 8, 4, 4, 91, 92, 91, - 92, 93, 94, 95, 96, 97, 98, 91, 92, 3, - 3, 103, 104, 105, 8, 8, 4, 3, 112, 4, - 112, 115, 8, 115, 116, 3, 3, 111, 4, 8, - 8, 123, 73, 117, 118, 119, 120, 121, 122, 419, - 420, 3, 3, 3, 8, 486, 8, 8, 8, 490, - 91, 92, 3, 3, 3, 3, 202, 8, 8, 8, - 8, 502, 3, 3, 505, 490, 4, 8, 4, 4, - 4, 512, 4, 502, 4, 502, 4, 502, 4, 202, - 505, 522, 4, 4, 176, 177, 4, 512, 4, 502, - 502, 532, 502, 502, 4, 532, 537, 522, 4, 4, - 537, 537, 4, 4, 502, 502, 502, 532, 202, 502, - 202, 502, 537, 4, 4, 4, 557, 502, 202, 3, - 537, 490, 4, 502, 99, 100, 101, 102, 4, 502, - 4, 502, 557, 502, 4, 4, 505, 4, 4, 180, - 4, 182, 183, 512, 202, 502, 4, 4, 505, 502, - 502, 4, 502, 522, 8, 512, 4, 502, 4, 4, - 502, 202, 502, 532, 502, 522, 4, 502, 537, 4, - 502, 4, 502, 4, 502, 4, 4, 502, 502, 4, - 4, 4, 502, 4, 4, 203, 505, 72, 557, 205, - 505, 204, 203, 512, 204, 4, 203, 512, 203, 203, - 203, 86, 87, 88, 89, 90, 91, 92, 22, 23, - 24, 25, 203, 203, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 112, 4, 203, - 115, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 204, 72, 73, 203, 203, 203, 4, 4, 205, - 205, 205, 693, 205, 4, 696, 4, 4, 205, 205, - 4, 91, 92, 4, 94, 95, 4, 97, 98, 4, - 4, 696, 205, 103, 104, 105, 205, 4, 205, 4, - 4, 4, 112, 4, 4, 115, 4, 4, 729, 730, - 731, 203, 733, 123, 4, 4, 4, 4, 4, 4, - 4, 205, 4, 4, 729, 730, 731, 732, 733, 91, - 92, 205, 692, 4, 4, 4, 4, 202, 205, 4, - 203, 4, 4, 4, 4, 203, 4, 696, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 203, 4, 203, 4, 176, 177, 4, 4, - 4, 4, 4, 4, 4, 4, 203, 4, 4, 4, - 729, 730, 731, 732, 733, 205, 205, 4, 205, 4, - 4, 205, 202, 4, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 203, 4, 4, - 203, 203, 4, 4, 176, 177, 4, 205, 205, 4, - 4, 4, 203, 4, 202, 7, 202, 7, 7, 7, - 7, 5, 202, 202, 5, 5, 5, 5, 202, 202, - 202, 7, 5, 5, 5, 202, 5, 7, 5, 5, - 202, 202, 7, 7, 7, 7, 7, 7, 5, 5, - 5, 5, 202, 202, 7, 171, 5, 202, 202, 202, - 202, 202, 7, 202, 7, 7, 202, 202, 7, 202, - 202, 7, 202, 202, 7, 202, 202, 110, 7, 202, - 202, 202, 202, 202, 202, 7, 7, 7, 7, 4, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 182, 7, 3, 185, 186, 187, 188, 8, 7, 83, + 100, 101, 102, 103, 140, 141, 142, 143, 92, 93, + 203, 74, 7, 76, 77, 99, 7, 80, 81, 82, + 104, 105, 106, 107, 108, 109, 110, 203, 112, 92, + 93, 3, 203, 117, 6, 3, 203, 204, 205, 206, + 8, 7, 126, 73, 74, 129, 92, 93, 1214, 1214, + 1214, 7, 136, 3, 7, 203, 1214, 1214, 8, 73, + 144, 145, 92, 93, 7, 149, 3, 203, 152, 74, + 8, 8, 156, 87, 88, 89, 90, 91, 92, 93, + 173, 174, 175, 176, 114, 115, 3, 92, 93, 127, + 128, 8, 3, 177, 178, 179, 180, 8, 3, 113, + 3, 999, 116, 8, 8, 981, 3, 153, 154, 155, + 4, 8, 1026, 206, 4, 21, 137, 138, 139, 203, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 4, + 203, 170, 171, 74, 75, 76, 77, 78, 79, 130, + 131, 132, 133, 134, 135, 3, 8, 203, 3, 3, + 8, 92, 93, 8, 8, 3, 3, 3, 74, 3, + 8, 8, 8, 203, 8, 3, 181, 3, 183, 184, + 8, 3, 8, 3, 8, 3, 8, 3, 8, 203, + 8, 3, 8, 4, 3, 3, 8, 3, 203, 8, + 8, 4, 8, 22, 23, 24, 25, 4, 4, 419, + 420, 120, 121, 4, 123, 486, 4, 4, 4, 490, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 3, 202, 6, 3, 6, 6, 3, 6, 3, 3, - 6, 671, 3, 6, 6, 3, 6, 4, 4, 4, + 4, 502, 4, 4, 505, 490, 4, 4, 4, 4, + 4, 512, 4, 502, 4, 502, 4, 502, 4, 4, + 505, 522, 3, 204, 4, 4, 8, 512, 3, 502, + 502, 532, 502, 502, 4, 532, 537, 522, 4, 8, + 537, 537, 203, 3, 502, 502, 502, 532, 4, 502, + 4, 502, 537, 4, 4, 4, 557, 502, 4, 4, + 537, 490, 4, 502, 4, 203, 4, 203, 4, 502, + 4, 502, 557, 502, 4, 4, 505, 206, 204, 204, + 4, 204, 204, 512, 205, 502, 204, 204, 505, 502, + 502, 204, 502, 522, 205, 512, 205, 502, 204, 204, + 502, 204, 502, 532, 502, 522, 204, 502, 537, 206, + 502, 4, 502, 206, 502, 206, 4, 502, 502, 4, + 206, 206, 502, 206, 4, 4, 505, 4, 557, 4, + 505, 4, 4, 512, 4, 206, 206, 512, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 4, 206, 4, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 4, 4, + 4, 4, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 4, 4, 73, 4, 204, 4, 4, 92, 93, + 4, 4, 693, 4, 84, 696, 86, 4, 4, 4, + 4, 4, 92, 93, 94, 95, 96, 97, 98, 99, + 4, 696, 4, 206, 104, 105, 106, 206, 4, 206, + 204, 4, 4, 113, 4, 4, 116, 117, 729, 730, + 731, 4, 733, 204, 124, 4, 204, 204, 4, 4, + 4, 4, 4, 4, 729, 730, 731, 732, 733, 4, + 4, 4, 692, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 4, 696, 4, 204, + 4, 4, 4, 177, 178, 206, 4, 4, 206, 206, + 206, 4, 204, 4, 204, 204, 4, 177, 178, 4, + 206, 206, 4, 4, 4, 4, 4, 204, 4, 203, + 729, 730, 731, 732, 733, 7, 203, 7, 7, 7, + 7, 5, 203, 203, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 203, 5, 203, + 5, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 5, 73, 74, 5, 7, 203, 5, 5, 5, + 203, 5, 7, 5, 5, 203, 203, 7, 7, 7, + 7, 92, 93, 7, 95, 96, 7, 98, 99, 5, + 5, 5, 5, 104, 105, 106, 203, 203, 203, 7, + 5, 7, 113, 172, 203, 116, 7, 203, 203, 7, + 7, 203, 7, 124, 203, 203, 7, 111, 7, 7, + 7, 203, 203, 203, 203, 203, 203, 203, 203, 7, + 203, 7, 203, 203, 4, 203, 203, 4, 203, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, + 204, 6, 3, 6, 6, 3, 6, 3, 3, 6, + 671, 3, 6, 6, 3, 6, 177, 178, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 3, 722, 6, 3, 6, 4, 203, 8, 6, - 4, 4, 4, 205, 203, 205, 203, 4, 203, 203, - 981, 4, 4, 984, 4, 203, 987, 984, 205, 990, - 987, 987, 981, 990, 981, 203, 981, 4, 4, 984, - 1001, 990, 987, 1004, 1001, 990, 1007, 203, 981, 981, - 987, 981, 981, 203, 203, 203, 1001, 990, 990, 1004, - 990, 990, 1023, 981, 981, 981, 203, 1028, 981, 203, - 981, 1032, 990, 990, 990, 4, 981, 990, 1023, 990, - 1041, 4, 981, 1028, 1041, 990, 1047, 1032, 981, 1050, - 981, 990, 981, 1038, 4, 984, 1041, 990, 987, 990, - 205, 990, 1047, 4, 981, 1050, 4, 205, 981, 981, - 6, 981, 1001, 990, 203, 1004, 981, 990, 990, 981, - 990, 981, 203, 981, 1001, 990, 981, 1004, 990, 981, - 990, 981, 990, 981, 1023, 990, 981, 981, 990, 1028, - 990, 981, 990, 1032, 3, 990, 990, 203, 203, 1038, - 990, 990, 1041, 4, 202, 990, 203, 203, 1047, 8, - 8, 1050, 4, 8, 3, 8, 4, 4, 4, 4, - 1047, 5, 4, 1050, 7, 203, 4, 4, 4, 4, - 486, 693, 684, 202, 776, 490, 975, 696, 980, 999, - 993, 996, 1009, 1007, 540, 1016, 1028, 983, 981, 992, - 1210, 502, 77, 984, 986, 989, 202, 202, 1047, 532, - 987, 1050, 1047, 202, 202, 1050, 202, 202, 202, 1047, - 537, 202, 1049, 202, 202, 202, 202, 505, 1052, 203, - 205, 202, 202, 205, 203, 203, 1006, 202, 202, 1050, - 1004, 522, 746, 1216, 1002, 1023, 733, 1038, 561, 1210, - 557, 695, 1032, 1210, 1042, 1216, 1231, 1252, 1272, 1216, - -1, 1210, -1, -1, -1, 1210, -1, -1, -1, -1, - 1231, 1216, 1172, 512, 1231, -1, -1, 1210, 1210, -1, - 1210, 1210, -1, -1, -1, -1, 1231, -1, -1, -1, - -1, -1, 1210, 1210, 1210, -1, -1, 1210, -1, 1210, - -1, -1, -1, -1, -1, 1210, -1, -1, -1, -1, - -1, 1210, -1, -1, -1, -1, -1, 1210, -1, 1210, - -1, 1210, -1, -1, -1, -1, -1, 1216, -1, -1, - -1, -1, -1, 1210, -1, -1, -1, 1210, 1210, 1216, - 1210, -1, 1231, -1, -1, 1210, -1, -1, 1210, -1, - 1210, -1, 1210, -1, -1, 1210, -1, -1, 1210, -1, - 1210, -1, 1210, -1, -1, 1210, 1210, -1, -1, -1, - 1210, 1210, -1, -1, -1, 1210 + 4, 4, 203, 3, 6, 6, 3, 206, 6, 8, + 4, 4, 203, 4, 4, 204, 206, 4, 204, 204, + 204, 4, 4, 984, 206, 4, 987, 204, 204, 990, + 987, 204, 993, 990, 990, 984, 993, 984, 4, 984, + 204, 206, 987, 1004, 993, 990, 1007, 1004, 993, 1010, + 4, 984, 984, 990, 984, 984, 204, 204, 204, 1004, + 993, 993, 1007, 993, 993, 1026, 984, 984, 984, 4, + 1031, 984, 204, 984, 1035, 993, 993, 993, 204, 984, + 993, 1026, 993, 1044, 204, 984, 1031, 1044, 993, 1050, + 1035, 984, 1053, 984, 993, 984, 1041, 4, 987, 1044, + 993, 990, 993, 206, 993, 1050, 204, 984, 1053, 4, + 4, 984, 984, 204, 984, 1004, 993, 204, 1007, 984, + 993, 993, 984, 993, 984, 204, 984, 1004, 993, 984, + 1007, 993, 984, 993, 984, 993, 984, 1026, 993, 984, + 984, 993, 1031, 993, 984, 993, 1035, 206, 993, 993, + 204, 4, 1041, 993, 993, 1044, 6, 3, 993, 4, + 8, 1050, 4, 3, 1053, 8, 4, 8, 4, 8, + 4, 4, 7, 1050, 203, 5, 1053, 4, 4, 4, + 4, 4, 722, 203, 486, 203, 203, 684, 693, 696, + 490, 983, 978, 1002, 996, 999, 1012, 776, 1031, 1010, + 1019, 986, 540, 984, 502, 1214, 995, 203, 203, 77, + 989, 1050, 204, 532, 1053, 1050, 204, 203, 1053, 203, + 987, 206, 203, 203, 992, 203, 203, 203, 203, 203, + 203, 990, 537, 204, 206, 203, 203, 1050, 1052, 1009, + 1005, 1007, 512, 746, 1220, 1055, 1053, 1035, 1026, 733, + 1041, 557, 695, 1214, 1235, 1256, 1276, 1214, 561, 1220, + -1, 505, -1, 1220, -1, 1214, -1, -1, 1045, 1214, + -1, -1, -1, -1, 1235, 1220, 1176, -1, 1235, -1, + -1, 1214, 1214, -1, 1214, 1214, 522, -1, -1, -1, + 1235, -1, -1, -1, -1, -1, 1214, 1214, 1214, -1, + -1, 1214, -1, 1214, -1, -1, -1, -1, -1, 1214, + -1, -1, -1, -1, -1, 1214, -1, -1, -1, -1, + -1, 1214, -1, 1214, -1, 1214, -1, -1, -1, -1, + -1, 1220, -1, -1, -1, -1, -1, 1214, -1, -1, + -1, 1214, 1214, 1220, 1214, -1, 1235, -1, -1, 1214, + -1, -1, 1214, -1, 1214, -1, 1214, -1, -1, 1214, + -1, -1, 1214, -1, 1214, -1, 1214, -1, -1, 1214, + 1214, -1, -1, -1, 1214, 1214, -1, -1, -1, 1214 }; const short Dhcp6Parser::yystos_[] = { - 0, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 0, 5, 7, 9, 202, 203, 204, 205, 222, 223, - 224, 229, 7, 238, 7, 242, 7, 286, 7, 392, - 7, 472, 7, 488, 7, 505, 7, 424, 7, 430, - 7, 454, 7, 368, 7, 574, 7, 605, 230, 225, - 239, 243, 287, 393, 473, 489, 506, 425, 431, 455, - 369, 575, 606, 222, 231, 232, 202, 227, 228, 10, - 240, 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, 72, 82, 91, 92, 98, - 103, 104, 105, 106, 107, 108, 109, 111, 116, 125, - 128, 135, 143, 144, 148, 151, 155, 176, 177, 178, - 179, 202, 237, 244, 245, 246, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 268, 270, 272, 273, 274, 276, - 278, 279, 280, 281, 283, 284, 293, 295, 297, 335, - 341, 347, 353, 355, 362, 376, 386, 406, 407, 408, - 409, 414, 422, 448, 478, 480, 499, 529, 541, 553, - 554, 562, 572, 603, 612, 16, 17, 237, 288, 289, - 290, 292, 478, 480, 83, 85, 93, 94, 95, 96, - 97, 112, 115, 123, 237, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 262, 263, - 264, 265, 268, 270, 272, 273, 274, 276, 278, 394, - 395, 396, 398, 400, 402, 404, 406, 407, 408, 409, - 412, 413, 448, 466, 478, 480, 482, 499, 524, 84, - 237, 402, 404, 448, 474, 475, 476, 478, 480, 86, - 87, 88, 89, 90, 237, 402, 404, 448, 478, 480, - 490, 491, 492, 494, 495, 497, 498, 111, 117, 118, - 119, 120, 121, 122, 237, 448, 478, 480, 507, 508, - 509, 510, 512, 514, 516, 518, 520, 522, 422, 21, - 73, 75, 76, 79, 80, 81, 237, 315, 432, 433, - 434, 435, 436, 437, 438, 440, 442, 444, 445, 447, - 478, 480, 74, 77, 78, 237, 315, 436, 442, 456, - 457, 458, 459, 460, 462, 463, 464, 465, 478, 480, - 126, 127, 237, 370, 371, 372, 374, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 176, 177, 237, 478, 480, 576, 577, 578, 579, 581, - 583, 584, 586, 587, 588, 591, 593, 594, 595, 597, - 599, 601, 13, 14, 607, 608, 609, 611, 6, 3, - 4, 8, 3, 241, 8, 247, 604, 285, 294, 296, - 298, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 282, 4, 4, 4, 4, - 4, 266, 269, 271, 4, 4, 4, 387, 423, 449, - 415, 479, 481, 410, 4, 4, 4, 342, 354, 348, - 336, 530, 500, 363, 377, 542, 4, 356, 555, 563, - 573, 275, 277, 4, 613, 4, 3, 8, 291, 4, - 3, 8, 467, 483, 397, 399, 401, 4, 4, 405, - 403, 525, 3, 8, 477, 3, 8, 493, 4, 496, - 4, 4, 3, 8, 523, 511, 513, 515, 517, 519, - 521, 8, 3, 8, 439, 316, 4, 443, 441, 446, - 4, 8, 3, 461, 4, 4, 8, 3, 373, 375, - 3, 8, 4, 580, 582, 4, 585, 4, 4, 589, - 592, 4, 4, 596, 598, 600, 602, 3, 8, 610, - 4, 3, 8, 222, 222, 202, 4, 4, 4, 4, - 4, 4, 4, 203, 203, 203, 203, 203, 203, 203, - 203, 205, 204, 204, 204, 203, 203, 4, 203, 203, - 205, 205, 205, 4, 4, 4, 205, 205, 205, 4, - 4, 4, 4, 4, 4, 4, 205, 205, 205, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 203, 4, - 4, 4, 4, 4, 4, 205, 4, 245, 4, 205, - 289, 4, 4, 4, 4, 4, 203, 205, 4, 4, - 4, 395, 4, 475, 4, 203, 4, 203, 203, 491, - 4, 4, 4, 4, 4, 4, 4, 509, 4, 4, - 203, 4, 4, 4, 205, 434, 4, 205, 205, 458, - 4, 4, 371, 205, 4, 4, 203, 4, 203, 203, - 4, 4, 205, 205, 4, 4, 4, 4, 577, 4, - 203, 608, 4, 7, 202, 7, 7, 7, 7, 5, - 202, 172, 173, 174, 175, 205, 267, 202, 202, 5, - 5, 5, 5, 224, 226, 202, 99, 100, 101, 102, - 411, 5, 5, 5, 7, 5, 5, 5, 7, 7, - 7, 7, 7, 7, 202, 202, 5, 5, 233, 5, - 5, 202, 202, 202, 233, 202, 7, 202, 202, 202, - 233, 233, 233, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 226, 202, 202, 202, 169, 170, - 590, 171, 267, 202, 202, 202, 5, 222, 244, 607, - 288, 21, 26, 27, 28, 29, 30, 31, 32, 33, + 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 0, 5, 7, 9, 203, 204, 205, 206, 223, 224, + 225, 230, 7, 239, 7, 243, 7, 287, 7, 394, + 7, 474, 7, 490, 7, 507, 7, 426, 7, 432, + 7, 456, 7, 370, 7, 576, 7, 607, 231, 226, + 240, 244, 288, 395, 475, 491, 508, 427, 433, 457, + 371, 577, 608, 223, 232, 233, 203, 228, 229, 10, + 241, 11, 12, 15, 18, 19, 20, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 83, 92, 93, 99, + 104, 105, 106, 107, 108, 109, 110, 112, 117, 126, + 129, 136, 144, 145, 149, 152, 156, 177, 178, 179, + 180, 203, 238, 245, 246, 247, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 269, 271, 273, 274, 275, 277, + 279, 280, 281, 282, 284, 285, 294, 296, 298, 337, + 343, 349, 355, 357, 364, 378, 388, 408, 409, 410, + 411, 416, 424, 450, 480, 482, 501, 531, 543, 555, + 556, 564, 574, 605, 614, 16, 17, 238, 289, 290, + 291, 293, 480, 482, 84, 86, 94, 95, 96, 97, + 98, 113, 116, 124, 238, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 263, 264, + 265, 266, 269, 271, 273, 274, 275, 277, 279, 396, + 397, 398, 400, 402, 404, 406, 408, 409, 410, 411, + 414, 415, 450, 468, 480, 482, 484, 501, 526, 85, + 238, 404, 406, 450, 476, 477, 478, 480, 482, 87, + 88, 89, 90, 91, 238, 404, 406, 450, 480, 482, + 492, 493, 494, 496, 497, 499, 500, 112, 118, 119, + 120, 121, 122, 123, 238, 450, 480, 482, 509, 510, + 511, 512, 514, 516, 518, 520, 522, 524, 424, 21, + 74, 76, 77, 80, 81, 82, 238, 316, 434, 435, + 436, 437, 438, 439, 440, 442, 444, 446, 447, 449, + 480, 482, 75, 78, 79, 238, 316, 438, 444, 458, + 459, 460, 461, 462, 464, 465, 466, 467, 480, 482, + 127, 128, 238, 372, 373, 374, 376, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 177, 178, 238, 480, 482, 578, 579, 580, 581, 583, + 585, 586, 588, 589, 590, 593, 595, 596, 597, 599, + 601, 603, 13, 14, 609, 610, 611, 613, 6, 3, + 4, 8, 3, 242, 8, 248, 606, 286, 295, 297, + 299, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 283, 4, 4, 4, 4, + 4, 267, 270, 272, 4, 4, 4, 389, 425, 451, + 417, 481, 483, 412, 4, 4, 4, 344, 356, 350, + 338, 532, 502, 365, 379, 544, 4, 358, 557, 565, + 575, 276, 278, 4, 615, 4, 3, 8, 292, 4, + 3, 8, 469, 485, 399, 401, 403, 4, 4, 407, + 405, 527, 3, 8, 479, 3, 8, 495, 4, 498, + 4, 4, 3, 8, 525, 513, 515, 517, 519, 521, + 523, 8, 3, 8, 441, 317, 4, 445, 443, 448, + 4, 8, 3, 463, 4, 4, 8, 3, 375, 377, + 3, 8, 4, 582, 584, 4, 587, 4, 4, 591, + 594, 4, 4, 598, 600, 602, 604, 3, 8, 612, + 4, 3, 8, 223, 223, 203, 4, 4, 4, 4, + 4, 4, 4, 204, 204, 204, 204, 204, 204, 204, + 204, 206, 205, 205, 205, 204, 204, 4, 204, 204, + 206, 206, 206, 4, 4, 4, 206, 206, 206, 4, + 4, 4, 4, 4, 4, 4, 206, 206, 206, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 204, 4, + 4, 4, 4, 4, 4, 206, 4, 246, 4, 206, + 290, 4, 4, 4, 4, 4, 204, 206, 4, 4, + 4, 397, 4, 477, 4, 204, 4, 204, 204, 493, + 4, 4, 4, 4, 4, 4, 4, 511, 4, 4, + 204, 4, 4, 4, 206, 436, 4, 206, 206, 460, + 4, 4, 373, 206, 4, 4, 204, 4, 204, 204, + 4, 4, 206, 206, 4, 4, 4, 4, 579, 4, + 204, 610, 4, 7, 203, 7, 7, 7, 7, 5, + 203, 173, 174, 175, 176, 206, 268, 203, 203, 5, + 5, 5, 5, 225, 227, 203, 100, 101, 102, 103, + 413, 5, 5, 5, 7, 5, 5, 5, 7, 7, + 7, 7, 7, 7, 203, 203, 5, 5, 234, 5, + 5, 203, 203, 203, 234, 203, 7, 203, 203, 203, + 234, 234, 234, 203, 203, 203, 203, 203, 203, 203, + 203, 203, 203, 203, 227, 203, 203, 203, 170, 171, + 592, 172, 268, 203, 203, 203, 5, 223, 245, 609, + 289, 21, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 237, 303, 304, 305, 308, 310, 312, 314, 315, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 328, - 329, 331, 333, 303, 7, 299, 300, 301, 7, 388, - 389, 390, 7, 426, 427, 428, 7, 450, 451, 452, - 7, 416, 417, 418, 119, 202, 343, 344, 345, 346, - 231, 120, 122, 345, 349, 350, 351, 352, 110, 337, - 338, 339, 7, 531, 532, 7, 501, 502, 503, 7, - 364, 365, 366, 129, 130, 131, 132, 133, 134, 378, - 379, 380, 381, 382, 383, 384, 385, 21, 139, 140, - 141, 142, 237, 317, 478, 480, 543, 544, 545, 548, - 549, 551, 552, 145, 146, 147, 237, 357, 358, 359, - 360, 361, 478, 480, 149, 150, 237, 478, 480, 556, - 557, 558, 560, 152, 153, 154, 202, 478, 480, 564, - 565, 566, 567, 569, 570, 576, 7, 614, 615, 234, - 7, 468, 469, 470, 7, 484, 485, 486, 124, 510, - 526, 527, 299, 8, 8, 8, 306, 309, 311, 313, - 4, 4, 4, 4, 4, 327, 4, 4, 330, 332, - 334, 4, 4, 4, 4, 3, 8, 8, 302, 6, - 3, 391, 6, 3, 429, 6, 3, 453, 6, 3, - 419, 6, 3, 3, 6, 6, 3, 6, 340, 3, - 8, 533, 3, 6, 504, 6, 3, 367, 6, 3, - 4, 4, 4, 4, 4, 4, 3, 8, 546, 550, - 4, 4, 4, 3, 8, 4, 4, 4, 3, 8, - 559, 561, 3, 8, 4, 568, 4, 571, 3, 8, - 8, 616, 3, 6, 202, 235, 236, 471, 6, 3, - 487, 6, 3, 528, 8, 6, 4, 4, 4, 4, - 203, 205, 203, 205, 203, 4, 203, 203, 4, 4, - 4, 203, 203, 205, 203, 304, 303, 301, 394, 390, - 432, 428, 456, 452, 237, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 262, 263, - 264, 265, 268, 270, 272, 273, 274, 276, 278, 315, - 386, 398, 400, 402, 404, 406, 407, 408, 409, 413, - 420, 421, 448, 478, 480, 524, 418, 344, 350, 4, - 338, 113, 114, 237, 315, 448, 478, 480, 534, 535, - 536, 537, 538, 540, 532, 507, 503, 370, 366, 203, - 203, 203, 203, 203, 203, 379, 4, 4, 203, 203, - 203, 544, 205, 203, 203, 358, 4, 4, 557, 205, - 4, 203, 4, 565, 180, 182, 183, 237, 315, 478, - 480, 617, 618, 619, 620, 622, 615, 6, 3, 474, - 470, 490, 486, 4, 22, 23, 24, 25, 307, 202, - 202, 202, 202, 202, 202, 202, 8, 8, 8, 8, - 3, 8, 202, 539, 4, 8, 3, 8, 8, 136, - 137, 138, 547, 202, 202, 202, 202, 222, 623, 4, - 621, 3, 8, 202, 8, 8, 202, 421, 4, 205, - 536, 4, 203, 4, 618, 202, 5, 202, 7, 624, - 625, 626, 3, 6, 181, 184, 185, 186, 187, 627, - 628, 629, 631, 632, 633, 634, 625, 630, 4, 4, - 4, 635, 3, 8, 4, 205, 203, 203, 4, 628, - 202, 202 + 44, 238, 304, 305, 306, 309, 311, 313, 315, 316, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 330, 331, 333, 335, 304, 7, 300, 301, 302, + 7, 390, 391, 392, 7, 428, 429, 430, 7, 452, + 453, 454, 7, 418, 419, 420, 120, 203, 345, 346, + 347, 348, 232, 121, 123, 347, 351, 352, 353, 354, + 111, 339, 340, 341, 7, 533, 534, 7, 503, 504, + 505, 7, 366, 367, 368, 130, 131, 132, 133, 134, + 135, 380, 381, 382, 383, 384, 385, 386, 387, 21, + 140, 141, 142, 143, 238, 318, 480, 482, 545, 546, + 547, 550, 551, 553, 554, 146, 147, 148, 238, 359, + 360, 361, 362, 363, 480, 482, 150, 151, 238, 480, + 482, 558, 559, 560, 562, 153, 154, 155, 203, 480, + 482, 566, 567, 568, 569, 571, 572, 578, 7, 616, + 617, 235, 7, 470, 471, 472, 7, 486, 487, 488, + 125, 512, 528, 529, 300, 8, 8, 8, 307, 310, + 312, 314, 4, 4, 4, 4, 4, 329, 4, 4, + 4, 332, 334, 336, 4, 4, 4, 4, 3, 8, + 8, 303, 6, 3, 393, 6, 3, 431, 6, 3, + 455, 6, 3, 421, 6, 3, 3, 6, 6, 3, + 6, 342, 3, 8, 535, 3, 6, 506, 6, 3, + 369, 6, 3, 4, 4, 4, 4, 4, 4, 3, + 8, 548, 552, 4, 4, 4, 3, 8, 4, 4, + 4, 3, 8, 561, 563, 3, 8, 4, 570, 4, + 573, 3, 8, 8, 618, 3, 6, 203, 236, 237, + 473, 6, 3, 489, 6, 3, 530, 8, 6, 4, + 4, 4, 4, 204, 206, 204, 206, 204, 4, 204, + 204, 206, 4, 4, 4, 204, 204, 206, 204, 305, + 304, 302, 396, 392, 434, 430, 458, 454, 238, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 263, 264, 265, 266, 269, 271, 273, 274, + 275, 277, 279, 316, 388, 400, 402, 404, 406, 408, + 409, 410, 411, 415, 422, 423, 450, 480, 482, 526, + 420, 346, 352, 4, 340, 114, 115, 238, 316, 450, + 480, 482, 536, 537, 538, 539, 540, 542, 534, 509, + 505, 372, 368, 204, 204, 204, 204, 204, 204, 381, + 4, 4, 204, 204, 204, 546, 206, 204, 204, 360, + 4, 4, 559, 206, 4, 204, 4, 567, 181, 183, + 184, 238, 316, 480, 482, 619, 620, 621, 622, 624, + 617, 6, 3, 476, 472, 492, 488, 4, 22, 23, + 24, 25, 308, 203, 203, 203, 203, 203, 203, 203, + 8, 8, 8, 8, 3, 8, 203, 541, 4, 8, + 3, 8, 8, 137, 138, 139, 549, 203, 203, 203, + 203, 223, 625, 4, 623, 3, 8, 203, 8, 8, + 203, 423, 4, 206, 538, 4, 204, 4, 620, 203, + 5, 203, 7, 626, 627, 628, 3, 6, 182, 185, + 186, 187, 188, 629, 630, 631, 633, 634, 635, 636, + 627, 632, 4, 4, 4, 637, 3, 8, 4, 206, + 204, 204, 4, 630, 203, 203 }; const short Dhcp6Parser::yyr1_[] = { - 0, 206, 208, 207, 209, 207, 210, 207, 211, 207, - 212, 207, 213, 207, 214, 207, 215, 207, 216, 207, - 217, 207, 218, 207, 219, 207, 220, 207, 221, 207, - 222, 222, 222, 222, 222, 222, 222, 223, 225, 224, - 226, 227, 227, 228, 228, 230, 229, 231, 231, 232, - 232, 234, 233, 235, 235, 236, 236, 237, 239, 238, - 241, 240, 243, 242, 244, 244, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 247, 246, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 266, 265, 267, 267, - 267, 267, 267, 269, 268, 271, 270, 272, 273, 275, - 274, 277, 276, 278, 279, 280, 282, 281, 283, 285, - 284, 287, 286, 288, 288, 289, 289, 289, 289, 289, - 291, 290, 292, 294, 293, 296, 295, 298, 297, 299, - 299, 300, 300, 302, 301, 303, 303, 304, 304, 304, - 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, - 304, 304, 304, 304, 304, 304, 304, 304, 306, 305, - 307, 307, 307, 307, 309, 308, 311, 310, 313, 312, - 314, 316, 315, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 327, 326, 328, 330, 329, 332, 331, 334, - 333, 336, 335, 337, 337, 338, 340, 339, 342, 341, - 343, 343, 344, 344, 345, 346, 348, 347, 349, 349, - 350, 350, 350, 351, 352, 354, 353, 356, 355, 357, - 357, 358, 358, 358, 358, 358, 358, 359, 360, 361, - 363, 362, 364, 364, 365, 365, 367, 366, 369, 368, - 370, 370, 370, 371, 371, 373, 372, 375, 374, 377, - 376, 378, 378, 379, 379, 379, 379, 379, 379, 380, - 381, 382, 383, 384, 385, 387, 386, 388, 388, 389, - 389, 391, 390, 393, 392, 394, 394, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 397, 396, 399, 398, 401, 400, 403, 402, 405, 404, - 406, 407, 408, 410, 409, 411, 411, 411, 411, 412, - 413, 415, 414, 416, 416, 417, 417, 419, 418, 420, - 420, 421, 421, 421, 421, 421, 421, 421, 421, 421, - 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, - 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, - 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, - 421, 423, 422, 425, 424, 426, 426, 427, 427, 429, - 428, 431, 430, 432, 432, 433, 433, 434, 434, 434, - 434, 434, 434, 434, 434, 434, 434, 435, 436, 437, - 439, 438, 441, 440, 443, 442, 444, 446, 445, 447, - 449, 448, 450, 450, 451, 451, 453, 452, 455, 454, - 456, 456, 457, 457, 458, 458, 458, 458, 458, 458, - 458, 458, 458, 459, 461, 460, 462, 463, 464, 465, - 467, 466, 468, 468, 469, 469, 471, 470, 473, 472, - 474, 474, 475, 475, 475, 475, 475, 475, 475, 477, - 476, 479, 478, 481, 480, 483, 482, 484, 484, 485, - 485, 487, 486, 489, 488, 490, 490, 491, 491, 491, - 491, 491, 491, 491, 491, 491, 491, 491, 493, 492, - 494, 496, 495, 497, 498, 500, 499, 501, 501, 502, - 502, 504, 503, 506, 505, 507, 507, 508, 508, 509, - 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, - 511, 510, 513, 512, 515, 514, 517, 516, 519, 518, - 521, 520, 523, 522, 525, 524, 526, 526, 528, 527, - 530, 529, 531, 531, 533, 532, 534, 534, 535, 535, - 536, 536, 536, 536, 536, 536, 536, 537, 539, 538, - 540, 542, 541, 543, 543, 544, 544, 544, 544, 544, - 544, 544, 544, 544, 546, 545, 547, 547, 547, 548, - 550, 549, 551, 552, 553, 555, 554, 556, 556, 557, - 557, 557, 557, 557, 559, 558, 561, 560, 563, 562, - 564, 564, 565, 565, 565, 565, 565, 565, 566, 568, - 567, 569, 571, 570, 573, 572, 575, 574, 576, 576, - 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, - 577, 577, 577, 577, 577, 577, 577, 577, 578, 580, - 579, 582, 581, 583, 585, 584, 586, 587, 589, 588, - 590, 590, 592, 591, 593, 594, 596, 595, 598, 597, - 600, 599, 602, 601, 604, 603, 606, 605, 607, 607, - 608, 608, 610, 609, 611, 613, 612, 614, 614, 616, - 615, 617, 617, 618, 618, 618, 618, 618, 618, 618, - 619, 621, 620, 623, 622, 624, 624, 626, 625, 627, - 627, 628, 628, 628, 628, 628, 630, 629, 631, 632, - 633, 635, 634 + 0, 207, 209, 208, 210, 208, 211, 208, 212, 208, + 213, 208, 214, 208, 215, 208, 216, 208, 217, 208, + 218, 208, 219, 208, 220, 208, 221, 208, 222, 208, + 223, 223, 223, 223, 223, 223, 223, 224, 226, 225, + 227, 228, 228, 229, 229, 231, 230, 232, 232, 233, + 233, 235, 234, 236, 236, 237, 237, 238, 240, 239, + 242, 241, 244, 243, 245, 245, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 248, 247, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 267, 266, 268, 268, + 268, 268, 268, 270, 269, 272, 271, 273, 274, 276, + 275, 278, 277, 279, 280, 281, 283, 282, 284, 286, + 285, 288, 287, 289, 289, 290, 290, 290, 290, 290, + 292, 291, 293, 295, 294, 297, 296, 299, 298, 300, + 300, 301, 301, 303, 302, 304, 304, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, 305, 307, + 306, 308, 308, 308, 308, 310, 309, 312, 311, 314, + 313, 315, 317, 316, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 329, 328, 330, 332, 331, 334, + 333, 336, 335, 338, 337, 339, 339, 340, 342, 341, + 344, 343, 345, 345, 346, 346, 347, 348, 350, 349, + 351, 351, 352, 352, 352, 353, 354, 356, 355, 358, + 357, 359, 359, 360, 360, 360, 360, 360, 360, 361, + 362, 363, 365, 364, 366, 366, 367, 367, 369, 368, + 371, 370, 372, 372, 372, 373, 373, 375, 374, 377, + 376, 379, 378, 380, 380, 381, 381, 381, 381, 381, + 381, 382, 383, 384, 385, 386, 387, 389, 388, 390, + 390, 391, 391, 393, 392, 395, 394, 396, 396, 397, + 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, + 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, + 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, + 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, + 397, 397, 399, 398, 401, 400, 403, 402, 405, 404, + 407, 406, 408, 409, 410, 412, 411, 413, 413, 413, + 413, 414, 415, 417, 416, 418, 418, 419, 419, 421, + 420, 422, 422, 423, 423, 423, 423, 423, 423, 423, + 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, + 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, + 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, + 423, 423, 423, 425, 424, 427, 426, 428, 428, 429, + 429, 431, 430, 433, 432, 434, 434, 435, 435, 436, + 436, 436, 436, 436, 436, 436, 436, 436, 436, 437, + 438, 439, 441, 440, 443, 442, 445, 444, 446, 448, + 447, 449, 451, 450, 452, 452, 453, 453, 455, 454, + 457, 456, 458, 458, 459, 459, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 461, 463, 462, 464, 465, + 466, 467, 469, 468, 470, 470, 471, 471, 473, 472, + 475, 474, 476, 476, 477, 477, 477, 477, 477, 477, + 477, 479, 478, 481, 480, 483, 482, 485, 484, 486, + 486, 487, 487, 489, 488, 491, 490, 492, 492, 493, + 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, + 495, 494, 496, 498, 497, 499, 500, 502, 501, 503, + 503, 504, 504, 506, 505, 508, 507, 509, 509, 510, + 510, 511, 511, 511, 511, 511, 511, 511, 511, 511, + 511, 511, 513, 512, 515, 514, 517, 516, 519, 518, + 521, 520, 523, 522, 525, 524, 527, 526, 528, 528, + 530, 529, 532, 531, 533, 533, 535, 534, 536, 536, + 537, 537, 538, 538, 538, 538, 538, 538, 538, 539, + 541, 540, 542, 544, 543, 545, 545, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 548, 547, 549, 549, + 549, 550, 552, 551, 553, 554, 555, 557, 556, 558, + 558, 559, 559, 559, 559, 559, 561, 560, 563, 562, + 565, 564, 566, 566, 567, 567, 567, 567, 567, 567, + 568, 570, 569, 571, 573, 572, 575, 574, 577, 576, + 578, 578, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 580, 582, 581, 584, 583, 585, 587, 586, 588, 589, + 591, 590, 592, 592, 594, 593, 595, 596, 598, 597, + 600, 599, 602, 601, 604, 603, 606, 605, 608, 607, + 609, 609, 610, 610, 612, 611, 613, 615, 614, 616, + 616, 618, 617, 619, 619, 620, 620, 620, 620, 620, + 620, 620, 621, 623, 622, 625, 624, 626, 626, 628, + 627, 629, 629, 630, 630, 630, 630, 630, 632, 631, + 633, 634, 635, 637, 636 }; const signed char @@ -5499,91 +5464,92 @@ namespace isc { namespace dhcp { 0, 4, 3, 0, 6, 0, 6, 0, 6, 0, 1, 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 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, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 1, 1, 1, 1, 0, 4, 0, 4, 0, + 4, 3, 0, 4, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 0, 4, 3, 0, 4, 0, + 4, 0, 4, 0, 6, 1, 3, 1, 0, 4, + 0, 6, 1, 3, 1, 1, 1, 1, 0, 6, + 1, 3, 1, 1, 1, 1, 1, 0, 6, 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, 3, - 3, 3, 3, 3, 3, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, + 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, 1, 1, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 3, 3, 3, 0, 4, 1, 1, 1, 1, 3, - 3, 0, 6, 0, 1, 1, 3, 0, 4, 1, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 3, 3, 3, 0, 4, 1, 1, 1, + 1, 3, 3, 0, 6, 0, 1, 1, 3, 0, + 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 6, 0, 4, 0, 1, 1, 3, 0, - 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 0, 4, 0, 4, 0, 4, 1, 0, 4, 3, - 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, - 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 1, 1, 3, 3, - 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 0, 4, 0, 4, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 3, 0, 4, 3, 3, 0, 6, 0, 1, 1, + 1, 1, 1, 0, 6, 0, 4, 0, 1, 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 6, 1, 1, 0, 4, - 0, 6, 1, 3, 0, 4, 0, 1, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 3, 0, 6, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 1, 1, 1, 3, - 0, 4, 3, 3, 3, 0, 6, 1, 3, 1, - 1, 1, 1, 1, 0, 4, 0, 4, 0, 6, - 1, 3, 1, 1, 1, 1, 1, 1, 3, 0, - 4, 3, 0, 4, 0, 6, 0, 4, 1, 3, + 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, - 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 + 0, 4, 3, 0, 4, 3, 3, 0, 6, 0, + 1, 1, 3, 0, 4, 0, 4, 0, 1, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 6, 1, 1, + 0, 4, 0, 6, 1, 3, 0, 4, 0, 1, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 3, 0, 6, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, + 1, 3, 0, 4, 3, 3, 3, 0, 6, 1, + 3, 1, 1, 1, 1, 1, 0, 4, 0, 4, + 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, + 3, 0, 4, 3, 0, 4, 0, 6, 0, 4, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 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\"", "\"postgresql\"", "\"cql\"", "\"user\"", "\"password\"", "\"host\"", "\"port\"", "\"persist\"", "\"lfc-interval\"", "\"readonly\"", "\"connect-timeout\"", "\"contact-points\"", "\"max-reconnect-tries\"", - "\"reconnect-wait-time\"", "\"keyspace\"", "\"consistency\"", - "\"serial-consistency\"", "\"request-timeout\"", "\"tcp-keepalive\"", - "\"tcp-nodelay\"", "\"max-row-errors\"", "\"preferred-lifetime\"", - "\"min-preferred-lifetime\"", "\"max-preferred-lifetime\"", - "\"valid-lifetime\"", "\"min-valid-lifetime\"", "\"max-valid-lifetime\"", - "\"renew-timer\"", "\"rebind-timer\"", "\"calculate-tee-times\"", - "\"t1-percent\"", "\"t2-percent\"", "\"cache-threshold\"", - "\"cache-max-age\"", "\"decline-probation-period\"", "\"server-tag\"", + "\"reconnect-wait-time\"", "\"disable-dhcp-on-db-loss\"", "\"keyspace\"", + "\"consistency\"", "\"serial-consistency\"", "\"request-timeout\"", + "\"tcp-keepalive\"", "\"tcp-nodelay\"", "\"max-row-errors\"", + "\"preferred-lifetime\"", "\"min-preferred-lifetime\"", + "\"max-preferred-lifetime\"", "\"valid-lifetime\"", + "\"min-valid-lifetime\"", "\"max-valid-lifetime\"", "\"renew-timer\"", + "\"rebind-timer\"", "\"calculate-tee-times\"", "\"t1-percent\"", + "\"t2-percent\"", "\"cache-threshold\"", "\"cache-max-age\"", + "\"decline-probation-period\"", "\"server-tag\"", "\"statistic-default-sample-count\"", "\"statistic-default-sample-age\"", "\"ddns-send-updates\"", "\"ddns-override-no-update\"", "\"ddns-override-client-update\"", "\"ddns-replace-client-name\"", @@ -5658,11 +5624,12 @@ namespace isc { namespace dhcp { "database_map_param", "database_type", "$@35", "db_type", "user", "$@36", "password", "$@37", "host", "$@38", "port", "name", "$@39", "persist", "lfc_interval", "readonly", "connect_timeout", "reconnect_wait_time", - "max_row_errors", "request_timeout", "tcp_keepalive", "tcp_nodelay", - "contact_points", "$@40", "max_reconnect_tries", "keyspace", "$@41", - "consistency", "$@42", "serial_consistency", "$@43", "sanity_checks", - "$@44", "sanity_checks_params", "sanity_checks_param", "lease_checks", - "$@45", "mac_sources", "$@46", "mac_sources_list", "mac_sources_value", + "disable_dhcp_on_db_loss", "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", @@ -5738,97 +5705,96 @@ namespace isc { namespace dhcp { "output_params_list", "output_params", "output", "$@133", "flush", "maxsize", "maxver", "pattern", "$@134", YY_NULLPTR }; -#endif - #if PARSER6_DEBUG const short Dhcp6Parser::yyrline_[] = { - 0, 292, 292, 292, 293, 293, 294, 294, 295, 295, - 296, 296, 297, 297, 298, 298, 299, 299, 300, 300, - 301, 301, 302, 302, 303, 303, 304, 304, 305, 305, - 313, 314, 315, 316, 317, 318, 319, 322, 327, 327, - 338, 341, 342, 345, 350, 358, 358, 365, 366, 369, - 373, 380, 380, 387, 388, 391, 395, 406, 415, 415, - 430, 430, 447, 447, 456, 457, 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, - 516, 517, 518, 519, 520, 521, 522, 525, 525, 534, - 540, 546, 552, 558, 564, 570, 576, 582, 588, 594, - 600, 606, 612, 618, 624, 630, 636, 636, 645, 648, - 651, 654, 657, 663, 663, 672, 672, 681, 687, 693, - 693, 702, 702, 711, 717, 723, 729, 729, 738, 744, - 744, 756, 756, 765, 766, 769, 770, 771, 772, 773, - 776, 776, 787, 793, 793, 806, 806, 819, 819, 830, - 831, 834, 835, 838, 838, 848, 849, 852, 853, 854, - 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, - 865, 866, 867, 868, 869, 870, 871, 872, 875, 875, - 883, 884, 885, 886, 889, 889, 898, 898, 907, 907, - 916, 922, 922, 931, 937, 943, 949, 955, 961, 967, - 973, 979, 985, 985, 994, 1000, 1000, 1009, 1009, 1018, - 1018, 1027, 1027, 1038, 1039, 1041, 1043, 1043, 1062, 1062, - 1073, 1074, 1077, 1078, 1081, 1086, 1091, 1091, 1102, 1103, - 1106, 1107, 1108, 1111, 1116, 1123, 1123, 1136, 1136, 1149, - 1150, 1153, 1154, 1155, 1156, 1157, 1158, 1161, 1167, 1173, - 1179, 1179, 1190, 1191, 1194, 1195, 1198, 1198, 1208, 1208, - 1218, 1219, 1220, 1223, 1224, 1227, 1227, 1236, 1236, 1245, - 1245, 1257, 1258, 1261, 1262, 1263, 1264, 1265, 1266, 1269, - 1275, 1281, 1287, 1293, 1299, 1308, 1308, 1322, 1323, 1326, - 1327, 1334, 1334, 1360, 1360, 1371, 1372, 1376, 1377, 1378, - 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, - 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, - 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, - 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, - 1421, 1421, 1430, 1430, 1439, 1439, 1448, 1448, 1457, 1457, - 1468, 1474, 1480, 1486, 1486, 1494, 1495, 1496, 1497, 1500, - 1506, 1514, 1514, 1526, 1527, 1531, 1532, 1535, 1535, 1543, - 1544, 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, 1593, 1593, 1607, 1607, 1616, 1617, 1620, 1621, 1626, - 1626, 1641, 1641, 1655, 1656, 1659, 1660, 1663, 1664, 1665, - 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1675, 1677, 1683, - 1685, 1685, 1694, 1694, 1703, 1703, 1712, 1714, 1714, 1723, - 1733, 1733, 1746, 1747, 1752, 1753, 1758, 1758, 1770, 1770, - 1782, 1783, 1788, 1789, 1794, 1795, 1796, 1797, 1798, 1799, - 1800, 1801, 1802, 1805, 1807, 1807, 1816, 1818, 1820, 1826, - 1835, 1835, 1848, 1849, 1852, 1853, 1856, 1856, 1866, 1866, - 1876, 1877, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1889, - 1889, 1898, 1898, 1923, 1923, 1953, 1953, 1966, 1967, 1970, - 1971, 1974, 1974, 1986, 1986, 1998, 1999, 2002, 2003, 2004, - 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2015, 2015, - 2024, 2030, 2030, 2039, 2045, 2054, 2054, 2065, 2066, 2069, - 2070, 2073, 2073, 2082, 2082, 2091, 2092, 2095, 2096, 2100, - 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, - 2113, 2113, 2124, 2124, 2135, 2135, 2144, 2144, 2153, 2153, - 2162, 2162, 2171, 2171, 2185, 2185, 2196, 2197, 2200, 2200, - 2212, 2212, 2223, 2224, 2227, 2227, 2237, 2238, 2241, 2242, - 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2254, 2256, 2256, - 2265, 2274, 2274, 2287, 2288, 2291, 2292, 2293, 2294, 2295, - 2296, 2297, 2298, 2299, 2302, 2302, 2310, 2311, 2312, 2315, - 2321, 2321, 2330, 2336, 2344, 2352, 2352, 2363, 2364, 2367, - 2368, 2369, 2370, 2371, 2374, 2374, 2383, 2383, 2395, 2395, - 2408, 2409, 2412, 2413, 2414, 2415, 2416, 2417, 2420, 2426, - 2426, 2435, 2441, 2441, 2451, 2451, 2464, 2464, 2474, 2475, - 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, - 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2498, 2505, - 2505, 2514, 2514, 2523, 2529, 2529, 2538, 2544, 2550, 2550, - 2559, 2560, 2563, 2563, 2573, 2580, 2587, 2587, 2596, 2596, - 2606, 2606, 2616, 2616, 2628, 2628, 2640, 2640, 2650, 2651, - 2655, 2656, 2659, 2659, 2670, 2678, 2678, 2691, 2692, 2696, - 2696, 2704, 2705, 2708, 2709, 2710, 2711, 2712, 2713, 2714, - 2717, 2723, 2723, 2732, 2732, 2743, 2744, 2747, 2747, 2755, - 2756, 2759, 2760, 2761, 2762, 2763, 2766, 2766, 2775, 2781, - 2787, 2793, 2793 + 0, 293, 293, 293, 294, 294, 295, 295, 296, 296, + 297, 297, 298, 298, 299, 299, 300, 300, 301, 301, + 302, 302, 303, 303, 304, 304, 305, 305, 306, 306, + 314, 315, 316, 317, 318, 319, 320, 323, 328, 328, + 339, 342, 343, 346, 351, 359, 359, 366, 367, 370, + 374, 381, 381, 388, 389, 392, 396, 407, 416, 416, + 431, 431, 448, 448, 457, 458, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 526, 526, 535, + 541, 547, 553, 559, 565, 571, 577, 583, 589, 595, + 601, 607, 613, 619, 625, 631, 637, 637, 646, 649, + 652, 655, 658, 664, 664, 673, 673, 682, 688, 694, + 694, 703, 703, 712, 718, 724, 730, 730, 739, 745, + 745, 757, 757, 766, 767, 770, 771, 772, 773, 774, + 777, 777, 788, 794, 794, 807, 807, 820, 820, 831, + 832, 835, 836, 839, 839, 849, 850, 853, 854, 855, + 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, + 866, 867, 868, 869, 870, 871, 872, 873, 874, 877, + 877, 885, 886, 887, 888, 891, 891, 900, 900, 909, + 909, 918, 924, 924, 933, 939, 945, 951, 957, 963, + 969, 975, 981, 987, 993, 993, 1002, 1008, 1008, 1017, + 1017, 1026, 1026, 1035, 1035, 1046, 1047, 1049, 1051, 1051, + 1070, 1070, 1081, 1082, 1085, 1086, 1089, 1094, 1099, 1099, + 1110, 1111, 1114, 1115, 1116, 1119, 1124, 1131, 1131, 1144, + 1144, 1157, 1158, 1161, 1162, 1163, 1164, 1165, 1166, 1169, + 1175, 1181, 1187, 1187, 1198, 1199, 1202, 1203, 1206, 1206, + 1216, 1216, 1226, 1227, 1228, 1231, 1232, 1235, 1235, 1244, + 1244, 1253, 1253, 1265, 1266, 1269, 1270, 1271, 1272, 1273, + 1274, 1277, 1283, 1289, 1295, 1301, 1307, 1316, 1316, 1330, + 1331, 1334, 1335, 1342, 1342, 1368, 1368, 1379, 1380, 1384, + 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, + 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, + 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, + 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, + 1425, 1426, 1429, 1429, 1438, 1438, 1447, 1447, 1456, 1456, + 1465, 1465, 1476, 1482, 1488, 1494, 1494, 1502, 1503, 1504, + 1505, 1508, 1514, 1522, 1522, 1534, 1535, 1539, 1540, 1543, + 1543, 1551, 1552, 1555, 1556, 1557, 1558, 1559, 1560, 1561, + 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, + 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, + 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, + 1592, 1593, 1594, 1601, 1601, 1615, 1615, 1624, 1625, 1628, + 1629, 1634, 1634, 1649, 1649, 1663, 1664, 1667, 1668, 1671, + 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1683, + 1685, 1691, 1693, 1693, 1702, 1702, 1711, 1711, 1720, 1722, + 1722, 1731, 1741, 1741, 1754, 1755, 1760, 1761, 1766, 1766, + 1778, 1778, 1790, 1791, 1796, 1797, 1802, 1803, 1804, 1805, + 1806, 1807, 1808, 1809, 1810, 1813, 1815, 1815, 1824, 1826, + 1828, 1834, 1843, 1843, 1856, 1857, 1860, 1861, 1864, 1864, + 1874, 1874, 1884, 1885, 1888, 1889, 1890, 1891, 1892, 1893, + 1894, 1897, 1897, 1906, 1906, 1931, 1931, 1961, 1961, 1974, + 1975, 1978, 1979, 1982, 1982, 1994, 1994, 2006, 2007, 2010, + 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, + 2023, 2023, 2032, 2038, 2038, 2047, 2053, 2062, 2062, 2073, + 2074, 2077, 2078, 2081, 2081, 2090, 2090, 2099, 2100, 2103, + 2104, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, + 2117, 2118, 2121, 2121, 2132, 2132, 2143, 2143, 2152, 2152, + 2161, 2161, 2170, 2170, 2179, 2179, 2193, 2193, 2204, 2205, + 2208, 2208, 2220, 2220, 2231, 2232, 2235, 2235, 2245, 2246, + 2249, 2250, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2262, + 2264, 2264, 2273, 2282, 2282, 2295, 2296, 2299, 2300, 2301, + 2302, 2303, 2304, 2305, 2306, 2307, 2310, 2310, 2318, 2319, + 2320, 2323, 2329, 2329, 2338, 2344, 2352, 2360, 2360, 2371, + 2372, 2375, 2376, 2377, 2378, 2379, 2382, 2382, 2391, 2391, + 2403, 2403, 2416, 2417, 2420, 2421, 2422, 2423, 2424, 2425, + 2428, 2434, 2434, 2443, 2449, 2449, 2459, 2459, 2472, 2472, + 2482, 2483, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, + 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, + 2506, 2513, 2513, 2522, 2522, 2531, 2537, 2537, 2546, 2552, + 2558, 2558, 2567, 2568, 2571, 2571, 2581, 2588, 2595, 2595, + 2604, 2604, 2614, 2614, 2624, 2624, 2636, 2636, 2648, 2648, + 2658, 2659, 2663, 2664, 2667, 2667, 2678, 2686, 2686, 2699, + 2700, 2704, 2704, 2712, 2713, 2716, 2717, 2718, 2719, 2720, + 2721, 2722, 2725, 2731, 2731, 2740, 2740, 2751, 2752, 2755, + 2755, 2763, 2764, 2767, 2768, 2769, 2770, 2771, 2774, 2774, + 2783, 2789, 2795, 2801, 2801 }; + // 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 @@ -5839,8 +5805,9 @@ namespace isc { namespace dhcp { *yycdebug_ << '\n'; } + // 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]; int yynrhs = yyr2_[yyrule]; @@ -5857,9 +5824,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 5861 "dhcp6_parser.cc" +#line 5828 "dhcp6_parser.cc" -#line 2802 "dhcp6_parser.yy" +#line 2810 "dhcp6_parser.yy" void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index 4ff4325b0d..149655714d 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.5. +// A Bison parser, made by GNU Bison 3.5.1. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -38,9 +38,8 @@ // 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. +// Undocumented macros, especially those whose name start with YY_, +// are private implementation details. Do not rely on them. #ifndef YY_PARSER6_DHCP6_PARSER_H_INCLUDED # define YY_PARSER6_DHCP6_PARSER_H_INCLUDED @@ -57,7 +56,7 @@ using namespace isc::dhcp; using namespace isc::data; using namespace std; -#line 61 "dhcp6_parser.h" +#line 60 "dhcp6_parser.h" # include # include // std::abort @@ -104,9 +103,9 @@ using namespace std; #endif # include "location.hh" #include -#ifndef PARSER6__ASSERT +#ifndef YY_ASSERT # include -# define PARSER6__ASSERT assert +# define YY_ASSERT assert #endif @@ -128,9 +127,9 @@ using namespace std; /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YY_USE(E) ((void) (E)) +# define YYUSE(E) ((void) (E)) #else -# define YY_USE(E) /* empty */ +# define YYUSE(E) /* empty */ #endif #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ @@ -200,7 +199,7 @@ using namespace std; #line 14 "dhcp6_parser.yy" namespace isc { namespace dhcp { -#line 204 "dhcp6_parser.h" +#line 203 "dhcp6_parser.h" @@ -232,21 +231,14 @@ namespace isc { namespace dhcp { semantic_type (YY_RVREF (T) t) : yytypeid_ (&typeid (T)) { - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (sizeof (T) <= size); new (yyas_ ()) T (YY_MOVE (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 { - PARSER6__ASSERT (!yytypeid_); + YY_ASSERT (!yytypeid_); } # if 201103L <= YY_CPLUSPLUS @@ -255,8 +247,8 @@ namespace isc { namespace dhcp { T& emplace (U&&... u) { - PARSER6__ASSERT (!yytypeid_); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (std::forward (u)...); } @@ -266,8 +258,8 @@ namespace isc { namespace dhcp { T& emplace () { - PARSER6__ASSERT (!yytypeid_); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (); } @@ -277,8 +269,8 @@ namespace isc { namespace dhcp { T& emplace (const T& t) { - PARSER6__ASSERT (!yytypeid_); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (t); } @@ -307,9 +299,9 @@ namespace isc { namespace dhcp { T& as () YY_NOEXCEPT { - PARSER6__ASSERT (yytypeid_); - PARSER6__ASSERT (*yytypeid_ == typeid (T)); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == typeid (T)); + YY_ASSERT (sizeof (T) <= size); return *yyas_ (); } @@ -318,9 +310,9 @@ namespace isc { namespace dhcp { const T& as () const YY_NOEXCEPT { - PARSER6__ASSERT (yytypeid_); - PARSER6__ASSERT (*yytypeid_ == typeid (T)); - PARSER6__ASSERT (sizeof (T) <= size); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == typeid (T)); + YY_ASSERT (sizeof (T) <= size); return *yyas_ (); } @@ -336,8 +328,8 @@ namespace isc { namespace dhcp { void swap (self_type& that) YY_NOEXCEPT { - PARSER6__ASSERT (yytypeid_); - PARSER6__ASSERT (*yytypeid_ == *that.yytypeid_); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == *that.yytypeid_); std::swap (as (), that.as ()); } @@ -386,12 +378,9 @@ namespace isc { namespace dhcp { } private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. - semantic_type (const self_type&); - /// Non copyable. + /// Prohibit blind copies. self_type& operator= (const self_type&); -#endif + semantic_type (const self_type&); /// Accessor to raw memory as \a T. template @@ -476,885 +465,235 @@ namespace isc { namespace dhcp { location_type location; }; - /// Token kinds. + /// Tokens. struct token { - enum token_kind_type + enum yytokentype { - 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_DDNS_USE_CONFLICT_RESOLUTION = 323, // "ddns-use-conflict-resolution" - TOKEN_STORE_EXTENDED_INFO = 324, // "store-extended-info" - TOKEN_SUBNET6 = 325, // "subnet6" - TOKEN_OPTION_DEF = 326, // "option-def" - TOKEN_OPTION_DATA = 327, // "option-data" - TOKEN_NAME = 328, // "name" - TOKEN_DATA = 329, // "data" - TOKEN_CODE = 330, // "code" - TOKEN_SPACE = 331, // "space" - TOKEN_CSV_FORMAT = 332, // "csv-format" - TOKEN_ALWAYS_SEND = 333, // "always-send" - TOKEN_RECORD_TYPES = 334, // "record-types" - TOKEN_ENCAPSULATE = 335, // "encapsulate" - TOKEN_ARRAY = 336, // "array" - TOKEN_SHARED_NETWORKS = 337, // "shared-networks" - TOKEN_POOLS = 338, // "pools" - TOKEN_POOL = 339, // "pool" - TOKEN_PD_POOLS = 340, // "pd-pools" - TOKEN_PREFIX = 341, // "prefix" - TOKEN_PREFIX_LEN = 342, // "prefix-len" - TOKEN_EXCLUDED_PREFIX = 343, // "excluded-prefix" - TOKEN_EXCLUDED_PREFIX_LEN = 344, // "excluded-prefix-len" - TOKEN_DELEGATED_LEN = 345, // "delegated-len" - TOKEN_USER_CONTEXT = 346, // "user-context" - TOKEN_COMMENT = 347, // "comment" - TOKEN_SUBNET = 348, // "subnet" - TOKEN_INTERFACE = 349, // "interface" - TOKEN_INTERFACE_ID = 350, // "interface-id" - TOKEN_ID = 351, // "id" - TOKEN_RAPID_COMMIT = 352, // "rapid-commit" - TOKEN_RESERVATION_MODE = 353, // "reservation-mode" - TOKEN_DISABLED = 354, // "disabled" - TOKEN_OUT_OF_POOL = 355, // "out-of-pool" - TOKEN_GLOBAL = 356, // "global" - TOKEN_ALL = 357, // "all" - TOKEN_RESERVATIONS_GLOBAL = 358, // "reservations-global" - TOKEN_RESERVATIONS_IN_SUBNET = 359, // "reservations-in-subnet" - TOKEN_RESERVATIONS_OUT_OF_POOL = 360, // "reservations-out-of-pool" - TOKEN_MAC_SOURCES = 361, // "mac-sources" - TOKEN_RELAY_SUPPLIED_OPTIONS = 362, // "relay-supplied-options" - TOKEN_HOST_RESERVATION_IDENTIFIERS = 363, // "host-reservation-identifiers" - TOKEN_SANITY_CHECKS = 364, // "sanity-checks" - TOKEN_LEASE_CHECKS = 365, // "lease-checks" - TOKEN_CLIENT_CLASSES = 366, // "client-classes" - TOKEN_REQUIRE_CLIENT_CLASSES = 367, // "require-client-classes" - TOKEN_TEST = 368, // "test" - TOKEN_ONLY_IF_REQUIRED = 369, // "only-if-required" - TOKEN_CLIENT_CLASS = 370, // "client-class" - TOKEN_RESERVATIONS = 371, // "reservations" - TOKEN_IP_ADDRESSES = 372, // "ip-addresses" - TOKEN_PREFIXES = 373, // "prefixes" - TOKEN_DUID = 374, // "duid" - TOKEN_HW_ADDRESS = 375, // "hw-address" - TOKEN_HOSTNAME = 376, // "hostname" - TOKEN_FLEX_ID = 377, // "flex-id" - TOKEN_RELAY = 378, // "relay" - TOKEN_IP_ADDRESS = 379, // "ip-address" - TOKEN_HOOKS_LIBRARIES = 380, // "hooks-libraries" - TOKEN_LIBRARY = 381, // "library" - TOKEN_PARAMETERS = 382, // "parameters" - TOKEN_EXPIRED_LEASES_PROCESSING = 383, // "expired-leases-processing" - TOKEN_RECLAIM_TIMER_WAIT_TIME = 384, // "reclaim-timer-wait-time" - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 385, // "flush-reclaimed-timer-wait-time" - TOKEN_HOLD_RECLAIMED_TIME = 386, // "hold-reclaimed-time" - TOKEN_MAX_RECLAIM_LEASES = 387, // "max-reclaim-leases" - TOKEN_MAX_RECLAIM_TIME = 388, // "max-reclaim-time" - TOKEN_UNWARNED_RECLAIM_CYCLES = 389, // "unwarned-reclaim-cycles" - TOKEN_SERVER_ID = 390, // "server-id" - TOKEN_LLT = 391, // "LLT" - TOKEN_EN = 392, // "EN" - TOKEN_LL = 393, // "LL" - TOKEN_IDENTIFIER = 394, // "identifier" - TOKEN_HTYPE = 395, // "htype" - TOKEN_TIME = 396, // "time" - TOKEN_ENTERPRISE_ID = 397, // "enterprise-id" - TOKEN_DHCP4O6_PORT = 398, // "dhcp4o6-port" - TOKEN_DHCP_MULTI_THREADING = 399, // "multi-threading" - TOKEN_ENABLE_MULTI_THREADING = 400, // "enable-multi-threading" - TOKEN_THREAD_POOL_SIZE = 401, // "thread-pool-size" - TOKEN_PACKET_QUEUE_SIZE = 402, // "packet-queue-size" - TOKEN_CONTROL_SOCKET = 403, // "control-socket" - TOKEN_SOCKET_TYPE = 404, // "socket-type" - TOKEN_SOCKET_NAME = 405, // "socket-name" - TOKEN_DHCP_QUEUE_CONTROL = 406, // "dhcp-queue-control" - TOKEN_ENABLE_QUEUE = 407, // "enable-queue" - TOKEN_QUEUE_TYPE = 408, // "queue-type" - TOKEN_CAPACITY = 409, // "capacity" - TOKEN_DHCP_DDNS = 410, // "dhcp-ddns" - TOKEN_ENABLE_UPDATES = 411, // "enable-updates" - TOKEN_QUALIFYING_SUFFIX = 412, // "qualifying-suffix" - TOKEN_SERVER_IP = 413, // "server-ip" - TOKEN_SERVER_PORT = 414, // "server-port" - TOKEN_SENDER_IP = 415, // "sender-ip" - TOKEN_SENDER_PORT = 416, // "sender-port" - TOKEN_MAX_QUEUE_SIZE = 417, // "max-queue-size" - TOKEN_NCR_PROTOCOL = 418, // "ncr-protocol" - TOKEN_NCR_FORMAT = 419, // "ncr-format" - TOKEN_OVERRIDE_NO_UPDATE = 420, // "override-no-update" - TOKEN_OVERRIDE_CLIENT_UPDATE = 421, // "override-client-update" - TOKEN_REPLACE_CLIENT_NAME = 422, // "replace-client-name" - TOKEN_GENERATED_PREFIX = 423, // "generated-prefix" - TOKEN_UDP = 424, // "UDP" - TOKEN_TCP = 425, // "TCP" - TOKEN_JSON = 426, // "JSON" - TOKEN_WHEN_PRESENT = 427, // "when-present" - TOKEN_NEVER = 428, // "never" - TOKEN_ALWAYS = 429, // "always" - TOKEN_WHEN_NOT_PRESENT = 430, // "when-not-present" - TOKEN_HOSTNAME_CHAR_SET = 431, // "hostname-char-set" - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 432, // "hostname-char-replacement" - TOKEN_IP_RESERVATIONS_UNIQUE = 433, // "ip-reservations-unique" - TOKEN_LOGGERS = 434, // "loggers" - TOKEN_OUTPUT_OPTIONS = 435, // "output_options" - TOKEN_OUTPUT = 436, // "output" - TOKEN_DEBUGLEVEL = 437, // "debuglevel" - TOKEN_SEVERITY = 438, // "severity" - TOKEN_FLUSH = 439, // "flush" - TOKEN_MAXSIZE = 440, // "maxsize" - TOKEN_MAXVER = 441, // "maxver" - TOKEN_PATTERN = 442, // "pattern" - TOKEN_TOPLEVEL_JSON = 443, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP6 = 444, // TOPLEVEL_DHCP6 - TOKEN_SUB_DHCP6 = 445, // SUB_DHCP6 - TOKEN_SUB_INTERFACES6 = 446, // SUB_INTERFACES6 - TOKEN_SUB_SUBNET6 = 447, // SUB_SUBNET6 - TOKEN_SUB_POOL6 = 448, // SUB_POOL6 - TOKEN_SUB_PD_POOL = 449, // SUB_PD_POOL - TOKEN_SUB_RESERVATION = 450, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 451, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 452, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 453, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 454, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 455, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 456, // SUB_CONFIG_CONTROL - TOKEN_STRING = 457, // "constant string" - TOKEN_INTEGER = 458, // "integer" - TOKEN_FLOAT = 459, // "floating point" - TOKEN_BOOLEAN = 460 // "boolean" - }; - /// 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; - - /// Symbol kinds. - struct symbol_kind - { - enum symbol_kind_type - { - YYNTOKENS = 206, ///< 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_DDNS_USE_CONFLICT_RESOLUTION = 68, // "ddns-use-conflict-resolution" - S_STORE_EXTENDED_INFO = 69, // "store-extended-info" - S_SUBNET6 = 70, // "subnet6" - S_OPTION_DEF = 71, // "option-def" - S_OPTION_DATA = 72, // "option-data" - S_NAME = 73, // "name" - S_DATA = 74, // "data" - S_CODE = 75, // "code" - S_SPACE = 76, // "space" - S_CSV_FORMAT = 77, // "csv-format" - S_ALWAYS_SEND = 78, // "always-send" - S_RECORD_TYPES = 79, // "record-types" - S_ENCAPSULATE = 80, // "encapsulate" - S_ARRAY = 81, // "array" - S_SHARED_NETWORKS = 82, // "shared-networks" - S_POOLS = 83, // "pools" - S_POOL = 84, // "pool" - S_PD_POOLS = 85, // "pd-pools" - S_PREFIX = 86, // "prefix" - S_PREFIX_LEN = 87, // "prefix-len" - S_EXCLUDED_PREFIX = 88, // "excluded-prefix" - S_EXCLUDED_PREFIX_LEN = 89, // "excluded-prefix-len" - S_DELEGATED_LEN = 90, // "delegated-len" - S_USER_CONTEXT = 91, // "user-context" - S_COMMENT = 92, // "comment" - S_SUBNET = 93, // "subnet" - S_INTERFACE = 94, // "interface" - S_INTERFACE_ID = 95, // "interface-id" - S_ID = 96, // "id" - S_RAPID_COMMIT = 97, // "rapid-commit" - S_RESERVATION_MODE = 98, // "reservation-mode" - S_DISABLED = 99, // "disabled" - S_OUT_OF_POOL = 100, // "out-of-pool" - S_GLOBAL = 101, // "global" - S_ALL = 102, // "all" - S_RESERVATIONS_GLOBAL = 103, // "reservations-global" - S_RESERVATIONS_IN_SUBNET = 104, // "reservations-in-subnet" - S_RESERVATIONS_OUT_OF_POOL = 105, // "reservations-out-of-pool" - S_MAC_SOURCES = 106, // "mac-sources" - S_RELAY_SUPPLIED_OPTIONS = 107, // "relay-supplied-options" - S_HOST_RESERVATION_IDENTIFIERS = 108, // "host-reservation-identifiers" - S_SANITY_CHECKS = 109, // "sanity-checks" - S_LEASE_CHECKS = 110, // "lease-checks" - S_CLIENT_CLASSES = 111, // "client-classes" - S_REQUIRE_CLIENT_CLASSES = 112, // "require-client-classes" - S_TEST = 113, // "test" - S_ONLY_IF_REQUIRED = 114, // "only-if-required" - S_CLIENT_CLASS = 115, // "client-class" - S_RESERVATIONS = 116, // "reservations" - S_IP_ADDRESSES = 117, // "ip-addresses" - S_PREFIXES = 118, // "prefixes" - S_DUID = 119, // "duid" - S_HW_ADDRESS = 120, // "hw-address" - S_HOSTNAME = 121, // "hostname" - S_FLEX_ID = 122, // "flex-id" - S_RELAY = 123, // "relay" - S_IP_ADDRESS = 124, // "ip-address" - S_HOOKS_LIBRARIES = 125, // "hooks-libraries" - S_LIBRARY = 126, // "library" - S_PARAMETERS = 127, // "parameters" - S_EXPIRED_LEASES_PROCESSING = 128, // "expired-leases-processing" - S_RECLAIM_TIMER_WAIT_TIME = 129, // "reclaim-timer-wait-time" - S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 130, // "flush-reclaimed-timer-wait-time" - S_HOLD_RECLAIMED_TIME = 131, // "hold-reclaimed-time" - S_MAX_RECLAIM_LEASES = 132, // "max-reclaim-leases" - S_MAX_RECLAIM_TIME = 133, // "max-reclaim-time" - S_UNWARNED_RECLAIM_CYCLES = 134, // "unwarned-reclaim-cycles" - S_SERVER_ID = 135, // "server-id" - S_LLT = 136, // "LLT" - S_EN = 137, // "EN" - S_LL = 138, // "LL" - S_IDENTIFIER = 139, // "identifier" - S_HTYPE = 140, // "htype" - S_TIME = 141, // "time" - S_ENTERPRISE_ID = 142, // "enterprise-id" - S_DHCP4O6_PORT = 143, // "dhcp4o6-port" - S_DHCP_MULTI_THREADING = 144, // "multi-threading" - S_ENABLE_MULTI_THREADING = 145, // "enable-multi-threading" - S_THREAD_POOL_SIZE = 146, // "thread-pool-size" - S_PACKET_QUEUE_SIZE = 147, // "packet-queue-size" - S_CONTROL_SOCKET = 148, // "control-socket" - S_SOCKET_TYPE = 149, // "socket-type" - S_SOCKET_NAME = 150, // "socket-name" - S_DHCP_QUEUE_CONTROL = 151, // "dhcp-queue-control" - S_ENABLE_QUEUE = 152, // "enable-queue" - S_QUEUE_TYPE = 153, // "queue-type" - S_CAPACITY = 154, // "capacity" - S_DHCP_DDNS = 155, // "dhcp-ddns" - S_ENABLE_UPDATES = 156, // "enable-updates" - S_QUALIFYING_SUFFIX = 157, // "qualifying-suffix" - S_SERVER_IP = 158, // "server-ip" - S_SERVER_PORT = 159, // "server-port" - S_SENDER_IP = 160, // "sender-ip" - S_SENDER_PORT = 161, // "sender-port" - S_MAX_QUEUE_SIZE = 162, // "max-queue-size" - S_NCR_PROTOCOL = 163, // "ncr-protocol" - S_NCR_FORMAT = 164, // "ncr-format" - S_OVERRIDE_NO_UPDATE = 165, // "override-no-update" - S_OVERRIDE_CLIENT_UPDATE = 166, // "override-client-update" - S_REPLACE_CLIENT_NAME = 167, // "replace-client-name" - S_GENERATED_PREFIX = 168, // "generated-prefix" - S_UDP = 169, // "UDP" - S_TCP = 170, // "TCP" - S_JSON = 171, // "JSON" - S_WHEN_PRESENT = 172, // "when-present" - S_NEVER = 173, // "never" - S_ALWAYS = 174, // "always" - S_WHEN_NOT_PRESENT = 175, // "when-not-present" - S_HOSTNAME_CHAR_SET = 176, // "hostname-char-set" - S_HOSTNAME_CHAR_REPLACEMENT = 177, // "hostname-char-replacement" - S_IP_RESERVATIONS_UNIQUE = 178, // "ip-reservations-unique" - S_LOGGERS = 179, // "loggers" - S_OUTPUT_OPTIONS = 180, // "output_options" - S_OUTPUT = 181, // "output" - S_DEBUGLEVEL = 182, // "debuglevel" - S_SEVERITY = 183, // "severity" - S_FLUSH = 184, // "flush" - S_MAXSIZE = 185, // "maxsize" - S_MAXVER = 186, // "maxver" - S_PATTERN = 187, // "pattern" - S_TOPLEVEL_JSON = 188, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP6 = 189, // TOPLEVEL_DHCP6 - S_SUB_DHCP6 = 190, // SUB_DHCP6 - S_SUB_INTERFACES6 = 191, // SUB_INTERFACES6 - S_SUB_SUBNET6 = 192, // SUB_SUBNET6 - S_SUB_POOL6 = 193, // SUB_POOL6 - S_SUB_PD_POOL = 194, // SUB_PD_POOL - S_SUB_RESERVATION = 195, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 196, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 197, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 198, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 199, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 200, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 201, // SUB_CONFIG_CONTROL - S_STRING = 202, // "constant string" - S_INTEGER = 203, // "integer" - S_FLOAT = 204, // "floating point" - S_BOOLEAN = 205, // "boolean" - S_YYACCEPT = 206, // $accept - S_start = 207, // start - S_208_1 = 208, // $@1 - S_209_2 = 209, // $@2 - S_210_3 = 210, // $@3 - S_211_4 = 211, // $@4 - S_212_5 = 212, // $@5 - S_213_6 = 213, // $@6 - S_214_7 = 214, // $@7 - S_215_8 = 215, // $@8 - S_216_9 = 216, // $@9 - S_217_10 = 217, // $@10 - S_218_11 = 218, // $@11 - S_219_12 = 219, // $@12 - S_220_13 = 220, // $@13 - S_221_14 = 221, // $@14 - S_value = 222, // value - S_sub_json = 223, // sub_json - S_map2 = 224, // map2 - S_225_15 = 225, // $@15 - S_map_value = 226, // map_value - S_map_content = 227, // map_content - S_not_empty_map = 228, // not_empty_map - S_list_generic = 229, // list_generic - S_230_16 = 230, // $@16 - S_list_content = 231, // list_content - S_not_empty_list = 232, // not_empty_list - S_list_strings = 233, // list_strings - S_234_17 = 234, // $@17 - S_list_strings_content = 235, // list_strings_content - S_not_empty_list_strings = 236, // not_empty_list_strings - S_unknown_map_entry = 237, // unknown_map_entry - S_syntax_map = 238, // syntax_map - S_239_18 = 239, // $@18 - S_global_object = 240, // global_object - S_241_19 = 241, // $@19 - S_sub_dhcp6 = 242, // sub_dhcp6 - S_243_20 = 243, // $@20 - S_global_params = 244, // global_params - S_global_param = 245, // global_param - S_data_directory = 246, // data_directory - S_247_21 = 247, // $@21 - S_preferred_lifetime = 248, // preferred_lifetime - S_min_preferred_lifetime = 249, // min_preferred_lifetime - S_max_preferred_lifetime = 250, // max_preferred_lifetime - S_valid_lifetime = 251, // valid_lifetime - S_min_valid_lifetime = 252, // min_valid_lifetime - S_max_valid_lifetime = 253, // max_valid_lifetime - S_renew_timer = 254, // renew_timer - S_rebind_timer = 255, // rebind_timer - S_calculate_tee_times = 256, // calculate_tee_times - S_t1_percent = 257, // t1_percent - S_t2_percent = 258, // t2_percent - S_cache_threshold = 259, // cache_threshold - S_cache_max_age = 260, // cache_max_age - S_decline_probation_period = 261, // decline_probation_period - S_ddns_send_updates = 262, // ddns_send_updates - S_ddns_override_no_update = 263, // ddns_override_no_update - S_ddns_override_client_update = 264, // ddns_override_client_update - S_ddns_replace_client_name = 265, // ddns_replace_client_name - S_266_22 = 266, // $@22 - S_ddns_replace_client_name_value = 267, // ddns_replace_client_name_value - S_ddns_generated_prefix = 268, // ddns_generated_prefix - S_269_23 = 269, // $@23 - S_ddns_qualifying_suffix = 270, // ddns_qualifying_suffix - S_271_24 = 271, // $@24 - S_ddns_update_on_renew = 272, // ddns_update_on_renew - S_ddns_use_conflict_resolution = 273, // ddns_use_conflict_resolution - S_hostname_char_set = 274, // hostname_char_set - S_275_25 = 275, // $@25 - S_hostname_char_replacement = 276, // hostname_char_replacement - S_277_26 = 277, // $@26 - S_store_extended_info = 278, // store_extended_info - S_statistic_default_sample_count = 279, // statistic_default_sample_count - S_statistic_default_sample_age = 280, // statistic_default_sample_age - S_server_tag = 281, // server_tag - S_282_27 = 282, // $@27 - S_ip_reservations_unique = 283, // ip_reservations_unique - S_interfaces_config = 284, // interfaces_config - S_285_28 = 285, // $@28 - S_sub_interfaces6 = 286, // sub_interfaces6 - S_287_29 = 287, // $@29 - S_interfaces_config_params = 288, // interfaces_config_params - S_interfaces_config_param = 289, // interfaces_config_param - S_interfaces_list = 290, // interfaces_list - S_291_30 = 291, // $@30 - S_re_detect = 292, // re_detect - S_lease_database = 293, // lease_database - S_294_31 = 294, // $@31 - S_hosts_database = 295, // hosts_database - S_296_32 = 296, // $@32 - S_hosts_databases = 297, // hosts_databases - S_298_33 = 298, // $@33 - S_database_list = 299, // database_list - S_not_empty_database_list = 300, // not_empty_database_list - S_database = 301, // database - S_302_34 = 302, // $@34 - S_database_map_params = 303, // database_map_params - S_database_map_param = 304, // database_map_param - S_database_type = 305, // database_type - S_306_35 = 306, // $@35 - S_db_type = 307, // db_type - S_user = 308, // user - S_309_36 = 309, // $@36 - S_password = 310, // password - S_311_37 = 311, // $@37 - S_host = 312, // host - S_313_38 = 313, // $@38 - S_port = 314, // port - S_name = 315, // name - S_316_39 = 316, // $@39 - S_persist = 317, // persist - S_lfc_interval = 318, // lfc_interval - S_readonly = 319, // readonly - S_connect_timeout = 320, // connect_timeout - S_reconnect_wait_time = 321, // reconnect_wait_time - S_max_row_errors = 322, // max_row_errors - S_request_timeout = 323, // request_timeout - S_tcp_keepalive = 324, // tcp_keepalive - S_tcp_nodelay = 325, // tcp_nodelay - S_contact_points = 326, // contact_points - S_327_40 = 327, // $@40 - S_max_reconnect_tries = 328, // max_reconnect_tries - S_keyspace = 329, // keyspace - S_330_41 = 330, // $@41 - S_consistency = 331, // consistency - S_332_42 = 332, // $@42 - S_serial_consistency = 333, // serial_consistency - S_334_43 = 334, // $@43 - S_sanity_checks = 335, // sanity_checks - S_336_44 = 336, // $@44 - S_sanity_checks_params = 337, // sanity_checks_params - S_sanity_checks_param = 338, // sanity_checks_param - S_lease_checks = 339, // lease_checks - S_340_45 = 340, // $@45 - S_mac_sources = 341, // mac_sources - S_342_46 = 342, // $@46 - S_mac_sources_list = 343, // mac_sources_list - S_mac_sources_value = 344, // mac_sources_value - S_duid_id = 345, // duid_id - S_string_id = 346, // string_id - S_host_reservation_identifiers = 347, // host_reservation_identifiers - S_348_47 = 348, // $@47 - S_host_reservation_identifiers_list = 349, // host_reservation_identifiers_list - S_host_reservation_identifier = 350, // host_reservation_identifier - S_hw_address_id = 351, // hw_address_id - S_flex_id = 352, // flex_id - S_relay_supplied_options = 353, // relay_supplied_options - S_354_48 = 354, // $@48 - S_dhcp_multi_threading = 355, // dhcp_multi_threading - S_356_49 = 356, // $@49 - S_multi_threading_params = 357, // multi_threading_params - S_multi_threading_param = 358, // multi_threading_param - S_enable_multi_threading = 359, // enable_multi_threading - S_thread_pool_size = 360, // thread_pool_size - S_packet_queue_size = 361, // packet_queue_size - S_hooks_libraries = 362, // hooks_libraries - S_363_50 = 363, // $@50 - S_hooks_libraries_list = 364, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 365, // not_empty_hooks_libraries_list - S_hooks_library = 366, // hooks_library - S_367_51 = 367, // $@51 - S_sub_hooks_library = 368, // sub_hooks_library - S_369_52 = 369, // $@52 - S_hooks_params = 370, // hooks_params - S_hooks_param = 371, // hooks_param - S_library = 372, // library - S_373_53 = 373, // $@53 - S_parameters = 374, // parameters - S_375_54 = 375, // $@54 - S_expired_leases_processing = 376, // expired_leases_processing - S_377_55 = 377, // $@55 - S_expired_leases_params = 378, // expired_leases_params - S_expired_leases_param = 379, // expired_leases_param - S_reclaim_timer_wait_time = 380, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 381, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 382, // hold_reclaimed_time - S_max_reclaim_leases = 383, // max_reclaim_leases - S_max_reclaim_time = 384, // max_reclaim_time - S_unwarned_reclaim_cycles = 385, // unwarned_reclaim_cycles - S_subnet6_list = 386, // subnet6_list - S_387_56 = 387, // $@56 - S_subnet6_list_content = 388, // subnet6_list_content - S_not_empty_subnet6_list = 389, // not_empty_subnet6_list - S_subnet6 = 390, // subnet6 - S_391_57 = 391, // $@57 - S_sub_subnet6 = 392, // sub_subnet6 - S_393_58 = 393, // $@58 - S_subnet6_params = 394, // subnet6_params - S_subnet6_param = 395, // subnet6_param - S_subnet = 396, // subnet - S_397_59 = 397, // $@59 - S_interface = 398, // interface - S_399_60 = 399, // $@60 - S_interface_id = 400, // interface_id - S_401_61 = 401, // $@61 - S_client_class = 402, // client_class - S_403_62 = 403, // $@62 - S_require_client_classes = 404, // require_client_classes - S_405_63 = 405, // $@63 - S_reservations_global = 406, // reservations_global - S_reservations_in_subnet = 407, // reservations_in_subnet - S_reservations_out_of_pool = 408, // reservations_out_of_pool - S_reservation_mode = 409, // reservation_mode - S_410_64 = 410, // $@64 - S_hr_mode = 411, // hr_mode - S_id = 412, // id - S_rapid_commit = 413, // rapid_commit - S_shared_networks = 414, // shared_networks - S_415_65 = 415, // $@65 - S_shared_networks_content = 416, // shared_networks_content - S_shared_networks_list = 417, // shared_networks_list - S_shared_network = 418, // shared_network - S_419_66 = 419, // $@66 - S_shared_network_params = 420, // shared_network_params - S_shared_network_param = 421, // shared_network_param - S_option_def_list = 422, // option_def_list - S_423_67 = 423, // $@67 - S_sub_option_def_list = 424, // sub_option_def_list - S_425_68 = 425, // $@68 - S_option_def_list_content = 426, // option_def_list_content - S_not_empty_option_def_list = 427, // not_empty_option_def_list - S_option_def_entry = 428, // option_def_entry - S_429_69 = 429, // $@69 - S_sub_option_def = 430, // sub_option_def - S_431_70 = 431, // $@70 - S_option_def_params = 432, // option_def_params - S_not_empty_option_def_params = 433, // not_empty_option_def_params - S_option_def_param = 434, // option_def_param - S_option_def_name = 435, // option_def_name - S_code = 436, // code - S_option_def_code = 437, // option_def_code - S_option_def_type = 438, // option_def_type - S_439_71 = 439, // $@71 - S_option_def_record_types = 440, // option_def_record_types - S_441_72 = 441, // $@72 - S_space = 442, // space - S_443_73 = 443, // $@73 - S_option_def_space = 444, // option_def_space - S_option_def_encapsulate = 445, // option_def_encapsulate - S_446_74 = 446, // $@74 - S_option_def_array = 447, // option_def_array - S_option_data_list = 448, // option_data_list - S_449_75 = 449, // $@75 - S_option_data_list_content = 450, // option_data_list_content - S_not_empty_option_data_list = 451, // not_empty_option_data_list - S_option_data_entry = 452, // option_data_entry - S_453_76 = 453, // $@76 - S_sub_option_data = 454, // sub_option_data - S_455_77 = 455, // $@77 - S_option_data_params = 456, // option_data_params - S_not_empty_option_data_params = 457, // not_empty_option_data_params - S_option_data_param = 458, // option_data_param - S_option_data_name = 459, // option_data_name - S_option_data_data = 460, // option_data_data - S_461_78 = 461, // $@78 - S_option_data_code = 462, // option_data_code - S_option_data_space = 463, // option_data_space - S_option_data_csv_format = 464, // option_data_csv_format - S_option_data_always_send = 465, // option_data_always_send - S_pools_list = 466, // pools_list - S_467_79 = 467, // $@79 - S_pools_list_content = 468, // pools_list_content - S_not_empty_pools_list = 469, // not_empty_pools_list - S_pool_list_entry = 470, // pool_list_entry - S_471_80 = 471, // $@80 - S_sub_pool6 = 472, // sub_pool6 - S_473_81 = 473, // $@81 - S_pool_params = 474, // pool_params - S_pool_param = 475, // pool_param - S_pool_entry = 476, // pool_entry - S_477_82 = 477, // $@82 - S_user_context = 478, // user_context - S_479_83 = 479, // $@83 - S_comment = 480, // comment - S_481_84 = 481, // $@84 - S_pd_pools_list = 482, // pd_pools_list - S_483_85 = 483, // $@85 - S_pd_pools_list_content = 484, // pd_pools_list_content - S_not_empty_pd_pools_list = 485, // not_empty_pd_pools_list - S_pd_pool_entry = 486, // pd_pool_entry - S_487_86 = 487, // $@86 - S_sub_pd_pool = 488, // sub_pd_pool - S_489_87 = 489, // $@87 - S_pd_pool_params = 490, // pd_pool_params - S_pd_pool_param = 491, // pd_pool_param - S_pd_prefix = 492, // pd_prefix - S_493_88 = 493, // $@88 - S_pd_prefix_len = 494, // pd_prefix_len - S_excluded_prefix = 495, // excluded_prefix - S_496_89 = 496, // $@89 - S_excluded_prefix_len = 497, // excluded_prefix_len - S_pd_delegated_len = 498, // pd_delegated_len - S_reservations = 499, // reservations - S_500_90 = 500, // $@90 - S_reservations_list = 501, // reservations_list - S_not_empty_reservations_list = 502, // not_empty_reservations_list - S_reservation = 503, // reservation - S_504_91 = 504, // $@91 - S_sub_reservation = 505, // sub_reservation - S_506_92 = 506, // $@92 - S_reservation_params = 507, // reservation_params - S_not_empty_reservation_params = 508, // not_empty_reservation_params - S_reservation_param = 509, // reservation_param - S_ip_addresses = 510, // ip_addresses - S_511_93 = 511, // $@93 - S_prefixes = 512, // prefixes - S_513_94 = 513, // $@94 - S_duid = 514, // duid - S_515_95 = 515, // $@95 - S_hw_address = 516, // hw_address - S_517_96 = 517, // $@96 - S_hostname = 518, // hostname - S_519_97 = 519, // $@97 - S_flex_id_value = 520, // flex_id_value - S_521_98 = 521, // $@98 - S_reservation_client_classes = 522, // reservation_client_classes - S_523_99 = 523, // $@99 - S_relay = 524, // relay - S_525_100 = 525, // $@100 - S_relay_map = 526, // relay_map - S_ip_address = 527, // ip_address - S_528_101 = 528, // $@101 - S_client_classes = 529, // client_classes - S_530_102 = 530, // $@102 - S_client_classes_list = 531, // client_classes_list - S_client_class_entry = 532, // client_class_entry - S_533_103 = 533, // $@103 - S_client_class_params = 534, // client_class_params - S_not_empty_client_class_params = 535, // not_empty_client_class_params - S_client_class_param = 536, // client_class_param - S_client_class_name = 537, // client_class_name - S_client_class_test = 538, // client_class_test - S_539_104 = 539, // $@104 - S_only_if_required = 540, // only_if_required - S_server_id = 541, // server_id - S_542_105 = 542, // $@105 - S_server_id_params = 543, // server_id_params - S_server_id_param = 544, // server_id_param - S_server_id_type = 545, // server_id_type - S_546_106 = 546, // $@106 - S_duid_type = 547, // duid_type - S_htype = 548, // htype - S_identifier = 549, // identifier - S_550_107 = 550, // $@107 - S_time = 551, // time - S_enterprise_id = 552, // enterprise_id - S_dhcp4o6_port = 553, // dhcp4o6_port - S_control_socket = 554, // control_socket - S_555_108 = 555, // $@108 - S_control_socket_params = 556, // control_socket_params - S_control_socket_param = 557, // control_socket_param - S_socket_type = 558, // socket_type - S_559_109 = 559, // $@109 - S_socket_name = 560, // socket_name - S_561_110 = 561, // $@110 - S_dhcp_queue_control = 562, // dhcp_queue_control - S_563_111 = 563, // $@111 - S_queue_control_params = 564, // queue_control_params - S_queue_control_param = 565, // queue_control_param - S_enable_queue = 566, // enable_queue - S_queue_type = 567, // queue_type - S_568_112 = 568, // $@112 - S_capacity = 569, // capacity - S_arbitrary_map_entry = 570, // arbitrary_map_entry - S_571_113 = 571, // $@113 - S_dhcp_ddns = 572, // dhcp_ddns - S_573_114 = 573, // $@114 - S_sub_dhcp_ddns = 574, // sub_dhcp_ddns - S_575_115 = 575, // $@115 - S_dhcp_ddns_params = 576, // dhcp_ddns_params - S_dhcp_ddns_param = 577, // dhcp_ddns_param - S_enable_updates = 578, // enable_updates - S_dep_qualifying_suffix = 579, // dep_qualifying_suffix - S_580_116 = 580, // $@116 - S_server_ip = 581, // server_ip - S_582_117 = 582, // $@117 - S_server_port = 583, // server_port - S_sender_ip = 584, // sender_ip - S_585_118 = 585, // $@118 - S_sender_port = 586, // sender_port - S_max_queue_size = 587, // max_queue_size - S_ncr_protocol = 588, // ncr_protocol - S_589_119 = 589, // $@119 - S_ncr_protocol_value = 590, // ncr_protocol_value - S_ncr_format = 591, // ncr_format - S_592_120 = 592, // $@120 - S_dep_override_no_update = 593, // dep_override_no_update - S_dep_override_client_update = 594, // dep_override_client_update - S_dep_replace_client_name = 595, // dep_replace_client_name - S_596_121 = 596, // $@121 - S_dep_generated_prefix = 597, // dep_generated_prefix - S_598_122 = 598, // $@122 - S_dep_hostname_char_set = 599, // dep_hostname_char_set - S_600_123 = 600, // $@123 - S_dep_hostname_char_replacement = 601, // dep_hostname_char_replacement - S_602_124 = 602, // $@124 - S_config_control = 603, // config_control - S_604_125 = 604, // $@125 - S_sub_config_control = 605, // sub_config_control - S_606_126 = 606, // $@126 - S_config_control_params = 607, // config_control_params - S_config_control_param = 608, // config_control_param - S_config_databases = 609, // config_databases - S_610_127 = 610, // $@127 - S_config_fetch_wait_time = 611, // config_fetch_wait_time - S_loggers = 612, // loggers - S_613_128 = 613, // $@128 - S_loggers_entries = 614, // loggers_entries - S_logger_entry = 615, // logger_entry - S_616_129 = 616, // $@129 - S_logger_params = 617, // logger_params - S_logger_param = 618, // logger_param - S_debuglevel = 619, // debuglevel - S_severity = 620, // severity - S_621_130 = 621, // $@130 - S_output_options_list = 622, // output_options_list - S_623_131 = 623, // $@131 - S_output_options_list_content = 624, // output_options_list_content - S_output_entry = 625, // output_entry - S_626_132 = 626, // $@132 - S_output_params_list = 627, // output_params_list - S_output_params = 628, // output_params - S_output = 629, // output - S_630_133 = 630, // $@133 - S_flush = 631, // flush - S_maxsize = 632, // maxsize - S_maxver = 633, // maxver - S_pattern = 634, // pattern - S_635_134 = 635 // $@134 + 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_DISABLE_DHCP_ON_DB_LOSS = 292, + TOKEN_KEYSPACE = 293, + TOKEN_CONSISTENCY = 294, + TOKEN_SERIAL_CONSISTENCY = 295, + TOKEN_REQUEST_TIMEOUT = 296, + TOKEN_TCP_KEEPALIVE = 297, + TOKEN_TCP_NODELAY = 298, + TOKEN_MAX_ROW_ERRORS = 299, + TOKEN_PREFERRED_LIFETIME = 300, + TOKEN_MIN_PREFERRED_LIFETIME = 301, + TOKEN_MAX_PREFERRED_LIFETIME = 302, + TOKEN_VALID_LIFETIME = 303, + TOKEN_MIN_VALID_LIFETIME = 304, + TOKEN_MAX_VALID_LIFETIME = 305, + TOKEN_RENEW_TIMER = 306, + TOKEN_REBIND_TIMER = 307, + TOKEN_CALCULATE_TEE_TIMES = 308, + TOKEN_T1_PERCENT = 309, + TOKEN_T2_PERCENT = 310, + TOKEN_CACHE_THRESHOLD = 311, + TOKEN_CACHE_MAX_AGE = 312, + TOKEN_DECLINE_PROBATION_PERIOD = 313, + TOKEN_SERVER_TAG = 314, + TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 315, + TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 316, + TOKEN_DDNS_SEND_UPDATES = 317, + TOKEN_DDNS_OVERRIDE_NO_UPDATE = 318, + TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 319, + TOKEN_DDNS_REPLACE_CLIENT_NAME = 320, + TOKEN_DDNS_GENERATED_PREFIX = 321, + TOKEN_DDNS_QUALIFYING_SUFFIX = 322, + TOKEN_DDNS_UPDATE_ON_RENEW = 323, + TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 324, + TOKEN_STORE_EXTENDED_INFO = 325, + TOKEN_SUBNET6 = 326, + TOKEN_OPTION_DEF = 327, + TOKEN_OPTION_DATA = 328, + TOKEN_NAME = 329, + TOKEN_DATA = 330, + TOKEN_CODE = 331, + TOKEN_SPACE = 332, + TOKEN_CSV_FORMAT = 333, + TOKEN_ALWAYS_SEND = 334, + TOKEN_RECORD_TYPES = 335, + TOKEN_ENCAPSULATE = 336, + TOKEN_ARRAY = 337, + TOKEN_SHARED_NETWORKS = 338, + TOKEN_POOLS = 339, + TOKEN_POOL = 340, + TOKEN_PD_POOLS = 341, + TOKEN_PREFIX = 342, + TOKEN_PREFIX_LEN = 343, + TOKEN_EXCLUDED_PREFIX = 344, + TOKEN_EXCLUDED_PREFIX_LEN = 345, + TOKEN_DELEGATED_LEN = 346, + TOKEN_USER_CONTEXT = 347, + TOKEN_COMMENT = 348, + TOKEN_SUBNET = 349, + TOKEN_INTERFACE = 350, + TOKEN_INTERFACE_ID = 351, + TOKEN_ID = 352, + TOKEN_RAPID_COMMIT = 353, + TOKEN_RESERVATION_MODE = 354, + TOKEN_DISABLED = 355, + TOKEN_OUT_OF_POOL = 356, + TOKEN_GLOBAL = 357, + TOKEN_ALL = 358, + TOKEN_RESERVATIONS_GLOBAL = 359, + TOKEN_RESERVATIONS_IN_SUBNET = 360, + TOKEN_RESERVATIONS_OUT_OF_POOL = 361, + TOKEN_MAC_SOURCES = 362, + TOKEN_RELAY_SUPPLIED_OPTIONS = 363, + TOKEN_HOST_RESERVATION_IDENTIFIERS = 364, + TOKEN_SANITY_CHECKS = 365, + TOKEN_LEASE_CHECKS = 366, + TOKEN_CLIENT_CLASSES = 367, + TOKEN_REQUIRE_CLIENT_CLASSES = 368, + TOKEN_TEST = 369, + TOKEN_ONLY_IF_REQUIRED = 370, + TOKEN_CLIENT_CLASS = 371, + TOKEN_RESERVATIONS = 372, + TOKEN_IP_ADDRESSES = 373, + TOKEN_PREFIXES = 374, + TOKEN_DUID = 375, + TOKEN_HW_ADDRESS = 376, + TOKEN_HOSTNAME = 377, + TOKEN_FLEX_ID = 378, + TOKEN_RELAY = 379, + TOKEN_IP_ADDRESS = 380, + TOKEN_HOOKS_LIBRARIES = 381, + TOKEN_LIBRARY = 382, + TOKEN_PARAMETERS = 383, + TOKEN_EXPIRED_LEASES_PROCESSING = 384, + TOKEN_RECLAIM_TIMER_WAIT_TIME = 385, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 386, + TOKEN_HOLD_RECLAIMED_TIME = 387, + TOKEN_MAX_RECLAIM_LEASES = 388, + TOKEN_MAX_RECLAIM_TIME = 389, + TOKEN_UNWARNED_RECLAIM_CYCLES = 390, + TOKEN_SERVER_ID = 391, + TOKEN_LLT = 392, + TOKEN_EN = 393, + TOKEN_LL = 394, + TOKEN_IDENTIFIER = 395, + TOKEN_HTYPE = 396, + TOKEN_TIME = 397, + TOKEN_ENTERPRISE_ID = 398, + TOKEN_DHCP4O6_PORT = 399, + TOKEN_DHCP_MULTI_THREADING = 400, + TOKEN_ENABLE_MULTI_THREADING = 401, + TOKEN_THREAD_POOL_SIZE = 402, + TOKEN_PACKET_QUEUE_SIZE = 403, + TOKEN_CONTROL_SOCKET = 404, + TOKEN_SOCKET_TYPE = 405, + TOKEN_SOCKET_NAME = 406, + TOKEN_DHCP_QUEUE_CONTROL = 407, + TOKEN_ENABLE_QUEUE = 408, + TOKEN_QUEUE_TYPE = 409, + TOKEN_CAPACITY = 410, + TOKEN_DHCP_DDNS = 411, + TOKEN_ENABLE_UPDATES = 412, + TOKEN_QUALIFYING_SUFFIX = 413, + TOKEN_SERVER_IP = 414, + TOKEN_SERVER_PORT = 415, + TOKEN_SENDER_IP = 416, + TOKEN_SENDER_PORT = 417, + TOKEN_MAX_QUEUE_SIZE = 418, + TOKEN_NCR_PROTOCOL = 419, + TOKEN_NCR_FORMAT = 420, + TOKEN_OVERRIDE_NO_UPDATE = 421, + TOKEN_OVERRIDE_CLIENT_UPDATE = 422, + TOKEN_REPLACE_CLIENT_NAME = 423, + TOKEN_GENERATED_PREFIX = 424, + TOKEN_UDP = 425, + TOKEN_TCP = 426, + TOKEN_JSON = 427, + TOKEN_WHEN_PRESENT = 428, + TOKEN_NEVER = 429, + TOKEN_ALWAYS = 430, + TOKEN_WHEN_NOT_PRESENT = 431, + TOKEN_HOSTNAME_CHAR_SET = 432, + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 433, + TOKEN_IP_RESERVATIONS_UNIQUE = 434, + TOKEN_LOGGERS = 435, + TOKEN_OUTPUT_OPTIONS = 436, + TOKEN_OUTPUT = 437, + TOKEN_DEBUGLEVEL = 438, + TOKEN_SEVERITY = 439, + TOKEN_FLUSH = 440, + TOKEN_MAXSIZE = 441, + TOKEN_MAXVER = 442, + TOKEN_PATTERN = 443, + TOKEN_TOPLEVEL_JSON = 444, + TOKEN_TOPLEVEL_DHCP6 = 445, + TOKEN_SUB_DHCP6 = 446, + TOKEN_SUB_INTERFACES6 = 447, + TOKEN_SUB_SUBNET6 = 448, + TOKEN_SUB_POOL6 = 449, + TOKEN_SUB_PD_POOL = 450, + TOKEN_SUB_RESERVATION = 451, + TOKEN_SUB_OPTION_DEFS = 452, + TOKEN_SUB_OPTION_DEF = 453, + TOKEN_SUB_OPTION_DATA = 454, + TOKEN_SUB_HOOKS_LIBRARY = 455, + TOKEN_SUB_DHCP_DDNS = 456, + TOKEN_SUB_CONFIG_CONTROL = 457, + TOKEN_STRING = 458, + TOKEN_INTEGER = 459, + TOKEN_FLOAT = 460, + TOKEN_BOOLEAN = 461 }; }; - /// (Internal) symbol kind. - typedef symbol_kind::symbol_kind_type symbol_kind_type; + /// (External) token type, as returned by yylex. + typedef token::yytokentype token_type; - /// The number of tokens. - static const symbol_kind_type YYNTOKENS = symbol_kind::YYNTOKENS; + /// Symbol type: an internal symbol number. + typedef int symbol_number_type; + + /// The symbol type number to denote an empty symbol. + enum { empty_symbol = -2 }; + + /// 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 @@ -1371,50 +710,13 @@ namespace isc { namespace dhcp { #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; - } - - } + basic_symbol (basic_symbol&& that); #endif /// Copy constructor. basic_symbol (const basic_symbol& that); - /// Constructors for typed symbols. + /// Constructor for valueless symbols, and symbols from each type. #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, location_type&& l) : Base (t) @@ -1426,7 +728,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) : Base (t) @@ -1440,7 +741,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) : Base (t) @@ -1454,7 +754,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) : Base (t) @@ -1468,7 +767,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) : Base (t) @@ -1482,7 +780,6 @@ namespace isc { namespace dhcp { , location (l) {} #endif - #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) : Base (t) @@ -1504,44 +801,44 @@ namespace isc { namespace dhcp { } /// Destroy contents, and record that is empty. - void clear () YY_NOEXCEPT + void clear () { // User destructor. - symbol_kind_type yykind = this->kind (); + symbol_number_type yytype = this->type_get (); basic_symbol& yysym = *this; (void) yysym; - switch (yykind) + switch (yytype) { default: break; } - // Value type destructor. -switch (yykind) + // Type destructor. +switch (yytype) { - 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 + case 223: // value + case 227: // map_value + case 268: // ddns_replace_client_name_value + case 308: // db_type + case 413: // hr_mode + case 549: // duid_type + case 592: // ncr_protocol_value value.template destroy< ElementPtr > (); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 206: // "boolean" value.template destroy< bool > (); break; - case symbol_kind::S_FLOAT: // "floating point" + case 205: // "floating point" value.template destroy< double > (); break; - case symbol_kind::S_INTEGER: // "integer" + case 204: // "integer" value.template destroy< int64_t > (); break; - case symbol_kind::S_STRING: // "constant string" + case 203: // "constant string" value.template destroy< std::string > (); break; @@ -1552,15 +849,6 @@ switch (yykind) Base::clear (); } - /// The user-facing name of this symbol. - std::string name () const YY_NOEXCEPT - { - return Dhcp6Parser::symbol_name (this->kind ()); - } - - /// Backward compatibility (Bison 3.6). - symbol_kind_type type_get () const YY_NOEXCEPT; - /// Whether empty. bool empty () const YY_NOEXCEPT; @@ -1581,51 +869,46 @@ switch (yykind) }; /// Type access provider for token (enum) based symbols. - struct by_kind + struct by_type { /// Default constructor. - by_kind (); + by_type (); #if 201103L <= YY_CPLUSPLUS /// Move constructor. - by_kind (by_kind&& that); + by_type (by_type&& that); #endif /// Copy constructor. - by_kind (const by_kind& that); + by_type (const by_type& that); - /// 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 () YY_NOEXCEPT; + 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 YY_NOEXCEPT; - /// Backward compatibility (Bison 3.6). - symbol_kind_type type_get () const YY_NOEXCEPT; - - /// 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 + struct symbol_type : basic_symbol { /// Superclass. - typedef basic_symbol super_type; + typedef basic_symbol super_type; /// Empty symbol. symbol_type () {} @@ -1634,67 +917,74 @@ switch (yykind) #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_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_DISABLE_DHCP_ON_DB_LOSS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); + } #else symbol_type (int tok, const location_type& l) : super_type(token_type (tok), l) -#endif { - PARSER6__ASSERT (tok == token::TOKEN_END - || (token::TOKEN_PARSER6_error <= tok && tok <= token::TOKEN_SUB_CONFIG_CONTROL)); + YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_DISABLE_DHCP_ON_DB_LOSS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_MAX_ROW_ERRORS || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_CACHE_THRESHOLD || tok == token::TOKEN_CACHE_MAX_AGE || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT || tok == token::TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE || tok == token::TOKEN_DDNS_SEND_UPDATES || tok == token::TOKEN_DDNS_OVERRIDE_NO_UPDATE || tok == token::TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_DDNS_REPLACE_CLIENT_NAME || tok == token::TOKEN_DDNS_GENERATED_PREFIX || tok == token::TOKEN_DDNS_QUALIFYING_SUFFIX || tok == token::TOKEN_DDNS_UPDATE_ON_RENEW || tok == token::TOKEN_DDNS_USE_CONFLICT_RESOLUTION || tok == token::TOKEN_STORE_EXTENDED_INFO || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_RESERVATIONS_GLOBAL || tok == token::TOKEN_RESERVATIONS_IN_SUBNET || tok == token::TOKEN_RESERVATIONS_OUT_OF_POOL || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_DHCP_MULTI_THREADING || tok == token::TOKEN_ENABLE_MULTI_THREADING || tok == token::TOKEN_THREAD_POOL_SIZE || tok == token::TOKEN_PACKET_QUEUE_SIZE || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_ENABLE_QUEUE || tok == token::TOKEN_QUEUE_TYPE || tok == token::TOKEN_CAPACITY || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_IP_RESERVATIONS_UNIQUE || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_CONFIG_CONTROL); } +#endif #if 201103L <= YY_CPLUSPLUS 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) -#endif { - PARSER6__ASSERT (tok == token::TOKEN_BOOLEAN); + 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) -#endif { - PARSER6__ASSERT (tok == token::TOKEN_FLOAT); + 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) -#endif { - PARSER6__ASSERT (tok == token::TOKEN_INTEGER); + 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) -#endif { - PARSER6__ASSERT (tok == token::TOKEN_STRING); + 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() (); @@ -1725,10 +1015,6 @@ 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 @@ -1745,36 +1031,6 @@ switch (yykind) 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 @@ -2285,6 +1541,21 @@ switch (yykind) return symbol_type (token::TOKEN_RECONNECT_WAIT_TIME, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_DISABLE_DHCP_ON_DB_LOSS (location_type l) + { + return symbol_type (token::TOKEN_DISABLE_DHCP_ON_DB_LOSS, std::move (l)); + } +#else + static + symbol_type + make_DISABLE_DHCP_ON_DB_LOSS (const location_type& l) + { + return symbol_type (token::TOKEN_DISABLE_DHCP_ON_DB_LOSS, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -4822,43 +4093,20 @@ switch (yykind) #endif - class context - { - public: - context (const Dhcp6Parser& yyparser, const symbol_type& yyla); - const symbol_type& lookahead () const YY_NOEXCEPT { return yyla_; } - symbol_kind_type token () const YY_NOEXCEPT { return yyla_.kind (); } - const location_type& location () const YY_NOEXCEPT { return yyla_.location; } - - /// 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; - /// 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 @@ -4875,17 +4123,10 @@ switch (yykind) static const short yypact_ninf_; static const signed char yytable_ninf_; - /// Convert a scanner token kind \a t to a symbol kind. - /// In theory \a t should be a token_kind_type, but character literals + /// Convert a scanner token number \a t to a symbol number. + /// In theory \a t should be a token_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); - - /// For a symbol, its name in clear. - static const char* const yytname_[]; - + static token_number_type yytranslate_ (int t); // Tables. // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -4921,20 +4162,26 @@ switch (yykind) 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_[]; /// 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. 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 @@ -4955,7 +4202,7 @@ switch (yykind) /// Default constructor. by_state () YY_NOEXCEPT; - /// The symbol kind as needed by the constructor. + /// The symbol type as needed by the constructor. typedef state_type kind_type; /// Constructor. @@ -4967,12 +4214,12 @@ switch (yykind) /// Record that this symbol is empty. void clear () YY_NOEXCEPT; - /// 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 YY_NOEXCEPT; /// The state number used to denote an empty symbol. /// We use the initial state, as it does not have a value. @@ -5011,8 +4258,8 @@ switch (yykind) { public: // Hide our reversed order. - typedef typename S::iterator iterator; - typedef typename S::const_iterator const_iterator; + typedef typename S::reverse_iterator iterator; + typedef typename S::const_reverse_iterator const_iterator; typedef typename S::size_type size_type; typedef typename std::ptrdiff_t index_type; @@ -5020,13 +4267,6 @@ switch (yykind) : 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. @@ -5077,18 +4317,24 @@ switch (yykind) return index_type (seq_.size ()); } + std::ptrdiff_t + ssize () const YY_NOEXCEPT + { + return std::ptrdiff_t (size ()); + } + /// Iterator on top of the stack (going downwards). const_iterator begin () const YY_NOEXCEPT { - return seq_.begin (); + return seq_.rbegin (); } /// Bottom of the stack. const_iterator end () const YY_NOEXCEPT { - return seq_.end (); + return seq_.rend (); } /// Present a slice of the top of a stack. @@ -5112,12 +4358,8 @@ switch (yykind) }; private: -#if YY_CPLUSPLUS < 201103L - /// Non copyable. stack (const stack&); - /// Non copyable. stack& operator= (const stack&); -#endif /// The wrapped container. S seq_; }; @@ -5147,28 +4389,33 @@ switch (yykind) /// Pop \a n symbols from the stack. void yypop_ (int n = 1); + /// Some specific tokens. + static const token_number_type yy_error_token_ = 1; + static const token_number_type yy_undef_token_ = 2; + /// Constants. enum { - yylast_ = 1265, ///< Last index in yytable_. - yynnts_ = 430, ///< Number of nonterminal symbols. - yyfinal_ = 30 ///< Termination state number. + yyeof_ = 0, + yylast_ = 1269, ///< Last index in yytable_. + yynnts_ = 431, ///< Number of nonterminal symbols. + yyfinal_ = 30, ///< Termination state number. + yyntokens_ = 207 ///< Number of tokens. }; // User arguments. isc::dhcp::Parser6Context& ctx; - }; inline - Dhcp6Parser::symbol_kind_type + Dhcp6Parser::token_number_type Dhcp6Parser::yytranslate_ (int 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, @@ -5217,51 +4464,92 @@ switch (yykind) 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205 + 205, 206 }; - // Last valid token kind. - const int code_max = 460; + const int user_token_number_max_ = 461; if (t <= 0) - return symbol_kind::S_YYEOF; - else if (t <= code_max) - return YY_CAST (symbol_kind_type, translate_table[t]); + return yyeof_; + else if (t <= user_token_number_max_) + return translate_table[t]; else - return symbol_kind::S_YYUNDEF; + return yy_undef_token_; } // basic_symbol. +#if 201103L <= YY_CPLUSPLUS + template + Dhcp6Parser::basic_symbol::basic_symbol (basic_symbol&& that) + : Base (std::move (that)) + , value () + , location (std::move (that.location)) + { + switch (this->type_get ()) + { + case 223: // value + case 227: // map_value + case 268: // ddns_replace_client_name_value + case 308: // db_type + case 413: // hr_mode + case 549: // duid_type + case 592: // ncr_protocol_value + value.move< ElementPtr > (std::move (that.value)); + break; + + case 206: // "boolean" + value.move< bool > (std::move (that.value)); + break; + + case 205: // "floating point" + value.move< double > (std::move (that.value)); + break; + + case 204: // "integer" + value.move< int64_t > (std::move (that.value)); + break; + + case 203: // "constant string" + value.move< std::string > (std::move (that.value)); + break; + + default: + break; + } + + } +#endif + template Dhcp6Parser::basic_symbol::basic_symbol (const basic_symbol& that) : Base (that) , value () , location (that.location) { - switch (this->kind ()) + 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 + case 223: // value + case 227: // map_value + case 268: // ddns_replace_client_name_value + case 308: // db_type + case 413: // hr_mode + case 549: // duid_type + case 592: // ncr_protocol_value value.copy< ElementPtr > (YY_MOVE (that.value)); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 206: // "boolean" value.copy< bool > (YY_MOVE (that.value)); break; - case symbol_kind::S_FLOAT: // "floating point" + case 205: // "floating point" value.copy< double > (YY_MOVE (that.value)); break; - case symbol_kind::S_INTEGER: // "integer" + case 204: // "integer" value.copy< int64_t > (YY_MOVE (that.value)); break; - case symbol_kind::S_STRING: // "constant string" + case 203: // "constant string" value.copy< std::string > (YY_MOVE (that.value)); break; @@ -5273,18 +4561,11 @@ switch (yykind) - template - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::basic_symbol::type_get () const YY_NOEXCEPT - { - return this->kind (); - } - template bool Dhcp6Parser::basic_symbol::empty () const YY_NOEXCEPT { - return this->kind () == symbol_kind::S_YYEMPTY; + return Base::type_get () == empty_symbol; } template @@ -5292,31 +4573,31 @@ switch (yykind) Dhcp6Parser::basic_symbol::move (basic_symbol& s) { super_type::move (s); - switch (this->kind ()) + 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 + case 223: // value + case 227: // map_value + case 268: // ddns_replace_client_name_value + case 308: // db_type + case 413: // hr_mode + case 549: // duid_type + case 592: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (s.value)); break; - case symbol_kind::S_BOOLEAN: // "boolean" + case 206: // "boolean" value.move< bool > (YY_MOVE (s.value)); break; - case symbol_kind::S_FLOAT: // "floating point" + case 205: // "floating point" value.move< double > (YY_MOVE (s.value)); break; - case symbol_kind::S_INTEGER: // "integer" + case 204: // "integer" value.move< int64_t > (YY_MOVE (s.value)); break; - case symbol_kind::S_STRING: // "constant string" + case 203: // "constant string" value.move< std::string > (YY_MOVE (s.value)); break; @@ -5327,63 +4608,57 @@ switch (yykind) location = YY_MOVE (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_) + Dhcp6Parser::by_type::by_type (by_type&& that) + : type (that.type) { that.clear (); } #endif inline - Dhcp6Parser::by_kind::by_kind (const by_kind& that) - : kind_ (that.kind_) + Dhcp6Parser::by_type::by_type (const by_type& that) + : type (that.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 () YY_NOEXCEPT + 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 YY_NOEXCEPT { - return kind_; - } - - inline - Dhcp6Parser::symbol_kind_type - Dhcp6Parser::by_kind::type_get () const YY_NOEXCEPT - { - return this->kind (); + return type; } #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 5387 "dhcp6_parser.h" +#line 4661 "dhcp6_parser.h" + diff --git a/src/bin/dhcp6/location.hh b/src/bin/dhcp6/location.hh index 1a8f74170c..bf5ebc3716 100644 --- a/src/bin/dhcp6/location.hh +++ b/src/bin/dhcp6/location.hh @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.7.5. +// A Bison parser, made by GNU Bison 3.5.1. // Locations for Bison parsers in C++ -// Copyright (C) 2002-2015, 2018-2021 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -61,13 +61,11 @@ namespace isc { namespace dhcp { 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, + explicit position (std::string* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) : filename (f) @@ -77,7 +75,7 @@ namespace isc { namespace dhcp { /// Initialization. - void initialize (filename_type* fn = YY_NULLPTR, + void initialize (std::string* fn = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -106,7 +104,7 @@ namespace isc { namespace dhcp { /** \} */ /// File name to which this position refers. - filename_type* filename; + std::string* filename; /// Current line number. counter_type line; /// Current column number. @@ -149,6 +147,24 @@ namespace isc { namespace dhcp { 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 @@ -166,8 +182,6 @@ namespace isc { namespace dhcp { 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; @@ -184,7 +198,7 @@ namespace isc { namespace dhcp { {} /// Construct a 0-width location in \a f, \a l, \a c. - explicit location (filename_type* f, + explicit location (std::string* f, counter_type l = 1, counter_type c = 1) : begin (f, l, c) @@ -193,7 +207,7 @@ namespace isc { namespace dhcp { /// Initialization. - void initialize (filename_type* f = YY_NULLPTR, + void initialize (std::string* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -275,6 +289,20 @@ namespace isc { namespace dhcp { 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 @@ -301,6 +329,6 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 305 "location.hh" +#line 333 "location.hh" #endif // !YY_PARSER6_LOCATION_HH_INCLUDED diff --git a/src/bin/dhcp6/position.hh b/src/bin/dhcp6/position.hh index 2d3317f224..bf34c1c57a 100644 --- a/src/bin/dhcp6/position.hh +++ b/src/bin/dhcp6/position.hh @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.5. +// A Bison parser, made by GNU Bison 3.5.1. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined in "location.hh". diff --git a/src/bin/dhcp6/stack.hh b/src/bin/dhcp6/stack.hh index fe7f93f75b..c15d84c73d 100644 --- a/src/bin/dhcp6/stack.hh +++ b/src/bin/dhcp6/stack.hh @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.5. +// A Bison parser, made by GNU Bison 3.5.1. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined with the parser itself. diff --git a/src/lib/database/tests/database_connection_unittest.cc b/src/lib/database/tests/database_connection_unittest.cc index 21ba42b46f..b47395001f 100644 --- a/src/lib/database/tests/database_connection_unittest.cc +++ b/src/lib/database/tests/database_connection_unittest.cc @@ -527,6 +527,7 @@ TEST(DatabaseConnection, toElementDbAccessStringValid) { "\"connect-timeout\" : 200, \n" "\"contact-points\": \"contact_str\", \n" "\"consistency\": \"quorum\", \n" + "\"disable-dhcp-on-db-loss\": true, \n" "\"serial-consistency\": \"serial\", \n" "\"host\": \"host_str\", \n" "\"keyspace\": \"keyspace_str\", \n"