]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[5425a] Parser regenerated trac5425a
authorTomek Mrugalski <tomasz@isc.org>
Fri, 26 Jan 2018 23:11:16 +0000 (00:11 +0100)
committerTomek Mrugalski <tomasz@isc.org>
Fri, 26 Jan 2018 23:11:16 +0000 (00:11 +0100)
src/bin/dhcp4/dhcp4_lexer.cc
src/bin/dhcp4/dhcp4_parser.cc
src/bin/dhcp6/dhcp6_lexer.cc
src/bin/dhcp6/dhcp6_parser.cc
src/bin/dhcp6/dhcp6_parser.h

index 25f15adda84c1dd14804be9ab1b5ce44eecad0bb..f9a3d83926907f6e14dc461ce0bacb64073112b1 100644 (file)
@@ -1,27 +1,22 @@
-#line 1 "dhcp4_lexer.cc"
+#line 2 "dhcp4_lexer.cc"
 
-#line 3 "dhcp4_lexer.cc"
+#line 4 "dhcp4_lexer.cc"
 
 #define  YY_INT_ALIGNED short int
 
 /* A lexical scanner generated by flex */
 
 /* %not-for-header */
+
 /* %if-c-only */
 /* %if-not-reentrant */
 #define yy_create_buffer parser4__create_buffer
 #define yy_delete_buffer parser4__delete_buffer
-#define yy_scan_buffer parser4__scan_buffer
-#define yy_scan_string parser4__scan_string
-#define yy_scan_bytes parser4__scan_bytes
+#define yy_flex_debug parser4__flex_debug
 #define yy_init_buffer parser4__init_buffer
 #define yy_flush_buffer parser4__flush_buffer
 #define yy_load_buffer_state parser4__load_buffer_state
 #define yy_switch_to_buffer parser4__switch_to_buffer
-#define yypush_buffer_state parser4_push_buffer_state
-#define yypop_buffer_state parser4_pop_buffer_state
-#define yyensure_buffer_stack parser4_ensure_buffer_stack
-#define yy_flex_debug parser4__flex_debug
 #define yyin parser4_in
 #define yyleng parser4_leng
 #define yylex parser4_lex
@@ -41,7 +36,7 @@
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 6
-#define YY_FLEX_SUBMINOR_VERSION 4
+#define YY_FLEX_SUBMINOR_VERSION 1
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
 /* %endif */
 
 /* %if-c-only */
-#ifdef yy_create_buffer
-#define parser4__create_buffer_ALREADY_DEFINED
-#else
-#define yy_create_buffer parser4__create_buffer
-#endif
-
-#ifdef yy_delete_buffer
-#define parser4__delete_buffer_ALREADY_DEFINED
-#else
-#define yy_delete_buffer parser4__delete_buffer
-#endif
-
-#ifdef yy_scan_buffer
-#define parser4__scan_buffer_ALREADY_DEFINED
-#else
-#define yy_scan_buffer parser4__scan_buffer
-#endif
-
-#ifdef yy_scan_string
-#define parser4__scan_string_ALREADY_DEFINED
-#else
-#define yy_scan_string parser4__scan_string
-#endif
-
-#ifdef yy_scan_bytes
-#define parser4__scan_bytes_ALREADY_DEFINED
-#else
-#define yy_scan_bytes parser4__scan_bytes
-#endif
-
-#ifdef yy_init_buffer
-#define parser4__init_buffer_ALREADY_DEFINED
-#else
-#define yy_init_buffer parser4__init_buffer
-#endif
-
-#ifdef yy_flush_buffer
-#define parser4__flush_buffer_ALREADY_DEFINED
-#else
-#define yy_flush_buffer parser4__flush_buffer
-#endif
-
-#ifdef yy_load_buffer_state
-#define parser4__load_buffer_state_ALREADY_DEFINED
-#else
-#define yy_load_buffer_state parser4__load_buffer_state
-#endif
-
-#ifdef yy_switch_to_buffer
-#define parser4__switch_to_buffer_ALREADY_DEFINED
-#else
-#define yy_switch_to_buffer parser4__switch_to_buffer
-#endif
-
-#ifdef yypush_buffer_state
-#define parser4_push_buffer_state_ALREADY_DEFINED
-#else
-#define yypush_buffer_state parser4_push_buffer_state
-#endif
-
-#ifdef yypop_buffer_state
-#define parser4_pop_buffer_state_ALREADY_DEFINED
-#else
-#define yypop_buffer_state parser4_pop_buffer_state
-#endif
-
-#ifdef yyensure_buffer_stack
-#define parser4_ensure_buffer_stack_ALREADY_DEFINED
-#else
-#define yyensure_buffer_stack parser4_ensure_buffer_stack
-#endif
-
-#ifdef yylex
-#define parser4_lex_ALREADY_DEFINED
-#else
-#define yylex parser4_lex
-#endif
-
-#ifdef yyrestart
-#define parser4_restart_ALREADY_DEFINED
-#else
-#define yyrestart parser4_restart
-#endif
-
-#ifdef yylex_init
-#define parser4_lex_init_ALREADY_DEFINED
-#else
-#define yylex_init parser4_lex_init
-#endif
-
-#ifdef yylex_init_extra
-#define parser4_lex_init_extra_ALREADY_DEFINED
-#else
-#define yylex_init_extra parser4_lex_init_extra
-#endif
-
-#ifdef yylex_destroy
-#define parser4_lex_destroy_ALREADY_DEFINED
-#else
-#define yylex_destroy parser4_lex_destroy
-#endif
-
-#ifdef yyget_debug
-#define parser4_get_debug_ALREADY_DEFINED
-#else
-#define yyget_debug parser4_get_debug
-#endif
-
-#ifdef yyset_debug
-#define parser4_set_debug_ALREADY_DEFINED
-#else
-#define yyset_debug parser4_set_debug
-#endif
-
-#ifdef yyget_extra
-#define parser4_get_extra_ALREADY_DEFINED
-#else
-#define yyget_extra parser4_get_extra
-#endif
-
-#ifdef yyset_extra
-#define parser4_set_extra_ALREADY_DEFINED
-#else
-#define yyset_extra parser4_set_extra
-#endif
-
-#ifdef yyget_in
-#define parser4_get_in_ALREADY_DEFINED
-#else
-#define yyget_in parser4_get_in
-#endif
-
-#ifdef yyset_in
-#define parser4_set_in_ALREADY_DEFINED
-#else
-#define yyset_in parser4_set_in
-#endif
-
-#ifdef yyget_out
-#define parser4_get_out_ALREADY_DEFINED
-#else
-#define yyget_out parser4_get_out
-#endif
-
-#ifdef yyset_out
-#define parser4_set_out_ALREADY_DEFINED
-#else
-#define yyset_out parser4_set_out
-#endif
-
-#ifdef yyget_leng
-#define parser4_get_leng_ALREADY_DEFINED
-#else
-#define yyget_leng parser4_get_leng
-#endif
-
-#ifdef yyget_text
-#define parser4_get_text_ALREADY_DEFINED
-#else
-#define yyget_text parser4_get_text
-#endif
-
-#ifdef yyget_lineno
-#define parser4_get_lineno_ALREADY_DEFINED
-#else
-#define yyget_lineno parser4_get_lineno
-#endif
-
-#ifdef yyset_lineno
-#define parser4_set_lineno_ALREADY_DEFINED
-#else
-#define yyset_lineno parser4_set_lineno
-#endif
-
-#ifdef yywrap
-#define parser4_wrap_ALREADY_DEFINED
-#else
-#define yywrap parser4_wrap
-#endif
-
+    
 /* %endif */
 
-#ifdef yyalloc
-#define parser4_alloc_ALREADY_DEFINED
-#else
-#define yyalloc parser4_alloc
-#endif
-
-#ifdef yyrealloc
-#define parser4_realloc_ALREADY_DEFINED
-#else
-#define yyrealloc parser4_realloc
-#endif
-
-#ifdef yyfree
-#define parser4_free_ALREADY_DEFINED
-#else
-#define yyfree parser4_free
-#endif
-
 /* %if-c-only */
 
-#ifdef yytext
-#define parser4_text_ALREADY_DEFINED
-#else
-#define yytext parser4_text
-#endif
-
-#ifdef yyleng
-#define parser4_leng_ALREADY_DEFINED
-#else
-#define yyleng parser4_leng
-#endif
-
-#ifdef yyin
-#define parser4_in_ALREADY_DEFINED
-#else
-#define yyin parser4_in
-#endif
-
-#ifdef yyout
-#define parser4_out_ALREADY_DEFINED
-#else
-#define yyout parser4_out
-#endif
-
-#ifdef yy_flex_debug
-#define parser4__flex_debug_ALREADY_DEFINED
-#else
-#define yy_flex_debug parser4__flex_debug
-#endif
-
-#ifdef yylineno
-#define parser4_lineno_ALREADY_DEFINED
-#else
-#define yylineno parser4_lineno
-#endif
-
 /* %endif */
 
 /* First, we deal with  platform-specific or compiler-specific issues. */
@@ -365,17 +127,12 @@ typedef unsigned int flex_uint32_t;
 #define UINT32_MAX             (4294967295U)
 #endif
 
-#ifndef SIZE_MAX
-#define SIZE_MAX               (~(size_t)0)
-#endif
-
 #endif /* ! C99 */
 
 #endif /* ! FLEXINT_H */
 
 /* %endif */
 
-/* begin standard C++ headers. */
 /* %if-c++-only */
 /* %endif */
 
@@ -389,15 +146,19 @@ typedef unsigned int flex_uint32_t;
 #endif
 
 /* %not-for-header */
+
 /* Returned upon end-of-file. */
 #define YY_NULL 0
 /* %ok-for-header */
 
 /* %not-for-header */
-/* Promotes a possibly negative, possibly signed char to an
- *   integer in range [0..255] for use as an array index.
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
  */
-#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
 /* %ok-for-header */
 
 /* %if-reentrant */
@@ -412,16 +173,20 @@ typedef unsigned int flex_uint32_t;
  * definition of BEGIN.
  */
 #define BEGIN (yy_start) = 1 + 2 *
+
 /* Translate the current start state into a value that can be later handed
  * to BEGIN to return to the state.  The YYSTATE alias is for lex
  * compatibility.
  */
 #define YY_START (((yy_start) - 1) / 2)
 #define YYSTATE YY_START
+
 /* Action number for EOF rule of a given start state. */
 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
 /* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart( yyin  )
+#define YY_NEW_FILE parser4_restart(parser4_in  )
+
 #define YY_END_OF_BUFFER_CHAR 0
 
 /* Size of default input buffer. */
@@ -452,19 +217,19 @@ typedef size_t yy_size_t;
 #endif
 
 /* %if-not-reentrant */
-extern int yyleng;
+extern int parser4_leng;
 /* %endif */
 
 /* %if-c-only */
 /* %if-not-reentrant */
-extern FILE *yyin, *yyout;
+extern FILE *parser4_in, *parser4_out;
 /* %endif */
 /* %endif */
 
 #define EOB_ACT_CONTINUE_SCAN 0
 #define EOB_ACT_END_OF_FILE 1
 #define EOB_ACT_LAST_MATCH 2
-    
+
     #define YY_LESS_LINENO(n)
     #define YY_LINENO_REWIND_TO(ptr)
     
@@ -472,15 +237,16 @@ extern FILE *yyin, *yyout;
 #define yyless(n) \
        do \
                { \
-               /* Undo effects of setting up yytext. */ \
+               /* Undo effects of setting up parser4_text. */ \
         int yyless_macro_arg = (n); \
         YY_LESS_LINENO(yyless_macro_arg);\
                *yy_cp = (yy_hold_char); \
                YY_RESTORE_YY_MORE_OFFSET \
                (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-               YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+               YY_DO_BEFORE_ACTION; /* set up parser4_text again */ \
                } \
        while ( 0 )
+
 #define unput(c) yyunput( c, (yytext_ptr)  )
 
 #ifndef YY_STRUCT_YY_BUFFER_STATE
@@ -545,8 +311,8 @@ struct yy_buffer_state
         * possible backing-up.
         *
         * When we actually see the EOF, we change the status to "new"
-        * (via yyrestart()), so that the user can continue scanning by
-        * just pointing yyin at a new input file.
+        * (via parser4_restart()), so that the user can continue scanning by
+        * just pointing parser4_in at a new input file.
         */
 #define YY_BUFFER_EOF_PENDING 2
 
@@ -555,6 +321,7 @@ struct yy_buffer_state
 
 /* %if-c-only Standard (non-C++) definition */
 /* %not-for-header */
+
 /* %if-not-reentrant */
 
 /* Stack of input buffers. */
@@ -575,6 +342,7 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
                           : NULL)
+
 /* Same as previous macro, but useful when we know that the buffer stack is not
  * NULL or when we need an lvalue. For internal use only.
  */
@@ -584,112 +352,120 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
 
 /* %if-not-reentrant */
 /* %not-for-header */
-/* yy_hold_char holds the character lost when yytext is formed. */
+
+/* yy_hold_char holds the character lost when parser4_text is formed. */
 static char yy_hold_char;
 static int yy_n_chars;         /* number of characters read into yy_ch_buf */
-int yyleng;
+int parser4_leng;
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = NULL;
 static int yy_init = 0;                /* whether we need to initialize */
 static int yy_start = 0;       /* start state number */
 
-/* Flag which is used to allow yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin.  A bit of a hack ...
+/* Flag which is used to allow parser4_wrap()'s to do buffer switches
+ * instead of setting up a fresh parser4_in.  A bit of a hack ...
  */
 static int yy_did_buffer_switch_on_eof;
 /* %ok-for-header */
 
 /* %endif */
 
-void yyrestart ( FILE *input_file  );
-void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
-void yy_delete_buffer ( YY_BUFFER_STATE b  );
-void yy_flush_buffer ( YY_BUFFER_STATE b  );
-void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
-void yypop_buffer_state ( void );
+void parser4_restart (FILE *input_file  );
+void parser4__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE parser4__create_buffer (FILE *file,int size  );
+void parser4__delete_buffer (YY_BUFFER_STATE b  );
+void parser4__flush_buffer (YY_BUFFER_STATE b  );
+void parser4_push_buffer_state (YY_BUFFER_STATE new_buffer  );
+void parser4_pop_buffer_state (void );
+
+static void parser4_ensure_buffer_stack (void );
+static void parser4__load_buffer_state (void );
+static void parser4__init_buffer (YY_BUFFER_STATE b,FILE *file  );
 
-static void yyensure_buffer_stack ( void );
-static void yy_load_buffer_state ( void );
-static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
-#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
+#define YY_FLUSH_BUFFER parser4__flush_buffer(YY_CURRENT_BUFFER )
 
-YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
-YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
-YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
+YY_BUFFER_STATE parser4__scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE parser4__scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE parser4__scan_bytes (yyconst char *bytes,int len  );
 
 /* %endif */
 
-void *yyalloc ( yy_size_t  );
-void *yyrealloc ( void *, yy_size_t  );
-void yyfree ( void *  );
+void *parser4_alloc (yy_size_t  );
+void *parser4_realloc (void *,yy_size_t  );
+void parser4_free (void *  );
+
+#define yy_new_buffer parser4__create_buffer
 
-#define yy_new_buffer yy_create_buffer
 #define yy_set_interactive(is_interactive) \
        { \
        if ( ! YY_CURRENT_BUFFER ){ \
-        yyensure_buffer_stack (); \
+        parser4_ensure_buffer_stack (); \
                YY_CURRENT_BUFFER_LVALUE =    \
-            yy_create_buffer( yyin, YY_BUF_SIZE ); \
+            parser4__create_buffer(parser4_in,YY_BUF_SIZE ); \
        } \
        YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
        }
+
 #define yy_set_bol(at_bol) \
        { \
        if ( ! YY_CURRENT_BUFFER ){\
-        yyensure_buffer_stack (); \
+        parser4_ensure_buffer_stack (); \
                YY_CURRENT_BUFFER_LVALUE =    \
-            yy_create_buffer( yyin, YY_BUF_SIZE ); \
+            parser4__create_buffer(parser4_in,YY_BUF_SIZE ); \
        } \
        YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
        }
+
 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
 
-/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
+/* %% [1.0] parser4_text/parser4_in/parser4_out/yy_state_type/parser4_lineno etc. def's & init go here */
 /* Begin user sect3 */
 
 #define parser4_wrap() (/*CONSTCOND*/1)
 #define YY_SKIP_YYWRAP
 
 #define FLEX_DEBUG
-typedef flex_uint8_t YY_CHAR;
 
-FILE *yyin = NULL, *yyout = NULL;
+typedef unsigned char YY_CHAR;
+
+FILE *parser4_in = NULL, *parser4_out = NULL;
 
 typedef int yy_state_type;
 
-extern int yylineno;
-int yylineno = 1;
+extern int parser4_lineno;
+
+int parser4_lineno = 1;
 
-extern char *yytext;
+extern char *parser4_text;
 #ifdef yytext_ptr
 #undef yytext_ptr
 #endif
-#define yytext_ptr yytext
+#define yytext_ptr parser4_text
 
 /* %% [1.5] DFA */
 
 /* %if-c-only Standard (non-C++) definition */
 
-static yy_state_type yy_get_previous_state ( void );
-static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
-static int yy_get_next_buffer ( void );
-static void yynoreturn yy_fatal_error ( const char* msg  );
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yynoreturn yy_fatal_error (yyconst char* msg  );
 
 /* %endif */
 
 /* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
+ * corresponding action - sets up parser4_text.
  */
 #define YY_DO_BEFORE_ACTION \
        (yytext_ptr) = yy_bp; \
-/* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
-       yyleng = (int) (yy_cp - yy_bp); \
+/* %% [2.0] code to fiddle parser4_text and parser4_leng for yymore() goes here \ */\
+       parser4_leng = (int) (yy_cp - yy_bp); \
        (yy_hold_char) = *yy_cp; \
        *yy_cp = '\0'; \
-/* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
+/* %% [3.0] code to copy yytext_ptr to parser4_text[] 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 159
 #define YY_END_OF_BUFFER 160
@@ -700,7 +476,7 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_accept[1292] =
+static yyconst flex_int16_t yy_accept[1292] =
     {   0,
       152,  152,    0,    0,    0,    0,    0,    0,    0,    0,
       160,  158,   10,   11,  158,    1,  152,  149,  152,  152,
@@ -847,7 +623,7 @@ static const flex_int16_t yy_accept[1292] =
 
     } ;
 
-static const YY_CHAR yy_ec[256] =
+static yyconst YY_CHAR yy_ec[256] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
@@ -879,7 +655,7 @@ static const YY_CHAR yy_ec[256] =
         5,    5,    5,    5,    5
     } ;
 
-static const YY_CHAR yy_meta[72] =
+static yyconst YY_CHAR yy_meta[72] =
     {   0,
         1,    1,    2,    3,    3,    4,    3,    3,    3,    3,
         3,    3,    3,    5,    5,    5,    3,    3,    3,    3,
@@ -891,7 +667,7 @@ static const YY_CHAR yy_meta[72] =
         3
     } ;
 
-static const flex_int16_t yy_base[1304] =
+static yyconst flex_uint16_t yy_base[1304] =
     {   0,
         0,   70,   19,   29,   41,   49,   52,   58,   87,   95,
      1653, 1654,   32, 1649,  141,    0,  201, 1654,  206,   88,
@@ -1039,7 +815,7 @@ static const flex_int16_t yy_base[1304] =
      1128, 1130, 1143
     } ;
 
-static const flex_int16_t yy_def[1304] =
+static yyconst flex_int16_t yy_def[1304] =
     {   0,
      1292, 1292, 1293, 1293, 1292, 1292, 1292, 1292, 1292, 1292,
      1291, 1291, 1291, 1291, 1291, 1294, 1291, 1291, 1291, 1291,
@@ -1187,7 +963,7 @@ static const flex_int16_t yy_def[1304] =
      1291, 1291, 1291
     } ;
 
-static const flex_int16_t yy_nxt[1726] =
+static yyconst flex_uint16_t yy_nxt[1726] =
     {   0,
      1291,   13,   14,   13, 1291,   15,   16, 1291,   17,   18,
        19,   20,   21,   22,   22,   22,   23,   24,   86,  662,
@@ -1381,7 +1157,7 @@ static const flex_int16_t yy_nxt[1726] =
      1291, 1291, 1291, 1291, 1291
     } ;
 
-static const flex_int16_t yy_chk[1726] =
+static yyconst flex_int16_t yy_chk[1726] =
     {   0,
         0,    1,    1,    1,    0,    1,    1,    0,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,   21,  578,
@@ -1578,28 +1354,28 @@ static const flex_int16_t yy_chk[1726] =
 static yy_state_type yy_last_accepting_state;
 static char *yy_last_accepting_cpos;
 
-extern int yy_flex_debug;
-int yy_flex_debug = 1;
+extern int parser4__flex_debug;
+int parser4__flex_debug = 1;
 
-static const flex_int16_t yy_rule_linenum[159] =
+static yyconst flex_int16_t yy_rule_linenum[159] =
     {   0,
-      145,  147,  149,  154,  155,  160,  161,  162,  174,  177,
-      182,  189,  198,  207,  216,  225,  235,  244,  253,  262,
-      271,  280,  289,  298,  307,  318,  327,  336,  345,  354,
-      364,  374,  384,  394,  404,  414,  424,  434,  444,  455,
-      466,  477,  486,  496,  505,  515,  530,  546,  555,  564,
-      573,  582,  602,  622,  631,  641,  650,  659,  668,  678,
-      687,  696,  705,  714,  724,  733,  742,  751,  760,  769,
-      778,  787,  796,  805,  814,  824,  836,  846,  855,  865,
-      875,  885,  895,  905,  914,  924,  933,  942,  951,  960,
-      970,  980,  990,  999, 1008, 1017, 1026, 1035, 1044, 1053,
-
-     1062, 1071, 1080, 1089, 1098, 1107, 1116, 1125, 1134, 1143,
-     1152, 1161, 1170, 1179, 1188, 1197, 1206, 1215, 1224, 1233,
-     1242, 1252, 1262, 1272, 1282, 1292, 1302, 1312, 1322, 1332,
-     1341, 1350, 1359, 1368, 1377, 1386, 1395, 1406, 1419, 1432,
-     1447, 1546, 1551, 1556, 1561, 1562, 1563, 1564, 1565, 1566,
-     1568, 1586, 1599, 1604, 1608, 1610, 1612, 1614
+      144,  146,  148,  153,  154,  159,  160,  161,  173,  176,
+      181,  188,  197,  206,  215,  224,  234,  243,  252,  261,
+      270,  279,  288,  297,  306,  317,  326,  335,  344,  353,
+      363,  373,  383,  393,  403,  413,  423,  433,  443,  454,
+      465,  476,  485,  495,  504,  514,  529,  545,  554,  563,
+      572,  581,  601,  621,  630,  640,  649,  658,  667,  677,
+      686,  695,  704,  713,  723,  732,  741,  750,  759,  768,
+      777,  786,  795,  804,  813,  824,  835,  845,  854,  864,
+      874,  884,  894,  904,  913,  923,  932,  941,  950,  959,
+      969,  979,  989,  998, 1007, 1016, 1025, 1034, 1043, 1052,
+
+     1061, 1070, 1079, 1088, 1097, 1106, 1115, 1124, 1133, 1142,
+     1151, 1160, 1169, 1178, 1187, 1196, 1205, 1214, 1223, 1232,
+     1241, 1251, 1261, 1271, 1281, 1291, 1301, 1311, 1321, 1331,
+     1340, 1349, 1358, 1367, 1376, 1385, 1394, 1405, 1418, 1431,
+     1446, 1545, 1550, 1555, 1560, 1561, 1562, 1563, 1564, 1565,
+     1567, 1585, 1598, 1603, 1607, 1609, 1611, 1613
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -1609,7 +1385,7 @@ static const flex_int16_t yy_rule_linenum[159] =
 #define yymore() yymore_used_but_not_detected
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
+char *parser4_text;
 #line 1 "dhcp4_lexer.ll"
 /* Copyright (C) 2016-2017 Internet Systems Consortium, Inc. ("ISC")
 
@@ -1636,8 +1412,8 @@ char *yytext;
    2.5.31 through 2.5.33): it generates code that does
    not conform to C89.  See Debian bug 333231
    <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
-# undef yywrap
-# define yywrap() 1
+# undef parser4_wrap
+# define parser4_wrap() 1
 
 namespace {
 
@@ -1652,10 +1428,9 @@ using namespace isc::dhcp;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
-#line 1655 "dhcp4_lexer.cc"
 /* noyywrap disables automatic rewinding for the next file to parse. Since we
    always parse only a single string, there's no need to do any wraps. And
-   using yywrap requires linking with -lfl, which provides the default yywrap
+   using parser4_wrap requires linking with -lfl, which provides the default parser4_wrap
    implementation that always returns 1 anyway. */
 /* nounput simplifies the lexer, by removing support for putting a character
    back into the input stream. We never use such capability anyway. */
@@ -1663,23 +1438,23 @@ using namespace isc::dhcp;
 /* avoid to get static global variables to remain with C++. */
 /* in last resort %option reentrant */
 /* Enables debug mode. To see the debug messages, one needs to also set
-   yy_flex_debug to 1, then the debug messages will be printed on stderr. */
+   parser4__flex_debug to 1, then the debug messages will be printed on stderr. */
 /* I have no idea what this option does, except it was specified in the bison
    examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
    be on the safe side and keep it. */
 #define YY_NO_INPUT 1
 
+
 /* These are not token expressions yet, just convenience expressions that
    can be used during actual token definitions. Note some can match
    incorrect inputs (e.g., IP addresses) which must be checked. */
 /* for errors */
 #line 94 "dhcp4_lexer.ll"
 /* This code run each time a pattern is matched. It updates the location
-   by moving it ahead by yyleng bytes. yyleng specifies the length of the
+   by moving it ahead by parser4_leng bytes. parser4_leng specifies the length of the
    currently matched token. */
-#define YY_USER_ACTION  driver.loc_.columns(yyleng);
-#line 1681 "dhcp4_lexer.cc"
-#line 1682 "dhcp4_lexer.cc"
+#define YY_USER_ACTION  driver.loc_.columns(parser4_leng);
+#line 1458 "dhcp4_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -1707,7 +1482,7 @@ using namespace isc::dhcp;
 /* %if-reentrant */
 /* %if-c-only */
 
-static int yy_init_globals ( void );
+static int yy_init_globals (void );
 
 /* %endif */
 /* %if-reentrant */
@@ -1717,31 +1492,31 @@ static int yy_init_globals ( void );
 /* Accessor methods to globals.
    These are made visible to non-reentrant scanners for convenience. */
 
-int yylex_destroy ( void );
+int parser4_lex_destroy (void );
 
-int yyget_debug ( void );
+int parser4_get_debug (void );
 
-void yyset_debug ( int debug_flag  );
+void parser4_set_debug (int debug_flag  );
 
-YY_EXTRA_TYPE yyget_extra ( void );
+YY_EXTRA_TYPE parser4_get_extra (void );
 
-void yyset_extra ( YY_EXTRA_TYPE user_defined  );
+void parser4_set_extra (YY_EXTRA_TYPE user_defined  );
 
-FILE *yyget_in ( void );
+FILE *parser4_get_in (void );
 
-void yyset_in  ( FILE * _in_str  );
+void parser4_set_in  (FILE * _in_str  );
 
-FILE *yyget_out ( void );
+FILE *parser4_get_out (void );
 
-void yyset_out  ( FILE * _out_str  );
+void parser4_set_out  (FILE * _out_str  );
 
-                       int yyget_leng ( void );
+                       int parser4_get_leng (void );
 
-char *yyget_text ( void );
+char *parser4_get_text (void );
 
-int yyget_lineno ( void );
+int parser4_get_lineno (void );
 
-void yyset_lineno ( int _line_number  );
+void parser4_set_lineno (int _line_number  );
 
 /* %if-bison-bridge */
 /* %endif */
@@ -1752,13 +1527,14 @@ void yyset_lineno ( int _line_number  );
 
 #ifndef YY_SKIP_YYWRAP
 #ifdef __cplusplus
-extern "C" int yywrap ( void );
+extern "C" int parser4_wrap (void );
 #else
-extern int yywrap ( void );
+extern int parser4_wrap (void );
 #endif
 #endif
 
 /* %not-for-header */
+
 #ifndef YY_NO_UNPUT
     
 #endif
@@ -1767,20 +1543,21 @@ extern int yywrap ( void );
 /* %endif */
 
 #ifndef yytext_ptr
-static void yy_flex_strncpy ( char *, const char *, int );
+static void yy_flex_strncpy (char *,yyconst char *,int );
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen ( const char * );
+static int yy_flex_strlen (yyconst char * );
 #endif
 
 #ifndef YY_NO_INPUT
 /* %if-c-only Standard (non-C++) definition */
 /* %not-for-header */
+
 #ifdef __cplusplus
-static int yyinput ( void );
+static int yyinput (void );
 #else
-static int input ( void );
+static int input (void );
 #endif
 /* %ok-for-header */
 
@@ -1807,7 +1584,7 @@ static int input ( void );
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
+#define ECHO do { if (fwrite( parser4_text, (size_t) parser4_leng, 1, parser4_out )) {} } while (0)
 /* %endif */
 /* %if-c++-only C++ definition */
 /* %endif */
