Browse Source

[trac5097] regen flex/bison files

Francis Dupont 8 years ago
parent
commit
3e730be6be

File diff suppressed because it is too large
+ 609 - 592
src/bin/dhcp4/dhcp4_lexer.cc


File diff suppressed because it is too large
+ 1278 - 1236
src/bin/dhcp4/dhcp4_parser.cc


+ 108 - 91
src/bin/dhcp4/dhcp4_parser.h

@@ -305,6 +305,7 @@ namespace isc { namespace dhcp {
     union union_type
     union union_type
     {
     {
       // value
       // value
+      // map_value
       // socket_type
       // socket_type
       char dummy1[sizeof(ElementPtr)];
       char dummy1[sizeof(ElementPtr)];
 
 
@@ -389,66 +390,67 @@ namespace isc { namespace dhcp {
         TOKEN_ARRAY = 302,
         TOKEN_ARRAY = 302,
         TOKEN_POOLS = 303,
         TOKEN_POOLS = 303,
         TOKEN_POOL = 304,
         TOKEN_POOL = 304,
-        TOKEN_SUBNET = 305,
-        TOKEN_INTERFACE = 306,
-        TOKEN_INTERFACE_ID = 307,
-        TOKEN_ID = 308,
-        TOKEN_RAPID_COMMIT = 309,
-        TOKEN_RESERVATION_MODE = 310,
-        TOKEN_HOST_RESERVATION_IDENTIFIERS = 311,
-        TOKEN_CLIENT_CLASSES = 312,
-        TOKEN_TEST = 313,
-        TOKEN_CLIENT_CLASS = 314,
-        TOKEN_RESERVATIONS = 315,
-        TOKEN_DUID = 316,
-        TOKEN_HW_ADDRESS = 317,
-        TOKEN_CIRCUIT_ID = 318,
-        TOKEN_CLIENT_ID = 319,
-        TOKEN_HOSTNAME = 320,
-        TOKEN_RELAY = 321,
-        TOKEN_IP_ADDRESS = 322,
-        TOKEN_HOOKS_LIBRARIES = 323,
-        TOKEN_LIBRARY = 324,
-        TOKEN_PARAMETERS = 325,
-        TOKEN_EXPIRED_LEASES_PROCESSING = 326,
-        TOKEN_RECLAIM_TIMER_WAIT_TIME = 327,
-        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 328,
-        TOKEN_HOLD_RECLAIMED_TIME = 329,
-        TOKEN_MAX_RECLAIM_LEASES = 330,
-        TOKEN_MAX_RECLAIM_TIME = 331,
-        TOKEN_UNWARNED_RECLAIM_CYCLES = 332,
-        TOKEN_SERVER_ID = 333,
-        TOKEN_IDENTIFIER = 334,
-        TOKEN_HTYPE = 335,
-        TOKEN_TIME = 336,
-        TOKEN_ENTERPRISE_ID = 337,
-        TOKEN_DHCP4O6_PORT = 338,
-        TOKEN_CONTROL_SOCKET = 339,
-        TOKEN_SOCKET_TYPE = 340,
-        TOKEN_SOCKET_NAME = 341,
-        TOKEN_DHCP_DDNS = 342,
-        TOKEN_LOGGING = 343,
-        TOKEN_LOGGERS = 344,
-        TOKEN_OUTPUT_OPTIONS = 345,
-        TOKEN_OUTPUT = 346,
-        TOKEN_DEBUGLEVEL = 347,
-        TOKEN_SEVERITY = 348,
-        TOKEN_DHCP6 = 349,
-        TOKEN_DHCPDDNS = 350,
-        TOKEN_TOPLEVEL_JSON = 351,
-        TOKEN_TOPLEVEL_DHCP4 = 352,
-        TOKEN_SUB_DHCP4 = 353,
-        TOKEN_SUB_INTERFACES4 = 354,
-        TOKEN_SUB_SUBNET4 = 355,
-        TOKEN_SUB_POOL4 = 356,
-        TOKEN_SUB_RESERVATION = 357,
-        TOKEN_SUB_OPTION_DEF = 358,
-        TOKEN_SUB_OPTION_DATA = 359,
-        TOKEN_SUB_HOOKS_LIBRARY = 360,
-        TOKEN_STRING = 361,
-        TOKEN_INTEGER = 362,
-        TOKEN_FLOAT = 363,
-        TOKEN_BOOLEAN = 364
+        TOKEN_USER_CONTEXT = 305,
+        TOKEN_SUBNET = 306,
+        TOKEN_INTERFACE = 307,
+        TOKEN_INTERFACE_ID = 308,
+        TOKEN_ID = 309,
+        TOKEN_RAPID_COMMIT = 310,
+        TOKEN_RESERVATION_MODE = 311,
+        TOKEN_HOST_RESERVATION_IDENTIFIERS = 312,
+        TOKEN_CLIENT_CLASSES = 313,
+        TOKEN_TEST = 314,
+        TOKEN_CLIENT_CLASS = 315,
+        TOKEN_RESERVATIONS = 316,
+        TOKEN_DUID = 317,
+        TOKEN_HW_ADDRESS = 318,
+        TOKEN_CIRCUIT_ID = 319,
+        TOKEN_CLIENT_ID = 320,
+        TOKEN_HOSTNAME = 321,
+        TOKEN_RELAY = 322,
+        TOKEN_IP_ADDRESS = 323,
+        TOKEN_HOOKS_LIBRARIES = 324,
+        TOKEN_LIBRARY = 325,
+        TOKEN_PARAMETERS = 326,
+        TOKEN_EXPIRED_LEASES_PROCESSING = 327,
+        TOKEN_RECLAIM_TIMER_WAIT_TIME = 328,
+        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 329,
+        TOKEN_HOLD_RECLAIMED_TIME = 330,
+        TOKEN_MAX_RECLAIM_LEASES = 331,
+        TOKEN_MAX_RECLAIM_TIME = 332,
+        TOKEN_UNWARNED_RECLAIM_CYCLES = 333,
+        TOKEN_SERVER_ID = 334,
+        TOKEN_IDENTIFIER = 335,
+        TOKEN_HTYPE = 336,
+        TOKEN_TIME = 337,
+        TOKEN_ENTERPRISE_ID = 338,
+        TOKEN_DHCP4O6_PORT = 339,
+        TOKEN_CONTROL_SOCKET = 340,
+        TOKEN_SOCKET_TYPE = 341,
+        TOKEN_SOCKET_NAME = 342,
+        TOKEN_DHCP_DDNS = 343,
+        TOKEN_LOGGING = 344,
+        TOKEN_LOGGERS = 345,
+        TOKEN_OUTPUT_OPTIONS = 346,
+        TOKEN_OUTPUT = 347,
+        TOKEN_DEBUGLEVEL = 348,
+        TOKEN_SEVERITY = 349,
+        TOKEN_DHCP6 = 350,
+        TOKEN_DHCPDDNS = 351,
+        TOKEN_TOPLEVEL_JSON = 352,
+        TOKEN_TOPLEVEL_DHCP4 = 353,
+        TOKEN_SUB_DHCP4 = 354,
+        TOKEN_SUB_INTERFACES4 = 355,
+        TOKEN_SUB_SUBNET4 = 356,
+        TOKEN_SUB_POOL4 = 357,
+        TOKEN_SUB_RESERVATION = 358,
+        TOKEN_SUB_OPTION_DEF = 359,
+        TOKEN_SUB_OPTION_DATA = 360,
+        TOKEN_SUB_HOOKS_LIBRARY = 361,
+        TOKEN_STRING = 362,
+        TOKEN_INTEGER = 363,
+        TOKEN_FLOAT = 364,
+        TOKEN_BOOLEAN = 365
       };
       };
     };
     };
 
 
@@ -757,6 +759,10 @@ namespace isc { namespace dhcp {
 
 
     static inline
     static inline
     symbol_type
     symbol_type
+    make_USER_CONTEXT (const location_type& l);
+
+    static inline
+    symbol_type
     make_SUBNET (const location_type& l);
     make_SUBNET (const location_type& l);
 
 
     static inline
     static inline
@@ -1200,12 +1206,12 @@ namespace isc { namespace dhcp {
     enum
     enum
     {
     {
       yyeof_ = 0,
       yyeof_ = 0,
-      yylast_ = 647,     ///< Last index in yytable_.
-      yynnts_ = 274,  ///< Number of nonterminal symbols.
+      yylast_ = 653,     ///< Last index in yytable_.
+      yynnts_ = 277,  ///< Number of nonterminal symbols.
       yyfinal_ = 22, ///< Termination state number.
       yyfinal_ = 22, ///< Termination state number.
       yyterror_ = 1,
       yyterror_ = 1,
       yyerrcode_ = 256,
       yyerrcode_ = 256,
-      yyntokens_ = 110  ///< Number of tokens.
+      yyntokens_ = 111  ///< Number of tokens.
     };
     };
 
 
 
 
@@ -1258,9 +1264,9 @@ namespace isc { namespace dhcp {
       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109
+     105,   106,   107,   108,   109,   110
     };
     };
-    const unsigned int user_token_number_max_ = 364;
+    const unsigned int user_token_number_max_ = 365;
     const token_number_type undef_token_ = 2;
     const token_number_type undef_token_ = 2;
 
 
     if (static_cast<int>(t) <= yyeof_)
     if (static_cast<int>(t) <= yyeof_)
@@ -1293,24 +1299,25 @@ namespace isc { namespace dhcp {
   {
   {
       switch (other.type_get ())
       switch (other.type_get ())
     {
     {
-      case 122: // value
-      case 161: // socket_type
+      case 123: // value
+      case 127: // map_value
+      case 163: // socket_type
         value.copy< ElementPtr > (other.value);
         value.copy< ElementPtr > (other.value);
         break;
         break;
 
 
-      case 109: // "boolean"
+      case 110: // "boolean"
         value.copy< bool > (other.value);
         value.copy< bool > (other.value);
         break;
         break;
 
 
-      case 108: // "floating point"
+      case 109: // "floating point"
         value.copy< double > (other.value);
         value.copy< double > (other.value);
         break;
         break;
 
 
-      case 107: // "integer"
+      case 108: // "integer"
         value.copy< int64_t > (other.value);
         value.copy< int64_t > (other.value);
         break;
         break;
 
 
-      case 106: // "constant string"
+      case 107: // "constant string"
         value.copy< std::string > (other.value);
         value.copy< std::string > (other.value);
         break;
         break;
 
 
@@ -1331,24 +1338,25 @@ namespace isc { namespace dhcp {
     (void) v;
     (void) v;
       switch (this->type_get ())
       switch (this->type_get ())
     {
     {
-      case 122: // value
-      case 161: // socket_type
+      case 123: // value
+      case 127: // map_value
+      case 163: // socket_type
         value.copy< ElementPtr > (v);
         value.copy< ElementPtr > (v);
         break;
         break;
 
 
-      case 109: // "boolean"
+      case 110: // "boolean"
         value.copy< bool > (v);
         value.copy< bool > (v);
         break;
         break;
 
 
-      case 108: // "floating point"
+      case 109: // "floating point"
         value.copy< double > (v);
         value.copy< double > (v);
         break;
         break;
 
 
-      case 107: // "integer"
+      case 108: // "integer"
         value.copy< int64_t > (v);
         value.copy< int64_t > (v);
         break;
         break;
 
 
-      case 106: // "constant string"
+      case 107: // "constant string"
         value.copy< std::string > (v);
         value.copy< std::string > (v);
         break;
         break;
 
 
@@ -1428,24 +1436,25 @@ namespace isc { namespace dhcp {
     // Type destructor.
     // Type destructor.
     switch (yytype)
     switch (yytype)
     {
     {
-      case 122: // value
-      case 161: // socket_type
+      case 123: // value
+      case 127: // map_value
+      case 163: // socket_type
         value.template destroy< ElementPtr > ();
         value.template destroy< ElementPtr > ();
         break;
         break;
 
 
-      case 109: // "boolean"
+      case 110: // "boolean"
         value.template destroy< bool > ();
         value.template destroy< bool > ();
         break;
         break;
 
 
-      case 108: // "floating point"
+      case 109: // "floating point"
         value.template destroy< double > ();
         value.template destroy< double > ();
         break;
         break;
 
 
-      case 107: // "integer"
+      case 108: // "integer"
         value.template destroy< int64_t > ();
         value.template destroy< int64_t > ();
         break;
         break;
 
 
-      case 106: // "constant string"
+      case 107: // "constant string"
         value.template destroy< std::string > ();
         value.template destroy< std::string > ();
         break;
         break;
 
 
@@ -1472,24 +1481,25 @@ namespace isc { namespace dhcp {
     super_type::move(s);
     super_type::move(s);
       switch (this->type_get ())
       switch (this->type_get ())
     {
     {
-      case 122: // value
-      case 161: // socket_type
+      case 123: // value
+      case 127: // map_value
+      case 163: // socket_type
         value.move< ElementPtr > (s.value);
         value.move< ElementPtr > (s.value);
         break;
         break;
 
 
-      case 109: // "boolean"
+      case 110: // "boolean"
         value.move< bool > (s.value);
         value.move< bool > (s.value);
         break;
         break;
 
 
-      case 108: // "floating point"
+      case 109: // "floating point"
         value.move< double > (s.value);
         value.move< double > (s.value);
         break;
         break;
 
 
-      case 107: // "integer"
+      case 108: // "integer"
         value.move< int64_t > (s.value);
         value.move< int64_t > (s.value);
         break;
         break;
 
 
-      case 106: // "constant string"
+      case 107: // "constant string"
         value.move< std::string > (s.value);
         value.move< std::string > (s.value);
         break;
         break;
 
 
@@ -1558,7 +1568,8 @@ namespace isc { namespace dhcp {
      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
-     355,   356,   357,   358,   359,   360,   361,   362,   363,   364
+     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
+     365
     };
     };
     return static_cast<token_type> (yytoken_number_[type]);
     return static_cast<token_type> (yytoken_number_[type]);
   }
   }
@@ -1852,6 +1863,12 @@ namespace isc { namespace dhcp {
   }
   }
 
 
   Dhcp4Parser::symbol_type
   Dhcp4Parser::symbol_type
+  Dhcp4Parser::make_USER_CONTEXT (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_USER_CONTEXT, l);
+  }
+
+  Dhcp4Parser::symbol_type
   Dhcp4Parser::make_SUBNET (const location_type& l)
   Dhcp4Parser::make_SUBNET (const location_type& l)
   {
   {
     return symbol_type (token::TOKEN_SUBNET, l);
     return symbol_type (token::TOKEN_SUBNET, l);
@@ -2214,7 +2231,7 @@ namespace isc { namespace dhcp {
 
 
 #line 14 "dhcp4_parser.yy" // lalr1.cc:377
 #line 14 "dhcp4_parser.yy" // lalr1.cc:377
 } } // isc::dhcp
 } } // isc::dhcp
-#line 2218 "dhcp4_parser.h" // lalr1.cc:377
+#line 2235 "dhcp4_parser.h" // lalr1.cc:377
 
 
 
 
 
 

+ 1 - 1
src/bin/dhcp4/location.hh

@@ -1,4 +1,4 @@
-// Generated 201701102225
+// Generated 201701120056
 // A Bison parser, made by GNU Bison 3.0.4.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Locations for Bison parsers in C++
 // Locations for Bison parsers in C++

+ 1 - 1
src/bin/dhcp4/position.hh

@@ -1,4 +1,4 @@
-// Generated 201701102225
+// Generated 201701120056
 // A Bison parser, made by GNU Bison 3.0.4.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Positions for Bison parsers in C++
 // Positions for Bison parsers in C++

+ 1 - 1
src/bin/dhcp4/stack.hh

@@ -1,4 +1,4 @@
-// Generated 201701102225
+// Generated 201701120056
 // A Bison parser, made by GNU Bison 3.0.4.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Stack handling for Bison parsers in C++
 // Stack handling for Bison parsers in C++

File diff suppressed because it is too large
+ 598 - 579
src/bin/dhcp6/dhcp6_lexer.cc


File diff suppressed because it is too large
+ 1287 - 1252
src/bin/dhcp6/dhcp6_parser.cc


+ 113 - 97
src/bin/dhcp6/dhcp6_parser.h

@@ -305,6 +305,7 @@ namespace isc { namespace dhcp {
     union union_type
     union union_type
     {
     {
       // value
       // value
+      // map_value
       // duid_type
       // duid_type
       char dummy1[sizeof(ElementPtr)];
       char dummy1[sizeof(ElementPtr)];
 
 
@@ -385,72 +386,73 @@ namespace isc { namespace dhcp {
         TOKEN_EXCLUDED_PREFIX = 298,
         TOKEN_EXCLUDED_PREFIX = 298,
         TOKEN_EXCLUDED_PREFIX_LEN = 299,
         TOKEN_EXCLUDED_PREFIX_LEN = 299,
         TOKEN_DELEGATED_LEN = 300,
         TOKEN_DELEGATED_LEN = 300,
-        TOKEN_SUBNET = 301,
-        TOKEN_INTERFACE = 302,
-        TOKEN_INTERFACE_ID = 303,
-        TOKEN_ID = 304,
-        TOKEN_RAPID_COMMIT = 305,
-        TOKEN_RESERVATION_MODE = 306,
-        TOKEN_MAC_SOURCES = 307,
-        TOKEN_RELAY_SUPPLIED_OPTIONS = 308,
-        TOKEN_HOST_RESERVATION_IDENTIFIERS = 309,
-        TOKEN_CLIENT_CLASSES = 310,
-        TOKEN_TEST = 311,
-        TOKEN_CLIENT_CLASS = 312,
-        TOKEN_RESERVATIONS = 313,
-        TOKEN_IP_ADDRESSES = 314,
-        TOKEN_PREFIXES = 315,
-        TOKEN_DUID = 316,
-        TOKEN_HW_ADDRESS = 317,
-        TOKEN_HOSTNAME = 318,
-        TOKEN_RELAY = 319,
-        TOKEN_IP_ADDRESS = 320,
-        TOKEN_HOOKS_LIBRARIES = 321,
-        TOKEN_LIBRARY = 322,
-        TOKEN_PARAMETERS = 323,
-        TOKEN_EXPIRED_LEASES_PROCESSING = 324,
-        TOKEN_RECLAIM_TIMER_WAIT_TIME = 325,
-        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 326,
-        TOKEN_HOLD_RECLAIMED_TIME = 327,
-        TOKEN_MAX_RECLAIM_LEASES = 328,
-        TOKEN_MAX_RECLAIM_TIME = 329,
-        TOKEN_UNWARNED_RECLAIM_CYCLES = 330,
-        TOKEN_SERVER_ID = 331,
-        TOKEN_LLT = 332,
-        TOKEN_EN = 333,
-        TOKEN_LL = 334,
-        TOKEN_IDENTIFIER = 335,
-        TOKEN_HTYPE = 336,
-        TOKEN_TIME = 337,
-        TOKEN_ENTERPRISE_ID = 338,
-        TOKEN_DHCP4O6_PORT = 339,
-        TOKEN_CONTROL_SOCKET = 340,
-        TOKEN_SOCKET_TYPE = 341,
-        TOKEN_SOCKET_NAME = 342,
-        TOKEN_DHCP_DDNS = 343,
-        TOKEN_LOGGING = 344,
-        TOKEN_LOGGERS = 345,
-        TOKEN_OUTPUT_OPTIONS = 346,
-        TOKEN_OUTPUT = 347,
-        TOKEN_DEBUGLEVEL = 348,
-        TOKEN_SEVERITY = 349,
-        TOKEN_DHCP4 = 350,
-        TOKEN_DHCPDDNS = 351,
-        TOKEN_TOPLEVEL_JSON = 352,
-        TOKEN_TOPLEVEL_DHCP6 = 353,
-        TOKEN_SUB_DHCP6 = 354,
-        TOKEN_SUB_INTERFACES6 = 355,
-        TOKEN_SUB_SUBNET6 = 356,
-        TOKEN_SUB_POOL6 = 357,
-        TOKEN_SUB_PD_POOL = 358,
-        TOKEN_SUB_RESERVATION = 359,
-        TOKEN_SUB_OPTION_DEF = 360,
-        TOKEN_SUB_OPTION_DATA = 361,
-        TOKEN_SUB_HOOKS_LIBRARY = 362,
-        TOKEN_STRING = 363,
-        TOKEN_INTEGER = 364,
-        TOKEN_FLOAT = 365,
-        TOKEN_BOOLEAN = 366
+        TOKEN_USER_CONTEXT = 301,
+        TOKEN_SUBNET = 302,
+        TOKEN_INTERFACE = 303,
+        TOKEN_INTERFACE_ID = 304,
+        TOKEN_ID = 305,
+        TOKEN_RAPID_COMMIT = 306,
+        TOKEN_RESERVATION_MODE = 307,
+        TOKEN_MAC_SOURCES = 308,
+        TOKEN_RELAY_SUPPLIED_OPTIONS = 309,
+        TOKEN_HOST_RESERVATION_IDENTIFIERS = 310,
+        TOKEN_CLIENT_CLASSES = 311,
+        TOKEN_TEST = 312,
+        TOKEN_CLIENT_CLASS = 313,
+        TOKEN_RESERVATIONS = 314,
+        TOKEN_IP_ADDRESSES = 315,
+        TOKEN_PREFIXES = 316,
+        TOKEN_DUID = 317,
+        TOKEN_HW_ADDRESS = 318,
+        TOKEN_HOSTNAME = 319,
+        TOKEN_RELAY = 320,
+        TOKEN_IP_ADDRESS = 321,
+        TOKEN_HOOKS_LIBRARIES = 322,
+        TOKEN_LIBRARY = 323,
+        TOKEN_PARAMETERS = 324,
+        TOKEN_EXPIRED_LEASES_PROCESSING = 325,
+        TOKEN_RECLAIM_TIMER_WAIT_TIME = 326,
+        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 327,
+        TOKEN_HOLD_RECLAIMED_TIME = 328,
+        TOKEN_MAX_RECLAIM_LEASES = 329,
+        TOKEN_MAX_RECLAIM_TIME = 330,
+        TOKEN_UNWARNED_RECLAIM_CYCLES = 331,
+        TOKEN_SERVER_ID = 332,
+        TOKEN_LLT = 333,
+        TOKEN_EN = 334,
+        TOKEN_LL = 335,
+        TOKEN_IDENTIFIER = 336,
+        TOKEN_HTYPE = 337,
+        TOKEN_TIME = 338,
+        TOKEN_ENTERPRISE_ID = 339,
+        TOKEN_DHCP4O6_PORT = 340,
+        TOKEN_CONTROL_SOCKET = 341,
+        TOKEN_SOCKET_TYPE = 342,
+        TOKEN_SOCKET_NAME = 343,
+        TOKEN_DHCP_DDNS = 344,
+        TOKEN_LOGGING = 345,
+        TOKEN_LOGGERS = 346,
+        TOKEN_OUTPUT_OPTIONS = 347,
+        TOKEN_OUTPUT = 348,
+        TOKEN_DEBUGLEVEL = 349,
+        TOKEN_SEVERITY = 350,
+        TOKEN_DHCP4 = 351,
+        TOKEN_DHCPDDNS = 352,
+        TOKEN_TOPLEVEL_JSON = 353,
+        TOKEN_TOPLEVEL_DHCP6 = 354,
+        TOKEN_SUB_DHCP6 = 355,
+        TOKEN_SUB_INTERFACES6 = 356,
+        TOKEN_SUB_SUBNET6 = 357,
+        TOKEN_SUB_POOL6 = 358,
+        TOKEN_SUB_PD_POOL = 359,
+        TOKEN_SUB_RESERVATION = 360,
+        TOKEN_SUB_OPTION_DEF = 361,
+        TOKEN_SUB_OPTION_DATA = 362,
+        TOKEN_SUB_HOOKS_LIBRARY = 363,
+        TOKEN_STRING = 364,
+        TOKEN_INTEGER = 365,
+        TOKEN_FLOAT = 366,
+        TOKEN_BOOLEAN = 367
       };
       };
     };
     };
 
 
@@ -743,6 +745,10 @@ namespace isc { namespace dhcp {
 
 
     static inline
     static inline
     symbol_type
     symbol_type
+    make_USER_CONTEXT (const location_type& l);
+
+    static inline
+    symbol_type
     make_SUBNET (const location_type& l);
     make_SUBNET (const location_type& l);
 
 
     static inline
     static inline
@@ -1210,12 +1216,12 @@ namespace isc { namespace dhcp {
     enum
     enum
     {
     {
       yyeof_ = 0,
       yyeof_ = 0,
-      yylast_ = 661,     ///< Last index in yytable_.
-      yynnts_ = 281,  ///< Number of nonterminal symbols.
+      yylast_ = 668,     ///< Last index in yytable_.
+      yynnts_ = 284,  ///< Number of nonterminal symbols.
       yyfinal_ = 24, ///< Termination state number.
       yyfinal_ = 24, ///< Termination state number.
       yyterror_ = 1,
       yyterror_ = 1,
       yyerrcode_ = 256,
       yyerrcode_ = 256,
-      yyntokens_ = 112  ///< Number of tokens.
+      yyntokens_ = 113  ///< Number of tokens.
     };
     };
 
 
 
 
@@ -1268,9 +1274,9 @@ namespace isc { namespace dhcp {
       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109,   110,   111
+     105,   106,   107,   108,   109,   110,   111,   112
     };
     };
-    const unsigned int user_token_number_max_ = 366;
+    const unsigned int user_token_number_max_ = 367;
     const token_number_type undef_token_ = 2;
     const token_number_type undef_token_ = 2;
 
 
     if (static_cast<int>(t) <= yyeof_)
     if (static_cast<int>(t) <= yyeof_)
@@ -1303,24 +1309,25 @@ namespace isc { namespace dhcp {
   {
   {
       switch (other.type_get ())
       switch (other.type_get ())
     {
     {
-      case 125: // value
-      case 350: // duid_type
+      case 126: // value
+      case 130: // map_value
+      case 354: // duid_type
         value.copy< ElementPtr > (other.value);
         value.copy< ElementPtr > (other.value);
         break;
         break;
 
 
-      case 111: // "boolean"
+      case 112: // "boolean"
         value.copy< bool > (other.value);
         value.copy< bool > (other.value);
         break;
         break;
 
 
-      case 110: // "floating point"
+      case 111: // "floating point"
         value.copy< double > (other.value);
         value.copy< double > (other.value);
         break;
         break;
 
 
-      case 109: // "integer"
+      case 110: // "integer"
         value.copy< int64_t > (other.value);
         value.copy< int64_t > (other.value);
         break;
         break;
 
 
-      case 108: // "constant string"
+      case 109: // "constant string"
         value.copy< std::string > (other.value);
         value.copy< std::string > (other.value);
         break;
         break;
 
 
@@ -1341,24 +1348,25 @@ namespace isc { namespace dhcp {
     (void) v;
     (void) v;
       switch (this->type_get ())
       switch (this->type_get ())
     {
     {
-      case 125: // value
-      case 350: // duid_type
+      case 126: // value
+      case 130: // map_value
+      case 354: // duid_type
         value.copy< ElementPtr > (v);
         value.copy< ElementPtr > (v);
         break;
         break;
 
 
-      case 111: // "boolean"
+      case 112: // "boolean"
         value.copy< bool > (v);
         value.copy< bool > (v);
         break;
         break;
 
 
-      case 110: // "floating point"
+      case 111: // "floating point"
         value.copy< double > (v);
         value.copy< double > (v);
         break;
         break;
 
 
-      case 109: // "integer"
+      case 110: // "integer"
         value.copy< int64_t > (v);
         value.copy< int64_t > (v);
         break;
         break;
 
 
-      case 108: // "constant string"
+      case 109: // "constant string"
         value.copy< std::string > (v);
         value.copy< std::string > (v);
         break;
         break;
 
 
@@ -1438,24 +1446,25 @@ namespace isc { namespace dhcp {
     // Type destructor.
     // Type destructor.
     switch (yytype)
     switch (yytype)
     {
     {
-      case 125: // value
-      case 350: // duid_type
+      case 126: // value
+      case 130: // map_value
+      case 354: // duid_type
         value.template destroy< ElementPtr > ();
         value.template destroy< ElementPtr > ();
         break;
         break;
 
 
-      case 111: // "boolean"
+      case 112: // "boolean"
         value.template destroy< bool > ();
         value.template destroy< bool > ();
         break;
         break;
 
 
-      case 110: // "floating point"
+      case 111: // "floating point"
         value.template destroy< double > ();
         value.template destroy< double > ();
         break;
         break;
 
 
-      case 109: // "integer"
+      case 110: // "integer"
         value.template destroy< int64_t > ();
         value.template destroy< int64_t > ();
         break;
         break;
 
 
-      case 108: // "constant string"
+      case 109: // "constant string"
         value.template destroy< std::string > ();
         value.template destroy< std::string > ();
         break;
         break;
 
 
@@ -1482,24 +1491,25 @@ namespace isc { namespace dhcp {
     super_type::move(s);
     super_type::move(s);
       switch (this->type_get ())
       switch (this->type_get ())
     {
     {
-      case 125: // value
-      case 350: // duid_type
+      case 126: // value
+      case 130: // map_value
+      case 354: // duid_type
         value.move< ElementPtr > (s.value);
         value.move< ElementPtr > (s.value);
         break;
         break;
 
 
-      case 111: // "boolean"
+      case 112: // "boolean"
         value.move< bool > (s.value);
         value.move< bool > (s.value);
         break;
         break;
 
 
-      case 110: // "floating point"
+      case 111: // "floating point"
         value.move< double > (s.value);
         value.move< double > (s.value);
         break;
         break;
 
 
-      case 109: // "integer"
+      case 110: // "integer"
         value.move< int64_t > (s.value);
         value.move< int64_t > (s.value);
         break;
         break;
 
 
-      case 108: // "constant string"
+      case 109: // "constant string"
         value.move< std::string > (s.value);
         value.move< std::string > (s.value);
         break;
         break;
 
 
@@ -1569,7 +1579,7 @@ namespace isc { namespace dhcp {
      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
-     365,   366
+     365,   366,   367
     };
     };
     return static_cast<token_type> (yytoken_number_[type]);
     return static_cast<token_type> (yytoken_number_[type]);
   }
   }
@@ -1839,6 +1849,12 @@ namespace isc { namespace dhcp {
   }
   }
 
 
   Dhcp6Parser::symbol_type
   Dhcp6Parser::symbol_type
+  Dhcp6Parser::make_USER_CONTEXT (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_USER_CONTEXT, l);
+  }
+
+  Dhcp6Parser::symbol_type
   Dhcp6Parser::make_SUBNET (const location_type& l)
   Dhcp6Parser::make_SUBNET (const location_type& l)
   {
   {
     return symbol_type (token::TOKEN_SUBNET, l);
     return symbol_type (token::TOKEN_SUBNET, l);
@@ -2237,7 +2253,7 @@ namespace isc { namespace dhcp {
 
 
 #line 14 "dhcp6_parser.yy" // lalr1.cc:377
 #line 14 "dhcp6_parser.yy" // lalr1.cc:377
 } } // isc::dhcp
 } } // isc::dhcp
-#line 2241 "dhcp6_parser.h" // lalr1.cc:377
+#line 2257 "dhcp6_parser.h" // lalr1.cc:377
 
 
 
 
 
 

+ 1 - 1
src/bin/dhcp6/location.hh

@@ -1,4 +1,4 @@
-// Generated 201701102225
+// Generated 201701120056
 // A Bison parser, made by GNU Bison 3.0.4.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Locations for Bison parsers in C++
 // Locations for Bison parsers in C++

+ 1 - 1
src/bin/dhcp6/position.hh

@@ -1,4 +1,4 @@
-// Generated 201701102225
+// Generated 201701120056
 // A Bison parser, made by GNU Bison 3.0.4.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Positions for Bison parsers in C++
 // Positions for Bison parsers in C++

+ 1 - 1
src/bin/dhcp6/stack.hh

@@ -1,4 +1,4 @@
-// Generated 201701102225
+// Generated 201701120056
 // A Bison parser, made by GNU Bison 3.0.4.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Stack handling for Bison parsers in C++
 // Stack handling for Bison parsers in C++