@@ -1822,20 +1599,20 @@ static int input ( void );
        if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
                { \
                int c = '*'; \
-               int n; \
+               size_t n; \
                for ( n = 0; n < max_size && \
-                            (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+                            (c = getc( parser4_in )) != EOF && c != '\n'; ++n ) \
                        buf[n] = (char) c; \
                if ( c == '\n' ) \
                        buf[n++] = (char) c; \
-               if ( c == EOF && ferror( yyin ) ) \
+               if ( c == EOF && ferror( parser4_in ) ) \
                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
                result = n; \
                } \
        else \
                { \
                errno=0; \
-               while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
+               while ( (result = (int) fread(buf, 1, max_size, parser4_in))==0 && ferror(parser4_in)) \
                        { \
                        if( errno != EINTR) \
                                { \
@@ -1843,7 +1620,7 @@ static int input ( void );
                                break; \
                                } \
                        errno=0; \
-                       clearerr(yyin); \
+                       clearerr(parser4_in); \
                        } \
                }\
 \
@@ -1876,9 +1653,11 @@ static int input ( void );
 
 /* %if-tables-serialization structures and prototypes */
 /* %not-for-header */
+
 /* %ok-for-header */
 
 /* %not-for-header */
+
 /* %tables-yydmap generated elements */
 /* %endif */
 /* end tables serialization structures and prototypes */
@@ -1892,15 +1671,15 @@ static int input ( void );
 #define YY_DECL_IS_OURS 1
 /* %if-c-only Standard (non-C++) definition */
 
-extern int yylex (void);
+extern int parser4_lex (void);
 
-#define YY_DECL int yylex (void)
+#define YY_DECL int parser4_lex (void)
 /* %endif */
 /* %if-c++-only C++ definition */
 /* %endif */
 #endif /* !YY_DECL */
 
-/* Code executed at the beginning of each rule, after yytext and yyleng
+/* Code executed at the beginning of each rule, after parser4_text and parser4_leng
  * have been set up.
  */
 #ifndef YY_USER_ACTION
@@ -1917,6 +1696,7 @@ extern int yylex (void);
        YY_USER_ACTION
 
 /* %not-for-header */
+
 /** The main scanner function which does all the work.
  */
 YY_DECL
@@ -1936,27 +1716,27 @@ YY_DECL
                if ( ! (yy_start) )
                        (yy_start) = 1; /* first start state */
 
-               if ( ! yyin )
+               if ( ! parser4_in )
 /* %if-c-only */
-                       yyin = stdin;
+                       parser4_in = stdin;
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 
-               if ( ! yyout )
+               if ( ! parser4_out )
 /* %if-c-only */
-                       yyout = stdout;
+                       parser4_out = stdout;
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 
                if ( ! YY_CURRENT_BUFFER ) {
-                       yyensure_buffer_stack ();
+                       parser4_ensure_buffer_stack ();
                        YY_CURRENT_BUFFER_LVALUE =
-                               yy_create_buffer( yyin, YY_BUF_SIZE );
+                               parser4__create_buffer(parser4_in,YY_BUF_SIZE );
                }
 
-               yy_load_buffer_state(  );
+               parser4__load_buffer_state( );
                }
 
        {
@@ -1965,12 +1745,11 @@ YY_DECL
 
 
 
-#line 104 "dhcp4_lexer.ll"
     /* This part of the code is copied over to the verbatim to the top
-       of the generated yylex function. Explanation:
+       of the generated parser4_lex function. Explanation:
        http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
 
-    /* Code run each time yylex is called. */
+    /* Code run each time parser4_lex is called. */
     driver.loc_.step();
 
     if (start_token_flag) {
@@ -2007,14 +1786,14 @@ YY_DECL
     }
 
 
-#line 2010 "dhcp4_lexer.cc"
+#line 1790 "dhcp4_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
 /* %% [8.0] yymore()-related code goes here */
                yy_cp = (yy_c_buf_p);
 
-               /* Support of yytext. */
+               /* Support of parser4_text. */
                *yy_cp = (yy_hold_char);
 
                /* yy_bp points to the position in yy_ch_buf of the start of
@@ -2037,9 +1816,9 @@ yy_match:
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
                                if ( yy_current_state >= 1292 )
-                                       yy_c = yy_meta[yy_c];
+                                       yy_c = yy_meta[(unsigned int) yy_c];
                                }
-                       yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+                       yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
                        ++yy_cp;
                        }
                while ( yy_current_state != 1291 );
@@ -2052,21 +1831,21 @@ yy_find_action:
 
                YY_DO_BEFORE_ACTION;
 
-/* %% [11.0] code for yylineno update goes here */
+/* %% [11.0] code for parser4_lineno update goes here */
 
 do_action:     /* This label is used only to access EOF actions. */
 
 /* %% [12.0] debug code goes here */
-               if ( yy_flex_debug )
+               if ( parser4__flex_debug )
                        {
                        if ( yy_act == 0 )
                                fprintf( stderr, "--scanner backing up\n" );
                        else if ( yy_act < 159 )
                                fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
-                                        (long)yy_rule_linenum[yy_act], yytext );
+                                        (long)yy_rule_linenum[yy_act], parser4_text );
                        else if ( yy_act == 159 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
-                                        yytext );
+                                        parser4_text );
                        else if ( yy_act == 160 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
@@ -2085,17 +1864,17 @@ do_action:      /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 145 "dhcp4_lexer.ll"
+#line 144 "dhcp4_lexer.ll"
 ;
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 147 "dhcp4_lexer.ll"
+#line 146 "dhcp4_lexer.ll"
 ;
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 149 "dhcp4_lexer.ll"
+#line 148 "dhcp4_lexer.ll"
 {
   BEGIN(COMMENT);
   comment_start_line = driver.loc_.end.line;;
@@ -2103,38 +1882,38 @@ YY_RULE_SETUP
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 154 "dhcp4_lexer.ll"
+#line 153 "dhcp4_lexer.ll"
 BEGIN(INITIAL);
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 155 "dhcp4_lexer.ll"
+#line 154 "dhcp4_lexer.ll"
 ;
        YY_BREAK
 case YY_STATE_EOF(COMMENT):
-#line 156 "dhcp4_lexer.ll"
+#line 155 "dhcp4_lexer.ll"
 {
     isc_throw(Dhcp4ParseError, "Comment not closed. (/* in line " << comment_start_line);
 }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 160 "dhcp4_lexer.ll"
+#line 159 "dhcp4_lexer.ll"
 BEGIN(DIR_ENTER);
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 161 "dhcp4_lexer.ll"
+#line 160 "dhcp4_lexer.ll"
 BEGIN(DIR_INCLUDE);
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 162 "dhcp4_lexer.ll"
+#line 161 "dhcp4_lexer.ll"
 {
     /* Include directive. */
 
     /* Extract the filename. */
-    std::string tmp(yytext+1);
+    std::string tmp(parser4_text+1);
     tmp.resize(tmp.size() - 1);
 
     driver.includeFile(tmp);
@@ -2143,19 +1922,19 @@ YY_RULE_SETUP
 case YY_STATE_EOF(DIR_ENTER):
 case YY_STATE_EOF(DIR_INCLUDE):
 case YY_STATE_EOF(DIR_EXIT):
-#line 171 "dhcp4_lexer.ll"
+#line 170 "dhcp4_lexer.ll"
 {
     isc_throw(Dhcp4ParseError, "Directive not closed.");
 }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 174 "dhcp4_lexer.ll"
+#line 173 "dhcp4_lexer.ll"
 BEGIN(INITIAL);
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 177 "dhcp4_lexer.ll"
+#line 176 "dhcp4_lexer.ll"
 {
     /* Ok, we found a with space. Let's ignore it and update loc variable. */
     driver.loc_.step();
@@ -2164,16 +1943,16 @@ YY_RULE_SETUP
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-#line 182 "dhcp4_lexer.ll"
+#line 181 "dhcp4_lexer.ll"
 {
     /* Newline found. Let's update the location and continue. */
-    driver.loc_.lines(yyleng);
+    driver.loc_.lines(parser4_leng);
     driver.loc_.step();
 }
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 189 "dhcp4_lexer.ll"
+#line 188 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -2185,7 +1964,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 198 "dhcp4_lexer.ll"
+#line 197 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2197,7 +1976,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 207 "dhcp4_lexer.ll"
+#line 206 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
@@ -2209,7 +1988,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 216 "dhcp4_lexer.ll"
+#line 215 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_SOCKET_TYPE:
@@ -2221,7 +2000,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 225 "dhcp4_lexer.ll"
+#line 224 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_SOCKET_TYPE:
@@ -2234,7 +2013,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 235 "dhcp4_lexer.ll"
+#line 234 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case Parser4Context::INTERFACES_CONFIG:
@@ -2246,7 +2025,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 244 "dhcp4_lexer.ll"
+#line 243 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case Parser4Context::OUTBOUND_INTERFACE:
@@ -2258,7 +2037,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 253 "dhcp4_lexer.ll"
+#line 252 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case Parser4Context::OUTBOUND_INTERFACE:
@@ -2270,7 +2049,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 262 "dhcp4_lexer.ll"
+#line 261 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
@@ -2282,7 +2061,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 271 "dhcp4_lexer.ll"
+#line 270 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
@@ -2294,7 +2073,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 280 "dhcp4_lexer.ll"
+#line 279 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2306,7 +2085,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 289 "dhcp4_lexer.ll"
+#line 288 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2318,7 +2097,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 298 "dhcp4_lexer.ll"
+#line 297 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOSTS_DATABASE:
@@ -2330,7 +2109,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 307 "dhcp4_lexer.ll"
+#line 306 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2344,7 +2123,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 318 "dhcp4_lexer.ll"
+#line 317 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2356,7 +2135,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 327 "dhcp4_lexer.ll"
+#line 326 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2368,7 +2147,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 336 "dhcp4_lexer.ll"
+#line 335 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2380,7 +2159,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 345 "dhcp4_lexer.ll"
+#line 344 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2392,7 +2171,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 354 "dhcp4_lexer.ll"
+#line 353 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2405,7 +2184,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 364 "dhcp4_lexer.ll"
+#line 363 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2418,7 +2197,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 374 "dhcp4_lexer.ll"
+#line 373 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2431,7 +2210,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 384 "dhcp4_lexer.ll"
+#line 383 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2444,7 +2223,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 394 "dhcp4_lexer.ll"
+#line 393 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2457,7 +2236,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 404 "dhcp4_lexer.ll"
+#line 403 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2470,7 +2249,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 414 "dhcp4_lexer.ll"
+#line 413 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2483,7 +2262,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 424 "dhcp4_lexer.ll"
+#line 423 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2496,7 +2275,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 434 "dhcp4_lexer.ll"
+#line 433 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2509,7 +2288,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 444 "dhcp4_lexer.ll"
+#line 443 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2523,7 +2302,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 455 "dhcp4_lexer.ll"
+#line 454 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2537,7 +2316,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 466 "dhcp4_lexer.ll"
+#line 465 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2551,7 +2330,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 477 "dhcp4_lexer.ll"
+#line 476 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2563,7 +2342,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 486 "dhcp4_lexer.ll"
+#line 485 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2576,7 +2355,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 496 "dhcp4_lexer.ll"
+#line 495 "dhcp4_lexer.ll"
 {
     switch (driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2588,7 +2367,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 505 "dhcp4_lexer.ll"
+#line 504 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2601,7 +2380,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 515 "dhcp4_lexer.ll"
+#line 514 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2619,7 +2398,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 530 "dhcp4_lexer.ll"
+#line 529 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2638,7 +2417,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 546 "dhcp4_lexer.ll"
+#line 545 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -2650,7 +2429,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 555 "dhcp4_lexer.ll"
+#line 554 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -2662,7 +2441,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 564 "dhcp4_lexer.ll"
+#line 563 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2674,7 +2453,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 573 "dhcp4_lexer.ll"
+#line 572 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::POOLS:
@@ -2686,7 +2465,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 582 "dhcp4_lexer.ll"
+#line 581 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2709,7 +2488,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 602 "dhcp4_lexer.ll"
+#line 601 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2732,7 +2511,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 622 "dhcp4_lexer.ll"
+#line 621 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2744,7 +2523,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 631 "dhcp4_lexer.ll"
+#line 630 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2757,7 +2536,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 641 "dhcp4_lexer.ll"
+#line 640 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2769,7 +2548,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 650 "dhcp4_lexer.ll"
+#line 649 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2781,7 +2560,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 659 "dhcp4_lexer.ll"
+#line 658 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2793,7 +2572,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 668 "dhcp4_lexer.ll"
+#line 667 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2806,7 +2585,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 678 "dhcp4_lexer.ll"
+#line 677 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -2818,7 +2597,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 687 "dhcp4_lexer.ll"
+#line 686 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -2830,7 +2609,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 696 "dhcp4_lexer.ll"
+#line 695 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -2842,7 +2621,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 705 "dhcp4_lexer.ll"
+#line 704 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -2854,7 +2633,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 714 "dhcp4_lexer.ll"
+#line 713 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -2867,7 +2646,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 724 "dhcp4_lexer.ll"
+#line 723 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2879,7 +2658,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 733 "dhcp4_lexer.ll"
+#line 732 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -2891,7 +2670,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 742 "dhcp4_lexer.ll"
+#line 741 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGING:
@@ -2903,7 +2682,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 751 "dhcp4_lexer.ll"
+#line 750 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -2915,7 +2694,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 760 "dhcp4_lexer.ll"
+#line 759 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -2927,7 +2706,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 769 "dhcp4_lexer.ll"
+#line 768 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -2939,7 +2718,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 778 "dhcp4_lexer.ll"
+#line 777 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -2951,7 +2730,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 787 "dhcp4_lexer.ll"
+#line 786 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -2963,7 +2742,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 796 "dhcp4_lexer.ll"
+#line 795 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -2975,7 +2754,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 805 "dhcp4_lexer.ll"
+#line 804 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -2987,10 +2766,11 @@ YY_RULE_SETUP
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 814 "dhcp4_lexer.ll"
+#line 813 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
+    case isc::dhcp::Parser4Context::POOLS:
     case isc::dhcp::Parser4Context::RESERVATIONS:
         return isc::dhcp::Dhcp4Parser::make_CLIENT_CLASSES(driver.loc_);
     default:
@@ -3004,7 +2784,6 @@ YY_RULE_SETUP
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
-    case isc::dhcp::Parser4Context::POOLS:
     case isc::dhcp::Parser4Context::SHARED_NETWORK:
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
         return isc::dhcp::Dhcp4Parser::make_CLIENT_CLASS(driver.loc_);
@@ -3015,7 +2794,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 836 "dhcp4_lexer.ll"
+#line 835 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -3028,7 +2807,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 846 "dhcp4_lexer.ll"
+#line 845 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3040,7 +2819,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 855 "dhcp4_lexer.ll"
+#line 854 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3053,7 +2832,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 865 "dhcp4_lexer.ll"
+#line 864 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3066,7 +2845,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 875 "dhcp4_lexer.ll"
+#line 874 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3079,7 +2858,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 885 "dhcp4_lexer.ll"
+#line 884 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3092,7 +2871,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 895 "dhcp4_lexer.ll"
+#line 894 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3105,7 +2884,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 905 "dhcp4_lexer.ll"
+#line 904 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATIONS:
@@ -3117,7 +2896,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 914 "dhcp4_lexer.ll"
+#line 913 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3130,7 +2909,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 924 "dhcp4_lexer.ll"
+#line 923 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -3142,7 +2921,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 933 "dhcp4_lexer.ll"
+#line 932 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3154,7 +2933,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 942 "dhcp4_lexer.ll"
+#line 941 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3166,7 +2945,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 951 "dhcp4_lexer.ll"
+#line 950 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3178,7 +2957,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 960 "dhcp4_lexer.ll"
+#line 959 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3191,7 +2970,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 970 "dhcp4_lexer.ll"
+#line 969 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -3204,7 +2983,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 980 "dhcp4_lexer.ll"
+#line 979 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3216,7 +2995,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 990 "dhcp4_lexer.ll"
+#line 989 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -3228,7 +3007,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 999 "dhcp4_lexer.ll"
+#line 998 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -3240,7 +3019,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 1008 "dhcp4_lexer.ll"
+#line 1007 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3252,7 +3031,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 1017 "dhcp4_lexer.ll"
+#line 1016 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3264,7 +3043,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 1026 "dhcp4_lexer.ll"
+#line 1025 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3276,7 +3055,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 1035 "dhcp4_lexer.ll"
+#line 1034 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3288,7 +3067,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 1044 "dhcp4_lexer.ll"
+#line 1043 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3300,7 +3079,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 1053 "dhcp4_lexer.ll"
+#line 1052 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3312,7 +3091,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 1062 "dhcp4_lexer.ll"
+#line 1061 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3324,7 +3103,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 1071 "dhcp4_lexer.ll"
+#line 1070 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3336,7 +3115,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 1080 "dhcp4_lexer.ll"
+#line 1079 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3348,7 +3127,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 1089 "dhcp4_lexer.ll"
+#line 1088 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -3360,7 +3139,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 1098 "dhcp4_lexer.ll"
+#line 1097 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -3372,7 +3151,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 1107 "dhcp4_lexer.ll"
+#line 1106 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3384,7 +3163,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 1116 "dhcp4_lexer.ll"
+#line 1115 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3396,7 +3175,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 1125 "dhcp4_lexer.ll"
+#line 1124 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3408,7 +3187,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 1134 "dhcp4_lexer.ll"
+#line 1133 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3420,7 +3199,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 1143 "dhcp4_lexer.ll"
+#line 1142 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3432,7 +3211,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 1152 "dhcp4_lexer.ll"
+#line 1151 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3444,7 +3223,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 1161 "dhcp4_lexer.ll"
+#line 1160 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3456,7 +3235,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 1170 "dhcp4_lexer.ll"
+#line 1169 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3468,7 +3247,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 1179 "dhcp4_lexer.ll"
+#line 1178 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3480,7 +3259,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 1188 "dhcp4_lexer.ll"
+#line 1187 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3492,7 +3271,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 1197 "dhcp4_lexer.ll"
+#line 1196 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3504,7 +3283,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 1206 "dhcp4_lexer.ll"
+#line 1205 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3516,7 +3295,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 1215 "dhcp4_lexer.ll"
+#line 1214 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3528,7 +3307,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 1224 "dhcp4_lexer.ll"
+#line 1223 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3540,7 +3319,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 1233 "dhcp4_lexer.ll"
+#line 1232 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3552,124 +3331,124 @@ YY_RULE_SETUP
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 1242 "dhcp4_lexer.ll"
+#line 1241 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
          return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser4_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 1252 "dhcp4_lexer.ll"
+#line 1251 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
         return isc::dhcp::Dhcp4Parser::make_TCP(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser4_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 1262 "dhcp4_lexer.ll"
+#line 1261 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
         return isc::dhcp::Dhcp4Parser::make_JSON(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser4_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 1272 "dhcp4_lexer.ll"
+#line 1271 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
         return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser4_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 1282 "dhcp4_lexer.ll"
+#line 1281 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
         return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser4_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 1292 "dhcp4_lexer.ll"
+#line 1291 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
         return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser4_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 1302 "dhcp4_lexer.ll"
+#line 1301 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
         return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser4_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 1312 "dhcp4_lexer.ll"
+#line 1311 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
         return isc::dhcp::Dhcp4Parser::make_ALWAYS(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser4_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 1322 "dhcp4_lexer.ll"
+#line 1321 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
         return isc::dhcp::Dhcp4Parser::make_WHEN_NOT_PRESENT(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser4_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 1332 "dhcp4_lexer.ll"
+#line 1331 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -3681,7 +3460,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 1341 "dhcp4_lexer.ll"
+#line 1340 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -3693,7 +3472,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 1350 "dhcp4_lexer.ll"
+#line 1349 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -3705,7 +3484,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 1359 "dhcp4_lexer.ll"
+#line 1358 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3717,7 +3496,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 1368 "dhcp4_lexer.ll"
+#line 1367 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3729,7 +3508,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 1377 "dhcp4_lexer.ll"
+#line 1376 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3741,7 +3520,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 1386 "dhcp4_lexer.ll"
+#line 1385 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3753,7 +3532,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 1395 "dhcp4_lexer.ll"
+#line 1394 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3767,7 +3546,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 1406 "dhcp4_lexer.ll"
+#line 1405 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3783,7 +3562,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 1419 "dhcp4_lexer.ll"
+#line 1418 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3799,7 +3578,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 1432 "dhcp4_lexer.ll"
+#line 1431 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3815,12 +3594,12 @@ YY_RULE_SETUP
        YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 1447 "dhcp4_lexer.ll"
+#line 1446 "dhcp4_lexer.ll"
 {
     /* A string has been matched. It contains the actual string and single quotes.
        We need to get those quotes out of the way and just use its content, e.g.
        for 'foo' we should get foo */
-    std::string raw(yytext+1);
+    std::string raw(parser4_text+1);
     size_t len = raw.size() - 1;
     raw.resize(len);
     std::string decoded;
@@ -3918,65 +3697,65 @@ YY_RULE_SETUP
 case 142:
 /* rule 142 can match eol */
 YY_RULE_SETUP
-#line 1546 "dhcp4_lexer.ll"
+#line 1545 "dhcp4_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
-    driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
+    driver.error(driver.loc_, "Invalid control in " + std::string(parser4_text));
 }
        YY_BREAK
 case 143:
 /* rule 143 can match eol */
 YY_RULE_SETUP
-#line 1551 "dhcp4_lexer.ll"
+#line 1550 "dhcp4_lexer.ll"
 {
     /* Bad string with a bad escape inside */
-    driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
+    driver.error(driver.loc_, "Bad escape in " + std::string(parser4_text));
 }
        YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 1556 "dhcp4_lexer.ll"
+#line 1555 "dhcp4_lexer.ll"
 {
     /* Bad string with an open escape at the end */
-    driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
+    driver.error(driver.loc_, "Overflow escape in " + std::string(parser4_text));
 }
        YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 1561 "dhcp4_lexer.ll"
+#line 1560 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 1562 "dhcp4_lexer.ll"
+#line 1561 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 1563 "dhcp4_lexer.ll"
+#line 1562 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 1564 "dhcp4_lexer.ll"
+#line 1563 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 1565 "dhcp4_lexer.ll"
+#line 1564 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
        YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 1566 "dhcp4_lexer.ll"
+#line 1565 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
        YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 1568 "dhcp4_lexer.ll"
+#line 1567 "dhcp4_lexer.ll"
 {
     /* An integer was found. */
-    std::string tmp(yytext);
+    std::string tmp(parser4_text);
     int64_t integer = 0;
     try {
         /* In substring we want to use negative values (e.g. -1).
@@ -3994,10 +3773,10 @@ YY_RULE_SETUP
        YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 1586 "dhcp4_lexer.ll"
+#line 1585 "dhcp4_lexer.ll"
 {
     /* A floating point was found. */
-    std::string tmp(yytext);
+    std::string tmp(parser4_text);
     double fp = 0.0;
     try {
         fp = boost::lexical_cast<double>(tmp);
@@ -4010,41 +3789,41 @@ YY_RULE_SETUP
        YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 1599 "dhcp4_lexer.ll"
+#line 1598 "dhcp4_lexer.ll"
 {
-    string tmp(yytext);
+    string tmp(parser4_text);
     return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
 }
        YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 1604 "dhcp4_lexer.ll"
+#line 1603 "dhcp4_lexer.ll"
 {
    return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 1608 "dhcp4_lexer.ll"
+#line 1607 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 1610 "dhcp4_lexer.ll"
+#line 1609 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 1612 "dhcp4_lexer.ll"
+#line 1611 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 1614 "dhcp4_lexer.ll"
-driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
+#line 1613 "dhcp4_lexer.ll"
+driver.error (driver.loc_, "Invalid character: " + std::string(parser4_text));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 1616 "dhcp4_lexer.ll"
+#line 1615 "dhcp4_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
@@ -4070,10 +3849,10 @@ case YY_STATE_EOF(INITIAL):
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 1639 "dhcp4_lexer.ll"
+#line 1638 "dhcp4_lexer.ll"
 ECHO;
        YY_BREAK
-#line 4076 "dhcp4_lexer.cc"
+#line 3856 "dhcp4_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -4088,8 +3867,8 @@ ECHO;
                        {
                        /* We're scanning a new file or input source.  It's
                         * possible that this happened because the user
-                        * just pointed yyin at a new source and called
-                        * yylex().  If so, then we have to assure
+                        * just pointed parser4_in at a new source and called
+                        * parser4_lex().  If so, then we have to assure
                         * consistency between YY_CURRENT_BUFFER and our
                         * globals.  Here is the right place to do so, because
                         * this is the first action (other than possibly a
@@ -4097,7 +3876,7 @@ ECHO;
                         */
                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
 /* %if-c-only */
-                       YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+                       YY_CURRENT_BUFFER_LVALUE->yy_input_file = parser4_in;
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4155,11 +3934,11 @@ ECHO;
                                {
                                (yy_did_buffer_switch_on_eof) = 0;
 
-                               if ( yywrap(  ) )
+                               if ( parser4_wrap( ) )
                                        {
                                        /* Note: because we've taken care in
                                         * yy_get_next_buffer() to have set up
-                                        * yytext, we can now set up
+                                        * parser4_text, we can now set up
                                         * yy_c_buf_p so that if some total
                                         * hoser (like flex itself) wants to
                                         * call the scanner after we return the
@@ -4209,11 +3988,12 @@ ECHO;
        } /* end of action switch */
                } /* end of scanning one token */
        } /* end of user's declarations */
-} /* end of yylex */
+} /* end of parser4_lex */
 /* %ok-for-header */
 
 /* %if-c++-only */
 /* %not-for-header */
+
 /* %ok-for-header */
 
 /* %endif */
@@ -4298,8 +4078,7 @@ static int yy_get_next_buffer (void)
 
                                b->yy_ch_buf = (char *)
                                        /* Include room in for 2 EOB chars. */
-                                       yyrealloc( (void *) b->yy_ch_buf,
-                                                        (yy_size_t) (b->yy_buf_size + 2)  );
+                                       parser4_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
                                }
                        else
                                /* Can't grow it, we don't own it. */
@@ -4331,7 +4110,7 @@ static int yy_get_next_buffer (void)
                if ( number_to_move == YY_MORE_ADJ )
                        {
                        ret_val = EOB_ACT_END_OF_FILE;
-                       yyrestart( yyin  );
+                       parser4_restart(parser4_in  );
                        }
 
                else
@@ -4348,12 +4127,9 @@ static int yy_get_next_buffer (void)
        if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
                /* Extend the array by 50%, plus the number we really need. */
                int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
-               YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
-                       (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
+               YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) parser4_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
                if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
                        YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-               /* "- 2" to take care of EOB's */
-               YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
        }
 
        (yy_n_chars) += number_to_move;
@@ -4369,6 +4145,7 @@ static int yy_get_next_buffer (void)
 
 /* %if-c-only */
 /* %not-for-header */
+
     static yy_state_type yy_get_previous_state (void)
 /* %endif */
 /* %if-c++-only */
@@ -4393,9 +4170,9 @@ static int yy_get_next_buffer (void)
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
                        if ( yy_current_state >= 1292 )
-                               yy_c = yy_meta[yy_c];
+                               yy_c = yy_meta[(unsigned int) yy_c];
                        }
-               yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+               yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
                }
 
        return yy_current_state;
@@ -4426,9 +4203,9 @@ static int yy_get_next_buffer (void)
                {
                yy_current_state = (int) yy_def[yy_current_state];
                if ( yy_current_state >= 1292 )
-                       yy_c = yy_meta[yy_c];
+                       yy_c = yy_meta[(unsigned int) yy_c];
                }
-       yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+       yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
        yy_is_jam = (yy_current_state == 1291);
 
                return yy_is_jam ? 0 : yy_current_state;
@@ -4468,7 +4245,7 @@ static int yy_get_next_buffer (void)
 
                else
                        { /* need more input */
-                       int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
+                       int offset = (yy_c_buf_p) - (yytext_ptr);
                        ++(yy_c_buf_p);
 
                        switch ( yy_get_next_buffer(  ) )
@@ -4485,13 +4262,13 @@ static int yy_get_next_buffer (void)
                                         */
 
                                        /* Reset buffer status. */
-                                       yyrestart( yyin );
+                                       parser4_restart(parser4_in );
 
                                        /*FALLTHROUGH*/
 
                                case EOB_ACT_END_OF_FILE:
                                        {
-                                       if ( yywrap(  ) )
+                                       if ( parser4_wrap( ) )
                                                return 0;
 
                                        if ( ! (yy_did_buffer_switch_on_eof) )
@@ -4511,10 +4288,10 @@ static int yy_get_next_buffer (void)
                }
 
        c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
-       *(yy_c_buf_p) = '\0';   /* preserve yytext */
+       *(yy_c_buf_p) = '\0';   /* preserve parser4_text */
        (yy_hold_char) = *++(yy_c_buf_p);
 
-/* %% [19.0] update BOL and yylineno */
+/* %% [19.0] update BOL and parser4_lineno */
 
        return c;
 }
@@ -4528,20 +4305,20 @@ static int yy_get_next_buffer (void)
  * @note This function does not reset the start condition to @c INITIAL .
  */
 /* %if-c-only */
-    void yyrestart  (FILE * input_file )
+    void parser4_restart  (FILE * input_file )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 {
     
        if ( ! YY_CURRENT_BUFFER ){
-        yyensure_buffer_stack ();
+        parser4_ensure_buffer_stack ();
                YY_CURRENT_BUFFER_LVALUE =
-            yy_create_buffer( yyin, YY_BUF_SIZE );
+            parser4__create_buffer(parser4_in,YY_BUF_SIZE );
        }
 
-       yy_init_buffer( YY_CURRENT_BUFFER, input_file );
-       yy_load_buffer_state(  );
+       parser4__init_buffer(YY_CURRENT_BUFFER,input_file );
+       parser4__load_buffer_state( );
 }
 
 /* %if-c++-only */
@@ -4552,7 +4329,7 @@ static int yy_get_next_buffer (void)
  * 
  */
 /* %if-c-only */
-    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+    void parser4__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4560,10 +4337,10 @@ static int yy_get_next_buffer (void)
     
        /* TODO. We should be able to replace this entire function body
         * with
-        *              yypop_buffer_state();
-        *              yypush_buffer_state(new_buffer);
+        *              parser4_pop_buffer_state();
+        *              parser4_push_buffer_state(new_buffer);
      */
-       yyensure_buffer_stack ();
+       parser4_ensure_buffer_stack ();
        if ( YY_CURRENT_BUFFER == new_buffer )
                return;
 
@@ -4576,18 +4353,18 @@ static int yy_get_next_buffer (void)
                }
 
        YY_CURRENT_BUFFER_LVALUE = new_buffer;
-       yy_load_buffer_state(  );
+       parser4__load_buffer_state( );
 
        /* We don't actually know whether we did this switch during
-        * EOF (yywrap()) processing, but the only time this flag
-        * is looked at is after yywrap() is called, so it's safe
+        * EOF (parser4_wrap()) processing, but the only time this flag
+        * is looked at is after parser4_wrap() is called, so it's safe
         * to go ahead and always set it.
         */
        (yy_did_buffer_switch_on_eof) = 1;
 }
 
 /* %if-c-only */
-static void yy_load_buffer_state  (void)
+static void parser4__load_buffer_state  (void)
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4595,7 +4372,7 @@ static void yy_load_buffer_state  (void)
        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
        (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
 /* %if-c-only */
-       yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+       parser4_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4609,29 +4386,29 @@ static void yy_load_buffer_state  (void)
  * @return the allocated buffer state.
  */
 /* %if-c-only */
-    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+    YY_BUFFER_STATE parser4__create_buffer  (FILE * file, int  size )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 {
        YY_BUFFER_STATE b;
     
-       b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
+       b = (YY_BUFFER_STATE) parser4_alloc(sizeof( struct yy_buffer_state )  );
        if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+               YY_FATAL_ERROR( "out of dynamic memory in parser4__create_buffer()" );
 
-       b->yy_buf_size = size;
+       b->yy_buf_size = (yy_size_t)size;
 
        /* yy_ch_buf has to be 2 characters longer than the size given because
         * we need to put in 2 end-of-buffer characters.
         */
-       b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
+       b->yy_ch_buf = (char *) parser4_alloc(b->yy_buf_size + 2  );
        if ( ! b->yy_ch_buf )
-               YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+               YY_FATAL_ERROR( "out of dynamic memory in parser4__create_buffer()" );
 
        b->yy_is_our_buffer = 1;
 
-       yy_init_buffer( b, file );
+       parser4__init_buffer(b,file );
 
        return b;
 }
@@ -4640,11 +4417,11 @@ static void yy_load_buffer_state  (void)
 /* %endif */
 
 /** Destroy the buffer.
- * @param b a buffer created with yy_create_buffer()
+ * @param b a buffer created with parser4__create_buffer()
  * 
  */
 /* %if-c-only */
-    void yy_delete_buffer (YY_BUFFER_STATE  b )
+    void parser4__delete_buffer (YY_BUFFER_STATE  b )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4657,17 +4434,17 @@ static void yy_load_buffer_state  (void)
                YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
 
        if ( b->yy_is_our_buffer )
-               yyfree( (void *) b->yy_ch_buf  );
+               parser4_free((void *) b->yy_ch_buf  );
 
-       yyfree( (void *) b  );
+       parser4_free((void *) b  );
 }
 
 /* Initializes or reinitializes a buffer.
  * This function is sometimes called more than once on the same buffer,
- * such as during a yyrestart() or at EOF.
+ * such as during a parser4_restart() or at EOF.
  */
 /* %if-c-only */
-    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+    static void parser4__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4675,7 +4452,7 @@ static void yy_load_buffer_state  (void)
 {
        int oerrno = errno;
     
-       yy_flush_buffer( b );
+       parser4__flush_buffer(b );
 
 /* %if-c-only */
        b->yy_input_file = file;
@@ -4684,8 +4461,8 @@ static void yy_load_buffer_state  (void)
 /* %endif */
        b->yy_fill_buffer = 1;
 
-    /* If b is the current buffer, then yy_init_buffer was _probably_
-     * called from yyrestart() or through yy_get_next_buffer.
+    /* If b is the current buffer, then parser4__init_buffer was _probably_
+     * called from parser4_restart() or through yy_get_next_buffer.
      * In that case, we don't want to reset the lineno or column.
      */
     if (b != YY_CURRENT_BUFFER){
@@ -4708,7 +4485,7 @@ static void yy_load_buffer_state  (void)
  * 
  */
 /* %if-c-only */
-    void yy_flush_buffer (YY_BUFFER_STATE  b )
+    void parser4__flush_buffer (YY_BUFFER_STATE  b )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4731,7 +4508,7 @@ static void yy_load_buffer_state  (void)
        b->yy_buffer_status = YY_BUFFER_NEW;
 
        if ( b == YY_CURRENT_BUFFER )
-               yy_load_buffer_state(  );
+               parser4__load_buffer_state( );
 }
 
 /* %if-c-or-c++ */
@@ -4742,7 +4519,7 @@ static void yy_load_buffer_state  (void)
  *  
  */
 /* %if-c-only */
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+void parser4_push_buffer_state (YY_BUFFER_STATE new_buffer )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4750,9 +4527,9 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
        if (new_buffer == NULL)
                return;
 
-       yyensure_buffer_stack();
+       parser4_ensure_buffer_stack();
 
-       /* This block is copied from yy_switch_to_buffer. */
+       /* This block is copied from parser4__switch_to_buffer. */
        if ( YY_CURRENT_BUFFER )
                {
                /* Flush out information for old buffer. */
@@ -4766,8 +4543,8 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
                (yy_buffer_stack_top)++;
        YY_CURRENT_BUFFER_LVALUE = new_buffer;
 
-       /* copied from yy_switch_to_buffer. */
-       yy_load_buffer_state(  );
+       /* copied from parser4__switch_to_buffer. */
+       parser4__load_buffer_state( );
        (yy_did_buffer_switch_on_eof) = 1;
 }
 /* %endif */
@@ -4778,7 +4555,7 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
  *  
  */
 /* %if-c-only */
-void yypop_buffer_state (void)
+void parser4_pop_buffer_state (void)
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4786,13 +4563,13 @@ void yypop_buffer_state (void)
        if (!YY_CURRENT_BUFFER)
                return;
 
-       yy_delete_buffer(YY_CURRENT_BUFFER );
+       parser4__delete_buffer(YY_CURRENT_BUFFER );
        YY_CURRENT_BUFFER_LVALUE = NULL;
        if ((yy_buffer_stack_top) > 0)
                --(yy_buffer_stack_top);
 
        if (YY_CURRENT_BUFFER) {
-               yy_load_buffer_state(  );
+               parser4__load_buffer_state( );
                (yy_did_buffer_switch_on_eof) = 1;
        }
 }
@@ -4803,12 +4580,12 @@ void yypop_buffer_state (void)
  *  Guarantees space for at least one push.
  */
 /* %if-c-only */
-static void yyensure_buffer_stack (void)
+static void parser4_ensure_buffer_stack (void)
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 {
-       yy_size_t num_to_alloc;
+       int num_to_alloc;
     
        if (!(yy_buffer_stack)) {
 
@@ -4817,11 +4594,11 @@ static void yyensure_buffer_stack (void)
                 * immediate realloc on the next call.
          */
       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
-               (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+               (yy_buffer_stack) = (struct yy_buffer_state**)parser4_alloc
                                                                (num_to_alloc * sizeof(struct yy_buffer_state*)
                                                                );
                if ( ! (yy_buffer_stack) )
-                       YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+                       YY_FATAL_ERROR( "out of dynamic memory in parser4_ensure_buffer_stack()" );
 
                memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
 
@@ -4836,12 +4613,12 @@ static void yyensure_buffer_stack (void)
                yy_size_t grow_size = 8 /* arbitrary grow size */;
 
                num_to_alloc = (yy_buffer_stack_max) + grow_size;
-               (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+               (yy_buffer_stack) = (struct yy_buffer_state**)parser4_realloc
                                                                ((yy_buffer_stack),
                                                                num_to_alloc * sizeof(struct yy_buffer_state*)
                                                                );
                if ( ! (yy_buffer_stack) )
-                       YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+                       YY_FATAL_ERROR( "out of dynamic memory in parser4_ensure_buffer_stack()" );
 
                /* zero only the new slots.*/
                memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
@@ -4857,7 +4634,7 @@ static void yyensure_buffer_stack (void)
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+YY_BUFFER_STATE parser4__scan_buffer  (char * base, yy_size_t  size )
 {
        YY_BUFFER_STATE b;
     
@@ -4867,11 +4644,11 @@ YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
                /* They forgot to leave room for the EOB's. */
                return NULL;
 
-       b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
+       b = (YY_BUFFER_STATE) parser4_alloc(sizeof( struct yy_buffer_state )  );
        if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+               YY_FATAL_ERROR( "out of dynamic memory in parser4__scan_buffer()" );
 
-       b->yy_buf_size = (int) (size - 2);      /* "- 2" to take care of EOB's */
+       b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
        b->yy_buf_pos = b->yy_ch_buf = base;
        b->yy_is_our_buffer = 0;
        b->yy_input_file = NULL;
@@ -4881,37 +4658,37 @@ YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
        b->yy_fill_buffer = 0;
        b->yy_buffer_status = YY_BUFFER_NEW;
 
-       yy_switch_to_buffer( b  );
+       parser4__switch_to_buffer(b  );
 
        return b;
 }
 /* %endif */
 
 /* %if-c-only */
-/** Setup the input buffer state to scan a string. The next call to yylex() will
+/** Setup the input buffer state to scan a string. The next call to parser4_lex() will
  * scan from a @e copy of @a str.
  * @param yystr a NUL-terminated string to scan
  * 
  * @return the newly allocated buffer state object.
  * @note If you want to scan bytes that may contain NUL values, then use
- *       yy_scan_bytes() instead.
+ *       parser4__scan_bytes() instead.
  */
-YY_BUFFER_STATE yy_scan_string (const char * yystr )
+YY_BUFFER_STATE parser4__scan_string (yyconst char * yystr )
 {
     
-       return yy_scan_bytes( yystr, (int) strlen(yystr) );
+       return parser4__scan_bytes(yystr,(int) strlen(yystr) );
 }
 /* %endif */
 
 /* %if-c-only */
-/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+/** Setup the input buffer state to scan the given bytes. The next call to parser4_lex() will
  * scan from a @e copy of @a bytes.
  * @param yybytes the byte buffer to scan
  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
+YY_BUFFER_STATE parser4__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
 {
        YY_BUFFER_STATE b;
        char *buf;
@@ -4920,18 +4697,18 @@ YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
     
        /* Get memory for full buffer, including space for trailing EOB's. */
        n = (yy_size_t) (_yybytes_len + 2);
-       buf = (char *) yyalloc( n  );
+       buf = (char *) parser4_alloc(n  );
        if ( ! buf )
-               YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+               YY_FATAL_ERROR( "out of dynamic memory in parser4__scan_bytes()" );
 
        for ( i = 0; i < _yybytes_len; ++i )
                buf[i] = yybytes[i];
 
        buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
 
-       b = yy_scan_buffer( buf, n );
+       b = parser4__scan_buffer(buf,n );
        if ( ! b )
-               YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+               YY_FATAL_ERROR( "bad buffer in parser4__scan_bytes()" );
 
        /* It's okay to grow etc. this buffer, and we should throw it
         * away when we're done.
@@ -4947,9 +4724,9 @@ YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
 #endif
 
 /* %if-c-only */
-static void yynoreturn yy_fatal_error (const char* msg )
+static void yynoreturn yy_fatal_error (yyconst char* msg )
 {
-                       fprintf( stderr, "%s\n", msg );
+                       (void) fprintf( stderr, "%s\n", msg );
        exit( YY_EXIT_FAILURE );
 }
 /* %endif */
@@ -4962,14 +4739,14 @@ static void yynoreturn yy_fatal_error (const char* msg )
 #define yyless(n) \
        do \
                { \
-               /* Undo effects of setting up yytext. */ \
+               /* Undo effects of setting up parser4_text. */ \
         int yyless_macro_arg = (n); \
         YY_LESS_LINENO(yyless_macro_arg);\
-               yytext[yyleng] = (yy_hold_char); \
-               (yy_c_buf_p) = yytext + yyless_macro_arg; \
+               parser4_text[parser4_leng] = (yy_hold_char); \
+               (yy_c_buf_p) = parser4_text + yyless_macro_arg; \
                (yy_hold_char) = *(yy_c_buf_p); \
                *(yy_c_buf_p) = '\0'; \
-               yyleng = yyless_macro_arg; \
+               parser4_leng = yyless_macro_arg; \
                } \
        while ( 0 )
 
@@ -4982,43 +4759,43 @@ static void yynoreturn yy_fatal_error (const char* msg )
 /** Get the current line number.
  * 
  */
-int yyget_lineno  (void)
+int parser4_get_lineno  (void)
 {
     
-    return yylineno;
+    return parser4_lineno;
 }
 
 /** Get the input stream.
  * 
  */
-FILE *yyget_in  (void)
+FILE *parser4_get_in  (void)
 {
-        return yyin;
+        return parser4_in;
 }
 
 /** Get the output stream.
  * 
  */
-FILE *yyget_out  (void)
+FILE *parser4_get_out  (void)
 {
-        return yyout;
+        return parser4_out;
 }
 
 /** Get the length of the current token.
  * 
  */
-int yyget_leng  (void)
+int parser4_get_leng  (void)
 {
-        return yyleng;
+        return parser4_leng;
 }
 
 /** Get the current token.
  * 
  */
 
-char *yyget_text  (void)
+char *parser4_get_text  (void)
 {
-        return yytext;
+        return parser4_text;
 }
 
 /* %if-reentrant */
@@ -5028,36 +4805,36 @@ char *yyget_text  (void)
  * @param _line_number line number
  * 
  */
-void yyset_lineno (int  _line_number )
+void parser4_set_lineno (int  _line_number )
 {
     
-    yylineno = _line_number;
+    parser4_lineno = _line_number;
 }
 
 /** Set the input stream. This does not discard the current
  * input buffer.
  * @param _in_str A readable stream.
  * 
- * @see yy_switch_to_buffer
+ * @see parser4__switch_to_buffer
  */
-void yyset_in (FILE *  _in_str )
+void parser4_set_in (FILE *  _in_str )
 {
-        yyin = _in_str ;
+        parser4_in = _in_str ;
 }
 
-void yyset_out (FILE *  _out_str )
+void parser4_set_out (FILE *  _out_str )
 {
-        yyout = _out_str ;
+        parser4_out = _out_str ;
 }
 
-int yyget_debug  (void)
+int parser4_get_debug  (void)
 {
-        return yy_flex_debug;
+        return parser4__flex_debug;
 }
 
-void yyset_debug (int  _bdebug )
+void parser4_set_debug (int  _bdebug )
 {
-        yy_flex_debug = _bdebug ;
+        parser4__flex_debug = _bdebug ;
 }
 
 /* %endif */
@@ -5071,7 +4848,7 @@ void yyset_debug (int  _bdebug )
 static int yy_init_globals (void)
 {
         /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from yylex_destroy(), so don't allocate here.
+     * This function is called from parser4_lex_destroy(), so don't allocate here.
      */
 
     (yy_buffer_stack) = NULL;
@@ -5083,38 +4860,38 @@ static int yy_init_globals (void)
 
 /* Defined in main.c */
 #ifdef YY_STDINIT
-    yyin = stdin;
-    yyout = stdout;
+    parser4_in = stdin;
+    parser4_out = stdout;
 #else
-    yyin = NULL;
-    yyout = NULL;
+    parser4_in = NULL;
+    parser4_out = NULL;
 #endif
 
     /* For future reference: Set errno on error, since we are called by
-     * yylex_init()
+     * parser4_lex_init()
      */
     return 0;
 }
 /* %endif */
 
 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
-/* yylex_destroy is for both reentrant and non-reentrant scanners. */
-int yylex_destroy  (void)
+/* parser4_lex_destroy is for both reentrant and non-reentrant scanners. */
+int parser4_lex_destroy  (void)
 {
     
     /* Pop the buffer stack, destroying each element. */
        while(YY_CURRENT_BUFFER){
-               yy_delete_buffer( YY_CURRENT_BUFFER  );
+               parser4__delete_buffer(YY_CURRENT_BUFFER  );
                YY_CURRENT_BUFFER_LVALUE = NULL;
-               yypop_buffer_state();
+               parser4_pop_buffer_state();
        }
 
        /* Destroy the stack itself. */
-       yyfree((yy_buffer_stack) );
+       parser4_free((yy_buffer_stack) );
        (yy_buffer_stack) = NULL;
 
     /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * yylex() is called, initialization will occur. */
+     * parser4_lex() is called, initialization will occur. */
     yy_init_globals( );
 
 /* %if-reentrant */
@@ -5128,7 +4905,7 @@ int yylex_destroy  (void)
  */
 
 #ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, const char * s2, int n )
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
 {
                
        int i;
@@ -5138,7 +4915,7 @@ static void yy_flex_strncpy (char* s1, const char * s2, int n )
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (const char * s )
+static int yy_flex_strlen (yyconst char * s )
 {
        int n;
        for ( n = 0; s[n]; ++n )
@@ -5148,12 +4925,12 @@ static int yy_flex_strlen (const char * s )
 }
 #endif
 
-void *yyalloc (yy_size_t  size )
+void *parser4_alloc (yy_size_t  size )
 {
                        return malloc(size);
 }
 
-void *yyrealloc  (void * ptr, yy_size_t  size )
+void *parser4_realloc  (void * ptr, yy_size_t  size )
 {
                
        /* The cast to (char *) in the following accommodates both
@@ -5166,9 +4943,9 @@ void *yyrealloc  (void * ptr, yy_size_t  size )
        return realloc(ptr, size);
 }
 
-void yyfree (void * ptr )
+void parser4_free (void * ptr )
 {
-                       free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
+                       free( (char *) ptr );   /* see parser4_realloc() for (char *) cast */
 }
 
 /* %if-tables-serialization definitions */
@@ -5178,7 +4955,8 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 1639 "dhcp4_lexer.ll"
+#line 1638 "dhcp4_lexer.ll"
+
 
 
 using namespace isc::dhcp;
@@ -5192,7 +4970,7 @@ Parser4Context::scanStringBegin(const std::string& str, ParserType parser_type)
     file_ = "<string>";
     sfile_ = 0;
     loc_.initialize(&file_);
-    yy_flex_debug = trace_scanning_;
+    parser4__flex_debug = trace_scanning_;
     YY_BUFFER_STATE buffer;
     buffer = parser4__scan_bytes(str.c_str(), str.size());
     if (!buffer) {
@@ -5212,7 +4990,7 @@ Parser4Context::scanFileBegin(FILE * f,
     file_ = filename;
     sfile_ = f;
     loc_.initialize(&file_);
-    yy_flex_debug = trace_scanning_;
+    parser4__flex_debug = trace_scanning_;
     YY_BUFFER_STATE buffer;
 
     /* See dhcp4_lexer.cc header for available definitions */
index 698791d27c9bd47d5c897f8f0a683482b3e83225..9beaf93eaa0e7dafa4c084c26e3e4a6ce64f1876 100644 (file)
@@ -3565,107 +3565,107 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short int Dhcp4Parser::yypact_ninf_ = -722;
+  const short int Dhcp4Parser::yypact_ninf_ = -719;
 
   const signed char Dhcp4Parser::yytable_ninf_ = -1;
 
   const short int
   Dhcp4Parser::yypact_[] =
   {
-     284,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,    41,    19,    24,    50,    60,    92,
-     102,   118,   129,   138,   148,   150,   159,   171,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,    19,   -93,     8,    62,    31,   151,
-      -2,   228,   147,   236,    37,   -24,   344,    27,  -722,   184,
-     204,   207,   200,   235,  -722,  -722,  -722,  -722,  -722,   219,
-    -722,    48,  -722,  -722,  -722,  -722,  -722,  -722,  -722,   227,
-     241,  -722,  -722,  -722,  -722,  -722,   244,   261,   276,   279,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-     283,  -722,  -722,  -722,    56,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,   285,  -722,    69,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,   301,   302,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,    95,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,   136,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,   231,   255,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,   299,  -722,
-    -722,   314,  -722,  -722,  -722,   315,  -722,  -722,   325,   332,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,   334,   336,  -722,  -722,  -722,  -722,   328,
-     339,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,   140,  -722,  -722,  -722,   341,  -722,  -722,
-     343,  -722,   350,   351,  -722,  -722,   352,   353,   355,  -722,
-    -722,  -722,  -722,  -722,   144,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,   146,  -722,  -722,  -722,    19,    19,  -722,   216,   363,
-     367,   370,   371,   375,  -722,     8,  -722,   377,   197,   234,
-     383,   384,   390,   391,   406,   221,   262,   263,   264,   410,
-     411,   412,   413,   428,   429,   430,   431,   432,   433,   289,
-     435,   436,    62,  -722,   437,   438,   439,   293,    31,  -722,
-     441,   442,   457,   458,   460,   461,   462,   318,   317,   465,
-     468,   470,   471,   151,  -722,   472,    -2,  -722,   475,   476,
-     477,   479,   480,   482,   483,   484,  -722,   228,  -722,   485,
-     489,   345,   491,   492,   493,   347,  -722,   236,   495,   349,
-     356,  -722,    37,   497,   500,    -9,  -722,   357,   502,   505,
-     361,   507,   364,   368,   508,   511,   365,   369,   373,   514,
-     515,   344,  -722,   517,    27,  -722,  -722,  -722,   521,   519,
-     520,    19,    19,    19,  -722,   522,  -722,  -722,   380,   382,
-     385,   524,   525,  -722,  -722,  -722,  -722,   529,   530,   531,
-     532,   533,   393,   534,   537,   538,   539,  -722,   540,   541,
-    -722,   544,    96,   170,  -722,  -722,   396,   397,   402,   546,
-     404,   405,   407,  -722,  -722,   254,   408,   549,   550,  -722,
-     414,  -722,   544,   415,   416,   417,   418,   419,   420,   421,
-    -722,   422,   423,  -722,   424,   425,   426,  -722,  -722,   427,
-    -722,  -722,  -722,   434,    19,  -722,  -722,   440,   443,  -722,
-     444,  -722,  -722,    15,   459,  -722,  -722,  -722,   135,   445,
-    -722,   553,  -722,    19,    62,    27,  -722,  -722,  -722,    31,
-    -722,  -722,  -722,   366,   366,   552,   554,   569,   571,  -722,
-    -722,  -722,   101,   572,   573,    25,    14,   344,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,   574,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,   576,   451,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,   577,  -722,   155,   193,   206,  -722,  -722,  -722,  -722,
-     556,   581,   582,   583,   585,  -722,  -722,  -722,   224,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,   232,  -722,   584,   591,  -722,  -722,   589,   593,
-    -722,  -722,   592,   594,  -722,  -722,   595,   596,  -722,  -722,
-    -722,  -722,  -722,  -722,    26,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,    68,  -722,  -722,   597,   599,  -722,   600,   601,
-     602,   603,   604,   605,   233,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,   256,  -722,  -722,
-    -722,   258,   452,  -722,   606,   607,  -722,  -722,   608,   610,
-    -722,  -722,   609,  -722,    94,  -722,  -722,  -722,  -722,   611,
-     612,   614,   615,   473,   469,   474,   478,   481,   617,   620,
-     366,  -722,  -722,   151,  -722,   552,   236,  -722,   554,    37,
-    -722,   569,   182,  -722,   571,   101,  -722,   220,   572,  -722,
-     -24,  -722,   573,   486,   487,   488,   490,   494,   496,    25,
-    -722,   621,   622,    14,  -722,  -722,  -722,   625,   624,    -2,
-    -722,   574,   228,  -722,   576,   628,  -722,    64,   577,  -722,
-     294,   463,   498,   499,  -722,  -722,  -722,  -722,  -722,   501,
-     503,  -722,   259,  -722,   626,  -722,   630,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,   270,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,   632,
-     638,  -722,  -722,  -722,  -722,   273,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,   504,   506,  -722,  -722,   510,   274,
-    -722,   634,  -722,   512,  -722,   629,  -722,  -722,  -722,  -722,
-    -722,   295,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-     182,  -722,   640,  -722,   220,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,   644,   513,   646,    64,  -722,  -722,   527,  -722,
-     623,  -722,   535,  -722,  -722,   648,  -722,  -722,   174,  -722,
-       4,   648,  -722,  -722,   649,   652,   655,   313,  -722,  -722,
-    -722,  -722,  -722,  -722,   657,   543,   516,   523,     4,  -722,
-     542,  -722,  -722,  -722,  -722,  -722
+     296,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,    32,    22,    33,    81,    92,   101,
+     138,   142,   162,   177,   193,   209,   246,   258,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,    22,  -110,     8,    59,    53,   155,
+     -12,    11,    10,   349,   190,    17,   314,   -57,  -719,    84,
+     126,   156,   159,   263,  -719,  -719,  -719,  -719,  -719,   272,
+    -719,    46,  -719,  -719,  -719,  -719,  -719,  -719,  -719,   274,
+     283,  -719,  -719,  -719,  -719,  -719,   293,   294,   318,   326,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+     328,  -719,  -719,  -719,   108,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,   330,  -719,   118,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,   331,   332,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,   122,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,   129,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,   260,   313,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,   288,  -719,
+    -719,   341,  -719,  -719,  -719,   344,  -719,  -719,   348,   346,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,   355,   356,  -719,  -719,  -719,  -719,   354,
+     360,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,   130,  -719,  -719,  -719,   362,  -719,  -719,
+     363,  -719,   364,   366,  -719,  -719,   368,   370,   376,  -719,
+    -719,  -719,  -719,  -719,   210,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,   228,  -719,  -719,  -719,    22,    22,  -719,   204,   380,
+     383,   389,   390,   391,  -719,     8,  -719,   392,   213,   247,
+     393,   396,   398,   402,   406,   262,   266,   267,   295,   408,
+     441,   442,   443,   444,   445,   446,   447,   448,   449,   306,
+     450,   452,    59,  -719,   453,   454,   455,   309,    53,  -719,
+     457,   460,   461,   462,   463,   464,   465,   323,   324,   470,
+     472,   475,   476,   155,  -719,   477,   479,   -12,  -719,   480,
+     482,   483,   484,   485,   488,   489,  -719,    11,  -719,   490,
+     491,   347,   494,   495,   496,   350,  -719,   349,   500,   357,
+     358,  -719,   190,   501,   502,   -31,  -719,   359,   503,   507,
+     365,   508,   367,   369,   511,   513,   371,   372,   373,   515,
+     516,   314,  -719,   517,   -57,  -719,  -719,  -719,   521,   519,
+     520,    22,    22,    22,  -719,   522,  -719,  -719,   384,   385,
+     386,   528,   529,  -719,  -719,  -719,  -719,   523,   532,   533,
+     534,   535,   395,   536,   539,   540,   541,  -719,   542,   543,
+    -719,   546,   195,    60,  -719,  -719,   399,   404,   405,   549,
+     407,   409,   410,  -719,  -719,   166,   411,   551,   553,  -719,
+     413,   546,  -719,   414,   415,   416,   417,   418,   419,   420,
+    -719,   421,   422,  -719,   423,   424,   425,  -719,  -719,   426,
+    -719,  -719,  -719,   427,    22,  -719,  -719,   428,   429,  -719,
+     430,  -719,  -719,    31,   466,  -719,  -719,  -719,    -7,   431,
+    -719,   575,  -719,    22,    59,   -57,  -719,  -719,  -719,    53,
+    -719,  -719,  -719,   153,   153,   574,   576,   578,   579,  -719,
+    -719,  -719,   200,   580,   581,   167,    63,   314,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,   582,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,   583,   459,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,   584,  -719,   229,   248,   264,  -719,  -719,  -719,  -719,
+     588,   589,   590,   591,   592,  -719,  -719,  -719,   285,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,   291,  -719,   593,   537,  -719,  -719,   594,   595,
+    -719,  -719,   596,   598,  -719,  -719,   597,   601,  -719,  -719,
+    -719,  -719,  -719,  -719,    83,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,    94,  -719,  -719,   599,   603,  -719,   604,   605,
+     606,   607,   608,   609,   292,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,   301,  -719,  -719,
+    -719,   302,   434,  -719,   610,   611,  -719,  -719,   612,   614,
+    -719,  -719,   613,  -719,   116,  -719,  -719,  -719,  -719,   615,
+     616,   618,   619,   458,   473,   478,   474,   481,   622,   624,
+     153,  -719,  -719,   155,  -719,   574,   349,  -719,   576,   190,
+    -719,   578,   206,  -719,   579,   200,  -719,   131,   580,  -719,
+      17,  -719,   581,   486,   487,   492,   493,   497,   498,   167,
+    -719,   625,   627,    63,  -719,  -719,  -719,   626,   630,   -12,
+    -719,   582,    11,  -719,   583,   633,  -719,    87,   584,  -719,
+     297,   467,   504,   505,  -719,  -719,  -719,  -719,  -719,   506,
+     510,  -719,   303,  -719,   631,  -719,   632,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,   304,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,   635,
+     641,  -719,  -719,  -719,  -719,   305,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,   512,   514,  -719,  -719,   524,   312,
+    -719,   637,  -719,   527,  -719,   634,  -719,  -719,  -719,  -719,
+    -719,   315,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+     206,  -719,   644,  -719,   131,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,   645,   531,   646,    87,  -719,  -719,   530,  -719,
+     629,  -719,   544,  -719,  -719,   648,  -719,  -719,   140,  -719,
+     160,   648,  -719,  -719,   647,   652,   655,   316,  -719,  -719,
+    -719,  -719,  -719,  -719,   657,   538,   545,   559,   160,  -719,
+     547,  -719,  -719,  -719,  -719,  -719
   };
 
   const unsigned short int
@@ -3691,8 +3691,8 @@ namespace isc { namespace dhcp {
      265,     0,     0,   269,   267,   396,   447,   254,   231,   232,
      233,   245,     0,   229,   236,   249,   250,   251,   237,   238,
      241,   243,   239,   240,   234,   235,   252,   253,   242,   246,
-     247,   248,   244,   390,   389,   386,   385,     0,   382,   384,
-     387,   388,   445,   433,   435,   439,   437,   443,   441,   431,
+     247,   248,   244,   390,   445,   389,   385,     0,   382,   384,
+     387,   388,   386,   433,   435,   439,   437,   443,   441,   431,
      424,   418,   422,   423,     0,   407,   408,   419,   420,   421,
      415,   410,   416,   412,   413,   414,   417,   411,     0,   332,
      160,     0,   336,   334,   339,     0,   328,   329,     0,   316,
@@ -3709,7 +3709,7 @@ namespace isc { namespace dhcp {
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,    69,     0,     0,     0,     0,     0,   116,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   228,     0,     0,   381,     0,     0,
+       0,     0,     0,     0,   228,     0,     0,     0,   381,     0,
        0,     0,     0,     0,     0,     0,   405,     0,   306,     0,
        0,     0,     0,     0,     0,     0,   314,     0,     0,     0,
        0,   351,     0,     0,     0,     0,   193,     0,     0,     0,
@@ -3720,7 +3720,7 @@ namespace isc { namespace dhcp {
        0,     0,     0,     0,     0,     0,     0,   474,     0,     0,
       71,     0,     0,     0,   127,   107,     0,     0,     0,     0,
        0,     0,     0,   274,   275,     0,     0,     0,     0,   230,
-       0,   383,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   383,     0,     0,     0,     0,     0,     0,     0,
      409,     0,     0,   330,     0,     0,     0,   341,   318,     0,
      370,   371,   355,     0,     0,   195,   511,     0,     0,   516,
        0,   519,   520,     0,     0,   527,   528,   529,     0,     0,
@@ -3770,40 +3770,40 @@ namespace isc { namespace dhcp {
   const short int
   Dhcp4Parser::yypgoto_[] =
   {
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,   -51,  -722,   202,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,   176,  -722,  -722,  -722,
-     -66,  -722,  -722,  -722,   354,  -722,  -722,  -722,  -722,   157,
-     316,   -23,   -21,     0,  -722,  -722,     6,  -722,  -722,   141,
-     324,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,   154,   -35,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,   -73,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,   -45,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,   -38,  -722,  -722,  -722,   -43,   305,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,   -32,  -722,  -722,  -722,  -722,  -722,
-    -722,  -721,  -722,  -722,  -722,    -7,  -722,  -722,  -722,     1,
-     362,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -715,
-    -722,  -722,  -722,   -25,  -722,  -709,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,   -20,  -722,  -722,  -143,   -61,  -722,
-    -722,  -722,  -722,  -722,     2,  -722,  -722,  -722,    11,  -722,
-     342,  -722,   -68,  -722,  -722,  -722,  -722,  -722,   -62,  -722,
-    -722,  -722,  -722,  -722,   -17,  -722,  -722,  -722,     9,  -722,
-    -722,  -722,    12,  -722,   346,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,   -18,  -722,  -722,  -722,
-     -15,   374,  -722,  -722,   -54,  -722,   -34,  -722,  -722,  -722,
-    -722,  -722,   -12,  -722,  -722,  -722,   -16,  -722,   360,   -46,
-    -722,   -11,  -722,    -1,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -704,  -722,  -722,  -722,  -722,  -722,  -722,    16,  -722,
-    -722,  -722,  -125,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-       3,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,   208,
-     337,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,  -722,
-    -722,  -722,  -722,  -722,   237,   329,  -722,  -722,  -722,    -8,
-    -722,  -722,  -128,  -722,  -722,  -722,  -722,  -722,  -722,  -142,
-    -722,  -722,  -155,  -722,  -722,  -722,  -722,  -722
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,   -51,  -719,   136,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,   172,  -719,  -719,  -719,
+     -66,  -719,  -719,  -719,   333,  -719,  -719,  -719,  -719,   149,
+     329,   -43,   -28,    -1,  -719,  -719,     5,  -719,  -719,   161,
+     334,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,   121,   -32,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,   -73,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,   -33,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,   -35,  -719,  -719,  -719,   -30,   321,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,   -29,  -719,  -719,  -719,  -719,  -719,
+    -719,  -718,  -719,  -719,  -719,   -11,  -719,  -719,  -719,    -6,
+     374,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -714,
+    -719,  -719,  -719,  -712,  -719,  -706,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,   -15,  -719,  -719,  -149,   -61,  -719,
+    -719,  -719,  -719,  -719,     4,  -719,  -719,  -719,     9,  -719,
+     343,  -719,   -68,  -719,  -719,  -719,  -719,  -719,   -62,  -719,
+    -719,  -719,  -719,  -719,   -14,  -719,  -719,  -719,     7,  -719,
+    -719,  -719,     1,  -719,   340,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,   -18,  -719,  -719,  -719,
+     -13,   375,  -719,  -719,   -54,  -719,   -26,  -719,  -719,  -719,
+    -719,  -719,   -20,  -719,  -719,  -719,    -9,  -719,   378,   -46,
+    -719,    -8,  -719,     2,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,   -50,
+    -719,  -705,  -719,  -719,  -719,  -719,  -719,  -719,    12,  -719,
+    -719,  -719,  -125,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+      -2,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,   208,
+     335,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,  -719,
+    -719,  -719,  -719,  -719,   232,   336,  -719,  -719,  -719,   -10,
+    -719,  -719,  -126,  -719,  -719,  -719,  -719,  -719,  -719,  -140,
+    -719,  -719,  -156,  -719,  -719,  -719,  -719,  -719
   };
 
   const short int
@@ -3833,8 +3833,8 @@ namespace isc { namespace dhcp {
      207,   208,   209,   385,   142,   353,   143,   354,   198,   381,
      708,   709,   710,   772,    51,    71,   224,   225,   226,   144,
      340,   145,   341,   146,   342,   230,   395,   231,   389,   232,
-     390,   233,   392,   234,   391,   235,   394,   236,   393,   237,
-     388,   202,   382,   712,   775,   147,   356,   672,   673,   747,
+     390,   233,   392,   234,   391,   235,   394,   236,   393,   212,
+     386,   202,   382,   712,   775,   147,   356,   672,   673,   747,
      829,   830,   831,   832,   833,   882,   148,   149,   360,   697,
      698,   699,   761,   700,   762,   150,   361,    61,    76,   304,
      305,   306,   307,   418,   308,   419,   309,   310,   421,   311,
@@ -3848,95 +3848,95 @@ namespace isc { namespace dhcp {
   const unsigned short int
   Dhcp4Parser::yytable_[] =
   {
-      90,   266,   155,   177,   204,   220,   267,   246,   265,   282,
+      90,   266,   155,   177,   205,   220,   267,   246,   265,   282,
      301,   238,   268,    78,   162,   196,   210,   222,    84,   260,
-     278,   804,   302,   199,    29,   227,    30,   805,    31,   745,
-     600,    40,   746,   807,   163,   197,   211,   223,   816,   261,
-     279,    28,   303,   151,   152,   205,   178,   153,   179,   112,
-     154,   335,   194,   206,   221,    81,   336,    42,   200,   362,
-     228,   203,   114,   115,   363,   280,   281,    44,   201,   180,
-     229,   748,   368,    98,   749,   181,   174,   369,   114,   115,
-     280,   281,    99,   100,   101,   102,   103,   104,   105,   240,
-     262,   241,   242,   263,   264,   114,   115,   778,   383,    46,
-     779,   114,   115,   384,   106,   107,   108,   109,   110,    48,
-     560,   561,   111,   112,   692,   693,   240,   678,   679,   680,
-     681,   682,   683,   113,    89,    50,   114,   115,   114,   115,
-     913,    85,   601,   914,   915,   916,    52,   116,   117,   386,
-      86,    87,    88,   415,   387,    54,    89,   431,   416,   434,
-     118,   320,   432,   119,   435,    56,    89,    58,   362,   804,
-     120,   121,    89,   716,   122,   805,    60,    32,    33,    34,
-      35,   807,   100,   101,   102,   103,   816,   911,    62,    89,
-     912,   659,   660,   661,   662,    89,   663,   563,   564,   854,
-     324,   855,   856,   106,   107,   108,   434,   111,   164,   165,
-     166,   717,   112,   100,   101,   102,   103,   325,   327,   368,
-      89,   326,    89,   167,   718,   114,   115,   168,   169,   170,
-     171,   172,   173,   334,   106,   107,   108,   730,   110,   174,
-     175,   338,   731,   112,   240,   730,   759,   176,   328,   396,
-     732,   760,   101,   102,   103,   339,   114,   115,   345,   169,
-     101,   102,   103,   173,   604,   605,   606,   607,   397,   763,
-     174,   431,   383,   239,   764,   346,   765,   877,   176,    90,
-     111,   112,   240,   880,   436,   437,   415,   386,   881,   112,
-     347,   885,   889,   348,   114,   115,   608,   359,   240,   367,
-     241,   242,   114,   115,   243,   244,   245,   819,   895,    89,
-     114,   115,   155,   896,   212,   377,   378,   398,   213,   214,
-     215,   216,   217,   218,   162,   219,   928,   177,   401,   405,
-     204,   929,   867,   868,   869,   870,   573,   574,   575,   196,
-      89,   220,   210,   406,   163,   407,   411,   199,   409,   266,
-     410,   246,   412,   222,   267,   417,   265,   420,   446,   197,
-     268,   227,   211,   260,   422,   423,   426,   427,   278,   428,
-     178,   205,   179,   223,   438,   301,   194,   439,    89,   206,
-     453,   440,   200,   261,   441,   442,    89,   302,   279,   443,
-     221,   445,   201,   180,    89,   447,   228,   448,   449,   181,
-     536,   537,   538,   616,   450,   451,   229,   303,   617,   618,
-     619,   620,   621,   622,   623,   624,   625,   626,   114,   115,
-     452,   454,   455,   456,   457,   458,   459,   460,   240,     1,
-       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,   461,   462,   463,   464,   465,   466,   467,   468,
-     469,   471,   472,   473,   474,   476,   477,   287,   288,   289,
+     278,   237,   302,   199,   804,   227,   178,    29,   805,    30,
+     806,    31,    28,   101,   102,   103,   807,   816,    81,   112,
+      40,   179,   163,   197,   211,   223,   600,   261,   279,   335,
+     303,   203,   114,   115,   336,   194,   206,   221,   280,   281,
+     111,   200,   112,   228,   204,   151,   152,   320,   180,   153,
+      98,   201,   154,   229,   181,   114,   115,   563,   564,    99,
+     100,   101,   102,   103,   104,   105,   745,   204,    42,   746,
+     324,   213,   214,   215,   216,   217,   218,   748,   219,    44,
+     749,   106,   107,   108,   109,   110,   280,   281,    46,   111,
+     112,   362,   604,   605,   606,   607,   363,   114,   115,   778,
+     113,   368,   779,   114,   115,   383,   369,   114,   115,   325,
+     384,    85,   387,   415,   116,   117,    89,   388,   416,   240,
+      86,    87,    88,   911,   608,    48,   912,   118,   601,    50,
+     119,   114,   115,   101,   102,   103,    89,   120,   121,    89,
+     326,   122,   804,   692,   693,    89,   805,   327,   806,    52,
+      32,    33,    34,    35,   807,   816,   100,   101,   102,   103,
+     616,   111,   112,   240,    54,   617,   618,   619,   620,   621,
+     622,   623,   624,   625,   626,   114,   115,   106,   107,   108,
+      56,    89,   164,   165,   166,   240,   112,    89,   819,   560,
+     561,    89,   854,   431,   855,   856,    58,   167,   432,   114,
+     115,   168,   169,   170,   171,   172,   173,   100,   101,   102,
+     103,   434,   362,   174,   175,    89,   435,   716,   573,   574,
+     575,   176,   240,   262,   241,   242,   263,   264,   106,   107,
+     108,   434,   110,    60,   114,   115,   717,   112,   240,   678,
+     679,   680,   681,   682,   683,    62,   328,   368,   396,    90,
+     114,   115,   718,   169,   436,   437,   334,   173,   338,    89,
+     659,   660,   661,   662,   174,   663,   913,   339,   730,   914,
+     915,   916,   176,   731,   730,   759,   398,   345,   346,   732,
+     760,    89,   155,    89,   763,   431,   383,   880,   415,   764,
+     765,   877,   881,   885,   162,   387,   397,   177,   895,   928,
+     889,   205,   347,   896,   929,   867,   868,   869,   870,   196,
+     348,   220,   359,   210,   367,   377,   378,   199,    89,   266,
+     178,   246,   163,   222,   267,   401,   265,   237,   405,   407,
+     268,   227,   438,   260,    89,   179,   406,   197,   278,   409,
+     410,   211,   411,   412,   446,   301,   417,   420,   422,   194,
+     423,   223,   426,   206,   427,   200,   239,   302,   114,   115,
+     428,   261,   180,   221,   439,   201,   279,   440,   181,   228,
+     536,   537,   538,   441,   442,   443,   445,   448,   447,   229,
+     449,   240,   450,   241,   242,   303,   451,   243,   244,   245,
+     452,   453,   457,   114,   115,   454,   455,   287,   288,   289,
      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-     300,   478,   479,   596,   480,   481,   482,   483,   484,   485,
-     635,   635,   486,   155,   487,   488,   490,   627,   627,   492,
-     493,   494,   612,   495,   496,   162,   497,   498,   499,   501,
-     694,   301,    89,   502,   503,   504,   505,   506,   507,   509,
-     510,   513,   695,   302,   514,   163,   517,   511,   516,   518,
-     519,   520,   523,   521,    89,   524,   525,   522,   528,   529,
-     526,   531,   696,   303,   527,   533,   534,   535,   540,   539,
-     541,   543,   544,   542,   545,   546,   547,   548,   711,   552,
-      30,   551,   553,   554,   566,   567,   555,   556,   557,   558,
-     568,   569,   570,   571,   578,   572,   577,   579,   611,   643,
-     723,   647,   580,   582,   583,   584,   585,   586,   587,   588,
-     589,   590,   591,   592,   593,   594,   651,   603,   655,   671,
-     674,   703,   595,   707,   713,   724,   725,   726,   597,   727,
-     734,   598,   599,   610,   735,   737,   738,   741,   740,   744,
-     766,   743,   752,   751,   753,   754,   755,   756,   757,   758,
-     771,   872,   770,   774,   773,   780,   781,   776,   782,   783,
-     785,   789,   784,   786,   790,   844,   845,   848,   905,   787,
-     788,   847,   853,   893,   878,   837,   838,   839,   879,   840,
-     883,   884,   890,   841,   898,   842,   873,   874,   900,   875,
-     902,   876,   886,   925,   887,   907,   926,   635,   888,   927,
-     891,   930,   901,   549,   627,   932,   266,   177,   581,   803,
-     246,   267,   933,   265,   821,   904,   798,   268,   470,   196,
-     615,   820,   260,   906,   282,   278,   822,   199,   811,   444,
-     935,   613,   475,   824,   931,   791,   813,   694,   642,   197,
-     818,   826,   261,   204,   858,   279,   220,   835,   812,   695,
-     178,   857,   179,   825,   836,   210,   194,   806,   222,   799,
-     515,   800,   200,   859,   817,   810,   227,   843,   793,   696,
-     823,   814,   201,   180,   792,   211,   827,   897,   223,   181,
-     795,   815,   801,   860,   205,   489,   828,   794,   802,   508,
-     797,   796,   206,   850,   849,   221,   851,   500,   512,   899,
-     491,   228,   852,   532,   834,   701,   846,   903,   530,   923,
-     866,   229,   614,   934,     0,     0,     0,     0,     0,     0,
+     300,     1,     2,     3,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,   456,   458,   459,   460,   461,   462,
+     463,   464,   465,   466,   468,   467,   469,   471,   472,   473,
+     474,   476,    89,   596,   477,   478,   479,   480,   481,   482,
+     635,   635,   483,   155,   485,   484,   486,   627,   627,   487,
+     488,   490,   612,   491,   493,   162,   494,   495,   496,   497,
+     694,   301,   498,   499,   501,   502,   503,    89,   504,   505,
+     506,   507,   695,   302,   509,   513,   514,   517,   510,   511,
+     516,   518,   520,   163,   519,   523,   521,   524,   522,   528,
+     529,   531,   525,   526,   527,   533,   534,   535,   545,   539,
+     696,   303,   540,   541,   542,   543,   544,   546,   547,   548,
+     735,   552,    30,   551,   553,   554,   711,   566,   555,   556,
+     557,   558,   567,   568,   569,   570,   578,   571,   572,   577,
+     579,   580,   582,   583,   584,   585,   586,   587,   588,   589,
+     590,   591,   592,   593,   594,   595,   597,   598,   599,   610,
+     611,   643,   766,   647,   603,   651,   655,   671,   674,   703,
+     707,   713,   723,   724,   725,   726,   727,   549,   738,   734,
+     737,   741,   740,   743,   744,   751,   752,   784,   753,   754,
+     755,   756,   757,   758,   771,   872,   770,   774,   773,   780,
+     781,   776,   782,   783,   785,   787,   789,   786,   790,   844,
+     788,   845,   847,   848,   905,   837,   838,   853,   893,   878,
+     879,   839,   840,   883,   884,   890,   841,   842,   898,   900,
+     902,   925,   873,   874,   875,   907,   926,   635,   876,   927,
+     886,   930,   887,   581,   627,   642,   266,   177,   444,   803,
+     246,   267,   888,   265,   821,   891,   798,   268,   904,   196,
+     901,   820,   260,   613,   282,   278,   822,   199,   811,   931,
+     178,   470,   906,   824,   932,   935,   813,   694,   791,   799,
+     615,   826,   475,   205,   858,   179,   220,   197,   933,   695,
+     261,   857,   818,   279,   800,   210,   812,   836,   222,   194,
+     835,   825,   237,   859,   793,   200,   227,   792,   810,   817,
+     843,   897,   180,   823,   814,   201,   515,   696,   181,   827,
+     796,   801,   795,   211,   815,   794,   223,   802,   797,   828,
+     508,   860,   512,   850,   852,   206,   849,   489,   221,   899,
+     834,   846,   492,   851,   228,   701,   530,   614,   866,   903,
+     532,   923,   934,     0,   229,   500,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,   803,     0,     0,
        0,   821,     0,     0,   798,     0,     0,     0,   820,     0,
        0,     0,   858,   822,     0,     0,   811,     0,     0,   857,
-     824,     0,     0,     0,   813,     0,     0,     0,   826,     0,
-       0,   859,     0,     0,     0,     0,   812,     0,     0,     0,
-     825,     0,     0,     0,     0,   806,     0,   799,     0,   800,
-       0,   860,     0,   810,     0,     0,     0,   823,     0,   814,
-       0,     0,     0,   827,     0,     0,     0,     0,     0,   815,
-     801,     0,     0,   828,     0,     0,   802
+     824,     0,     0,     0,   813,     0,     0,   799,   826,     0,
+       0,   859,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   800,     0,   812,     0,     0,     0,   825,     0,
+       0,     0,     0,     0,     0,     0,   810,     0,     0,   860,
+     823,     0,   814,     0,     0,     0,   827,     0,     0,   801,
+       0,     0,   815,     0,     0,   802,   828
   };
 
   const short int
@@ -3944,93 +3944,93 @@ namespace isc { namespace dhcp {
   {
       66,    74,    68,    69,    70,    71,    74,    73,    74,    75,
       76,    72,    74,    64,    68,    69,    70,    71,    10,    73,
-      74,   742,    76,    69,     5,    71,     7,   742,     9,     3,
-      15,     7,     6,   742,    68,    69,    70,    71,   742,    73,
-      74,     0,    76,    12,    13,    70,    69,    16,    69,    51,
-      19,     3,    69,    70,    71,   148,     8,     7,    69,     3,
-      71,    63,    64,    65,     8,    89,    90,     7,    69,    69,
-      71,     3,     3,    11,     6,    69,    78,     8,    64,    65,
-      89,    90,    20,    21,    22,    23,    24,    25,    26,    52,
-      53,    54,    55,    56,    57,    64,    65,     3,     3,     7,
-       6,    64,    65,     8,    42,    43,    44,    45,    46,     7,
-      14,    15,    50,    51,   100,   101,    52,    92,    93,    94,
-      95,    96,    97,    61,   148,     7,    64,    65,    64,    65,
-     126,   123,   117,   129,   130,   131,     7,    75,    76,     3,
-     132,   133,   134,     3,     8,     7,   148,     3,     8,     3,
-      88,   124,     8,    91,     8,     7,   148,     7,     3,   880,
-      98,    99,   148,     8,   102,   880,     7,   148,   149,   150,
-     151,   880,    21,    22,    23,    24,   880,     3,     7,   148,
-       6,    80,    81,    82,    83,   148,    85,    17,    18,   125,
-       6,   127,   128,    42,    43,    44,     3,    50,    47,    48,
-      49,     8,    51,    21,    22,    23,    24,     3,     8,     3,
-     148,     4,   148,    62,     8,    64,    65,    66,    67,    68,
-      69,    70,    71,     4,    42,    43,    44,     3,    46,    78,
-      79,     4,     8,    51,    52,     3,     3,    86,     3,     8,
-       8,     8,    22,    23,    24,     4,    64,    65,     4,    67,
-      22,    23,    24,    71,   119,   120,   121,   122,     3,     3,
-      78,     3,     3,    27,     8,     4,     8,     8,    86,   335,
-      50,    51,    52,     3,   325,   326,     3,     3,     8,    51,
-       4,     8,     8,     4,    64,    65,   151,     4,    52,     4,
-      54,    55,    64,    65,    58,    59,    60,    77,     3,   148,
-      64,    65,   368,     8,    76,     4,     4,     8,    80,    81,
-      82,    83,    84,    85,   368,    87,     3,   383,     4,     4,
-     386,     8,    28,    29,    30,    31,    72,    73,    74,   383,
-     148,   397,   386,     8,   368,     3,     8,   383,     4,   412,
-       4,   407,     3,   397,   412,     4,   412,     4,   151,   383,
-     412,   397,   386,   407,     4,     4,     4,     4,   412,     4,
-     383,   386,   383,   397,   148,   431,   383,     4,   148,   386,
-     149,     4,   383,   407,     4,     4,   148,   431,   412,     4,
-     397,     4,   383,   383,   148,   151,   397,     4,     4,   383,
-     441,   442,   443,    27,     4,     4,   397,   431,    32,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    64,    65,
-       4,   149,   149,   149,     4,     4,     4,     4,    52,   135,
-     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
-     146,   147,     4,     4,     4,     4,     4,     4,   149,     4,
-       4,     4,     4,     4,   151,     4,     4,   103,   104,   105,
+      74,    71,    76,    69,   742,    71,    69,     5,   742,     7,
+     742,     9,     0,    22,    23,    24,   742,   742,   148,    51,
+       7,    69,    68,    69,    70,    71,    15,    73,    74,     3,
+      76,    63,    64,    65,     8,    69,    70,    71,    89,    90,
+      50,    69,    51,    71,    76,    12,    13,   124,    69,    16,
+      11,    69,    19,    71,    69,    64,    65,    17,    18,    20,
+      21,    22,    23,    24,    25,    26,     3,    76,     7,     6,
+       6,    80,    81,    82,    83,    84,    85,     3,    87,     7,
+       6,    42,    43,    44,    45,    46,    89,    90,     7,    50,
+      51,     3,   119,   120,   121,   122,     8,    64,    65,     3,
+      61,     3,     6,    64,    65,     3,     8,    64,    65,     3,
+       8,   123,     3,     3,    75,    76,   148,     8,     8,    52,
+     132,   133,   134,     3,   151,     7,     6,    88,   117,     7,
+      91,    64,    65,    22,    23,    24,   148,    98,    99,   148,
+       4,   102,   880,   100,   101,   148,   880,     8,   880,     7,
+     148,   149,   150,   151,   880,   880,    21,    22,    23,    24,
+      27,    50,    51,    52,     7,    32,    33,    34,    35,    36,
+      37,    38,    39,    40,    41,    64,    65,    42,    43,    44,
+       7,   148,    47,    48,    49,    52,    51,   148,    77,    14,
+      15,   148,   125,     3,   127,   128,     7,    62,     8,    64,
+      65,    66,    67,    68,    69,    70,    71,    21,    22,    23,
+      24,     3,     3,    78,    79,   148,     8,     8,    72,    73,
+      74,    86,    52,    53,    54,    55,    56,    57,    42,    43,
+      44,     3,    46,     7,    64,    65,     8,    51,    52,    92,
+      93,    94,    95,    96,    97,     7,     3,     3,     8,   335,
+      64,    65,     8,    67,   325,   326,     4,    71,     4,   148,
+      80,    81,    82,    83,    78,    85,   126,     4,     3,   129,
+     130,   131,    86,     8,     3,     3,     8,     4,     4,     8,
+       8,   148,   368,   148,     3,     3,     3,     3,     3,     8,
+       8,     8,     8,     8,   368,     3,     3,   383,     3,     3,
+       8,   387,     4,     8,     8,    28,    29,    30,    31,   383,
+       4,   397,     4,   387,     4,     4,     4,   383,   148,   412,
+     383,   407,   368,   397,   412,     4,   412,   397,     4,     3,
+     412,   397,   148,   407,   148,   383,     8,   383,   412,     4,
+       4,   387,     8,     3,   151,   431,     4,     4,     4,   383,
+       4,   397,     4,   387,     4,   383,    27,   431,    64,    65,
+       4,   407,   383,   397,     4,   383,   412,     4,   383,   397,
+     441,   442,   443,     4,     4,     4,     4,     4,   151,   397,
+       4,    52,     4,    54,    55,   431,     4,    58,    59,    60,
+       4,   149,     4,    64,    65,   149,   149,   103,   104,   105,
      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-     116,     4,     4,   514,     4,     4,     4,   149,   151,     4,
-     543,   544,     4,   539,     4,     4,     4,   543,   544,     4,
+     116,   135,   136,   137,   138,   139,   140,   141,   142,   143,
+     144,   145,   146,   147,   149,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,   149,     4,     4,     4,     4,
+     151,     4,   148,   514,     4,     4,     4,     4,     4,     4,
+     543,   544,   149,   539,     4,   151,     4,   543,   544,     4,
        4,     4,   533,     4,     4,   539,     4,     4,     4,     4,
-     556,   557,   148,     4,   149,     4,     4,     4,   151,     4,
-     151,     4,   556,   557,     4,   539,     4,   151,   151,     4,
-     149,     4,     4,   149,   148,     4,   151,   149,     4,     4,
-     151,     4,   556,   557,   151,     4,     7,     7,   148,     7,
-     148,     7,     7,   148,     5,     5,     5,     5,    87,     5,
-       7,   148,     5,     5,   148,   148,     7,     7,     7,     5,
-     148,     5,   148,   148,     5,   148,   148,     7,     5,     7,
-       4,     7,   148,   148,   148,   148,   148,   148,   148,   148,
-     148,   148,   148,   148,   148,   148,     7,   118,     7,     7,
-       7,     7,   148,     7,     7,     4,     4,     4,   148,     4,
-       6,   148,   148,   148,     3,     6,     3,     3,     6,     3,
-     148,     6,     3,     6,     4,     4,     4,     4,     4,     4,
-       3,   148,     6,     3,     6,     4,     4,     8,     4,     4,
-     151,     4,   149,   149,     4,     4,     4,     3,     5,   151,
-     149,     6,     4,     4,     8,   149,   149,   149,     8,   149,
-       8,     3,     8,   149,     4,   149,   148,   148,     4,   148,
-       4,   148,   148,     4,   148,     7,     4,   730,   148,     4,
-     148,     4,   149,   461,   730,   149,   739,   733,   492,   742,
-     736,   739,   149,   739,   747,   148,   742,   739,   362,   733,
-     539,   747,   736,   148,   750,   739,   747,   733,   742,   335,
-     148,   534,   368,   747,   151,   730,   742,   763,   544,   733,
-     745,   747,   736,   769,   777,   739,   772,   750,   742,   763,
-     733,   777,   733,   747,   752,   769,   733,   742,   772,   742,
-     415,   742,   733,   777,   744,   742,   772,   759,   735,   763,
-     747,   742,   733,   733,   733,   769,   747,   880,   772,   733,
-     738,   742,   742,   777,   769,   383,   747,   736,   742,   407,
-     741,   739,   769,   771,   769,   772,   772,   397,   412,   884,
-     386,   772,   774,   434,   748,   557,   763,   895,   431,   911,
-     778,   772,   535,   928,    -1,    -1,    -1,    -1,    -1,    -1,
+     556,   557,     4,     4,     4,     4,   149,   148,     4,     4,
+       4,   151,   556,   557,     4,     4,     4,     4,   151,   151,
+     151,     4,     4,   539,   149,     4,   149,     4,   149,     4,
+       4,     4,   151,   151,   151,     4,     7,     7,     5,     7,
+     556,   557,   148,   148,   148,     7,     7,     5,     5,     5,
+       3,     5,     7,   148,     5,     5,    87,   148,     7,     7,
+       7,     5,   148,   148,     5,   148,     5,   148,   148,   148,
+       7,   148,   148,   148,   148,   148,   148,   148,   148,   148,
+     148,   148,   148,   148,   148,   148,   148,   148,   148,   148,
+       5,     7,   148,     7,   118,     7,     7,     7,     7,     7,
+       7,     7,     4,     4,     4,     4,     4,   461,     3,     6,
+       6,     3,     6,     6,     3,     6,     3,   149,     4,     4,
+       4,     4,     4,     4,     3,   148,     6,     3,     6,     4,
+       4,     8,     4,     4,   151,   151,     4,   149,     4,     4,
+     149,     4,     6,     3,     5,   149,   149,     4,     4,     8,
+       8,   149,   149,     8,     3,     8,   149,   149,     4,     4,
+       4,     4,   148,   148,   148,     7,     4,   730,   148,     4,
+     148,     4,   148,   491,   730,   544,   739,   733,   335,   742,
+     736,   739,   148,   739,   747,   148,   742,   739,   148,   733,
+     149,   747,   736,   534,   750,   739,   747,   733,   742,   151,
+     733,   362,   148,   747,   149,   148,   742,   763,   730,   742,
+     539,   747,   368,   769,   777,   733,   772,   733,   149,   763,
+     736,   777,   745,   739,   742,   769,   742,   752,   772,   733,
+     750,   747,   772,   777,   735,   733,   772,   733,   742,   744,
+     759,   880,   733,   747,   742,   733,   415,   763,   733,   747,
+     739,   742,   738,   769,   742,   736,   772,   742,   741,   747,
+     407,   777,   412,   771,   774,   769,   769,   383,   772,   884,
+     748,   763,   387,   772,   772,   557,   431,   535,   778,   895,
+     434,   911,   928,    -1,   772,   397,    -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,   880,    -1,    -1,
       -1,   884,    -1,    -1,   880,    -1,    -1,    -1,   884,    -1,
       -1,    -1,   895,   884,    -1,    -1,   880,    -1,    -1,   895,
-     884,    -1,    -1,    -1,   880,    -1,    -1,    -1,   884,    -1,
-      -1,   895,    -1,    -1,    -1,    -1,   880,    -1,    -1,    -1,
-     884,    -1,    -1,    -1,    -1,   880,    -1,   880,    -1,   880,
-      -1,   895,    -1,   880,    -1,    -1,    -1,   884,    -1,   880,
-      -1,    -1,    -1,   884,    -1,    -1,    -1,    -1,    -1,   880,
-     880,    -1,    -1,   884,    -1,    -1,   880
+     884,    -1,    -1,    -1,   880,    -1,    -1,   880,   884,    -1,
+      -1,   895,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   880,    -1,   880,    -1,    -1,    -1,   884,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   880,    -1,    -1,   895,
+     884,    -1,   880,    -1,    -1,    -1,   884,    -1,    -1,   880,
+      -1,    -1,   880,    -1,    -1,   880,   884
   };
 
   const unsigned short int
@@ -4056,8 +4056,8 @@ namespace isc { namespace dhcp {
       68,    69,    70,    71,    78,    79,    86,   182,   193,   194,
      195,   198,   281,   282,   283,   285,   287,   289,   291,   293,
      295,   297,   300,   301,   336,   354,   366,   368,   370,   381,
-     383,   385,   403,    63,   182,   295,   336,   362,   363,   364,
-     366,   368,    76,    80,    81,    82,    83,    84,    85,    87,
+     383,   385,   403,    63,    76,   182,   336,   362,   363,   364,
+     366,   368,   401,    80,    81,    82,    83,    84,    85,    87,
      182,   336,   366,   368,   378,   379,   380,   381,   383,   385,
      387,   389,   391,   393,   395,   397,   399,   401,   310,    27,
       52,    54,    55,    58,    59,    60,   182,   230,   320,   321,
@@ -4074,7 +4074,7 @@ namespace isc { namespace dhcp {
      311,   337,   303,   367,   369,   241,   408,   250,   264,     4,
      420,   428,     3,     8,   206,   208,   211,     4,     3,     8,
      286,   288,   290,   355,   284,   292,   294,     4,     4,   298,
-     296,   371,   404,     3,     8,   365,     3,     8,   402,   390,
+     296,   371,   404,     3,     8,   365,   402,     3,     8,   390,
      392,   396,   394,   400,   398,   388,     8,     3,     8,   327,
      231,     4,   331,   329,   334,     4,     8,     3,   349,     4,
        4,     8,     3,   260,   262,     3,     8,     4,   435,   437,
@@ -4085,7 +4085,7 @@ namespace isc { namespace dhcp {
        4,     4,     4,     4,     4,     4,     4,   149,     4,     4,
      192,     4,     4,     4,   151,   202,     4,     4,     4,     4,
        4,     4,     4,   149,   151,     4,     4,     4,     4,   282,
-       4,   363,     4,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,   363,     4,     4,     4,     4,     4,     4,     4,
      380,     4,     4,   149,     4,     4,     4,   151,   322,     4,
      151,   151,   346,     4,     4,   258,   151,     4,     4,   149,
        4,   149,   149,     4,     4,   151,   151,   151,     4,     4,
@@ -4369,12 +4369,11 @@ namespace isc { namespace dhcp {
   "boot_file_name", "$@77", "ip_address", "$@78", "duid", "$@79",
   "hw_address", "$@80", "client_id_value", "$@81", "circuit_id_value",
   "$@82", "flex_id_value", "$@83", "hostname", "$@84",
-  "reservation_client_classes", "$@85", "relay", "$@86", "relay_map",
-  "$@87", "client_classes", "$@88", "client_classes_list",
-  "client_class_entry", "$@89", "client_class_params",
-  "not_empty_client_class_params", "client_class_param",
-  "client_class_name", "client_class_test", "$@90", "dhcp4o6_port",
-  "control_socket", "$@91", "control_socket_params",
+  "client_class_names_list", "$@85", "relay", "$@86", "relay_map", "$@87",
+  "client_classes", "$@88", "client_classes_list", "client_class_entry",
+  "$@89", "client_class_params", "not_empty_client_class_params",
+  "client_class_param", "client_class_name", "client_class_test", "$@90",
+  "dhcp4o6_port", "control_socket", "$@91", "control_socket_params",
   "control_socket_param", "control_socket_type", "$@92",
   "control_socket_name", "$@93", "dhcp_ddns", "$@94", "sub_dhcp_ddns",
   "$@95", "dhcp_ddns_params", "dhcp_ddns_param", "enable_updates",
@@ -4490,7 +4489,7 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp4_parser.yy" // lalr1.cc:1167
 } } // isc::dhcp
-#line 4494 "dhcp4_parser.cc" // lalr1.cc:1167
+#line 4493 "dhcp4_parser.cc" // lalr1.cc:1167
 #line 2018 "dhcp4_parser.yy" // lalr1.cc:1168
 
 
index 4b86a5428d7865c236f3bea8154fc1fcd9d72e83..dc505c62e1e1cd8868bc5425b9c9dcb118906a05 100644 (file)
@@ -1,27 +1,22 @@
-#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
 
 /* A lexical scanner generated by flex */
 
 /* %not-for-header */
+
 /* %if-c-only */
 /* %if-not-reentrant */
 #define yy_create_buffer parser6__create_buffer
 #define yy_delete_buffer parser6__delete_buffer
-#define yy_scan_buffer parser6__scan_buffer
-#define yy_scan_string parser6__scan_string
-#define yy_scan_bytes parser6__scan_bytes
+#define yy_flex_debug parser6__flex_debug
 #define yy_init_buffer parser6__init_buffer
 #define yy_flush_buffer parser6__flush_buffer
 #define yy_load_buffer_state parser6__load_buffer_state
 #define yy_switch_to_buffer parser6__switch_to_buffer
-#define yypush_buffer_state parser6_push_buffer_state
-#define yypop_buffer_state parser6_pop_buffer_state
-#define yyensure_buffer_stack parser6_ensure_buffer_stack
-#define yy_flex_debug parser6__flex_debug
 #define yyin parser6_in
 #define yyleng parser6_leng
 #define yylex parser6_lex
@@ -41,7 +36,7 @@
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 6
-#define YY_FLEX_SUBMINOR_VERSION 4
+#define YY_FLEX_SUBMINOR_VERSION 1
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
 /* %endif */
 
 /* %if-c-only */
-#ifdef yy_create_buffer
-#define parser6__create_buffer_ALREADY_DEFINED
-#else
-#define yy_create_buffer parser6__create_buffer
-#endif
-
-#ifdef yy_delete_buffer
-#define parser6__delete_buffer_ALREADY_DEFINED
-#else
-#define yy_delete_buffer parser6__delete_buffer
-#endif
-
-#ifdef yy_scan_buffer
-#define parser6__scan_buffer_ALREADY_DEFINED
-#else
-#define yy_scan_buffer parser6__scan_buffer
-#endif
-
-#ifdef yy_scan_string
-#define parser6__scan_string_ALREADY_DEFINED
-#else
-#define yy_scan_string parser6__scan_string
-#endif
-
-#ifdef yy_scan_bytes
-#define parser6__scan_bytes_ALREADY_DEFINED
-#else
-#define yy_scan_bytes parser6__scan_bytes
-#endif
-
-#ifdef yy_init_buffer
-#define parser6__init_buffer_ALREADY_DEFINED
-#else
-#define yy_init_buffer parser6__init_buffer
-#endif
-
-#ifdef yy_flush_buffer
-#define parser6__flush_buffer_ALREADY_DEFINED
-#else
-#define yy_flush_buffer parser6__flush_buffer
-#endif
-
-#ifdef yy_load_buffer_state
-#define parser6__load_buffer_state_ALREADY_DEFINED
-#else
-#define yy_load_buffer_state parser6__load_buffer_state
-#endif
-
-#ifdef yy_switch_to_buffer
-#define parser6__switch_to_buffer_ALREADY_DEFINED
-#else
-#define yy_switch_to_buffer parser6__switch_to_buffer
-#endif
-
-#ifdef yypush_buffer_state
-#define parser6_push_buffer_state_ALREADY_DEFINED
-#else
-#define yypush_buffer_state parser6_push_buffer_state
-#endif
-
-#ifdef yypop_buffer_state
-#define parser6_pop_buffer_state_ALREADY_DEFINED
-#else
-#define yypop_buffer_state parser6_pop_buffer_state
-#endif
-
-#ifdef yyensure_buffer_stack
-#define parser6_ensure_buffer_stack_ALREADY_DEFINED
-#else
-#define yyensure_buffer_stack parser6_ensure_buffer_stack
-#endif
-
-#ifdef yylex
-#define parser6_lex_ALREADY_DEFINED
-#else
-#define yylex parser6_lex
-#endif
-
-#ifdef yyrestart
-#define parser6_restart_ALREADY_DEFINED
-#else
-#define yyrestart parser6_restart
-#endif
-
-#ifdef yylex_init
-#define parser6_lex_init_ALREADY_DEFINED
-#else
-#define yylex_init parser6_lex_init
-#endif
-
-#ifdef yylex_init_extra
-#define parser6_lex_init_extra_ALREADY_DEFINED
-#else
-#define yylex_init_extra parser6_lex_init_extra
-#endif
-
-#ifdef yylex_destroy
-#define parser6_lex_destroy_ALREADY_DEFINED
-#else
-#define yylex_destroy parser6_lex_destroy
-#endif
-
-#ifdef yyget_debug
-#define parser6_get_debug_ALREADY_DEFINED
-#else
-#define yyget_debug parser6_get_debug
-#endif
-
-#ifdef yyset_debug
-#define parser6_set_debug_ALREADY_DEFINED
-#else
-#define yyset_debug parser6_set_debug
-#endif
-
-#ifdef yyget_extra
-#define parser6_get_extra_ALREADY_DEFINED
-#else
-#define yyget_extra parser6_get_extra
-#endif
-
-#ifdef yyset_extra
-#define parser6_set_extra_ALREADY_DEFINED
-#else
-#define yyset_extra parser6_set_extra
-#endif
-
-#ifdef yyget_in
-#define parser6_get_in_ALREADY_DEFINED
-#else
-#define yyget_in parser6_get_in
-#endif
-
-#ifdef yyset_in
-#define parser6_set_in_ALREADY_DEFINED
-#else
-#define yyset_in parser6_set_in
-#endif
-
-#ifdef yyget_out
-#define parser6_get_out_ALREADY_DEFINED
-#else
-#define yyget_out parser6_get_out
-#endif
-
-#ifdef yyset_out
-#define parser6_set_out_ALREADY_DEFINED
-#else
-#define yyset_out parser6_set_out
-#endif
-
-#ifdef yyget_leng
-#define parser6_get_leng_ALREADY_DEFINED
-#else
-#define yyget_leng parser6_get_leng
-#endif
-
-#ifdef yyget_text
-#define parser6_get_text_ALREADY_DEFINED
-#else
-#define yyget_text parser6_get_text
-#endif
-
-#ifdef yyget_lineno
-#define parser6_get_lineno_ALREADY_DEFINED
-#else
-#define yyget_lineno parser6_get_lineno
-#endif
-
-#ifdef yyset_lineno
-#define parser6_set_lineno_ALREADY_DEFINED
-#else
-#define yyset_lineno parser6_set_lineno
-#endif
-
-#ifdef yywrap
-#define parser6_wrap_ALREADY_DEFINED
-#else
-#define yywrap parser6_wrap
-#endif
-
+    
 /* %endif */
 
-#ifdef yyalloc
-#define parser6_alloc_ALREADY_DEFINED
-#else
-#define yyalloc parser6_alloc
-#endif
-
-#ifdef yyrealloc
-#define parser6_realloc_ALREADY_DEFINED
-#else
-#define yyrealloc parser6_realloc
-#endif
-
-#ifdef yyfree
-#define parser6_free_ALREADY_DEFINED
-#else
-#define yyfree parser6_free
-#endif
-
 /* %if-c-only */
 
-#ifdef yytext
-#define parser6_text_ALREADY_DEFINED
-#else
-#define yytext parser6_text
-#endif
-
-#ifdef yyleng
-#define parser6_leng_ALREADY_DEFINED
-#else
-#define yyleng parser6_leng
-#endif
-
-#ifdef yyin
-#define parser6_in_ALREADY_DEFINED
-#else
-#define yyin parser6_in
-#endif
-
-#ifdef yyout
-#define parser6_out_ALREADY_DEFINED
-#else
-#define yyout parser6_out
-#endif
-
-#ifdef yy_flex_debug
-#define parser6__flex_debug_ALREADY_DEFINED
-#else
-#define yy_flex_debug parser6__flex_debug
-#endif
-
-#ifdef yylineno
-#define parser6_lineno_ALREADY_DEFINED
-#else
-#define yylineno parser6_lineno
-#endif
-
 /* %endif */
 
 /* First, we deal with  platform-specific or compiler-specific issues. */
@@ -365,17 +127,12 @@ typedef unsigned int flex_uint32_t;
 #define UINT32_MAX             (4294967295U)
 #endif
 
-#ifndef SIZE_MAX
-#define SIZE_MAX               (~(size_t)0)
-#endif
-
 #endif /* ! C99 */
 
 #endif /* ! FLEXINT_H */
 
 /* %endif */
 
-/* begin standard C++ headers. */
 /* %if-c++-only */
 /* %endif */
 
@@ -389,15 +146,19 @@ typedef unsigned int flex_uint32_t;
 #endif
 
 /* %not-for-header */
+
 /* Returned upon end-of-file. */
 #define YY_NULL 0
 /* %ok-for-header */
 
 /* %not-for-header */
-/* Promotes a possibly negative, possibly signed char to an
- *   integer in range [0..255] for use as an array index.
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
  */
-#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
 /* %ok-for-header */
 
 /* %if-reentrant */
@@ -412,16 +173,20 @@ typedef unsigned int flex_uint32_t;
  * definition of BEGIN.
  */
 #define BEGIN (yy_start) = 1 + 2 *
+
 /* Translate the current start state into a value that can be later handed
  * to BEGIN to return to the state.  The YYSTATE alias is for lex
  * compatibility.
  */
 #define YY_START (((yy_start) - 1) / 2)
 #define YYSTATE YY_START
+
 /* Action number for EOF rule of a given start state. */
 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
 /* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart( yyin  )
+#define YY_NEW_FILE parser6_restart(parser6_in  )
+
 #define YY_END_OF_BUFFER_CHAR 0
 
 /* Size of default input buffer. */
@@ -452,19 +217,19 @@ typedef size_t yy_size_t;
 #endif
 
 /* %if-not-reentrant */
-extern int yyleng;
+extern int parser6_leng;
 /* %endif */
 
 /* %if-c-only */
 /* %if-not-reentrant */
-extern FILE *yyin, *yyout;
+extern FILE *parser6_in, *parser6_out;
 /* %endif */
 /* %endif */
 
 #define EOB_ACT_CONTINUE_SCAN 0
 #define EOB_ACT_END_OF_FILE 1
 #define EOB_ACT_LAST_MATCH 2
-    
+
     #define YY_LESS_LINENO(n)
     #define YY_LINENO_REWIND_TO(ptr)
     
@@ -472,15 +237,16 @@ extern FILE *yyin, *yyout;
 #define yyless(n) \
        do \
                { \
-               /* Undo effects of setting up yytext. */ \
+               /* Undo effects of setting up parser6_text. */ \
         int yyless_macro_arg = (n); \
         YY_LESS_LINENO(yyless_macro_arg);\
                *yy_cp = (yy_hold_char); \
                YY_RESTORE_YY_MORE_OFFSET \
                (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-               YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+               YY_DO_BEFORE_ACTION; /* set up parser6_text again */ \
                } \
        while ( 0 )
+
 #define unput(c) yyunput( c, (yytext_ptr)  )
 
 #ifndef YY_STRUCT_YY_BUFFER_STATE
@@ -545,8 +311,8 @@ struct yy_buffer_state
         * possible backing-up.
         *
         * When we actually see the EOF, we change the status to "new"
-        * (via yyrestart()), so that the user can continue scanning by
-        * just pointing yyin at a new input file.
+        * (via parser6_restart()), so that the user can continue scanning by
+        * just pointing parser6_in at a new input file.
         */
 #define YY_BUFFER_EOF_PENDING 2
 
@@ -555,6 +321,7 @@ struct yy_buffer_state
 
 /* %if-c-only Standard (non-C++) definition */
 /* %not-for-header */
+
 /* %if-not-reentrant */
 
 /* Stack of input buffers. */
@@ -575,6 +342,7 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
                           : NULL)
+
 /* Same as previous macro, but useful when we know that the buffer stack is not
  * NULL or when we need an lvalue. For internal use only.
  */
@@ -584,112 +352,120 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
 
 /* %if-not-reentrant */
 /* %not-for-header */
-/* yy_hold_char holds the character lost when yytext is formed. */
+
+/* yy_hold_char holds the character lost when parser6_text is formed. */
 static char yy_hold_char;
 static int yy_n_chars;         /* number of characters read into yy_ch_buf */
-int yyleng;
+int parser6_leng;
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = NULL;
 static int yy_init = 0;                /* whether we need to initialize */
 static int yy_start = 0;       /* start state number */
 
-/* Flag which is used to allow yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin.  A bit of a hack ...
+/* Flag which is used to allow parser6_wrap()'s to do buffer switches
+ * instead of setting up a fresh parser6_in.  A bit of a hack ...
  */
 static int yy_did_buffer_switch_on_eof;
 /* %ok-for-header */
 
 /* %endif */
 
-void yyrestart ( FILE *input_file  );
-void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
-void yy_delete_buffer ( YY_BUFFER_STATE b  );
-void yy_flush_buffer ( YY_BUFFER_STATE b  );
-void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
-void yypop_buffer_state ( void );
+void parser6_restart (FILE *input_file  );
+void parser6__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE parser6__create_buffer (FILE *file,int size  );
+void parser6__delete_buffer (YY_BUFFER_STATE b  );
+void parser6__flush_buffer (YY_BUFFER_STATE b  );
+void parser6_push_buffer_state (YY_BUFFER_STATE new_buffer  );
+void parser6_pop_buffer_state (void );
 
-static void yyensure_buffer_stack ( void );
-static void yy_load_buffer_state ( void );
-static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
-#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
+static void parser6_ensure_buffer_stack (void );
+static void parser6__load_buffer_state (void );
+static void parser6__init_buffer (YY_BUFFER_STATE b,FILE *file  );
 
-YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
-YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
-YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
+#define YY_FLUSH_BUFFER parser6__flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE parser6__scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE parser6__scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE parser6__scan_bytes (yyconst char *bytes,int len  );
 
 /* %endif */
 
-void *yyalloc ( yy_size_t  );
-void *yyrealloc ( void *, yy_size_t  );
-void yyfree ( void *  );
+void *parser6_alloc (yy_size_t  );
+void *parser6_realloc (void *,yy_size_t  );
+void parser6_free (void *  );
+
+#define yy_new_buffer parser6__create_buffer
 
-#define yy_new_buffer yy_create_buffer
 #define yy_set_interactive(is_interactive) \
        { \
        if ( ! YY_CURRENT_BUFFER ){ \
-        yyensure_buffer_stack (); \
+        parser6_ensure_buffer_stack (); \
                YY_CURRENT_BUFFER_LVALUE =    \
-            yy_create_buffer( yyin, YY_BUF_SIZE ); \
+            parser6__create_buffer(parser6_in,YY_BUF_SIZE ); \
        } \
        YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
        }
+
 #define yy_set_bol(at_bol) \
        { \
        if ( ! YY_CURRENT_BUFFER ){\
-        yyensure_buffer_stack (); \
+        parser6_ensure_buffer_stack (); \
                YY_CURRENT_BUFFER_LVALUE =    \
-            yy_create_buffer( yyin, YY_BUF_SIZE ); \
+            parser6__create_buffer(parser6_in,YY_BUF_SIZE ); \
        } \
        YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
        }
+
 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
 
-/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
+/* %% [1.0] parser6_text/parser6_in/parser6_out/yy_state_type/parser6_lineno etc. def's & init go here */
 /* Begin user sect3 */
 
 #define parser6_wrap() (/*CONSTCOND*/1)
 #define YY_SKIP_YYWRAP
 
 #define FLEX_DEBUG
-typedef flex_uint8_t YY_CHAR;
 
-FILE *yyin = NULL, *yyout = NULL;
+typedef unsigned char YY_CHAR;
+
+FILE *parser6_in = NULL, *parser6_out = NULL;
 
 typedef int yy_state_type;
 
-extern int yylineno;
-int yylineno = 1;
+extern int parser6_lineno;
+
+int parser6_lineno = 1;
 
-extern char *yytext;
+extern char *parser6_text;
 #ifdef yytext_ptr
 #undef yytext_ptr
 #endif
-#define yytext_ptr yytext
+#define yytext_ptr parser6_text
 
 /* %% [1.5] DFA */
 
 /* %if-c-only Standard (non-C++) definition */
 
-static yy_state_type yy_get_previous_state ( void );
-static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
-static int yy_get_next_buffer ( void );
-static void yynoreturn yy_fatal_error ( const char* msg  );
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yynoreturn yy_fatal_error (yyconst char* msg  );
 
 /* %endif */
 
 /* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
+ * corresponding action - sets up parser6_text.
  */
 #define YY_DO_BEFORE_ACTION \
        (yytext_ptr) = yy_bp; \
-/* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
-       yyleng = (int) (yy_cp - yy_bp); \
+/* %% [2.0] code to fiddle parser6_text and parser6_leng for yymore() goes here \ */\
+       parser6_leng = (int) (yy_cp - yy_bp); \
        (yy_hold_char) = *yy_cp; \
        *yy_cp = '\0'; \
-/* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
+/* %% [3.0] code to copy yytext_ptr to parser6_text[] 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 162
 #define YY_END_OF_BUFFER 163
@@ -700,7 +476,7 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_accept[1272] =
+static yyconst flex_int16_t yy_accept[1272] =
     {   0,
       155,  155,    0,    0,    0,    0,    0,    0,    0,    0,
       163,  161,   10,   11,  161,    1,  155,  152,  155,  155,
@@ -844,7 +620,7 @@ static const flex_int16_t yy_accept[1272] =
         0
     } ;
 
-static const YY_CHAR yy_ec[256] =
+static yyconst YY_CHAR yy_ec[256] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
@@ -876,7 +652,7 @@ static const YY_CHAR yy_ec[256] =
         5,    5,    5,    5,    5
     } ;
 
-static const YY_CHAR yy_meta[72] =
+static yyconst YY_CHAR yy_meta[72] =
     {   0,
         1,    1,    2,    3,    3,    4,    3,    3,    3,    3,
         3,    3,    3,    5,    5,    5,    3,    3,    3,    3,
@@ -888,7 +664,7 @@ static const YY_CHAR yy_meta[72] =
         3
     } ;
 
-static const flex_int16_t yy_base[1284] =
+static yyconst flex_uint16_t yy_base[1284] =
     {   0,
         0,   70,   19,   29,   41,   49,   52,   58,   87,   95,
      1633, 1634,   32, 1629,  141,    0,  201, 1634,  206,   88,
@@ -1033,7 +809,7 @@ static const flex_int16_t yy_base[1284] =
      1108, 1110, 1123
     } ;
 
-static const flex_int16_t yy_def[1284] =
+static yyconst flex_int16_t yy_def[1284] =
     {   0,
      1272, 1272, 1273, 1273, 1272, 1272, 1272, 1272, 1272, 1272,
      1271, 1271, 1271, 1271, 1271, 1274, 1271, 1271, 1271, 1271,
@@ -1178,7 +954,7 @@ static const flex_int16_t yy_def[1284] =
      1271, 1271, 1271
     } ;
 
-static const flex_int16_t yy_nxt[1706] =
+static yyconst flex_uint16_t yy_nxt[1706] =
     {   0,
      1271,   13,   14,   13, 1271,   15,   16, 1271,   17,   18,
        19,   20,   21,   22,   22,   22,   23,   24,   85,  348,
@@ -1370,7 +1146,7 @@ static const flex_int16_t yy_nxt[1706] =
      1271, 1271, 1271, 1271, 1271
     } ;
 
-static const flex_int16_t yy_chk[1706] =
+static yyconst flex_int16_t yy_chk[1706] =
     {   0,
         0,    1,    1,    1,    0,    1,    1,    0,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,   21,  246,
@@ -1565,29 +1341,29 @@ static const flex_int16_t yy_chk[1706] =
 static yy_state_type yy_last_accepting_state;
 static char *yy_last_accepting_cpos;
 
-extern int yy_flex_debug;
-int yy_flex_debug = 1;
+extern int parser6__flex_debug;
+int parser6__flex_debug = 1;
 
-static const flex_int16_t yy_rule_linenum[162] =
+static yyconst flex_int16_t yy_rule_linenum[162] =
     {   0,
-      147,  149,  151,  156,  157,  162,  163,  164,  176,  179,
-      184,  191,  200,  209,  218,  227,  236,  245,  254,  263,
-      272,  281,  290,  299,  308,  317,  327,  337,  347,  357,
-      367,  377,  387,  397,  407,  416,  425,  434,  443,  452,
-      461,  470,  482,  491,  500,  509,  518,  528,  538,  548,
-      558,  569,  579,  589,  599,  609,  620,  631,  642,  653,
-      662,  672,  681,  690,  706,  722,  731,  740,  749,  758,
-      767,  776,  785,  794,  803,  812,  834,  856,  865,  875,
-      885,  894,  904,  914,  923,  932,  941,  950,  960,  969,
-      978,  987,  996, 1005, 1014, 1023, 1032, 1041, 1051, 1060,
-
-     1069, 1079, 1092, 1102, 1111, 1120, 1129, 1140, 1150, 1159,
-     1169, 1179, 1188, 1197, 1206, 1215, 1225, 1234, 1244, 1253,
-     1262, 1271, 1280, 1289, 1298, 1307, 1316, 1325, 1334, 1343,
-     1352, 1361, 1370, 1379, 1388, 1397, 1406, 1415, 1424, 1433,
-     1442, 1451, 1460, 1470, 1569, 1574, 1579, 1584, 1585, 1586,
-     1587, 1588, 1589, 1591, 1609, 1622, 1627, 1631, 1633, 1635,
-     1637
+      146,  148,  150,  155,  156,  161,  162,  163,  175,  178,
+      183,  190,  199,  208,  217,  226,  235,  244,  253,  262,
+      271,  280,  289,  298,  307,  316,  326,  336,  346,  356,
+      366,  376,  386,  396,  406,  415,  424,  433,  442,  451,
+      460,  469,  481,  490,  499,  508,  517,  527,  537,  547,
+      557,  568,  578,  588,  598,  608,  619,  630,  641,  652,
+      661,  671,  680,  689,  705,  721,  730,  739,  748,  757,
+      766,  775,  784,  793,  802,  811,  833,  855,  864,  874,
+      884,  893,  903,  913,  922,  931,  940,  949,  959,  968,
+      977,  986,  995, 1004, 1013, 1022, 1031, 1040, 1050, 1059,
+
+     1068, 1080, 1091, 1101, 1110, 1119, 1128, 1139, 1149, 1158,
+     1168, 1178, 1187, 1196, 1205, 1214, 1224, 1233, 1243, 1252,
+     1261, 1270, 1279, 1288, 1297, 1306, 1315, 1324, 1333, 1342,
+     1351, 1360, 1369, 1378, 1387, 1396, 1405, 1414, 1423, 1432,
+     1441, 1450, 1459, 1469, 1568, 1573, 1578, 1583, 1584, 1585,
+     1586, 1587, 1588, 1590, 1608, 1621, 1626, 1630, 1632, 1634,
+     1636
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -1597,7 +1373,7 @@ static const flex_int16_t yy_rule_linenum[162] =
 #define yymore() yymore_used_but_not_detected
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
+char *parser6_text;
 #line 1 "dhcp6_lexer.ll"
 /* Copyright (C) 2016-2017 Internet Systems Consortium, Inc. ("ISC")
 
@@ -1624,8 +1400,8 @@ char *yytext;
    2.5.31 through 2.5.33): it generates code that does
    not conform to C89.  See Debian bug 333231
    <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
-# undef yywrap
-# define yywrap() 1
+# undef parser6_wrap
+# define parser6_wrap() 1
 
 namespace {
 
@@ -1640,10 +1416,9 @@ using namespace isc::dhcp;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
-#line 1643 "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
+   using parser6_wrap requires linking with -lfl, which provides the default parser6_wrap
    implementation that always returns 1 anyway. */
 /* nounput simplifies the lexer, by removing support for putting a character
    back into the input stream. We never use such capability anyway. */
@@ -1651,23 +1426,23 @@ using namespace isc::dhcp;
 /* avoid to get static global variables to remain with C++. */
 /* in last resort %option reentrant */
 /* Enables debug mode. To see the debug messages, one needs to also set
-   yy_flex_debug to 1, then the debug messages will be printed on stderr. */
+   parser6__flex_debug to 1, then the debug messages will be printed on stderr. */
 /* I have no idea what this option does, except it was specified in the bison
    examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
    be on the safe side and keep it. */
 #define YY_NO_INPUT 1
 
+
 /* These are not token expressions yet, just convenience expressions that
    can be used during actual token definitions. Note some can match
    incorrect inputs (e.g., IP addresses) which must be checked. */
 /* for errors */
 #line 94 "dhcp6_lexer.ll"
 /* This code run each time a pattern is matched. It updates the location
-   by moving it ahead by yyleng bytes. yyleng specifies the length of the
+   by moving it ahead by parser6_leng bytes. parser6_leng specifies the length of the
    currently matched token. */
-#define YY_USER_ACTION  driver.loc_.columns(yyleng);
-#line 1669 "dhcp6_lexer.cc"
-#line 1670 "dhcp6_lexer.cc"
+#define YY_USER_ACTION  driver.loc_.columns(parser6_leng);
+#line 1446 "dhcp6_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -1695,7 +1470,7 @@ using namespace isc::dhcp;
 /* %if-reentrant */
 /* %if-c-only */
 
-static int yy_init_globals ( void );
+static int yy_init_globals (void );
 
 /* %endif */
 /* %if-reentrant */
@@ -1705,31 +1480,31 @@ static int yy_init_globals ( void );
 /* Accessor methods to globals.
    These are made visible to non-reentrant scanners for convenience. */
 
-int yylex_destroy ( void );
+int parser6_lex_destroy (void );
 
-int yyget_debug ( void );
+int parser6_get_debug (void );
 
-void yyset_debug ( int debug_flag  );
+void parser6_set_debug (int debug_flag  );
 
-YY_EXTRA_TYPE yyget_extra ( void );
+YY_EXTRA_TYPE parser6_get_extra (void );
 
-void yyset_extra ( YY_EXTRA_TYPE user_defined  );
+void parser6_set_extra (YY_EXTRA_TYPE user_defined  );
 
-FILE *yyget_in ( void );
+FILE *parser6_get_in (void );
 
-void yyset_in  ( FILE * _in_str  );
+void parser6_set_in  (FILE * _in_str  );
 
-FILE *yyget_out ( void );
+FILE *parser6_get_out (void );
 
-void yyset_out  ( FILE * _out_str  );
+void parser6_set_out  (FILE * _out_str  );
 
-                       int yyget_leng ( void );
+                       int parser6_get_leng (void );
 
-char *yyget_text ( void );
+char *parser6_get_text (void );
 
-int yyget_lineno ( void );
+int parser6_get_lineno (void );
 
-void yyset_lineno ( int _line_number  );
+void parser6_set_lineno (int _line_number  );
 
 /* %if-bison-bridge */
 /* %endif */
@@ -1740,13 +1515,14 @@ void yyset_lineno ( int _line_number  );
 
 #ifndef YY_SKIP_YYWRAP
 #ifdef __cplusplus
-extern "C" int yywrap ( void );
+extern "C" int parser6_wrap (void );
 #else
-extern int yywrap ( void );
+extern int parser6_wrap (void );
 #endif
 #endif
 
 /* %not-for-header */
+
 #ifndef YY_NO_UNPUT
     
 #endif
@@ -1755,20 +1531,21 @@ extern int yywrap ( void );
 /* %endif */
 
 #ifndef yytext_ptr
-static void yy_flex_strncpy ( char *, const char *, int );
+static void yy_flex_strncpy (char *,yyconst char *,int );
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen ( const char * );
+static int yy_flex_strlen (yyconst char * );
 #endif
 
 #ifndef YY_NO_INPUT
 /* %if-c-only Standard (non-C++) definition */
 /* %not-for-header */
+
 #ifdef __cplusplus
-static int yyinput ( void );
+static int yyinput (void );
 #else
-static int input ( void );
+static int input (void );
 #endif
 /* %ok-for-header */
 
@@ -1795,7 +1572,7 @@ static int input ( void );
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
+#define ECHO do { if (fwrite( parser6_text, (size_t) parser6_leng, 1, parser6_out )) {} } while (0)
 /* %endif */
 /* %if-c++-only C++ definition */
 /* %endif */
@@ -1810,20 +1587,20 @@ static int input ( void );
        if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
                { \
                int c = '*'; \
-               int n; \
+               size_t n; \
                for ( n = 0; n < max_size && \
-                            (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+                            (c = getc( parser6_in )) != EOF && c != '\n'; ++n ) \
                        buf[n] = (char) c; \
                if ( c == '\n' ) \
                        buf[n++] = (char) c; \
-               if ( c == EOF && ferror( yyin ) ) \
+               if ( c == EOF && ferror( parser6_in ) ) \
                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
                result = n; \
                } \
        else \
                { \
                errno=0; \
-               while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
+               while ( (result = (int) fread(buf, 1, max_size, parser6_in))==0 && ferror(parser6_in)) \
                        { \
                        if( errno != EINTR) \
                                { \
@@ -1831,7 +1608,7 @@ static int input ( void );
                                break; \
                                } \
                        errno=0; \
-                       clearerr(yyin); \
+                       clearerr(parser6_in); \
                        } \
                }\
 \
@@ -1864,9 +1641,11 @@ static int input ( void );
 
 /* %if-tables-serialization structures and prototypes */
 /* %not-for-header */
+
 /* %ok-for-header */
 
 /* %not-for-header */
+
 /* %tables-yydmap generated elements */
 /* %endif */
 /* end tables serialization structures and prototypes */
@@ -1880,15 +1659,15 @@ static int input ( void );
 #define YY_DECL_IS_OURS 1
 /* %if-c-only Standard (non-C++) definition */
 
-extern int yylex (void);
+extern int parser6_lex (void);
 
-#define YY_DECL int yylex (void)
+#define YY_DECL int parser6_lex (void)
 /* %endif */
 /* %if-c++-only C++ definition */
 /* %endif */
 #endif /* !YY_DECL */
 
-/* Code executed at the beginning of each rule, after yytext and yyleng
+/* Code executed at the beginning of each rule, after parser6_text and parser6_leng
  * have been set up.
  */
 #ifndef YY_USER_ACTION
@@ -1905,6 +1684,7 @@ extern int yylex (void);
        YY_USER_ACTION
 
 /* %not-for-header */
+
 /** The main scanner function which does all the work.
  */
 YY_DECL
@@ -1924,27 +1704,27 @@ YY_DECL
                if ( ! (yy_start) )
                        (yy_start) = 1; /* first start state */
 
-               if ( ! yyin )
+               if ( ! parser6_in )
 /* %if-c-only */
-                       yyin = stdin;
+                       parser6_in = stdin;
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 
-               if ( ! yyout )
+               if ( ! parser6_out )
 /* %if-c-only */
-                       yyout = stdout;
+                       parser6_out = stdout;
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 
                if ( ! YY_CURRENT_BUFFER ) {
-                       yyensure_buffer_stack ();
+                       parser6_ensure_buffer_stack ();
                        YY_CURRENT_BUFFER_LVALUE =
-                               yy_create_buffer( yyin, YY_BUF_SIZE );
+                               parser6__create_buffer(parser6_in,YY_BUF_SIZE );
                }
 
-               yy_load_buffer_state(  );
+               parser6__load_buffer_state( );
                }
 
        {
@@ -1953,12 +1733,11 @@ YY_DECL
 
 
 
-#line 104 "dhcp6_lexer.ll"
     /* This part of the code is copied over to the verbatim to the top
-       of the generated yylex function. Explanation:
+       of the generated parser6_lex function. Explanation:
        http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
 
-    /* Code run each time yylex is called. */
+    /* Code run each time parser6_lex is called. */
     driver.loc_.step();
 
     if (start_token_flag) {
@@ -1997,14 +1776,14 @@ YY_DECL
     }
 
 
-#line 2000 "dhcp6_lexer.cc"
+#line 1780 "dhcp6_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
 /* %% [8.0] yymore()-related code goes here */
                yy_cp = (yy_c_buf_p);
 
-               /* Support of yytext. */
+               /* Support of parser6_text. */
                *yy_cp = (yy_hold_char);
 
                /* yy_bp points to the position in yy_ch_buf of the start of
@@ -2027,9 +1806,9 @@ yy_match:
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
                                if ( yy_current_state >= 1272 )
-                                       yy_c = yy_meta[yy_c];
+                                       yy_c = yy_meta[(unsigned int) yy_c];
                                }
-                       yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+                       yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
                        ++yy_cp;
                        }
                while ( yy_current_state != 1271 );
@@ -2042,21 +1821,21 @@ yy_find_action:
 
                YY_DO_BEFORE_ACTION;
 
-/* %% [11.0] code for yylineno update goes here */
+/* %% [11.0] code for parser6_lineno update goes here */
 
 do_action:     /* This label is used only to access EOF actions. */
 
 /* %% [12.0] debug code goes here */
-               if ( yy_flex_debug )
+               if ( parser6__flex_debug )
                        {
                        if ( yy_act == 0 )
                                fprintf( stderr, "--scanner backing up\n" );
                        else if ( yy_act < 162 )
                                fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
-                                        (long)yy_rule_linenum[yy_act], yytext );
+                                        (long)yy_rule_linenum[yy_act], parser6_text );
                        else if ( yy_act == 162 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
-                                        yytext );
+                                        parser6_text );
                        else if ( yy_act == 163 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
@@ -2075,17 +1854,17 @@ do_action:      /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 147 "dhcp6_lexer.ll"
+#line 146 "dhcp6_lexer.ll"
 ;
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 149 "dhcp6_lexer.ll"
+#line 148 "dhcp6_lexer.ll"
 ;
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 151 "dhcp6_lexer.ll"
+#line 150 "dhcp6_lexer.ll"
 {
   BEGIN(COMMENT);
   comment_start_line = driver.loc_.end.line;;
@@ -2093,38 +1872,38 @@ YY_RULE_SETUP
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 156 "dhcp6_lexer.ll"
+#line 155 "dhcp6_lexer.ll"
 BEGIN(INITIAL);
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 157 "dhcp6_lexer.ll"
+#line 156 "dhcp6_lexer.ll"
 ;
        YY_BREAK
 case YY_STATE_EOF(COMMENT):
-#line 158 "dhcp6_lexer.ll"
+#line 157 "dhcp6_lexer.ll"
 {
     isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
 }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 162 "dhcp6_lexer.ll"
+#line 161 "dhcp6_lexer.ll"
 BEGIN(DIR_ENTER);
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 163 "dhcp6_lexer.ll"
+#line 162 "dhcp6_lexer.ll"
 BEGIN(DIR_INCLUDE);
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 164 "dhcp6_lexer.ll"
+#line 163 "dhcp6_lexer.ll"
 {
     /* Include directive. */
 
     /* Extract the filename. */
-    std::string tmp(yytext+1);
+    std::string tmp(parser6_text+1);
     tmp.resize(tmp.size() - 1);
 
     driver.includeFile(tmp);
@@ -2133,19 +1912,19 @@ YY_RULE_SETUP
 case YY_STATE_EOF(DIR_ENTER):
 case YY_STATE_EOF(DIR_INCLUDE):
 case YY_STATE_EOF(DIR_EXIT):
-#line 173 "dhcp6_lexer.ll"
+#line 172 "dhcp6_lexer.ll"
 {
     isc_throw(Dhcp6ParseError, "Directive not closed.");
 }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 176 "dhcp6_lexer.ll"
+#line 175 "dhcp6_lexer.ll"
 BEGIN(INITIAL);
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 179 "dhcp6_lexer.ll"
+#line 178 "dhcp6_lexer.ll"
 {
     /* Ok, we found a with space. Let's ignore it and update loc variable. */
     driver.loc_.step();
@@ -2154,16 +1933,16 @@ YY_RULE_SETUP
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-#line 184 "dhcp6_lexer.ll"
+#line 183 "dhcp6_lexer.ll"
 {
     /* Newline found. Let's update the location and continue. */
-    driver.loc_.lines(yyleng);
+    driver.loc_.lines(parser6_leng);
     driver.loc_.step();
 }
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 191 "dhcp6_lexer.ll"
+#line 190 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2175,7 +1954,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 200 "dhcp6_lexer.ll"
+#line 199 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2187,7 +1966,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 209 "dhcp6_lexer.ll"
+#line 208 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2199,7 +1978,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 218 "dhcp6_lexer.ll"
+#line 217 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2211,7 +1990,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 227 "dhcp6_lexer.ll"
+#line 226 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2223,7 +2002,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 236 "dhcp6_lexer.ll"
+#line 235 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2235,7 +2014,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 245 "dhcp6_lexer.ll"
+#line 244 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2247,7 +2026,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 254 "dhcp6_lexer.ll"
+#line 253 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2259,7 +2038,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 263 "dhcp6_lexer.ll"
+#line 262 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2271,7 +2050,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 272 "dhcp6_lexer.ll"
+#line 271 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2283,7 +2062,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 281 "dhcp6_lexer.ll"
+#line 280 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2295,7 +2074,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 290 "dhcp6_lexer.ll"
+#line 289 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2307,7 +2086,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 299 "dhcp6_lexer.ll"
+#line 298 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2319,7 +2098,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 308 "dhcp6_lexer.ll"
+#line 307 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2331,124 +2110,124 @@ YY_RULE_SETUP
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 317 "dhcp6_lexer.ll"
+#line 316 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
         return isc::dhcp::Dhcp6Parser::make_UDP(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser6_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 327 "dhcp6_lexer.ll"
+#line 326 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
         return isc::dhcp::Dhcp6Parser::make_TCP(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser6_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 337 "dhcp6_lexer.ll"
+#line 336 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
         return isc::dhcp::Dhcp6Parser::make_JSON(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser6_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 347 "dhcp6_lexer.ll"
+#line 346 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
         return isc::dhcp::Dhcp6Parser::make_WHEN_PRESENT(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser6_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 357 "dhcp6_lexer.ll"
+#line 356 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
         return isc::dhcp::Dhcp6Parser::make_WHEN_PRESENT(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser6_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 367 "dhcp6_lexer.ll"
+#line 366 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
         return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser6_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 377 "dhcp6_lexer.ll"
+#line 376 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
         return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser6_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 387 "dhcp6_lexer.ll"
+#line 386 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
         return isc::dhcp::Dhcp6Parser::make_ALWAYS(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser6_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 397 "dhcp6_lexer.ll"
+#line 396 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
         return isc::dhcp::Dhcp6Parser::make_WHEN_NOT_PRESENT(driver.loc_);
     }
-    std::string tmp(yytext+1);
+    std::string tmp(parser6_text+1);
     tmp.resize(tmp.size() - 1);
     return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 407 "dhcp6_lexer.ll"
+#line 406 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -2460,7 +2239,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 416 "dhcp6_lexer.ll"
+#line 415 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2472,7 +2251,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 425 "dhcp6_lexer.ll"
+#line 424 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::INTERFACES_CONFIG:
@@ -2484,7 +2263,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 434 "dhcp6_lexer.ll"
+#line 433 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::INTERFACES_CONFIG:
@@ -2496,7 +2275,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 443 "dhcp6_lexer.ll"
+#line 442 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2508,7 +2287,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 452 "dhcp6_lexer.ll"
+#line 451 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2520,7 +2299,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 461 "dhcp6_lexer.ll"
+#line 460 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOSTS_DATABASE:
@@ -2532,7 +2311,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 470 "dhcp6_lexer.ll"
+#line 469 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2547,7 +2326,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 482 "dhcp6_lexer.ll"
+#line 481 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -2559,7 +2338,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 491 "dhcp6_lexer.ll"
+#line 490 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -2571,7 +2350,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 500 "dhcp6_lexer.ll"
+#line 499 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -2583,7 +2362,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 509 "dhcp6_lexer.ll"
+#line 508 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -2595,7 +2374,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 518 "dhcp6_lexer.ll"
+#line 517 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2608,7 +2387,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 528 "dhcp6_lexer.ll"
+#line 527 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2621,7 +2400,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 538 "dhcp6_lexer.ll"
+#line 537 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2634,7 +2413,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 548 "dhcp6_lexer.ll"
+#line 547 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2647,7 +2426,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 558 "dhcp6_lexer.ll"
+#line 557 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2661,7 +2440,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 569 "dhcp6_lexer.ll"
+#line 568 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2674,7 +2453,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 579 "dhcp6_lexer.ll"
+#line 578 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2687,7 +2466,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 589 "dhcp6_lexer.ll"
+#line 588 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2700,7 +2479,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 599 "dhcp6_lexer.ll"
+#line 598 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2713,7 +2492,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 609 "dhcp6_lexer.ll"
+#line 608 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2727,7 +2506,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 620 "dhcp6_lexer.ll"
+#line 619 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2741,7 +2520,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 631 "dhcp6_lexer.ll"
+#line 630 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2755,7 +2534,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 642 "dhcp6_lexer.ll"
+#line 641 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2769,7 +2548,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 653 "dhcp6_lexer.ll"
+#line 652 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2781,7 +2560,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 662 "dhcp6_lexer.ll"
+#line 661 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2794,7 +2573,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 672 "dhcp6_lexer.ll"
+#line 671 "dhcp6_lexer.ll"
 {
     switch (driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2806,7 +2585,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 681 "dhcp6_lexer.ll"
+#line 680 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2818,7 +2597,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 690 "dhcp6_lexer.ll"
+#line 689 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2837,7 +2616,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 706 "dhcp6_lexer.ll"
+#line 705 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2856,7 +2635,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 722 "dhcp6_lexer.ll"
+#line 721 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -2868,7 +2647,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 731 "dhcp6_lexer.ll"
+#line 730 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -2880,7 +2659,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 740 "dhcp6_lexer.ll"
+#line 739 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -2892,7 +2671,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 749 "dhcp6_lexer.ll"
+#line 748 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -2904,7 +2683,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 758 "dhcp6_lexer.ll"
+#line 757 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -2916,7 +2695,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 767 "dhcp6_lexer.ll"
+#line 766 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -2928,7 +2707,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 776 "dhcp6_lexer.ll"
+#line 775 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -2940,7 +2719,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 785 "dhcp6_lexer.ll"
+#line 784 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -2952,7 +2731,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 794 "dhcp6_lexer.ll"
+#line 793 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -2964,7 +2743,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 803 "dhcp6_lexer.ll"
+#line 802 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::POOLS:
@@ -2976,7 +2755,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 812 "dhcp6_lexer.ll"
+#line 811 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3001,7 +2780,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 834 "dhcp6_lexer.ll"
+#line 833 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3026,7 +2805,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 856 "dhcp6_lexer.ll"
+#line 855 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3038,7 +2817,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 865 "dhcp6_lexer.ll"
+#line 864 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3051,7 +2830,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 875 "dhcp6_lexer.ll"
+#line 874 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3064,7 +2843,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 885 "dhcp6_lexer.ll"
+#line 884 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3076,7 +2855,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 894 "dhcp6_lexer.ll"
+#line 893 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3089,7 +2868,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 904 "dhcp6_lexer.ll"
+#line 903 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3102,7 +2881,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 914 "dhcp6_lexer.ll"
+#line 913 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3114,7 +2893,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 923 "dhcp6_lexer.ll"
+#line 922 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3126,7 +2905,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 932 "dhcp6_lexer.ll"
+#line 931 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3138,7 +2917,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 941 "dhcp6_lexer.ll"
+#line 940 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3150,7 +2929,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 950 "dhcp6_lexer.ll"
+#line 949 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3163,7 +2942,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 960 "dhcp6_lexer.ll"
+#line 959 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3175,7 +2954,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 969 "dhcp6_lexer.ll"
+#line 968 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3187,7 +2966,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 978 "dhcp6_lexer.ll"
+#line 977 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3199,7 +2978,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 987 "dhcp6_lexer.ll"
+#line 986 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3211,7 +2990,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 996 "dhcp6_lexer.ll"
+#line 995 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGING:
@@ -3223,7 +3002,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 1005 "dhcp6_lexer.ll"
+#line 1004 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3235,7 +3014,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 1014 "dhcp6_lexer.ll"
+#line 1013 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3247,7 +3026,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 1023 "dhcp6_lexer.ll"
+#line 1022 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3259,7 +3038,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 1032 "dhcp6_lexer.ll"
+#line 1031 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3271,7 +3050,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 1041 "dhcp6_lexer.ll"
+#line 1040 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3283,7 +3062,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 1051 "dhcp6_lexer.ll"
+#line 1050 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3295,7 +3074,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 1060 "dhcp6_lexer.ll"
+#line 1059 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3307,10 +3086,12 @@ YY_RULE_SETUP
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 1069 "dhcp6_lexer.ll"
+#line 1068 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
+    case isc::dhcp::Parser6Context::POOLS:
+    case isc::dhcp::Parser6Context::PD_POOLS:
     case isc::dhcp::Parser6Context::RESERVATIONS:
         return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASSES(driver.loc_);
     default:
@@ -3320,12 +3101,10 @@ YY_RULE_SETUP
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 1079 "dhcp6_lexer.ll"
+#line 1080 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
-    case isc::dhcp::Parser6Context::POOLS:
-    case isc::dhcp::Parser6Context::PD_POOLS:
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
     case isc::dhcp::Parser6Context::SHARED_NETWORK:
         return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASS(driver.loc_);
@@ -3336,7 +3115,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 1092 "dhcp6_lexer.ll"
+#line 1091 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -3349,7 +3128,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 1102 "dhcp6_lexer.ll"
+#line 1101 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3361,7 +3140,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 1111 "dhcp6_lexer.ll"
+#line 1110 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3373,7 +3152,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 1120 "dhcp6_lexer.ll"
+#line 1119 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3385,7 +3164,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 1129 "dhcp6_lexer.ll"
+#line 1128 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::MAC_SOURCES:
@@ -3399,7 +3178,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 1140 "dhcp6_lexer.ll"
+#line 1139 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3412,7 +3191,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 1150 "dhcp6_lexer.ll"
+#line 1149 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3424,7 +3203,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 1159 "dhcp6_lexer.ll"
+#line 1158 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3437,7 +3216,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 1169 "dhcp6_lexer.ll"
+#line 1168 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3450,7 +3229,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 1179 "dhcp6_lexer.ll"
+#line 1178 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -3462,7 +3241,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 1188 "dhcp6_lexer.ll"
+#line 1187 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3474,7 +3253,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 1197 "dhcp6_lexer.ll"
+#line 1196 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3486,7 +3265,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 1206 "dhcp6_lexer.ll"
+#line 1205 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3498,7 +3277,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 1215 "dhcp6_lexer.ll"
+#line 1214 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3511,7 +3290,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 1225 "dhcp6_lexer.ll"
+#line 1224 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RELAY:
@@ -3523,7 +3302,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 1234 "dhcp6_lexer.ll"
+#line 1233 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3535,7 +3314,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 1244 "dhcp6_lexer.ll"
+#line 1243 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -3547,7 +3326,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 1253 "dhcp6_lexer.ll"
+#line 1252 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -3559,7 +3338,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 1262 "dhcp6_lexer.ll"
+#line 1261 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3571,7 +3350,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 1271 "dhcp6_lexer.ll"
+#line 1270 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3583,7 +3362,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 1280 "dhcp6_lexer.ll"
+#line 1279 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3595,7 +3374,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 1289 "dhcp6_lexer.ll"
+#line 1288 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3607,7 +3386,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 1298 "dhcp6_lexer.ll"
+#line 1297 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3619,7 +3398,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 1307 "dhcp6_lexer.ll"
+#line 1306 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3631,7 +3410,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 1316 "dhcp6_lexer.ll"
+#line 1315 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3643,7 +3422,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 1325 "dhcp6_lexer.ll"
+#line 1324 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3655,7 +3434,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 1334 "dhcp6_lexer.ll"
+#line 1333 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3667,7 +3446,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 1343 "dhcp6_lexer.ll"
+#line 1342 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3679,7 +3458,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 1352 "dhcp6_lexer.ll"
+#line 1351 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3691,7 +3470,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 1361 "dhcp6_lexer.ll"
+#line 1360 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3703,7 +3482,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 1370 "dhcp6_lexer.ll"
+#line 1369 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3715,7 +3494,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 1379 "dhcp6_lexer.ll"
+#line 1378 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3727,7 +3506,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 1388 "dhcp6_lexer.ll"
+#line 1387 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3739,7 +3518,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 1397 "dhcp6_lexer.ll"
+#line 1396 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3751,7 +3530,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 1406 "dhcp6_lexer.ll"
+#line 1405 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3763,7 +3542,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 1415 "dhcp6_lexer.ll"
+#line 1414 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -3775,7 +3554,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 1424 "dhcp6_lexer.ll"
+#line 1423 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -3787,7 +3566,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 1433 "dhcp6_lexer.ll"
+#line 1432 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3799,7 +3578,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 1442 "dhcp6_lexer.ll"
+#line 1441 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3811,7 +3590,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 1451 "dhcp6_lexer.ll"
+#line 1450 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3823,7 +3602,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 1460 "dhcp6_lexer.ll"
+#line 1459 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3835,12 +3614,12 @@ YY_RULE_SETUP
        YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 1470 "dhcp6_lexer.ll"
+#line 1469 "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.
        for 'foo' we should get foo */
-    std::string raw(yytext+1);
+    std::string raw(parser6_text+1);
     size_t len = raw.size() - 1;
     raw.resize(len);
     std::string decoded;
@@ -3938,65 +3717,65 @@ YY_RULE_SETUP
 case 145:
 /* rule 145 can match eol */
 YY_RULE_SETUP
-#line 1569 "dhcp6_lexer.ll"
+#line 1568 "dhcp6_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
-    driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
+    driver.error(driver.loc_, "Invalid control in " + std::string(parser6_text));
 }
        YY_BREAK
 case 146:
 /* rule 146 can match eol */
 YY_RULE_SETUP
-#line 1574 "dhcp6_lexer.ll"
+#line 1573 "dhcp6_lexer.ll"
 {
     /* Bad string with a bad escape inside */
-    driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
+    driver.error(driver.loc_, "Bad escape in " + std::string(parser6_text));
 }
        YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 1579 "dhcp6_lexer.ll"
+#line 1578 "dhcp6_lexer.ll"
 {
     /* Bad string with an open escape at the end */
-    driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
+    driver.error(driver.loc_, "Overflow escape in " + std::string(parser6_text));
 }
        YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 1584 "dhcp6_lexer.ll"
+#line 1583 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 1585 "dhcp6_lexer.ll"
+#line 1584 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 1586 "dhcp6_lexer.ll"
+#line 1585 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 1587 "dhcp6_lexer.ll"
+#line 1586 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 1588 "dhcp6_lexer.ll"
+#line 1587 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
        YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 1589 "dhcp6_lexer.ll"
+#line 1588 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
        YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 1591 "dhcp6_lexer.ll"
+#line 1590 "dhcp6_lexer.ll"
 {
     /* An integer was found. */
-    std::string tmp(yytext);
+    std::string tmp(parser6_text);
     int64_t integer = 0;
     try {
         /* In substring we want to use negative values (e.g. -1).
@@ -4014,10 +3793,10 @@ YY_RULE_SETUP
        YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 1609 "dhcp6_lexer.ll"
+#line 1608 "dhcp6_lexer.ll"
 {
     /* A floating point was found. */
-    std::string tmp(yytext);
+    std::string tmp(parser6_text);
     double fp = 0.0;
     try {
         fp = boost::lexical_cast<double>(tmp);
@@ -4030,41 +3809,41 @@ YY_RULE_SETUP
        YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 1622 "dhcp6_lexer.ll"
+#line 1621 "dhcp6_lexer.ll"
 {
-    string tmp(yytext);
+    string tmp(parser6_text);
     return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
 }
        YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 1627 "dhcp6_lexer.ll"
+#line 1626 "dhcp6_lexer.ll"
 {
    return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 1631 "dhcp6_lexer.ll"
+#line 1630 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 1633 "dhcp6_lexer.ll"
+#line 1632 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
 case 160:
 YY_RULE_SETUP
-#line 1635 "dhcp6_lexer.ll"
+#line 1634 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
 case 161:
 YY_RULE_SETUP
-#line 1637 "dhcp6_lexer.ll"
-driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
+#line 1636 "dhcp6_lexer.ll"
+driver.error (driver.loc_, "Invalid character: " + std::string(parser6_text));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 1639 "dhcp6_lexer.ll"
+#line 1638 "dhcp6_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
@@ -4090,10 +3869,10 @@ case YY_STATE_EOF(INITIAL):
        YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 1662 "dhcp6_lexer.ll"
+#line 1661 "dhcp6_lexer.ll"
 ECHO;
        YY_BREAK
-#line 4096 "dhcp6_lexer.cc"
+#line 3876 "dhcp6_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -4108,8 +3887,8 @@ ECHO;
                        {
                        /* We're scanning a new file or input source.  It's
                         * possible that this happened because the user
-                        * just pointed yyin at a new source and called
-                        * yylex().  If so, then we have to assure
+                        * just pointed parser6_in at a new source and called
+                        * parser6_lex().  If so, then we have to assure
                         * consistency between YY_CURRENT_BUFFER and our
                         * globals.  Here is the right place to do so, because
                         * this is the first action (other than possibly a
@@ -4117,7 +3896,7 @@ ECHO;
                         */
                        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
 /* %if-c-only */
-                       YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+                       YY_CURRENT_BUFFER_LVALUE->yy_input_file = parser6_in;
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4175,11 +3954,11 @@ ECHO;
                                {
                                (yy_did_buffer_switch_on_eof) = 0;
 
-                               if ( yywrap(  ) )
+                               if ( parser6_wrap( ) )
                                        {
                                        /* Note: because we've taken care in
                                         * yy_get_next_buffer() to have set up
-                                        * yytext, we can now set up
+                                        * parser6_text, we can now set up
                                         * yy_c_buf_p so that if some total
                                         * hoser (like flex itself) wants to
                                         * call the scanner after we return the
@@ -4229,11 +4008,12 @@ ECHO;
        } /* end of action switch */
                } /* end of scanning one token */
        } /* end of user's declarations */
-} /* end of yylex */
+} /* end of parser6_lex */
 /* %ok-for-header */
 
 /* %if-c++-only */
 /* %not-for-header */
+
 /* %ok-for-header */
 
 /* %endif */
@@ -4318,8 +4098,7 @@ static int yy_get_next_buffer (void)
 
                                b->yy_ch_buf = (char *)
                                        /* Include room in for 2 EOB chars. */
-                                       yyrealloc( (void *) b->yy_ch_buf,
-                                                        (yy_size_t) (b->yy_buf_size + 2)  );
+                                       parser6_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
                                }
                        else
                                /* Can't grow it, we don't own it. */
@@ -4351,7 +4130,7 @@ static int yy_get_next_buffer (void)
                if ( number_to_move == YY_MORE_ADJ )
                        {
                        ret_val = EOB_ACT_END_OF_FILE;
-                       yyrestart( yyin  );
+                       parser6_restart(parser6_in  );
                        }
 
                else
@@ -4368,12 +4147,9 @@ static int yy_get_next_buffer (void)
        if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
                /* Extend the array by 50%, plus the number we really need. */
                int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
-               YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
-                       (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
+               YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) parser6_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
                if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
                        YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-               /* "- 2" to take care of EOB's */
-               YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
        }
 
        (yy_n_chars) += number_to_move;
@@ -4389,6 +4165,7 @@ static int yy_get_next_buffer (void)
 
 /* %if-c-only */
 /* %not-for-header */
+
     static yy_state_type yy_get_previous_state (void)
 /* %endif */
 /* %if-c++-only */
@@ -4413,9 +4190,9 @@ static int yy_get_next_buffer (void)
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
                        if ( yy_current_state >= 1272 )
-                               yy_c = yy_meta[yy_c];
+                               yy_c = yy_meta[(unsigned int) yy_c];
                        }
-               yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+               yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
                }
 
        return yy_current_state;
@@ -4446,9 +4223,9 @@ static int yy_get_next_buffer (void)
                {
                yy_current_state = (int) yy_def[yy_current_state];
                if ( yy_current_state >= 1272 )
-                       yy_c = yy_meta[yy_c];
+                       yy_c = yy_meta[(unsigned int) yy_c];
                }
-       yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+       yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
        yy_is_jam = (yy_current_state == 1271);
 
                return yy_is_jam ? 0 : yy_current_state;
@@ -4488,7 +4265,7 @@ static int yy_get_next_buffer (void)
 
                else
                        { /* need more input */
-                       int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
+                       int offset = (yy_c_buf_p) - (yytext_ptr);
                        ++(yy_c_buf_p);
 
                        switch ( yy_get_next_buffer(  ) )
@@ -4505,13 +4282,13 @@ static int yy_get_next_buffer (void)
                                         */
 
                                        /* Reset buffer status. */
-                                       yyrestart( yyin );
+                                       parser6_restart(parser6_in );
 
                                        /*FALLTHROUGH*/
 
                                case EOB_ACT_END_OF_FILE:
                                        {
-                                       if ( yywrap(  ) )
+                                       if ( parser6_wrap( ) )
                                                return 0;
 
                                        if ( ! (yy_did_buffer_switch_on_eof) )
@@ -4531,10 +4308,10 @@ static int yy_get_next_buffer (void)
                }
 
        c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
-       *(yy_c_buf_p) = '\0';   /* preserve yytext */
+       *(yy_c_buf_p) = '\0';   /* preserve parser6_text */
        (yy_hold_char) = *++(yy_c_buf_p);
 
-/* %% [19.0] update BOL and yylineno */
+/* %% [19.0] update BOL and parser6_lineno */
 
        return c;
 }
@@ -4548,20 +4325,20 @@ static int yy_get_next_buffer (void)
  * @note This function does not reset the start condition to @c INITIAL .
  */
 /* %if-c-only */
-    void yyrestart  (FILE * input_file )
+    void parser6_restart  (FILE * input_file )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 {
     
        if ( ! YY_CURRENT_BUFFER ){
-        yyensure_buffer_stack ();
+        parser6_ensure_buffer_stack ();
                YY_CURRENT_BUFFER_LVALUE =
-            yy_create_buffer( yyin, YY_BUF_SIZE );
+            parser6__create_buffer(parser6_in,YY_BUF_SIZE );
        }
 
-       yy_init_buffer( YY_CURRENT_BUFFER, input_file );
-       yy_load_buffer_state(  );
+       parser6__init_buffer(YY_CURRENT_BUFFER,input_file );
+       parser6__load_buffer_state( );
 }
 
 /* %if-c++-only */
@@ -4572,7 +4349,7 @@ static int yy_get_next_buffer (void)
  * 
  */
 /* %if-c-only */
-    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+    void parser6__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4580,10 +4357,10 @@ static int yy_get_next_buffer (void)
     
        /* TODO. We should be able to replace this entire function body
         * with
-        *              yypop_buffer_state();
-        *              yypush_buffer_state(new_buffer);
+        *              parser6_pop_buffer_state();
+        *              parser6_push_buffer_state(new_buffer);
      */
-       yyensure_buffer_stack ();
+       parser6_ensure_buffer_stack ();
        if ( YY_CURRENT_BUFFER == new_buffer )
                return;
 
@@ -4596,18 +4373,18 @@ static int yy_get_next_buffer (void)
                }
 
        YY_CURRENT_BUFFER_LVALUE = new_buffer;
-       yy_load_buffer_state(  );
+       parser6__load_buffer_state( );
 
        /* We don't actually know whether we did this switch during
-        * EOF (yywrap()) processing, but the only time this flag
-        * is looked at is after yywrap() is called, so it's safe
+        * EOF (parser6_wrap()) processing, but the only time this flag
+        * is looked at is after parser6_wrap() is called, so it's safe
         * to go ahead and always set it.
         */
        (yy_did_buffer_switch_on_eof) = 1;
 }
 
 /* %if-c-only */
-static void yy_load_buffer_state  (void)
+static void parser6__load_buffer_state  (void)
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4615,7 +4392,7 @@ static void yy_load_buffer_state  (void)
        (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
        (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
 /* %if-c-only */
-       yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+       parser6_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4629,29 +4406,29 @@ static void yy_load_buffer_state  (void)
  * @return the allocated buffer state.
  */
 /* %if-c-only */
-    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+    YY_BUFFER_STATE parser6__create_buffer  (FILE * file, int  size )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 {
        YY_BUFFER_STATE b;
     
-       b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
+       b = (YY_BUFFER_STATE) parser6_alloc(sizeof( struct yy_buffer_state )  );
        if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+               YY_FATAL_ERROR( "out of dynamic memory in parser6__create_buffer()" );
 
-       b->yy_buf_size = size;
+       b->yy_buf_size = (yy_size_t)size;
 
        /* yy_ch_buf has to be 2 characters longer than the size given because
         * we need to put in 2 end-of-buffer characters.
         */
-       b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
+       b->yy_ch_buf = (char *) parser6_alloc(b->yy_buf_size + 2  );
        if ( ! b->yy_ch_buf )
-               YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+               YY_FATAL_ERROR( "out of dynamic memory in parser6__create_buffer()" );
 
        b->yy_is_our_buffer = 1;
 
-       yy_init_buffer( b, file );
+       parser6__init_buffer(b,file );
 
        return b;
 }
@@ -4660,11 +4437,11 @@ static void yy_load_buffer_state  (void)
 /* %endif */
 
 /** Destroy the buffer.
- * @param b a buffer created with yy_create_buffer()
+ * @param b a buffer created with parser6__create_buffer()
  * 
  */
 /* %if-c-only */
-    void yy_delete_buffer (YY_BUFFER_STATE  b )
+    void parser6__delete_buffer (YY_BUFFER_STATE  b )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4677,17 +4454,17 @@ static void yy_load_buffer_state  (void)
                YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
 
        if ( b->yy_is_our_buffer )
-               yyfree( (void *) b->yy_ch_buf  );
+               parser6_free((void *) b->yy_ch_buf  );
 
-       yyfree( (void *) b  );
+       parser6_free((void *) b  );
 }
 
 /* Initializes or reinitializes a buffer.
  * This function is sometimes called more than once on the same buffer,
- * such as during a yyrestart() or at EOF.
+ * such as during a parser6_restart() or at EOF.
  */
 /* %if-c-only */
-    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+    static void parser6__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4695,7 +4472,7 @@ static void yy_load_buffer_state  (void)
 {
        int oerrno = errno;
     
-       yy_flush_buffer( b );
+       parser6__flush_buffer(b );
 
 /* %if-c-only */
        b->yy_input_file = file;
@@ -4704,8 +4481,8 @@ static void yy_load_buffer_state  (void)
 /* %endif */
        b->yy_fill_buffer = 1;
 
-    /* If b is the current buffer, then yy_init_buffer was _probably_
-     * called from yyrestart() or through yy_get_next_buffer.
+    /* If b is the current buffer, then parser6__init_buffer was _probably_
+     * called from parser6_restart() or through yy_get_next_buffer.
      * In that case, we don't want to reset the lineno or column.
      */
     if (b != YY_CURRENT_BUFFER){
@@ -4728,7 +4505,7 @@ static void yy_load_buffer_state  (void)
  * 
  */
 /* %if-c-only */
-    void yy_flush_buffer (YY_BUFFER_STATE  b )
+    void parser6__flush_buffer (YY_BUFFER_STATE  b )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4751,7 +4528,7 @@ static void yy_load_buffer_state  (void)
        b->yy_buffer_status = YY_BUFFER_NEW;
 
        if ( b == YY_CURRENT_BUFFER )
-               yy_load_buffer_state(  );
+               parser6__load_buffer_state( );
 }
 
 /* %if-c-or-c++ */
@@ -4762,7 +4539,7 @@ static void yy_load_buffer_state  (void)
  *  
  */
 /* %if-c-only */
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+void parser6_push_buffer_state (YY_BUFFER_STATE new_buffer )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4770,9 +4547,9 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
        if (new_buffer == NULL)
                return;
 
-       yyensure_buffer_stack();
+       parser6_ensure_buffer_stack();
 
-       /* This block is copied from yy_switch_to_buffer. */
+       /* This block is copied from parser6__switch_to_buffer. */
        if ( YY_CURRENT_BUFFER )
                {
                /* Flush out information for old buffer. */
@@ -4786,8 +4563,8 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
                (yy_buffer_stack_top)++;
        YY_CURRENT_BUFFER_LVALUE = new_buffer;
 
-       /* copied from yy_switch_to_buffer. */
-       yy_load_buffer_state(  );
+       /* copied from parser6__switch_to_buffer. */
+       parser6__load_buffer_state( );
        (yy_did_buffer_switch_on_eof) = 1;
 }
 /* %endif */
@@ -4798,7 +4575,7 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
  *  
  */
 /* %if-c-only */
-void yypop_buffer_state (void)
+void parser6_pop_buffer_state (void)
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -4806,13 +4583,13 @@ void yypop_buffer_state (void)
        if (!YY_CURRENT_BUFFER)
                return;
 
-       yy_delete_buffer(YY_CURRENT_BUFFER );
+       parser6__delete_buffer(YY_CURRENT_BUFFER );
        YY_CURRENT_BUFFER_LVALUE = NULL;
        if ((yy_buffer_stack_top) > 0)
                --(yy_buffer_stack_top);
 
        if (YY_CURRENT_BUFFER) {
-               yy_load_buffer_state(  );
+               parser6__load_buffer_state( );
                (yy_did_buffer_switch_on_eof) = 1;
        }
 }
@@ -4823,12 +4600,12 @@ void yypop_buffer_state (void)
  *  Guarantees space for at least one push.
  */
 /* %if-c-only */
-static void yyensure_buffer_stack (void)
+static void parser6_ensure_buffer_stack (void)
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 {
-       yy_size_t num_to_alloc;
+       int num_to_alloc;
     
        if (!(yy_buffer_stack)) {
 
@@ -4837,11 +4614,11 @@ static void yyensure_buffer_stack (void)
                 * immediate realloc on the next call.
          */
       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
-               (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+               (yy_buffer_stack) = (struct yy_buffer_state**)parser6_alloc
                                                                (num_to_alloc * sizeof(struct yy_buffer_state*)
                                                                );
                if ( ! (yy_buffer_stack) )
-                       YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+                       YY_FATAL_ERROR( "out of dynamic memory in parser6_ensure_buffer_stack()" );
 
                memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
 
@@ -4856,12 +4633,12 @@ static void yyensure_buffer_stack (void)
                yy_size_t grow_size = 8 /* arbitrary grow size */;
 
                num_to_alloc = (yy_buffer_stack_max) + grow_size;
-               (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+               (yy_buffer_stack) = (struct yy_buffer_state**)parser6_realloc
                                                                ((yy_buffer_stack),
                                                                num_to_alloc * sizeof(struct yy_buffer_state*)
                                                                );
                if ( ! (yy_buffer_stack) )
-                       YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+                       YY_FATAL_ERROR( "out of dynamic memory in parser6_ensure_buffer_stack()" );
 
                /* zero only the new slots.*/
                memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
@@ -4877,7 +4654,7 @@ static void yyensure_buffer_stack (void)
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+YY_BUFFER_STATE parser6__scan_buffer  (char * base, yy_size_t  size )
 {
        YY_BUFFER_STATE b;
     
@@ -4887,11 +4664,11 @@ YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
                /* They forgot to leave room for the EOB's. */
                return NULL;
 
-       b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
+       b = (YY_BUFFER_STATE) parser6_alloc(sizeof( struct yy_buffer_state )  );
        if ( ! b )
-               YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+               YY_FATAL_ERROR( "out of dynamic memory in parser6__scan_buffer()" );
 
-       b->yy_buf_size = (int) (size - 2);      /* "- 2" to take care of EOB's */
+       b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
        b->yy_buf_pos = b->yy_ch_buf = base;
        b->yy_is_our_buffer = 0;
        b->yy_input_file = NULL;
@@ -4901,37 +4678,37 @@ YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
        b->yy_fill_buffer = 0;
        b->yy_buffer_status = YY_BUFFER_NEW;
 
-       yy_switch_to_buffer( b  );
+       parser6__switch_to_buffer(b  );
 
        return b;
 }
 /* %endif */
 
 /* %if-c-only */
-/** Setup the input buffer state to scan a string. The next call to yylex() will
+/** Setup the input buffer state to scan a string. The next call to parser6_lex() will
  * scan from a @e copy of @a str.
  * @param yystr a NUL-terminated string to scan
  * 
  * @return the newly allocated buffer state object.
  * @note If you want to scan bytes that may contain NUL values, then use
- *       yy_scan_bytes() instead.
+ *       parser6__scan_bytes() instead.
  */
-YY_BUFFER_STATE yy_scan_string (const char * yystr )
+YY_BUFFER_STATE parser6__scan_string (yyconst char * yystr )
 {
     
-       return yy_scan_bytes( yystr, (int) strlen(yystr) );
+       return parser6__scan_bytes(yystr,(int) strlen(yystr) );
 }
 /* %endif */
 
 /* %if-c-only */
-/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+/** Setup the input buffer state to scan the given bytes. The next call to parser6_lex() will
  * scan from a @e copy of @a bytes.
  * @param yybytes the byte buffer to scan
  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
+YY_BUFFER_STATE parser6__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
 {
        YY_BUFFER_STATE b;
        char *buf;
@@ -4940,18 +4717,18 @@ YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
     
        /* Get memory for full buffer, including space for trailing EOB's. */
        n = (yy_size_t) (_yybytes_len + 2);
-       buf = (char *) yyalloc( n  );
+       buf = (char *) parser6_alloc(n  );
        if ( ! buf )
-               YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+               YY_FATAL_ERROR( "out of dynamic memory in parser6__scan_bytes()" );
 
        for ( i = 0; i < _yybytes_len; ++i )
                buf[i] = yybytes[i];
 
        buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
 
-       b = yy_scan_buffer( buf, n );
+       b = parser6__scan_buffer(buf,n );
        if ( ! b )
-               YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+               YY_FATAL_ERROR( "bad buffer in parser6__scan_bytes()" );
 
        /* It's okay to grow etc. this buffer, and we should throw it
         * away when we're done.
@@ -4967,9 +4744,9 @@ YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
 #endif
 
 /* %if-c-only */
-static void yynoreturn yy_fatal_error (const char* msg )
+static void yynoreturn yy_fatal_error (yyconst char* msg )
 {
-                       fprintf( stderr, "%s\n", msg );
+                       (void) fprintf( stderr, "%s\n", msg );
        exit( YY_EXIT_FAILURE );
 }
 /* %endif */
@@ -4982,14 +4759,14 @@ static void yynoreturn yy_fatal_error (const char* msg )
 #define yyless(n) \
        do \
                { \
-               /* Undo effects of setting up yytext. */ \
+               /* Undo effects of setting up parser6_text. */ \
         int yyless_macro_arg = (n); \
         YY_LESS_LINENO(yyless_macro_arg);\
-               yytext[yyleng] = (yy_hold_char); \
-               (yy_c_buf_p) = yytext + yyless_macro_arg; \
+               parser6_text[parser6_leng] = (yy_hold_char); \
+               (yy_c_buf_p) = parser6_text + yyless_macro_arg; \
                (yy_hold_char) = *(yy_c_buf_p); \
                *(yy_c_buf_p) = '\0'; \
-               yyleng = yyless_macro_arg; \
+               parser6_leng = yyless_macro_arg; \
                } \
        while ( 0 )
 
@@ -5002,43 +4779,43 @@ static void yynoreturn yy_fatal_error (const char* msg )
 /** Get the current line number.
  * 
  */
-int yyget_lineno  (void)
+int parser6_get_lineno  (void)
 {
     
-    return yylineno;
+    return parser6_lineno;
 }
 
 /** Get the input stream.
  * 
  */
-FILE *yyget_in  (void)
+FILE *parser6_get_in  (void)
 {
-        return yyin;
+        return parser6_in;
 }
 
 /** Get the output stream.
  * 
  */
-FILE *yyget_out  (void)
+FILE *parser6_get_out  (void)
 {
-        return yyout;
+        return parser6_out;
 }
 
 /** Get the length of the current token.
  * 
  */
-int yyget_leng  (void)
+int parser6_get_leng  (void)
 {
-        return yyleng;
+        return parser6_leng;
 }
 
 /** Get the current token.
  * 
  */
 
-char *yyget_text  (void)
+char *parser6_get_text  (void)
 {
-        return yytext;
+        return parser6_text;
 }
 
 /* %if-reentrant */
@@ -5048,36 +4825,36 @@ char *yyget_text  (void)
  * @param _line_number line number
  * 
  */
-void yyset_lineno (int  _line_number )
+void parser6_set_lineno (int  _line_number )
 {
     
-    yylineno = _line_number;
+    parser6_lineno = _line_number;
 }
 
 /** Set the input stream. This does not discard the current
  * input buffer.
  * @param _in_str A readable stream.
  * 
- * @see yy_switch_to_buffer
+ * @see parser6__switch_to_buffer
  */
-void yyset_in (FILE *  _in_str )
+void parser6_set_in (FILE *  _in_str )
 {
-        yyin = _in_str ;
+        parser6_in = _in_str ;
 }
 
-void yyset_out (FILE *  _out_str )
+void parser6_set_out (FILE *  _out_str )
 {
-        yyout = _out_str ;
+        parser6_out = _out_str ;
 }
 
-int yyget_debug  (void)
+int parser6_get_debug  (void)
 {
-        return yy_flex_debug;
+        return parser6__flex_debug;
 }
 
-void yyset_debug (int  _bdebug )
+void parser6_set_debug (int  _bdebug )
 {
-        yy_flex_debug = _bdebug ;
+        parser6__flex_debug = _bdebug ;
 }
 
 /* %endif */
@@ -5091,7 +4868,7 @@ void yyset_debug (int  _bdebug )
 static int yy_init_globals (void)
 {
         /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from yylex_destroy(), so don't allocate here.
+     * This function is called from parser6_lex_destroy(), so don't allocate here.
      */
 
     (yy_buffer_stack) = NULL;
@@ -5103,38 +4880,38 @@ static int yy_init_globals (void)
 
 /* Defined in main.c */
 #ifdef YY_STDINIT
-    yyin = stdin;
-    yyout = stdout;
+    parser6_in = stdin;
+    parser6_out = stdout;
 #else
-    yyin = NULL;
-    yyout = NULL;
+    parser6_in = NULL;
+    parser6_out = NULL;
 #endif
 
     /* For future reference: Set errno on error, since we are called by
-     * yylex_init()
+     * parser6_lex_init()
      */
     return 0;
 }
 /* %endif */
 
 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
-/* yylex_destroy is for both reentrant and non-reentrant scanners. */
-int yylex_destroy  (void)
+/* parser6_lex_destroy is for both reentrant and non-reentrant scanners. */
+int parser6_lex_destroy  (void)
 {
     
     /* Pop the buffer stack, destroying each element. */
        while(YY_CURRENT_BUFFER){
-               yy_delete_buffer( YY_CURRENT_BUFFER  );
+               parser6__delete_buffer(YY_CURRENT_BUFFER  );
                YY_CURRENT_BUFFER_LVALUE = NULL;
-               yypop_buffer_state();
+               parser6_pop_buffer_state();
        }
 
        /* Destroy the stack itself. */
-       yyfree((yy_buffer_stack) );
+       parser6_free((yy_buffer_stack) );
        (yy_buffer_stack) = NULL;
 
     /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * yylex() is called, initialization will occur. */
+     * parser6_lex() is called, initialization will occur. */
     yy_init_globals( );
 
 /* %if-reentrant */
@@ -5148,7 +4925,7 @@ int yylex_destroy  (void)
  */
 
 #ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, const char * s2, int n )
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
 {
                
        int i;
@@ -5158,7 +4935,7 @@ static void yy_flex_strncpy (char* s1, const char * s2, int n )
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (const char * s )
+static int yy_flex_strlen (yyconst char * s )
 {
        int n;
        for ( n = 0; s[n]; ++n )
@@ -5168,12 +4945,12 @@ static int yy_flex_strlen (const char * s )
 }
 #endif
 
-void *yyalloc (yy_size_t  size )
+void *parser6_alloc (yy_size_t  size )
 {
                        return malloc(size);
 }
 
-void *yyrealloc  (void * ptr, yy_size_t  size )
+void *parser6_realloc  (void * ptr, yy_size_t  size )
 {
                
        /* The cast to (char *) in the following accommodates both
@@ -5186,9 +4963,9 @@ void *yyrealloc  (void * ptr, yy_size_t  size )
        return realloc(ptr, size);
 }
 
-void yyfree (void * ptr )
+void parser6_free (void * ptr )
 {
-                       free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
+                       free( (char *) ptr );   /* see parser6_realloc() for (char *) cast */
 }
 
 /* %if-tables-serialization definitions */
@@ -5198,7 +4975,8 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 1662 "dhcp6_lexer.ll"
+#line 1661 "dhcp6_lexer.ll"
+
 
 
 using namespace isc::dhcp;
@@ -5212,7 +4990,7 @@ Parser6Context::scanStringBegin(const std::string& str, ParserType parser_type)
     file_ = "<string>";
     sfile_ = 0;
     loc_.initialize(&file_);
-    yy_flex_debug = trace_scanning_;
+    parser6__flex_debug = trace_scanning_;
     YY_BUFFER_STATE buffer;
     buffer = parser6__scan_bytes(str.c_str(), str.size());
     if (!buffer) {
@@ -5232,7 +5010,7 @@ Parser6Context::scanFileBegin(FILE * f,
     file_ = filename;
     sfile_ = f;
     loc_.initialize(&file_);
-    yy_flex_debug = trace_scanning_;
+    parser6__flex_debug = trace_scanning_;
     YY_BUFFER_STATE buffer;
 
     /* See dhcp6_lexer.cc header for available definitions */
index 8bc17134147eda5d27765483be54f9335d471a99..ac5ca0f6afe95758aaeac8f10a275ea0e651f552 100644 (file)
@@ -2686,7 +2686,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 470:
-#line 1670 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1671 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-id", m);
@@ -2697,7 +2697,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 471:
-#line 1675 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1676 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // The type parameter is required.
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -2708,7 +2708,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 483:
-#line 1697 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1698 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.DUID_TYPE);
 }
@@ -2716,7 +2716,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 484:
-#line 1699 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1700 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -2725,25 +2725,25 @@ namespace isc { namespace dhcp {
     break;
 
   case 485:
-#line 1704 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1705 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); }
 #line 2731 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 486:
-#line 1705 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1706 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); }
 #line 2737 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 487:
-#line 1706 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1707 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); }
 #line 2743 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 488:
-#line 1709 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1710 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("htype", htype);
@@ -2752,7 +2752,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 489:
-#line 1714 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1715 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2760,7 +2760,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 490:
-#line 1716 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1717 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("identifier", id);
@@ -2770,7 +2770,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 491:
-#line 1722 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1723 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("time", time);
@@ -2779,7 +2779,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 492:
-#line 1727 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1728 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enterprise-id", time);
@@ -2788,7 +2788,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 493:
-#line 1734 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1735 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp4o6-port", time);
@@ -2797,7 +2797,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 494:
-#line 1741 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1742 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("control-socket", m);
@@ -2808,7 +2808,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 495:
-#line 1746 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1747 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2817,7 +2817,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 503:
-#line 1762 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1763 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2825,7 +2825,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 504:
-#line 1764 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1765 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-type", stype);
@@ -2835,7 +2835,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 505:
-#line 1770 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1771 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2843,7 +2843,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 506:
-#line 1772 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1773 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-name", name);
@@ -2853,7 +2853,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 507:
-#line 1780 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1781 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp-ddns", m);
@@ -2864,7 +2864,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 508:
-#line 1785 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1786 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -2875,7 +2875,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 509:
-#line 1792 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1793 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2885,7 +2885,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 510:
-#line 1796 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1797 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2895,7 +2895,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 530:
-#line 1825 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1826 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
@@ -2904,7 +2904,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 531:
-#line 1830 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1831 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2912,7 +2912,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 532:
-#line 1832 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1833 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("qualifying-suffix", s);
@@ -2922,7 +2922,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 533:
-#line 1838 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1839 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2930,7 +2930,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 534:
-#line 1840 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1841 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-ip", s);
@@ -2940,7 +2940,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 535:
-#line 1846 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1847 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
@@ -2949,7 +2949,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 536:
-#line 1851 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1852 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2957,7 +2957,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 537:
-#line 1853 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1854 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-ip", s);
@@ -2967,7 +2967,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 538:
-#line 1859 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1860 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
@@ -2976,7 +2976,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 539:
-#line 1864 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1865 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
@@ -2985,7 +2985,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 540:
-#line 1869 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1870 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
@@ -2993,7 +2993,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 541:
-#line 1871 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1872 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -3002,19 +3002,19 @@ namespace isc { namespace dhcp {
     break;
 
   case 542:
-#line 1877 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1878 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
 #line 3008 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 543:
-#line 1878 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1879 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
 #line 3014 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 544:
-#line 1881 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1882 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NCR_FORMAT);
 }
@@ -3022,7 +3022,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 545:
-#line 1883 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1884 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
@@ -3032,7 +3032,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 546:
-#line 1889 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1890 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-include-fqdn", b);
@@ -3041,7 +3041,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 547:
-#line 1894 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1895 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-no-update", b);
@@ -3050,7 +3050,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 548:
-#line 1899 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1900 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-client-update", b);
@@ -3059,7 +3059,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 549:
-#line 1904 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1905 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
@@ -3067,7 +3067,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 550:
-#line 1906 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1907 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -3076,7 +3076,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 551:
-#line 1912 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1913 "dhcp6_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); 
       }
@@ -3084,7 +3084,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 552:
-#line 1915 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1916 "dhcp6_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
@@ -3092,7 +3092,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 553:
-#line 1918 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1919 "dhcp6_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
@@ -3100,7 +3100,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 554:
-#line 1921 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1922 "dhcp6_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
@@ -3108,7 +3108,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 555:
-#line 1924 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1925 "dhcp6_parser.yy" // lalr1.cc:859
     {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
@@ -3117,7 +3117,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 556:
-#line 1930 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1931 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3125,7 +3125,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 557:
-#line 1932 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1933 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("generated-prefix", s);
@@ -3135,7 +3135,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 558:
-#line 1940 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1941 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3143,7 +3143,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 559:
-#line 1942 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1943 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -3152,7 +3152,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 560:
-#line 1947 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1948 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3160,7 +3160,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 561:
-#line 1949 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1950 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -3169,7 +3169,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 562:
-#line 1954 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1955 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3177,7 +3177,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 563:
-#line 1956 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1957 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -3186,7 +3186,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 564:
-#line 1967 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1968 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("Logging", m);
@@ -3197,7 +3197,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 565:
-#line 1972 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1973 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3206,7 +3206,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 566:
-#line 1977 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1978 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // Parse the Logging map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3216,7 +3216,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 567:
-#line 1981 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1982 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // parsing completed
 }
@@ -3224,7 +3224,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 571:
-#line 1997 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1998 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("loggers", l);
@@ -3235,7 +3235,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 572:
-#line 2002 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2003 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3244,7 +3244,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 575:
-#line 2014 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2015 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
@@ -3254,7 +3254,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 576:
-#line 2018 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2019 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
 }
@@ -3262,7 +3262,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 586:
-#line 2035 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2036 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("debuglevel", dl);
@@ -3271,7 +3271,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 587:
-#line 2040 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2041 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3279,7 +3279,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 588:
-#line 2042 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2043 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("severity", sev);
@@ -3289,7 +3289,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 589:
-#line 2048 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2049 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output_options", l);
@@ -3300,7 +3300,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 590:
-#line 2053 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2054 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3309,7 +3309,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 593:
-#line 2062 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2063 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3319,7 +3319,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 594:
-#line 2066 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2067 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
 }
@@ -3327,7 +3327,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 601:
-#line 2080 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2081 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3335,7 +3335,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 602:
-#line 2082 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2083 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output", sev);
@@ -3345,7 +3345,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 603:
-#line 2088 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2089 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
@@ -3354,7 +3354,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 604:
-#line 2093 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2094 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxsize", maxsize);
@@ -3363,7 +3363,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 605:
-#line 2098 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2099 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxver", maxver);
@@ -3627,111 +3627,111 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short int Dhcp6Parser::yypact_ninf_ = -750;
+  const short int Dhcp6Parser::yypact_ninf_ = -743;
 
   const signed char Dhcp6Parser::yytable_ninf_ = -1;
 
   const short int
   Dhcp6Parser::yypact_[] =
   {
-     406,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,    51,    27,    42,   115,   123,
-     140,   159,   160,   170,   180,   194,   207,   208,   215,   221,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,    27,   -88,
-      36,    49,    32,   200,   150,    72,   141,   103,    92,   236,
-     -46,   351,   109,  -750,    67,   240,   264,   279,   241,  -750,
-    -750,  -750,  -750,  -750,   285,  -750,    34,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,   303,   319,   329,   339,
-     341,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,   342,  -750,  -750,  -750,    40,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,   344,  -750,    54,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,   346,   352,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,    63,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,    71,
-    -750,  -750,  -750,  -750,  -750,   359,  -750,   363,   364,  -750,
-    -750,  -750,  -750,  -750,   133,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,   290,   315,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,   347,  -750,  -750,   366,  -750,  -750,  -750,   369,
-    -750,  -750,   370,   368,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,   371,   373,  -750,
-    -750,  -750,  -750,   372,   378,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,   161,  -750,  -750,
-    -750,   379,  -750,  -750,   380,  -750,   381,   383,  -750,  -750,
-     386,   387,   389,  -750,  -750,  -750,  -750,  -750,   162,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,   183,  -750,  -750,  -750,    27,
-      27,  -750,   242,   390,   398,   400,   405,   407,  -750,    36,
-    -750,   408,   409,   410,   220,   265,   266,   267,   268,   411,
-     413,   414,   421,   424,   427,   428,   429,   430,   431,   432,
-     433,   434,   288,   435,   437,    49,  -750,   439,   289,    32,
-    -750,   440,   442,   443,   445,   446,   302,   295,   451,   467,
-     468,   469,   200,  -750,   473,   150,  -750,   474,   325,   476,
-     327,   328,    72,  -750,   479,   480,   481,   482,   483,   484,
-     485,  -750,   141,  -750,   489,   490,   343,   491,   494,   495,
-     345,  -750,    92,   496,   349,   350,  -750,   236,   498,   499,
-       7,  -750,   353,   503,   504,   356,   507,   361,   362,   513,
-     514,   365,   374,   375,   515,   518,   351,  -750,   519,   109,
-    -750,  -750,  -750,   522,   520,   521,    27,    27,    27,  -750,
-     525,   526,   527,  -750,  -750,  -750,  -750,  -750,   524,   530,
-     531,   536,   384,   554,   555,   556,   557,   558,   559,   560,
-     561,  -750,   562,   563,  -750,   566,  -750,  -750,   567,   568,
-     412,   422,   423,  -750,  -750,   189,   425,   569,   570,  -750,
-     426,  -750,   436,  -750,   438,  -750,  -750,  -750,   566,   566,
-     566,   441,   444,   447,   448,  -750,   449,   450,  -750,   452,
-     453,   454,  -750,  -750,   455,  -750,  -750,  -750,   456,    27,
-    -750,  -750,   457,   458,  -750,   459,  -750,  -750,   -43,   460,
-    -750,  -750,  -750,   116,   461,  -750,   575,  -750,    27,    49,
-     109,  -750,  -750,  -750,    32,    74,    74,   574,   576,   577,
-    -750,  -750,  -750,   578,   -42,    27,    66,   579,   580,    68,
-      96,    58,   351,  -750,  -750,   581,   583,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,   585,   511,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,   588,
-    -750,   205,   227,   243,  -750,  -750,  -750,  -750,   592,   594,
-     595,   600,   609,  -750,  -750,  -750,   244,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-     262,  -750,   610,   612,  -750,  -750,   611,   615,  -750,  -750,
-     613,   617,  -750,  -750,   616,   618,  -750,  -750,  -750,    44,
-    -750,  -750,  -750,   619,  -750,  -750,  -750,   223,  -750,  -750,
-    -750,  -750,   261,  -750,  -750,   620,   621,  -750,   623,   624,
-     625,   626,   627,   628,   263,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,   629,   630,   631,  -750,  -750,  -750,
-    -750,   280,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,   283,  -750,  -750,  -750,   287,   470,  -750,
-     632,   633,  -750,  -750,   634,   636,  -750,  -750,   635,   639,
-    -750,  -750,   637,  -750,   314,  -750,  -750,  -750,  -750,   640,
-     642,   643,   644,   497,   487,   500,   493,   501,   646,   648,
-      74,  -750,  -750,   200,  -750,   574,    92,  -750,   576,   236,
-    -750,   577,   367,  -750,   578,   -42,  -750,  -750,    66,  -750,
-      37,   579,  -750,   -46,  -750,   580,   502,   505,   506,   508,
-     509,   510,    68,  -750,   649,   653,   512,   516,   517,    96,
-    -750,   654,   657,    58,  -750,  -750,  -750,   659,   664,   150,
-    -750,   581,    72,  -750,   583,   141,  -750,   585,   665,  -750,
-     153,   588,  -750,   321,   523,   529,   532,  -750,  -750,  -750,
-    -750,  -750,   534,   535,  -750,   293,  -750,   660,  -750,   666,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,   294,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,   667,   669,
-    -750,  -750,  -750,  -750,   297,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,   235,   538,  -750,  -750,  -750,  -750,   540,
-     543,  -750,  -750,   548,   301,  -750,   305,  -750,   670,  -750,
-     549,  -750,   673,  -750,  -750,  -750,  -750,  -750,   308,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,   367,  -750,   675,
-    -750,    37,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,   680,   564,   705,   153,  -750,
-    -750,   571,  -750,   668,  -750,   572,  -750,  -750,   703,  -750,
-    -750,   322,  -750,    70,   703,  -750,  -750,   708,   709,   711,
-     311,  -750,  -750,  -750,  -750,  -750,  -750,   712,   565,   573,
-     584,    70,  -750,   591,  -750,  -750,  -750,  -750,  -750
+     295,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,    59,    32,    88,   109,   119,
+     128,   156,   164,   176,   192,   199,   211,   228,   243,   245,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,    32,   -16,
+      28,    29,    45,   182,   123,   230,    68,   186,    72,   250,
+      -1,   305,   138,  -743,   231,   264,   269,   290,   308,  -743,
+    -743,  -743,  -743,  -743,   332,  -743,    84,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,   354,   355,   359,   361,
+     380,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,   381,  -743,  -743,  -743,   101,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,   383,  -743,   102,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,   386,   391,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,   130,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,   146,
+    -743,  -743,  -743,  -743,  -743,  -743,   392,  -743,   393,   395,
+    -743,  -743,  -743,  -743,   166,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,   311,   326,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,   367,  -743,  -743,   396,  -743,  -743,  -743,   397,
+    -743,  -743,   394,   401,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,   402,   403,  -743,
+    -743,  -743,  -743,   400,   406,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,   189,  -743,  -743,
+    -743,   421,  -743,  -743,   422,  -743,   423,   424,  -743,  -743,
+     425,   426,   444,  -743,  -743,  -743,  -743,  -743,   204,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,   216,  -743,  -743,  -743,    32,
+      32,  -743,   252,   445,   446,   447,   448,   449,  -743,    28,
+    -743,   450,   451,   452,   303,   306,   307,   309,   312,   455,
+     458,   460,   461,   463,   464,   465,   466,   467,   468,   469,
+     473,   474,   327,   475,   476,    29,  -743,   478,   328,    45,
+    -743,   479,   483,   484,   485,   489,   340,   339,   493,   494,
+     495,   496,   182,  -743,   497,   498,   123,  -743,   499,   351,
+     502,   356,   357,   230,  -743,   503,   504,   505,   511,   512,
+     513,  -743,    68,  -743,   515,   516,   368,   517,   520,   521,
+     370,  -743,    72,   523,   372,   373,  -743,   250,   526,   527,
+     195,  -743,   376,   529,   533,   384,   535,   387,   388,   536,
+     539,   389,   390,   398,   540,   543,   305,  -743,   544,   138,
+    -743,  -743,  -743,   545,   546,   548,    32,    32,    32,  -743,
+     549,   550,   551,  -743,  -743,  -743,  -743,  -743,   547,   554,
+     555,   556,   408,   557,   559,   560,   561,   562,   563,   564,
+     565,  -743,   566,   567,  -743,   570,  -743,  -743,   571,   572,
+     416,   417,   427,  -743,  -743,   315,   428,   573,   575,  -743,
+     430,   570,  -743,   431,  -743,   432,  -743,  -743,  -743,   570,
+     570,   433,   434,   435,   436,  -743,   437,   438,  -743,   439,
+     440,   441,  -743,  -743,   442,  -743,  -743,  -743,   443,    32,
+    -743,  -743,   453,   454,  -743,   456,  -743,  -743,   229,   429,
+    -743,  -743,  -743,    77,   457,  -743,   574,  -743,    32,    29,
+     138,  -743,  -743,  -743,    45,    52,    52,   590,   591,   592,
+    -743,  -743,  -743,   593,   -21,    32,    82,   594,   595,   170,
+     111,    37,   305,  -743,  -743,   596,   597,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,   598,   530,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,   601,
+    -743,   219,   223,   226,  -743,  -743,  -743,  -743,   607,   609,
+     610,   611,   612,  -743,  -743,  -743,   262,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+     292,  -743,   613,   614,  -743,  -743,   615,   617,  -743,  -743,
+     616,   620,  -743,  -743,   618,   622,  -743,  -743,  -743,    39,
+    -743,  -743,  -743,   621,  -743,  -743,  -743,    48,  -743,  -743,
+    -743,  -743,   167,  -743,  -743,   623,   625,  -743,   626,   627,
+     628,   629,   630,   631,   294,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,   632,   633,   634,  -743,  -743,  -743,
+    -743,   300,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,   301,  -743,  -743,  -743,   302,   486,  -743,
+     635,   637,  -743,  -743,   636,   640,  -743,  -743,   638,   642,
+    -743,  -743,   542,  -743,   334,  -743,  -743,  -743,  -743,   643,
+     644,   645,   646,   472,   462,   492,   500,   501,   647,   648,
+      52,  -743,  -743,   182,  -743,   590,    72,  -743,   591,   250,
+    -743,   592,   215,  -743,   593,   -21,  -743,  -743,    82,  -743,
+      51,   594,  -743,    -1,  -743,   595,   506,   507,   508,   509,
+     510,   514,   170,  -743,   649,   650,   518,   519,   522,   111,
+    -743,   653,   654,    37,  -743,  -743,  -743,   659,   656,   123,
+    -743,   596,   230,  -743,   597,    68,  -743,   598,   662,  -743,
+      64,   601,  -743,   353,   524,   525,   528,  -743,  -743,  -743,
+    -743,  -743,   531,   532,  -743,   310,  -743,   661,  -743,   663,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,   314,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,   666,   664,
+    -743,  -743,  -743,  -743,   317,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,   298,   534,  -743,  -743,  -743,  -743,   538,
+     553,  -743,  -743,   578,   323,  -743,   325,  -743,   667,  -743,
+     581,  -743,   675,  -743,  -743,  -743,  -743,  -743,   343,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,   215,  -743,   678,
+    -743,    51,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,   684,   583,   689,    64,  -743,
+    -743,   585,  -743,   665,  -743,   599,  -743,  -743,   694,  -743,
+    -743,   371,  -743,    23,   694,  -743,  -743,   692,   705,   709,
+     345,  -743,  -743,  -743,  -743,  -743,  -743,   712,   569,   589,
+     602,    23,  -743,   600,  -743,  -743,  -743,  -743,  -743
   };
 
   const unsigned short int
@@ -3756,10 +3756,10 @@ namespace isc { namespace dhcp {
      111,   112,   113,   355,   379,   245,   247,   249,     0,     0,
      253,   251,   408,   447,   244,   226,   227,   228,   229,     0,
      224,   233,   234,   235,   238,   240,   236,   237,   230,   231,
-     242,   243,   232,   239,   241,   373,   372,   369,   368,     0,
-     365,   367,   370,   371,   401,     0,   404,     0,     0,   400,
-     395,   394,   398,   399,     0,   389,   391,   392,   396,   397,
-     393,   445,   433,   435,   437,   439,   441,   443,   432,   429,
+     242,   243,   232,   239,   241,   373,   445,   372,   368,     0,
+     365,   367,   370,   371,   369,   401,     0,   404,     0,     0,
+     400,   394,   398,   399,     0,   389,   391,   392,   396,   397,
+     393,   395,   433,   435,   437,   439,   441,   443,   432,   429,
      430,   431,     0,   419,   420,   424,   425,   422,   426,   427,
      428,   423,     0,   315,   150,     0,   319,   317,   322,     0,
      311,   312,     0,   299,   300,   302,   314,   303,   304,   305,
@@ -3775,8 +3775,8 @@ namespace isc { namespace dhcp {
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,    71,     0,     0,     0,
      107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   223,     0,     0,   364,     0,     0,     0,
-       0,     0,     0,   388,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   223,     0,     0,     0,   364,     0,     0,
+       0,     0,     0,     0,   388,     0,     0,     0,     0,     0,
        0,   417,     0,   289,     0,     0,     0,     0,     0,     0,
        0,   297,     0,     0,     0,     0,   334,     0,     0,     0,
        0,   188,     0,     0,     0,     0,     0,     0,     0,     0,
@@ -3786,7 +3786,7 @@ namespace isc { namespace dhcp {
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,   493,     0,     0,    73,     0,   117,   109,     0,     0,
        0,     0,     0,   258,   259,     0,     0,     0,     0,   225,
-       0,   366,     0,   403,     0,   406,   407,   390,     0,     0,
+       0,     0,   366,     0,   403,     0,   406,   407,   390,     0,
        0,     0,     0,     0,     0,   421,     0,     0,   313,     0,
        0,     0,   324,   301,     0,   353,   354,   338,     0,     0,
      190,   530,     0,     0,   535,     0,   538,   539,     0,     0,
@@ -3794,8 +3794,8 @@ namespace isc { namespace dhcp {
        0,   559,   561,   563,     0,     0,     0,   216,   290,   327,
       40,   376,   378,   262,     0,    47,     0,     0,   181,     0,
        0,     0,     0,    51,   116,   357,   381,   246,   248,   250,
-     255,   256,   257,   254,   252,   410,     0,   374,   402,   405,
-     446,   434,   436,   438,   440,   442,   444,   316,   151,   320,
+     255,   256,   257,   254,   252,   410,     0,   374,   446,   402,
+     405,   434,   436,   438,   440,   442,   444,   316,   151,   320,
      318,   323,   350,   195,   197,   532,   534,   537,   542,   543,
      541,   545,   551,   552,   553,   554,   555,   550,   557,     0,
       44,     0,     0,     0,   137,   143,   145,   147,     0,     0,
@@ -3840,42 +3840,42 @@ namespace isc { namespace dhcp {
   const short int
   Dhcp6Parser::yypgoto_[] =
   {
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,     6,  -750,   105,  -750,
-    -750,  -750,  -750,  -750,  -750,    82,  -750,  -139,  -750,  -750,
-    -750,   -70,  -750,  -750,  -750,   391,  -750,  -750,  -750,  -750,
-     178,   355,   -72,   -58,   -56,   -55,  -750,  -750,  -750,  -750,
-    -750,   182,   377,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-     185,   -16,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,    -7,  -750,  -553,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,   -28,  -544,  -750,  -750,  -750,
-    -750,   -19,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-     -27,  -750,  -750,  -750,   -15,   333,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,   -23,  -750,  -750,  -750,  -750,  -750,  -750,
-    -749,  -750,  -750,  -750,     5,  -750,  -750,  -750,     8,   385,
-    -750,  -750,  -746,  -750,  -742,  -750,   -34,  -750,  -741,  -750,
-    -750,  -750,  -739,  -750,  -750,  -750,  -750,     2,  -750,  -750,
-    -147,   694,  -750,  -750,  -750,  -750,  -750,    14,  -750,  -750,
-    -750,    18,  -750,   376,  -750,   -65,  -750,  -750,  -750,  -750,
-    -750,   -60,  -750,  -750,  -750,  -750,  -750,    -6,  -750,  -750,
-    -750,    15,  -750,  -750,  -750,    16,  -750,   360,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,   -21,
-    -750,  -750,  -750,   -18,   393,  -750,  -750,   -48,  -750,   -20,
-    -750,  -750,  -750,  -750,  -750,   -17,  -750,  -750,  -750,   -13,
-     392,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,   -24,  -750,  -750,  -750,   -14,  -750,   395,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -733,  -750,  -750,  -750,  -750,  -750,  -750,
-      21,  -750,  -750,  -750,  -135,  -750,  -750,  -750,  -750,  -750,
-    -750,     9,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,     1,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,   233,   382,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,
-    -750,  -750,  -750,  -750,  -750,  -750,  -750,  -750,   260,   388,
-    -750,  -750,  -750,   -10,  -750,  -750,  -136,  -750,  -750,  -750,
-    -750,  -750,  -750,  -150,  -750,  -750,  -166,  -750,  -750,  -750,
-    -750,  -750
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,   -15,  -743,   256,  -743,
+    -743,  -743,  -743,  -743,  -743,   163,  -743,  -349,  -743,  -743,
+    -743,   -70,  -743,  -743,  -743,   407,  -743,  -743,  -743,  -743,
+     181,   363,   -58,   -55,   -41,   -38,  -743,  -743,  -743,  -743,
+    -743,   203,   379,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+     180,     5,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,   -60,  -743,  -553,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,    -6,  -540,  -743,  -743,  -743,
+    -743,    -8,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+     -14,  -743,  -743,  -743,    -9,   348,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,   -17,  -743,  -743,  -743,  -743,  -743,  -743,
+    -742,  -743,  -743,  -743,    14,  -743,  -743,  -743,    17,   399,
+    -743,  -743,  -741,  -743,  -740,  -743,  -739,  -743,  -733,  -743,
+    -743,  -743,  -728,  -743,  -743,  -743,  -743,     7,  -743,  -743,
+    -145,   697,  -743,  -743,  -743,  -743,  -743,    19,  -743,  -743,
+    -743,    22,  -743,   374,  -743,   -65,  -743,  -743,  -743,  -743,
+    -743,   -62,  -743,  -743,  -743,  -743,  -743,    -4,  -743,  -743,
+    -743,    21,  -743,  -743,  -743,    16,  -743,   366,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,   -13,
+    -743,  -743,  -743,   -19,   404,  -743,  -743,   -48,  -743,   -26,
+    -743,  -743,  -743,  -743,  -743,   -12,  -743,  -743,  -743,   -11,
+     409,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,   -22,  -743,  -743,  -743,   -18,  -743,   405,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,   -63,  -743,  -726,  -743,  -743,  -743,  -743,  -743,  -743,
+      18,  -743,  -743,  -743,  -128,  -743,  -743,  -743,  -743,  -743,
+    -743,     8,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,     1,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,   234,   364,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,
+    -743,  -743,  -743,  -743,  -743,  -743,  -743,  -743,   259,   365,
+    -743,  -743,  -743,    -5,  -743,  -743,  -135,  -743,  -743,  -743,
+    -743,  -743,  -743,  -149,  -743,  -743,  -163,  -743,  -743,  -743,
+    -743,  -743
   };
 
   const short int
@@ -3903,10 +3903,10 @@ namespace isc { namespace dhcp {
      413,   278,   279,   280,   281,   189,   371,   720,   721,   722,
      799,    51,    74,   199,   200,   201,   384,   147,   352,   148,
      353,   192,   372,   724,   725,   726,   802,    53,    75,   214,
-     215,   216,   387,   217,   218,   389,   219,   220,   193,   380,
+     215,   216,   388,   217,   218,   390,   219,   220,   193,   380,
      728,   729,   730,   805,    55,    76,   232,   233,   234,   235,
      395,   236,   396,   237,   397,   238,   398,   239,   399,   240,
-     400,   241,   394,   194,   381,   732,   808,   149,   358,   672,
+     400,   204,   385,   194,   381,   732,   808,   149,   358,   672,
      673,   770,   858,   859,   860,   861,   862,   919,   150,   361,
      701,   702,   703,   784,   926,   704,   705,   785,   706,   707,
      151,   152,   363,   713,   714,   715,   791,   716,   792,   153,
@@ -3922,199 +3922,195 @@ namespace isc { namespace dhcp {
   const unsigned short int
   Dhcp6Parser::yytable_[] =
   {
-      95,   175,   156,   174,   196,   209,   228,   698,   250,   269,
-     286,   305,   666,   837,   271,   176,   838,   177,   178,   272,
-     839,   841,    38,   842,   161,   190,   202,   212,   230,   848,
-     264,   282,    31,   306,    32,   657,    33,   339,   284,   285,
-     197,   210,   340,   365,   154,   155,    89,   765,   366,    42,
-     766,    30,   162,   191,   203,   213,   231,   369,   265,   283,
-     103,   307,   370,   104,   105,    86,   382,   188,   198,   211,
-     229,   383,   270,   328,   385,   113,   244,   598,   599,   386,
-     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-     614,   284,   285,   114,   115,   615,   616,   617,   618,   619,
-     620,   621,   622,   623,   624,   114,   115,    94,   243,   852,
-     113,   658,   692,   244,   114,   115,   116,   117,   118,   119,
-     120,   619,    44,   204,   205,   206,   207,   208,   114,   115,
-      46,   244,   121,   245,   246,   122,   392,   247,   248,   249,
-     112,   393,   123,   657,   664,   171,   665,    48,   114,   115,
-     124,   125,   114,   115,   126,   678,   679,   680,   681,   682,
-     683,   708,   709,    90,   420,   436,    50,    52,   837,   421,
-     437,   838,    91,    92,    93,   839,   841,    54,   842,   113,
-      34,    35,    36,    37,   848,    94,   439,    56,   113,    94,
-      94,   440,   244,   693,   694,   695,   696,   114,   115,   195,
-     956,    58,    94,   957,   958,   959,   114,   115,   365,   114,
-     115,    94,   221,   736,    60,    62,   222,   223,   224,   225,
-     226,   227,    64,   171,   666,    94,   768,    94,    66,   769,
-     439,   106,   107,   108,   109,   737,   698,   324,   113,   602,
-     603,   604,   605,   329,   332,    94,   369,   750,   163,    94,
-     164,   738,   751,   570,   571,   572,   114,   115,   165,   166,
-     167,   168,   169,   170,   771,   750,   782,   772,   330,    95,
-     752,   783,   606,   171,   172,   244,   266,   245,   246,   267,
-     268,   173,   891,   789,   892,   893,   793,   331,   790,   338,
-     436,   794,   114,   115,    94,   795,   382,   917,   401,   156,
-     420,   914,   918,    94,   385,   922,    94,   344,   392,   931,
-     175,   938,   174,   932,   971,   196,   939,   811,   402,   972,
-     812,   161,   209,   345,   176,   954,   177,   178,   955,   923,
-     924,   925,   228,   346,   190,   441,   442,   202,   904,   905,
-     906,   907,   250,   347,   212,   348,   362,   269,   368,   162,
-     376,   197,   271,    94,   230,   403,   377,   272,   210,   580,
-     581,   582,   191,   388,   264,   203,   305,   390,   391,   282,
-     406,   412,   213,   410,   453,   414,   188,   415,   411,   198,
-     416,   417,   231,   422,   425,   427,   211,   428,   306,    94,
-     431,   432,   265,   433,   444,   443,   229,   283,   106,   107,
-     108,   109,   445,   111,   446,   113,   244,   114,   115,   447,
-     270,   448,   450,   451,   452,   458,   307,   459,   460,   454,
-     455,   456,   457,   114,   115,   461,   166,   167,   462,   169,
-     170,   463,   464,   465,   466,   467,   468,   469,   470,   472,
-     171,   473,   471,   475,   478,   476,   479,   480,   173,   481,
-     482,   484,   541,   542,   543,   485,   483,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
-     304,   486,   487,   488,   156,   625,   625,   490,   492,   493,
-     494,   495,   496,   498,   499,   500,   501,   502,   503,   504,
-     697,   710,   305,   506,   507,   509,   161,   508,   510,   511,
-     514,   512,   518,   519,    94,   515,   516,   522,   523,   521,
-     524,   525,   699,   711,   306,   526,   527,   528,   529,   533,
-      94,   530,   534,   536,   162,   594,   538,   539,   540,   547,
-     531,   532,   544,   545,   546,   548,   549,   552,   633,   633,
-     700,   712,   307,    32,   610,     1,     2,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,   553,
-     554,   555,   556,   557,   558,   567,   550,   559,   560,   561,
-     562,   563,   565,   566,   575,   568,   569,   576,   574,   577,
-     609,   641,   601,   645,   649,   653,   671,   674,   719,   578,
-     723,   579,   727,   731,   583,   733,   743,   584,   744,   745,
-     585,   586,   587,   588,   746,   589,   590,   591,   592,   593,
-     595,   596,   597,   747,   608,   755,   754,   757,   758,   760,
-     761,   764,   763,   796,   775,   767,   774,   776,   777,   778,
-     779,   780,   781,   786,   787,   788,   801,   663,   800,   804,
-     803,   806,   807,   818,   813,   809,   814,   815,   816,   820,
-     822,   817,   823,   873,   819,   821,   866,   874,   879,   867,
-     868,   880,   869,   870,   871,   882,   875,   883,   915,   890,
-     876,   877,   921,   948,   916,   920,   909,   936,   933,   941,
-     625,   175,   910,   174,   943,   911,   250,   912,   913,   269,
-     832,   927,   831,   928,   271,   176,   929,   177,   178,   272,
-     853,   930,   934,   286,   833,   190,   834,   835,   264,   945,
-     950,   282,   968,   969,   846,   970,   973,   611,   944,   697,
-     474,   974,   856,   710,   947,   949,   613,   975,   840,   196,
-     449,   640,   209,   191,   824,   228,   265,   850,   976,   283,
-     894,   699,   847,   633,   978,   711,   477,   188,   865,   851,
-     857,   202,   270,   520,   212,   836,   845,   230,   864,   872,
-     826,   825,   896,   854,   855,   197,   849,   489,   210,   700,
-     940,   242,   828,   712,   827,   829,   830,   517,   491,   203,
-     885,   884,   213,   889,   497,   231,   942,   887,   513,   886,
-     897,   888,   863,   198,   881,   717,   211,   505,   878,   229,
-     612,   903,   946,   895,   966,   977,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   535,     0,
-       0,     0,     0,     0,     0,     0,     0,   537,     0,     0,
+      95,    38,   156,   174,   197,   210,   228,   698,   250,   269,
+     286,   305,   221,   241,   271,   175,   666,   272,   176,   270,
+     837,   838,   839,   840,   161,   190,   202,   212,   230,   841,
+     264,   282,   177,   306,   842,   178,   848,    31,    89,    32,
+     103,    33,   765,   104,   105,   766,   162,   191,   203,   213,
+     231,   768,   265,   283,   769,   307,   657,   154,   155,    30,
+     106,   107,   108,   109,   110,   111,   112,   113,   614,   188,
+     198,   211,   229,   615,   616,   617,   618,   619,   620,   621,
+     622,   623,   624,   284,   285,   114,   115,   339,   243,   113,
+     244,   244,   340,   114,   115,    42,   116,   117,   118,   119,
+     120,   114,   115,   244,   365,   369,   113,   114,   115,   366,
+     370,   244,   121,   245,   246,   122,    44,   247,   248,   249,
+     114,   115,   123,   852,   114,   115,    46,   692,   114,   115,
+     124,   125,   658,   382,   126,    48,   619,    86,   383,   196,
+     708,   709,   578,   222,   223,   224,   225,   226,   227,   386,
+     581,   582,    94,   956,   387,    90,   957,   958,   959,   657,
+     664,   113,   665,    50,    91,    92,    93,   114,   115,   393,
+     771,    52,   195,   772,   394,   837,   838,   839,   840,   114,
+     115,    94,    94,    54,   841,    34,    35,    36,    37,   842,
+      94,   848,   420,   891,   196,   892,   893,   421,    94,    56,
+     602,   603,   604,   605,    94,    94,    58,   436,   693,   694,
+     695,   696,   437,   106,   107,   108,   109,    94,    60,   439,
+     113,    94,   365,   112,   440,    94,   439,   736,   666,   369,
+     163,   737,   164,   606,   738,    62,   698,   328,   114,   115,
+     165,   166,   167,   168,   169,   170,   106,   107,   108,   109,
+      64,   111,    66,   113,   244,   171,   172,   678,   679,   680,
+     681,   682,   683,   173,    94,   750,   324,   329,   113,    95,
+     751,   114,   115,   330,   166,   167,    94,   169,   170,   284,
+     285,   205,   206,   207,   208,   209,   114,   115,   171,   244,
+     266,   245,   246,   267,   268,   750,   173,   782,   331,   156,
+     752,   196,   783,   789,   793,   436,   114,   115,   790,   794,
+     795,   332,   174,   382,   441,   442,   197,   917,   914,   401,
+     420,   161,   918,   210,   175,   922,   386,   176,   393,   402,
+     221,   931,   228,   932,   190,    94,   338,   811,   202,   241,
+     812,   177,   250,   162,   178,   212,   938,   269,   971,   598,
+     599,   939,   271,   972,   230,   272,   191,   270,   344,   345,
+     203,   114,   115,   346,   264,   347,   305,   213,    94,   282,
+     904,   905,   906,   907,   954,   403,   231,   955,   188,   570,
+     571,   572,   198,    94,   348,   362,   265,   368,   306,   211,
+     376,   283,   923,   924,   925,   377,   389,   391,   229,   392,
+     406,   410,   411,    94,   412,   443,   414,   415,   416,   417,
+     307,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,   303,   304,   422,   425,   427,   428,   431,
+     432,   541,   542,   543,     1,     2,     3,     4,     5,     6,
+       7,     8,     9,    10,    11,    12,    13,    14,   433,   444,
+     445,   446,   447,   448,   450,   451,   452,   453,    94,   458,
+     454,   455,   459,   456,   460,   461,   457,   462,   463,   464,
+     465,   466,   467,   468,   156,   625,   625,   469,   470,   472,
+     473,   471,   475,   478,   476,   633,   633,   479,   480,   481,
+     697,   710,   305,   482,   483,   484,   161,   485,   486,   487,
+     488,   490,   491,   493,   594,   494,   495,   499,   500,   501,
+     496,   497,   699,   711,   306,   502,   503,   504,   162,   506,
+     507,   509,   508,   610,   510,   511,   512,   514,   515,   516,
+     518,   519,   521,   522,   700,   712,   307,   523,   524,   525,
+     528,   526,   527,   529,   533,   530,   531,   534,   536,   538,
+     809,   601,   547,   539,   532,   540,   544,   545,   546,   548,
+     549,   552,   553,    32,   554,   555,   556,   557,   558,   567,
+     568,   559,   560,   561,   562,   563,   565,   566,   575,   609,
+     569,   574,   576,   577,   579,   580,   583,   584,   585,   586,
+     587,   588,   589,   590,   591,   592,   593,   641,   645,   649,
+     653,   671,   674,   719,   723,   727,   595,   596,   733,   597,
+     608,   743,   731,   744,   745,   746,   747,   755,   818,   754,
+     758,   757,   760,   761,   763,   764,   817,   767,   775,   774,
+     776,   777,   778,   779,   780,   781,   786,   787,   788,   796,
+     801,   800,   803,   804,   806,   807,   819,   813,   814,   815,
+     816,   822,   823,   873,   874,   821,   820,   879,   880,   883,
+     866,   867,   868,   869,   870,   882,   890,   921,   871,   915,
+     948,   916,   875,   876,   920,   933,   877,   909,   910,   936,
+     625,   911,   941,   174,   912,   913,   250,   927,   943,   269,
+     633,   928,   831,   945,   271,   175,   968,   272,   176,   270,
+     853,   950,   836,   286,   832,   190,   929,   833,   264,   969,
+     854,   282,   177,   970,   846,   178,   973,   550,   663,   697,
+     611,   834,   856,   710,   835,   974,   640,   191,   474,   197,
+     265,   930,   210,   283,   934,   228,   847,   944,   947,   221,
+     894,   699,   241,   975,   857,   711,   449,   613,   477,   188,
+     895,   202,   949,   978,   212,   824,   976,   230,   845,   850,
+     851,   865,   896,   700,   864,   872,   855,   712,   520,   826,
+     825,   849,   940,   203,   242,   829,   213,   828,   827,   231,
+     884,   489,   830,   517,   897,   889,   513,   888,   885,   863,
+     492,   886,   887,   942,   881,   198,   717,   878,   211,   612,
+     535,   229,   498,   946,   537,   966,   903,   505,   977,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   832,     0,   831,     0,     0,
-       0,   853,     0,     0,     0,     0,     0,     0,     0,   833,
-       0,   834,   835,     0,     0,     0,     0,     0,   894,   846,
-       0,     0,     0,   856,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   840,     0,     0,     0,     0,     0,     0,
-     896,     0,     0,     0,     0,     0,     0,   847,     0,     0,
-       0,   857,     0,     0,     0,     0,     0,     0,     0,     0,
-     836,   845,     0,     0,   854,   855,     0,     0,   897,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   895
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   831,     0,     0,
+       0,   853,     0,     0,     0,     0,     0,   836,     0,   832,
+       0,   854,   833,     0,     0,     0,     0,     0,   894,   846,
+       0,     0,     0,   856,     0,     0,   834,     0,   895,   835,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     896,   847,     0,     0,     0,   857,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   897,   845,     0,     0,     0,   855
   };
 
   const short int
   Dhcp6Parser::yycheck_[] =
   {
-      70,    73,    72,    73,    74,    75,    76,   560,    78,    79,
-      80,    81,   556,   762,    79,    73,   762,    73,    73,    79,
-     762,   762,    16,   762,    72,    73,    74,    75,    76,   762,
-      78,    79,     5,    81,     7,    77,     9,     3,    84,    85,
-      74,    75,     8,     3,    12,    13,    10,     3,     8,     7,
-       6,     0,    72,    73,    74,    75,    76,     3,    78,    79,
-      11,    81,     8,    14,    15,   153,     3,    73,    74,    75,
-      76,     8,    79,     6,     3,    38,    39,   120,   121,     8,
-      31,    32,    33,    34,    35,    36,    37,    38,    56,    57,
-      16,    84,    85,    56,    57,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    56,    57,   153,    16,    72,
-      38,   153,    16,    39,    56,    57,    67,    68,    69,    70,
-      71,    25,     7,    51,    52,    53,    54,    55,    56,    57,
-       7,    39,    83,    41,    42,    86,     3,    45,    46,    47,
-      37,     8,    93,    77,    78,    73,    80,     7,    56,    57,
-     101,   102,    56,    57,   105,    87,    88,    89,    90,    91,
-      92,   103,   104,   127,     3,     3,     7,     7,   917,     8,
-       8,   917,   136,   137,   138,   917,   917,     7,   917,    38,
-     153,   154,   155,   156,   917,   153,     3,     7,    38,   153,
-     153,     8,    39,    97,    98,    99,   100,    56,    57,    49,
-     130,     7,   153,   133,   134,   135,    56,    57,     3,    56,
-      57,   153,    71,     8,     7,     7,    75,    76,    77,    78,
-      79,    80,     7,    73,   768,   153,     3,   153,     7,     6,
-       3,    31,    32,    33,    34,     8,   789,   128,    38,   123,
-     124,   125,   126,     3,     3,   153,     3,     3,    48,   153,
-      50,     8,     8,    64,    65,    66,    56,    57,    58,    59,
-      60,    61,    62,    63,     3,     3,     3,     6,     4,   339,
-       8,     8,   156,    73,    74,    39,    40,    41,    42,    43,
-      44,    81,   129,     3,   131,   132,     3,     8,     8,     4,
-       3,     8,    56,    57,   153,     8,     3,     3,     8,   369,
-       3,     8,     8,   153,     3,     8,   153,     4,     3,     8,
-     382,     3,   382,     8,     3,   385,     8,     3,     3,     8,
-       6,   369,   392,     4,   382,     3,   382,   382,     6,    94,
-      95,    96,   402,     4,   382,   329,   330,   385,    17,    18,
-      19,    20,   412,     4,   392,     4,     4,   417,     4,   369,
-       4,   385,   417,   153,   402,     8,     4,   417,   392,   498,
-     499,   500,   382,     4,   412,   385,   436,     4,     4,   417,
-       4,     3,   392,     4,   154,     4,   382,     4,     8,   385,
-       8,     3,   402,     4,     4,     4,   392,     4,   436,   153,
-       4,     4,   412,     4,     4,   153,   402,   417,    31,    32,
-      33,    34,     4,    36,     4,    38,    39,    56,    57,     4,
-     417,     4,     4,     4,     4,     4,   436,     4,     4,   154,
-     154,   154,   154,    56,    57,     4,    59,    60,     4,    62,
-      63,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-      73,     4,   154,     4,     4,   156,     4,     4,    81,     4,
-       4,   156,   446,   447,   448,     4,   154,   106,   107,   108,
-     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
-     119,     4,     4,     4,   544,   545,   546,     4,     4,   154,
-       4,   154,   154,     4,     4,     4,     4,     4,     4,     4,
-     560,   561,   562,     4,     4,     4,   544,   154,     4,     4,
-       4,   156,     4,     4,   153,   156,   156,     4,     4,   156,
-     154,     4,   560,   561,   562,   154,   154,     4,     4,     4,
-     153,   156,     4,     4,   544,   519,     4,     7,     7,     5,
-     156,   156,     7,     7,     7,     5,     5,   153,   545,   546,
-     560,   561,   562,     7,   538,   139,   140,   141,   142,   143,
-     144,   145,   146,   147,   148,   149,   150,   151,   152,     5,
-       5,     5,     5,     5,     5,   153,   461,     7,     7,     7,
-       7,     5,     5,     5,     5,   153,   153,     7,   153,   153,
-       5,     7,   122,     7,     7,     7,     7,     7,     7,   153,
-       7,   153,     7,    82,   153,     7,     4,   153,     4,     4,
-     153,   153,   153,   153,     4,   153,   153,   153,   153,   153,
-     153,   153,   153,     4,   153,     3,     6,     6,     3,     6,
-       3,     3,     6,   153,     3,     6,     6,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     3,   555,     6,     3,
-       6,     6,     3,   156,     4,     8,     4,     4,     4,   156,
-       4,   154,     4,     4,   154,   154,   154,     4,     4,   154,
-     154,     4,   154,   154,   154,     6,   154,     3,     8,     4,
-     154,   154,     3,     5,     8,     8,   153,     4,     8,     4,
-     750,   753,   153,   753,     4,   153,   756,   153,   153,   759,
-     762,   153,   762,   153,   759,   753,   153,   753,   753,   759,
-     770,   153,   153,   773,   762,   753,   762,   762,   756,     4,
-       7,   759,     4,     4,   762,     4,     4,   539,   154,   789,
-     365,   156,   770,   793,   153,   153,   544,   154,   762,   799,
-     339,   546,   802,   753,   750,   805,   756,   765,   154,   759,
-     810,   789,   762,   750,   153,   793,   369,   753,   775,   768,
-     770,   799,   759,   420,   802,   762,   762,   805,   773,   782,
-     755,   753,   810,   770,   770,   799,   764,   382,   802,   789,
-     917,    77,   758,   793,   756,   759,   761,   417,   385,   799,
-     801,   799,   802,   807,   392,   805,   921,   804,   412,   802,
-     810,   805,   771,   799,   793,   562,   802,   402,   789,   805,
-     540,   811,   938,   810,   954,   971,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   439,    -1,    -1,
+      70,    16,    72,    73,    74,    75,    76,   560,    78,    79,
+      80,    81,    75,    76,    79,    73,   556,    79,    73,    79,
+     762,   762,   762,   762,    72,    73,    74,    75,    76,   762,
+      78,    79,    73,    81,   762,    73,   762,     5,    10,     7,
+      11,     9,     3,    14,    15,     6,    72,    73,    74,    75,
+      76,     3,    78,    79,     6,    81,    77,    12,    13,     0,
+      31,    32,    33,    34,    35,    36,    37,    38,    16,    73,
+      74,    75,    76,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    84,    85,    56,    57,     3,    16,    38,
+      39,    39,     8,    56,    57,     7,    67,    68,    69,    70,
+      71,    56,    57,    39,     3,     3,    38,    56,    57,     8,
+       8,    39,    83,    41,    42,    86,     7,    45,    46,    47,
+      56,    57,    93,    72,    56,    57,     7,    16,    56,    57,
+     101,   102,   153,     3,   105,     7,    25,   153,     8,    71,
+     103,   104,   491,    75,    76,    77,    78,    79,    80,     3,
+     499,   500,   153,   130,     8,   127,   133,   134,   135,    77,
+      78,    38,    80,     7,   136,   137,   138,    56,    57,     3,
+       3,     7,    49,     6,     8,   917,   917,   917,   917,    56,
+      57,   153,   153,     7,   917,   153,   154,   155,   156,   917,
+     153,   917,     3,   129,    71,   131,   132,     8,   153,     7,
+     123,   124,   125,   126,   153,   153,     7,     3,    97,    98,
+      99,   100,     8,    31,    32,    33,    34,   153,     7,     3,
+      38,   153,     3,    37,     8,   153,     3,     8,   768,     3,
+      48,     8,    50,   156,     8,     7,   789,     6,    56,    57,
+      58,    59,    60,    61,    62,    63,    31,    32,    33,    34,
+       7,    36,     7,    38,    39,    73,    74,    87,    88,    89,
+      90,    91,    92,    81,   153,     3,   128,     3,    38,   339,
+       8,    56,    57,     4,    59,    60,   153,    62,    63,    84,
+      85,    51,    52,    53,    54,    55,    56,    57,    73,    39,
+      40,    41,    42,    43,    44,     3,    81,     3,     8,   369,
+       8,    71,     8,     3,     3,     3,    56,    57,     8,     8,
+       8,     3,   382,     3,   329,   330,   386,     3,     8,     8,
+       3,   369,     8,   393,   382,     8,     3,   382,     3,     3,
+     393,     8,   402,     8,   382,   153,     4,     3,   386,   402,
+       6,   382,   412,   369,   382,   393,     3,   417,     3,   120,
+     121,     8,   417,     8,   402,   417,   382,   417,     4,     4,
+     386,    56,    57,     4,   412,     4,   436,   393,   153,   417,
+      17,    18,    19,    20,     3,     8,   402,     6,   382,    64,
+      65,    66,   386,   153,     4,     4,   412,     4,   436,   393,
+       4,   417,    94,    95,    96,     4,     4,     4,   402,     4,
+       4,     4,     8,   153,     3,   153,     4,     4,     8,     3,
+     436,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,     4,     4,     4,     4,     4,
+       4,   446,   447,   448,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151,   152,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,   154,   153,     4,
+     154,   154,     4,   154,     4,     4,   154,     4,     4,     4,
+       4,     4,     4,     4,   544,   545,   546,     4,     4,     4,
+       4,   154,     4,     4,   156,   545,   546,     4,     4,     4,
+     560,   561,   562,     4,   154,   156,   544,     4,     4,     4,
+       4,     4,     4,     4,   519,   154,     4,     4,     4,     4,
+     154,   154,   560,   561,   562,     4,     4,     4,   544,     4,
+       4,     4,   154,   538,     4,     4,   156,     4,   156,   156,
+       4,     4,   156,     4,   560,   561,   562,     4,   154,     4,
+       4,   154,   154,     4,     4,   156,   156,     4,     4,     4,
+       8,   122,     5,     7,   156,     7,     7,     7,     7,     5,
+       5,   153,     5,     7,     5,     5,     5,     5,     5,   153,
+     153,     7,     7,     7,     7,     5,     5,     5,     5,     5,
+     153,   153,     7,   153,   153,   153,   153,   153,   153,   153,
+     153,   153,   153,   153,   153,   153,   153,     7,     7,     7,
+       7,     7,     7,     7,     7,     7,   153,   153,     7,   153,
+     153,     4,    82,     4,     4,     4,     4,     3,   156,     6,
+       3,     6,     6,     3,     6,     3,   154,     6,     3,     6,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,   153,
+       3,     6,     6,     3,     6,     3,   154,     4,     4,     4,
+       4,     4,     4,     4,     4,   154,   156,     4,     4,     3,
+     154,   154,   154,   154,   154,     6,     4,     3,   154,     8,
+       5,     8,   154,   154,     8,     8,   154,   153,   153,     4,
+     750,   153,     4,   753,   153,   153,   756,   153,     4,   759,
+     750,   153,   762,     4,   759,   753,     4,   759,   753,   759,
+     770,     7,   762,   773,   762,   753,   153,   762,   756,     4,
+     770,   759,   753,     4,   762,   753,     4,   461,   555,   789,
+     539,   762,   770,   793,   762,   156,   546,   753,   365,   799,
+     756,   153,   802,   759,   153,   805,   762,   154,   153,   802,
+     810,   789,   805,   154,   770,   793,   339,   544,   369,   753,
+     810,   799,   153,   153,   802,   750,   154,   805,   762,   765,
+     768,   775,   810,   789,   773,   782,   770,   793,   420,   755,
+     753,   764,   917,   799,    77,   759,   802,   758,   756,   805,
+     799,   382,   761,   417,   810,   807,   412,   805,   801,   771,
+     386,   802,   804,   921,   793,   799,   562,   789,   802,   540,
+     436,   805,   393,   938,   439,   954,   811,   402,   971,    -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,   917,    -1,    -1,
+      -1,   921,    -1,    -1,    -1,    -1,    -1,   917,    -1,   917,
+      -1,   921,   917,    -1,    -1,    -1,    -1,    -1,   938,   917,
+      -1,    -1,    -1,   921,    -1,    -1,   917,    -1,   938,   917,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   917,    -1,   917,    -1,    -1,
-      -1,   921,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   917,
-      -1,   917,   917,    -1,    -1,    -1,    -1,    -1,   938,   917,
-      -1,    -1,    -1,   921,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   917,    -1,    -1,    -1,    -1,    -1,    -1,
-     938,    -1,    -1,    -1,    -1,    -1,    -1,   917,    -1,    -1,
-      -1,   921,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     917,   917,    -1,    -1,   921,   921,    -1,    -1,   938,    -1,
+     938,   917,    -1,    -1,    -1,   921,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   938
+      -1,    -1,   938,   917,    -1,    -1,    -1,   921
   };
 
   const unsigned short int
@@ -4139,10 +4135,10 @@ namespace isc { namespace dhcp {
      212,   364,   366,    48,    50,    58,    59,    60,    61,    62,
       63,    73,    74,    81,   188,   199,   200,   201,   202,   285,
      286,   287,   289,   291,   293,   295,   298,   299,   334,   352,
-     364,   366,   368,   385,   410,    49,   188,   293,   334,   360,
-     361,   362,   364,   366,    51,    52,    53,    54,    55,   188,
-     293,   334,   364,   366,   376,   377,   378,   380,   381,   383,
-     384,    71,    75,    76,    77,    78,    79,    80,   188,   334,
+     364,   366,   368,   385,   410,    49,    71,   188,   334,   360,
+     361,   362,   364,   366,   408,    51,    52,    53,    54,    55,
+     188,   334,   364,   366,   376,   377,   378,   380,   381,   383,
+     384,   408,    75,    76,    77,    78,    79,    80,   188,   334,
      364,   366,   393,   394,   395,   396,   398,   400,   402,   404,
      406,   408,   308,    16,    39,    41,    42,    45,    46,    47,
      188,   229,   318,   319,   320,   321,   322,   323,   324,   326,
@@ -4158,8 +4154,8 @@ namespace isc { namespace dhcp {
      309,   335,   365,   367,   301,   240,   252,   246,   415,   254,
      268,   426,     4,   439,   447,     3,     8,   211,     4,     3,
        8,   353,   369,   288,   290,   292,     4,     4,   296,   294,
-     386,   411,     3,     8,   363,     3,     8,   379,     4,   382,
-       4,     4,     3,     8,   409,   397,   399,   401,   403,   405,
+     386,   411,     3,     8,   363,   409,     3,     8,   379,     4,
+     382,     4,     4,     3,     8,   397,   399,   401,   403,   405,
      407,     8,     3,     8,   325,   230,     4,   329,   327,   332,
        4,     8,     3,   347,     4,     4,     8,     3,   264,   266,
        3,     8,     4,   454,   456,     4,   459,     4,     4,   463,
@@ -4169,7 +4165,7 @@ namespace isc { namespace dhcp {
        4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
        4,   154,     4,     4,   198,     4,   156,   209,     4,     4,
        4,     4,     4,   154,   156,     4,     4,     4,     4,   286,
-       4,   361,     4,   154,     4,   154,   154,   377,     4,     4,
+       4,     4,   361,     4,   154,     4,   154,   154,   377,     4,
        4,     4,     4,     4,     4,   395,     4,     4,   154,     4,
        4,     4,   156,   320,     4,   156,   156,   344,     4,     4,
      262,   156,     4,     4,   154,     4,   154,   154,     4,     4,
@@ -4177,8 +4173,8 @@ namespace isc { namespace dhcp {
        7,   173,   173,   173,     7,     7,     7,     5,     5,     5,
      175,   177,   153,     5,     5,     5,     5,     5,     5,     7,
        7,     7,     7,     5,   184,     5,     5,   153,   153,   153,
-      64,    65,    66,   297,   153,     5,     7,   153,   153,   153,
-     184,   184,   184,   153,   153,   153,   153,   153,   153,   153,
+      64,    65,    66,   297,   153,     5,     7,   153,   184,   153,
+     153,   184,   184,   153,   153,   153,   153,   153,   153,   153,
      153,   153,   153,   153,   173,   153,   153,   153,   120,   121,
      464,   122,   123,   124,   125,   126,   156,   472,   153,     5,
      173,   197,   485,   208,    16,    21,    22,    23,    24,    25,
@@ -4463,31 +4459,30 @@ namespace isc { namespace dhcp {
   "$@76", "sub_reservation", "$@77", "reservation_params",
   "not_empty_reservation_params", "reservation_param", "ip_addresses",
   "$@78", "prefixes", "$@79", "duid", "$@80", "hw_address", "$@81",
-  "hostname", "$@82", "flex_id_value", "$@83",
-  "reservation_client_classes", "$@84", "relay", "$@85", "relay_map",
-  "$@86", "client_classes", "$@87", "client_classes_list",
-  "client_class_entry", "$@88", "client_class_params",
-  "not_empty_client_class_params", "client_class_param",
-  "client_class_name", "client_class_test", "$@89", "server_id", "$@90",
-  "server_id_params", "server_id_param", "server_id_type", "$@91",
-  "duid_type", "htype", "identifier", "$@92", "time", "enterprise_id",
-  "dhcp4o6_port", "control_socket", "$@93", "control_socket_params",
-  "control_socket_param", "socket_type", "$@94", "socket_name", "$@95",
-  "dhcp_ddns", "$@96", "sub_dhcp_ddns", "$@97", "dhcp_ddns_params",
-  "dhcp_ddns_param", "enable_updates", "qualifying_suffix", "$@98",
-  "server_ip", "$@99", "server_port", "sender_ip", "$@100", "sender_port",
-  "max_queue_size", "ncr_protocol", "$@101", "ncr_protocol_value",
-  "ncr_format", "$@102", "always_include_fqdn", "override_no_update",
-  "override_client_update", "replace_client_name", "$@103",
-  "replace_client_name_value", "generated_prefix", "$@104",
-  "dhcp4_json_object", "$@105", "dhcpddns_json_object", "$@106",
-  "control_agent_json_object", "$@107", "logging_object", "$@108",
-  "sub_logging", "$@109", "logging_params", "logging_param", "loggers",
-  "$@110", "loggers_entries", "logger_entry", "$@111", "logger_params",
-  "logger_param", "debuglevel", "severity", "$@112", "output_options_list",
-  "$@113", "output_options_list_content", "output_entry", "$@114",
-  "output_params_list", "output_params", "output", "$@115", "flush",
-  "maxsize", "maxver", YY_NULLPTR
+  "hostname", "$@82", "flex_id_value", "$@83", "client_class_names_list",
+  "$@84", "relay", "$@85", "relay_map", "$@86", "client_classes", "$@87",
+  "client_classes_list", "client_class_entry", "$@88",
+  "client_class_params", "not_empty_client_class_params",
+  "client_class_param", "client_class_name", "client_class_test", "$@89",
+  "server_id", "$@90", "server_id_params", "server_id_param",
+  "server_id_type", "$@91", "duid_type", "htype", "identifier", "$@92",
+  "time", "enterprise_id", "dhcp4o6_port", "control_socket", "$@93",
+  "control_socket_params", "control_socket_param", "socket_type", "$@94",
+  "socket_name", "$@95", "dhcp_ddns", "$@96", "sub_dhcp_ddns", "$@97",
+  "dhcp_ddns_params", "dhcp_ddns_param", "enable_updates",
+  "qualifying_suffix", "$@98", "server_ip", "$@99", "server_port",
+  "sender_ip", "$@100", "sender_port", "max_queue_size", "ncr_protocol",
+  "$@101", "ncr_protocol_value", "ncr_format", "$@102",
+  "always_include_fqdn", "override_no_update", "override_client_update",
+  "replace_client_name", "$@103", "replace_client_name_value",
+  "generated_prefix", "$@104", "dhcp4_json_object", "$@105",
+  "dhcpddns_json_object", "$@106", "control_agent_json_object", "$@107",
+  "logging_object", "$@108", "sub_logging", "$@109", "logging_params",
+  "logging_param", "loggers", "$@110", "loggers_entries", "logger_entry",
+  "$@111", "logger_params", "logger_param", "debuglevel", "severity",
+  "$@112", "output_options_list", "$@113", "output_options_list_content",
+  "output_entry", "$@114", "output_params_list", "output_params", "output",
+  "$@115", "flush", "maxsize", "maxver", YY_NULLPTR
   };
 
 #if PARSER6_DEBUG
@@ -4541,20 +4536,20 @@ namespace isc { namespace dhcp {
     1559,  1567,  1567,  1575,  1575,  1583,  1583,  1596,  1596,  1606,
     1606,  1617,  1617,  1627,  1628,  1631,  1631,  1641,  1642,  1645,
     1646,  1649,  1650,  1651,  1652,  1653,  1654,  1657,  1659,  1659,
-    1670,  1670,  1682,  1683,  1686,  1687,  1688,  1689,  1690,  1691,
-    1692,  1693,  1694,  1697,  1697,  1704,  1705,  1706,  1709,  1714,
-    1714,  1722,  1727,  1734,  1741,  1741,  1751,  1752,  1755,  1756,
-    1757,  1758,  1759,  1762,  1762,  1770,  1770,  1780,  1780,  1792,
-    1792,  1802,  1803,  1806,  1807,  1808,  1809,  1810,  1811,  1812,
-    1813,  1814,  1815,  1816,  1817,  1818,  1819,  1820,  1821,  1822,
-    1825,  1830,  1830,  1838,  1838,  1846,  1851,  1851,  1859,  1864,
-    1869,  1869,  1877,  1878,  1881,  1881,  1889,  1894,  1899,  1904,
-    1904,  1912,  1915,  1918,  1921,  1924,  1930,  1930,  1940,  1940,
-    1947,  1947,  1954,  1954,  1967,  1967,  1977,  1977,  1988,  1989,
-    1993,  1997,  1997,  2009,  2010,  2014,  2014,  2022,  2023,  2026,
-    2027,  2028,  2029,  2030,  2031,  2032,  2035,  2040,  2040,  2048,
-    2048,  2058,  2059,  2062,  2062,  2070,  2071,  2074,  2075,  2076,
-    2077,  2080,  2080,  2088,  2093,  2098
+    1671,  1671,  1683,  1684,  1687,  1688,  1689,  1690,  1691,  1692,
+    1693,  1694,  1695,  1698,  1698,  1705,  1706,  1707,  1710,  1715,
+    1715,  1723,  1728,  1735,  1742,  1742,  1752,  1753,  1756,  1757,
+    1758,  1759,  1760,  1763,  1763,  1771,  1771,  1781,  1781,  1793,
+    1793,  1803,  1804,  1807,  1808,  1809,  1810,  1811,  1812,  1813,
+    1814,  1815,  1816,  1817,  1818,  1819,  1820,  1821,  1822,  1823,
+    1826,  1831,  1831,  1839,  1839,  1847,  1852,  1852,  1860,  1865,
+    1870,  1870,  1878,  1879,  1882,  1882,  1890,  1895,  1900,  1905,
+    1905,  1913,  1916,  1919,  1922,  1925,  1931,  1931,  1941,  1941,
+    1948,  1948,  1955,  1955,  1968,  1968,  1978,  1978,  1989,  1990,
+    1994,  1998,  1998,  2010,  2011,  2015,  2015,  2023,  2024,  2027,
+    2028,  2029,  2030,  2031,  2032,  2033,  2036,  2041,  2041,  2049,
+    2049,  2059,  2060,  2063,  2063,  2071,  2072,  2075,  2076,  2077,
+    2078,  2081,  2081,  2089,  2094,  2099
   };
 
   // Print the state stack on the debug stream.
@@ -4589,8 +4584,8 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp6_parser.yy" // lalr1.cc:1167
 } } // isc::dhcp
-#line 4593 "dhcp6_parser.cc" // lalr1.cc:1167
-#line 2103 "dhcp6_parser.yy" // lalr1.cc:1168
+#line 4588 "dhcp6_parser.cc" // lalr1.cc:1167
+#line 2104 "dhcp6_parser.yy" // lalr1.cc:1168
 
 
 void
index 9634f42983df4c1b365c1a3ada5cc154292b42c7..629d8cf68e3e0c6a338f13584a369f967dcb04e1 100644 (file)
@@ -1440,7 +1440,7 @@ namespace isc { namespace dhcp {
     enum
     {
       yyeof_ = 0,
-      yylast_ = 931,     ///< Last index in yytable_.
+      yylast_ = 917,     ///< Last index in yytable_.
       yynnts_ = 352,  ///< Number of nonterminal symbols.
       yyfinal_ = 30, ///< Termination state number.
       yyterror_ = 1,