]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[5017] Updated regenerated dhcp4_lexer.cc
authorTomek Mrugalski <tomasz@isc.org>
Tue, 20 Dec 2016 13:29:52 +0000 (14:29 +0100)
committerTomek Mrugalski <tomasz@isc.org>
Tue, 20 Dec 2016 13:29:52 +0000 (14:29 +0100)
src/bin/dhcp4/dhcp4_lexer.cc

index aa2b9e976b496efabbaf20e5b99a635814753af4..4ea992a5b89bc698ac2ce4d315d4e51ed488805f 100644 (file)
@@ -1,6 +1,3 @@
-#line 2 "dhcp4_lexer.cc"
-
-#line 4 "dhcp4_lexer.cc"
 
 #define  YY_INT_ALIGNED short int
 
@@ -36,7 +33,7 @@
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 6
-#define YY_FLEX_SUBMINOR_VERSION 1
+#define YY_FLEX_SUBMINOR_VERSION 0
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
@@ -136,13 +133,25 @@ typedef unsigned int flex_uint32_t;
 /* %if-c++-only */
 /* %endif */
 
-/* TODO: this is always defined, so inline it */
-#define yyconst const
+#ifdef __cplusplus
 
-#if defined(__GNUC__) && __GNUC__ >= 3
-#define yynoreturn __attribute__((__noreturn__))
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else  /* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif /* defined (__STDC__) */
+#endif /* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
 #else
-#define yynoreturn
+#define yyconst
 #endif
 
 /* %not-for-header */
@@ -217,7 +226,7 @@ typedef size_t yy_size_t;
 #endif
 
 /* %if-not-reentrant */
-extern int parser4_leng;
+extern yy_size_t parser4_leng;
 /* %endif */
 
 /* %if-c-only */
@@ -266,7 +275,7 @@ struct yy_buffer_state
        /* Size of input buffer in bytes, not including room for EOB
         * characters.
         */
-       int yy_buf_size;
+       yy_size_t yy_buf_size;
 
        /* Number of characters read into yy_ch_buf, not including EOB
         * characters.
@@ -327,7 +336,7 @@ struct yy_buffer_state
 /* Stack of input buffers. */
 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
 /* %endif */
 /* %ok-for-header */
 
@@ -356,10 +365,10 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
 /* 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 parser4_leng;
+yy_size_t parser4_leng;
 
 /* Points to current character in buffer. */
-static char *yy_c_buf_p = NULL;
+static char *yy_c_buf_p = (char *) 0;
 static int yy_init = 0;                /* whether we need to initialize */
 static int yy_start = 0;       /* start state number */
 
@@ -387,7 +396,7 @@ static void parser4__init_buffer (YY_BUFFER_STATE b,FILE *file  );
 
 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  );
+YY_BUFFER_STATE parser4__scan_bytes (yyconst char *bytes,yy_size_t len  );
 
 /* %endif */
 
@@ -429,7 +438,7 @@ void parser4_free (void *  );
 
 typedef unsigned char YY_CHAR;
 
-FILE *parser4_in = NULL, *parser4_out = NULL;
+FILE *parser4_in = (FILE *) 0, *parser4_out = (FILE *) 0;
 
 typedef int yy_state_type;
 
@@ -450,7 +459,10 @@ extern char *parser4_text;
 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  );
+#if defined(__GNUC__) && __GNUC__ >= 3
+__attribute__((__noreturn__))
+#endif
+static void yy_fatal_error (yyconst char msg[]  );
 
 /* %endif */
 
@@ -460,15 +472,15 @@ static void yynoreturn yy_fatal_error (yyconst char* msg  );
 #define YY_DO_BEFORE_ACTION \
        (yytext_ptr) = yy_bp; \
 /* %% [2.0] code to fiddle parser4_text and parser4_leng for yymore() goes here \ */\
-       parser4_leng = (int) (yy_cp - yy_bp); \
+       parser4_leng = (size_t) (yy_cp - yy_bp); \
        (yy_hold_char) = *yy_cp; \
        *yy_cp = '\0'; \
 /* %% [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 105
-#define YY_END_OF_BUFFER 106
+#define YY_NUM_RULES 108
+#define YY_END_OF_BUFFER 109
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -476,91 +488,93 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[761] =
+static yyconst flex_int16_t yy_accept[775] =
     {   0,
       101,  101,    0,    0,    0,    0,    0,    0,    0,    0,
-      106,  104,   10,   11,  104,    1,  101,   98,  101,  101,
-      104,  100,   99,  104,  104,   94,   95,  104,  104,  104,
-       96,   97,    5,    5,    5,  104,  104,  104,   10,   11,
-        0,    0,   90,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    1,  101,  101,    0,  100,  101,
-        3,    2,    6,    0,  101,    0,    0,    0,    4,    0,
-        0,    9,    0,   91,    0,    0,    0,    0,    0,   93,
+      109,  107,   10,   11,  107,    1,  101,   98,  101,  101,
+      107,  100,   99,  107,  107,  107,  107,  107,   94,   95,
+      107,  107,  107,   96,   97,    5,    5,    5,  107,  107,
+      107,   10,   11,    0,    0,   90,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    1,  101,  101,
+        0,  100,  101,    3,    2,    6,    0,  101,    0,    0,
+        0,    0,    0,    0,    4,    0,    0,    9,    0,   91,
+        0,    0,    0,    0,    0,   93,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    2,    0,    0,    0,    0,    8,
-        0,    0,    0,    0,    0,   92,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   38,    0,    0,
+        2,    0,    0,    0,    0,    0,    0,    0,    8,    0,
+        0,    0,    0,    0,   92,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   38,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,  103,  102,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  106,  104,    0,  103,  102,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   41,    0,
-        0,   32,    0,    0,    0,    0,   53,    0,    0,    0,
-        0,    0,   21,    0,    0,    0,    0,    0,    0,    0,
-
-        0,    0,    0,    0,    0,    0,   31,    0,    0,    0,
-        0,    0,    0,   34,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   51,   71,   18,
-       19,    0,    0,    0,    0,    0,    0,   12,   80,    0,
-        0,   62,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   70,
+        0,    0,    0,    0,    0,    0,    0,  105,  102,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   33,    0,    0,    0,    0,
-       63,    0,    0,    0,    0,    0,   58,    0,    0,    0,
-        7,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   41,    0,    0,   32,    0,    0,    0,    0,
 
+       53,    0,    0,    0,    0,    0,   21,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       31,    0,    0,    0,    0,    0,    0,   34,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   46,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   35,    0,    0,
-        0,    0,    0,    0,   43,    0,    0,    0,    0,    0,
+        0,   51,   71,   18,   19,    0,    0,    0,    0,    0,
+        0,   12,   80,    0,    0,   62,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   67,
-       44,    0,    0,    0,    0,    0,    0,   22,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   28,
-        0,   75,    0,    0,   81,    0,    0,    0,    0,    0,
+        0,    0,    0,   70,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   33,
+        0,    0,    0,    0,   63,    0,    0,    0,    0,    0,
 
+       58,    0,    0,    0,    7,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   46,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   57,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   20,    0,   17,    0,    0,
-        0,    0,    0,    0,   48,    0,    0,    0,    0,    0,
-        0,    0,    0,   55,    0,    0,    0,    0,   79,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   36,
+        0,   35,    0,    0,    0,    0,    0,    0,   43,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   67,   44,    0,    0,    0,    0,    0,
+        0,   22,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,   28,    0,   75,    0,    0,   81,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   57,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   20,
+        0,   17,    0,    0,    0,    0,    0,    0,   48,    0,
+        0,    0,    0,    0,    0,    0,    0,   55,    0,    0,
+        0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   36,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   68,    0,    0,    0,    0,   84,    0,   56,    0,
+
+        0,   59,   47,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   54,   69,    0,   14,    0,   64,    0,    0,
+        0,    0,    0,   29,    0,   66,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   61,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   87,   30,    0,    0,    0,    0,   25,
+        0,    0,    0,   78,   77,    0,    0,    0,   50,    0,
+        0,    0,   74,    0,    0,    0,    0,    0,    0,   37,
+        0,    0,   23,    0,    0,   39,   26,   60,    0,   52,
+        0,    0,   82,    0,    0,    0,    0,    0,    0,   72,
+
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   68,    0,    0,
-        0,    0,   84,    0,   56,    0,    0,   59,   47,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   54,   69,
-
-        0,   14,    0,   64,    0,    0,    0,    0,    0,   29,
-        0,   66,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   61,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   87,
-       30,    0,    0,    0,    0,   25,    0,    0,    0,   78,
-       77,    0,    0,    0,   50,    0,    0,    0,   74,    0,
-        0,    0,    0,    0,    0,   37,    0,    0,   23,    0,
-        0,   39,   26,   60,    0,   52,    0,    0,   82,    0,
-        0,    0,    0,    0,    0,   72,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   89,   49,
-
-       76,    0,   85,    0,    0,    0,   16,    0,   15,    0,
-       45,    0,    0,   24,    0,    0,    0,   65,    0,    0,
-       86,    0,   88,   83,    0,    0,    0,    0,   40,    0,
-        0,    0,   13,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   89,   49,   76,    0,   85,    0,    0,    0,
+       16,    0,   15,    0,   45,    0,    0,   24,    0,    0,
+        0,   65,    0,    0,   86,    0,   88,   83,    0,    0,
+        0,    0,   40,    0,    0,    0,   13,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   27,    0,    0,   73,    0,    0,    0,   42,    0
+        0,    0,    0,    0,    0,   27,    0,    0,   73,    0,
+        0,    0,   42,    0
     } ;
 
 static yyconst YY_CHAR yy_ec[256] =
@@ -571,14 +585,14 @@ static yyconst YY_CHAR yy_ec[256] =
         1,    4,    5,    6,    7,    5,    5,    5,    5,    5,
         5,    8,    9,   10,   11,   12,   13,   14,   14,   14,
        14,   15,   14,   16,   14,   14,   14,   17,    5,   18,
-        5,   19,   20,    5,   21,   21,   21,   22,   23,   21,
-        5,    5,    5,    5,    5,   24,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-       25,   26,   27,    5,   28,    5,   29,   30,   31,   32,
-
-       33,   34,   35,   36,   37,    5,   38,   39,   40,   41,
-       42,   43,    5,   44,   45,   46,   47,   48,   49,   50,
-       51,    5,   52,    5,   53,    5,    5,    5,    5,    5,
+        5,   19,   20,    5,   21,   22,   22,   23,   24,   25,
+        5,    5,    5,    5,    5,   26,    5,   27,    5,    5,
+        5,   28,   29,   30,   31,    5,    5,    5,    5,    5,
+       32,   33,   34,    5,   35,    5,   36,   37,   38,   39,
+
+       40,   41,   42,   43,   44,    5,   45,   46,   47,   48,
+       49,   50,    5,   51,   52,   53,   54,   55,   56,   57,
+       58,    5,   59,    5,   60,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
@@ -595,436 +609,452 @@ static yyconst YY_CHAR yy_ec[256] =
         5,    5,    5,    5,    5
     } ;
 
-static yyconst YY_CHAR yy_meta[54] =
+static yyconst YY_CHAR yy_meta[61] =
     {   0,
         1,    1,    2,    3,    3,    4,    3,    3,    3,    3,
         3,    3,    5,    6,    6,    6,    3,    3,    3,    3,
-        6,    6,    6,    3,    3,    5,    3,    3,    6,    7,
-        6,    6,    6,    7,    3,    3,    3,    3,    3,    3,
-        5,    3,    3,    5,    3,    5,    5,    3,    3,    3,
-        3,    3,    3
+        6,    6,    6,    6,    6,    3,    3,    3,    3,    3,
+        3,    3,    5,    3,    3,    6,    7,    6,    6,    6,
+        7,    3,    3,    3,    3,    3,    3,    5,    3,    3,
+        5,    3,    5,    5,    3,    3,    3,    3,    3,    3
     } ;
 
-static yyconst flex_uint16_t yy_base[773] =
+static yyconst flex_uint16_t yy_base[787] =
     {   0,
-        0,    0,   52,   55,   58,    0,   56,   60,   41,   57,
-     1023, 1024,   78, 1019,  111,    0,  153, 1024,  158,   73,
-       71,  173, 1024, 1001,  168, 1024, 1024,  991,  972,  974,
-     1024, 1024, 1024,   96, 1004,  975,    0,  996,   99, 1011,
-      169,  192, 1024,  971,  976,  969,  235,  966,  967,  155,
-      172,  149,  169,  161,  209,  979,   57,   62,  184,  216,
-      211,  219,  962,  226,    0,  252,  272,  282,  287,  257,
-     1024,    0, 1024,  248,  292,  967,  966,  957, 1024,  972,
-      996, 1024,  172, 1024,  954,  984,  968,  963,  991,    0,
-      307,  952,  953,  950,  956,  171,  944,  945,   77,  959,
-
-      952,  952,  243,  944,  185,  935,  974,  214,  938,  972,
-      953,  950,  950,  944,  932,  937,  926,  929,  928,  165,
-      929,  930,  928,  286,  256,  939,  940,  938,  922,  926,
-      922,  931,  924,  918,    0,  916,  921,  926,  919, 1024,
-        0,  946,  913,  920,  948, 1024,  328,  924,  906,  920,
-      917,  916,  902,  936,  917,  898,  905,  900,  910,  899,
-      911,  906,  901,  899,  890,  892,  905, 1024,  892,  899,
-      902,  885,  918,  884,  892,  895,  892,  878,  886,  879,
-      892,  875,  874,  879,  880,  884,  878,  872,  884,  879,
-      878,  862,  876,  870,  876,  865,  859,  871,  870,  858,
-
-      864,  855,  866, 1024, 1024,  851,    0,  274,  330,  860,
-      349,  845,  884,  847,  852,  886,  847,  856,  883,  853,
-      850,  298,  880,  874,  841,  839,  838,  836,  362,  847,
-      847,  832,  833,  844,  842,  837,  844,  839,  835,  864,
-      858,  826,  820,  826,  816,  827,  288,  831,  820,  820,
-      816,  808,  809,  813,  823,  811,  821,  820,  819,  845,
-      844,  843,  842,  815,  809,  813,    0,  803,  796,  836,
-      835,  808,  798,  394,  832,  803,  799,  789, 1024,  792,
-      791, 1024,  793,  790,  798,  787, 1024,  797,  782,  783,
-      792,  813, 1024,  779,  793,  810,  814,  787,  781,  783,
-
-      784,  804,  773,  769,  768,  800, 1024,  765,  768,  762,
-      774,  764,  760, 1024,  798,  792,  761,  769,  768,  793,
-      787,  749,  752,  758,  748,  787,  746, 1024, 1024, 1024,
-     1024,  780,  748,  756,    0,  742,  757, 1024, 1024,  745,
-      750, 1024,  747,  737,  771,  742,  736,  746,  745,  745,
-      760,  736,  727,  729,  740,  732,  737,  729,  736, 1024,
-      723,  732,  736,  720,  731,  716,  710,  715,  728,  725,
-      746,  286,  710,  711,  708, 1024,  722,  713,  740,  739,
-     1024,  703,  719,  736,  700,  734, 1024,  320,  705,  702,
-     1024,  709,  700,  695,  733,  699,  726,  246,  725,  695,
-
-      686,  722,  691,  720,  693,  690,  691,  716,  689,  680,
-      691,  694,  689,  684,  689,  686,  689,  684,  710,  709,
-      675,  669,  680, 1024,  669,  677,  677,  702,  665,  655,
-      659,  658,  666,  656,  311,  650,  125, 1024,  694,  662,
-      692,  653,  663,  689, 1024,  661,  656,  653,  659,  645,
-      660,  655,  644,  641,  642,  651,  654,  637,  642,  650,
-      646,  672,  631,  631,  642,  641,  628,  626,  627, 1024,
-     1024,  633,  621,  355,  625,  623,  660, 1024,  625,  658,
-      626,  611,  621,  623,  617,  626,  651,  627,  604, 1024,
-      620, 1024,  619,  606, 1024,  640,  618,  620,  642,  605,
-
-      600,  606,  600,  637,  600,  600,  594,  606,  605,  593,
-      592, 1024,  606,  589,  589,  384,  587,  602,  582,  596,
-      595,  581,  592,  579,  579, 1024,  583, 1024,  582,  578,
-      587,  577,  573,  611, 1024,  576,  572,  581,  584,  606,
-      570,  604,  564, 1024,  577,  601,  600,  563, 1024,  560,
-      557,  569,  590,  571,  570,  550,  567,  590,  589, 1024,
-      557,  363,  587,  562,  562,  549,  545,  559,  581,  549,
-      579,  547,  550,  549,  537,  539,  533, 1024,  545,  544,
-      530,  544, 1024,  545, 1024,  528,  534, 1024, 1024,  541,
-      524,  558,  562,  530,  521,  521,  535,  534, 1024, 1024,
-
-      530, 1024,  530, 1024,  531,  520,  512,  551,  550, 1024,
-      513, 1024,  508,  509,  507,  545,  267,  509,  543,  542,
-      510,  513,  505,  360,  511,  514,  536,  504, 1024,  508,
-      506,  501,  491,  491,  529,  492,  488,  526,  520, 1024,
-     1024,  489,  509,  501,  482, 1024,  446,  473,   73, 1024,
-     1024,  210,  380,  224, 1024,  215,  272,  278, 1024,  300,
-      328,  308,  321,  318,  323, 1024,  326,  342, 1024,  339,
-      332, 1024, 1024, 1024,  343, 1024,  347,  356, 1024,  355,
-      388,  390,  391,  361,  393, 1024,  389,  356,  360,  398,
-      371,  400,  379,  406,  381,  381,  412,  387, 1024, 1024,
-
-     1024,  378, 1024,  378,  416,  389, 1024,  394, 1024,  426,
-     1024,  400,  428, 1024,  429,  395,  393, 1024,  427,  404,
-     1024,  434, 1024, 1024,  430,  400,  406,  438, 1024,  402,
-      415,  415, 1024,  415,  416,  417,  407,  407,  412,  417,
-      410,  410,  415,  421,  422,  428,  420,  428,  457,  429,
-      428, 1024,  460,  434, 1024,  424,  424,  464, 1024, 1024,
-      470,  477,  484,  491,  498,  505,  509,  514,  516,  518,
-      520,  522
+        0,    0,   59,   62,   65,    0,   63,   67,   64,   66,
+     1078, 1079,   83, 1074,  125,    0,  174, 1079,  179,  185,
+       80,  192, 1079, 1056,   87,   79,   37,   66, 1079, 1079,
+       83,  156,  164, 1079, 1079, 1079,  110, 1062, 1026,    0,
+     1054,  118, 1069,  190,  218, 1079, 1022, 1027, 1020,  246,
+     1017, 1018,  178,  177,  164,  186,  190,  236, 1030,  207,
+      195,  242,  210,  252,  246, 1013,  248,    0,  293,  298,
+      309,  315,  320, 1079,    0, 1079,  326,  331,  202,  249,
+      180,  270,  302,  206, 1079, 1026, 1057, 1079,  220, 1079,
+     1008, 1045, 1022, 1017, 1052,    0,  347, 1006, 1007, 1004,
+
+     1010,  250,  998,  999,  312, 1013, 1006, 1006,  198,  998,
+      302,  989, 1035,  275,  992, 1033, 1007, 1004, 1004,  998,
+      986,  991,  980,  983,  982,  301,  983,  984,  982,  328,
+      322,  993,  994,  992,  976,  980,  976,  985,  978,  972,
+        0,  274,  311,  281,  327,  332,  319,  976, 1079,    0,
+     1010,  970,  977, 1012, 1079,  375,  981,  963,  977,  974,
+      973,  959, 1000,  974,  955,  962,  957,  967,  956,  968,
+      963,  958,  956,  947,  949,  962, 1079,  949,  956,  959,
+      942,  982,  941,  949,  952,  949,  935,  943,  936,  949,
+      932,  931,  936,  937,  941,  935,  929,  941,  936,  935,
+
+      919,  933,  927,  933,  922,  916,  928,  927,  915,  921,
+      912,  368, 1079, 1079,  369, 1079, 1079,  909,    0,  153,
+      379,  918,  403,  903,  949,  905,  910,  951,  905,  914,
+      948,  911,  908,  390,  945,  939,  899,  897,  896,  894,
+      423,  905,  905,  890,  891,  902,  900,  895,  902,  897,
+      893,  929,  923,  884,  878,  884,  874,  885,  369,  889,
+      878,  878,  874,  866,  867,  871,  881,  869,  879,  878,
+      877,  910,  909,  908,  907,  873,  867, 1079, 1079,  871,
+        0,  861,  854,  901,  900,  866,  856,  462,  897,  861,
+      857,  847, 1079,  850,  849, 1079,  851,  848,  856,  845,
+
+     1079,  855,  840,  841,  850,  878, 1079,  837,  851,  875,
+      879,  845,  839,  841,  842,  869,  831,  827,  826,  865,
+     1079,  823,  826,  820,  832,  822,  818, 1079,  863,  857,
+      819,  827,  826,  858,  852,  807,  810,  816,  806,  852,
+      804, 1079, 1079, 1079, 1079,  845,  806,  814,    0,  800,
+      815, 1079, 1079,  803,  808, 1079,  805,  795,  836,  800,
+      794,  804,  803,  803,  825,  794,  785,  787,  798,  790,
+      795,  787,  794, 1079,  781,  790,  794,  778,  789,  774,
+      768,  773,  786,  783,  811,  375,  768,  769,  766, 1079,
+      780,  771,  805,  804, 1079,  761,  777,  801,  758,  799,
+
+     1079,  416,  763,  760, 1079,  767,  758,  753,  798,  757,
+      791,  392,  790,  753,  744,  787,  749,  785,  751,  748,
+      749,  781,  747,  738,  749,  752,  747,  742,  747,  744,
+      747,  742,  775,  774,  733,  727,  738, 1079,  727,  735,
+      735,  767,  723,  713,  717,  716,  724,  714,  360,  708,
+       68, 1079,  759,  720,  757,  711,  721,  754, 1079,  719,
+      714,  711,  717,  703,  718,  713,  702,  699,  700,  709,
+      712,  695,  700,  708,  704,  737,  689,  689,  700,  699,
+      686,  684,  685, 1079, 1079,  691,  679,  397,  683,  681,
+      725, 1079,  683,  723,  684,  669,  679,  681,  675,  684,
+
+      716,  685,  662, 1079,  678, 1079,  677,  664, 1079,  705,
+      676,  678,  707,  663,  658,  664,  658,  702,  658,  658,
+      652,  664,  663,  651,  650, 1079,  664,  647,  647,  439,
+      645,  660,  640,  654,  653,  639,  650,  637,  637, 1079,
+      641, 1079,  640,  636,  645,  635,  631,  676, 1079,  634,
+      630,  639,  642,  671,  628,  669,  622, 1079,  635,  666,
+      665,  621, 1079,  618,  615,  627,  655,  629,  628,  608,
+      625,  655,  654, 1079,  615,  440,  652,  620,  620,  607,
+      603,  617,  646,  607,  644,  605,  608,  607,  595,  597,
+      591, 1079,  603,  602,  588,  602, 1079,  603, 1079,  586,
+
+      592, 1079, 1079,  599,  582,  623,  627,  588,  579,  579,
+      593,  592, 1079, 1079,  588, 1079,  588, 1079,  589,  578,
+      570,  616,  615, 1079,  571, 1079,  566,  567,  565,  610,
+      371,  567,  608,  607,  568,  571,  563,  414,  569,  572,
+      601,  562, 1079,  566,  564,  559,  549,  549,  594,  550,
+      546,  591,  585, 1079, 1079,  547,  588,  587,  586, 1079,
+      544,  584,  553, 1079, 1079,  541,  441,  547, 1079,  534,
+      532,  517, 1079,  523,  537,  489,  494,   79,  178, 1079,
+      215,  234, 1079,  249,  259, 1079, 1079, 1079,  270, 1079,
+      285,  327, 1079,  362,  401,  426,  429,  394,  442, 1079,
+
+      438,  401,  406,  450,  416,  452,  420,  454,  422,  422,
+      457,  425, 1079, 1079, 1079,  416, 1079,  416,  461,  420,
+     1079,  425, 1079,  464, 1079,  432,  467, 1079,  468,  431,
+      429, 1079,  470,  440, 1079,  482, 1079, 1079,  478,  441,
+      448,  487, 1079,  444,  457,  457, 1079,  457,  464,  465,
+      455,  455,  460,  465,  458,  458,  463,  469,  470,  476,
+      468,  476,  512,  477,  476, 1079,  515,  482, 1079,  472,
+      472,  519, 1079, 1079,  525,  532,  539,  546,  553,  560,
+      564,  569,  571,  573,  575,  577
     } ;
 
-static yyconst flex_int16_t yy_def[773] =
+static yyconst flex_int16_t yy_def[787] =
     {   0,
-      760,    1,  761,  761,    1,    5,    5,    5,    5,    5,
-      760,  760,  760,  760,  760,  762,  760,  760,  760,  760,
-      760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
-      760,  760,  760,  760,  760,  760,  763,  760,  760,  760,
-      764,   15,  760,   42,   42,   42,  765,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,  762,  760,  760,  760,  760,  760,
-      760,  766,  760,  760,  760,  760,  760,  760,  760,  760,
-      763,  760,  764,  760,  767,   42,   42,   42,  768,   42,
-      765,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,  766,  760,  760,  760,  760,  760,
-      769,   42,   42,   42,  768,  760,  765,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,  760,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-
-       42,   42,  760,  760,  760,  760,  770,   42,   42,   42,
-      765,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,  760,  771,   42,   42,   42,
-       42,   42,   42,  765,   42,   42,   42,   42,  760,   42,
-       42,  760,   42,   42,   42,   42,  760,   42,   42,   42,
-       42,   42,  760,   42,   42,   42,   42,   42,   42,   42,
-
-       42,   42,   42,   42,   42,   42,  760,   42,   42,   42,
-       42,   42,   42,  760,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,  760,  760,  760,
-      760,   42,   42,  760,  772,   42,   42,  760,  760,   42,
-       42,  760,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,  760,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,  760,   42,   42,   42,   42,
-      760,   42,   42,   42,   42,   42,  760,   42,   42,   42,
-      760,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,  760,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,  760,   42,   42,
-       42,   42,   42,   42,  760,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,  760,
-      760,   42,   42,   42,   42,   42,   42,  760,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,  760,
-       42,  760,   42,   42,  760,   42,   42,   42,   42,   42,
-
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,  760,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,  760,   42,  760,   42,   42,
-       42,   42,   42,   42,  760,   42,   42,   42,   42,   42,
-       42,   42,   42,  760,   42,   42,   42,   42,  760,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,  760,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,  760,   42,   42,
-       42,   42,  760,   42,  760,   42,   42,  760,  760,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,  760,  760,
-
-       42,  760,   42,  760,   42,   42,   42,   42,   42,  760,
-       42,  760,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,  760,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,  760,
-      760,   42,   42,   42,   42,  760,   42,   42,   42,  760,
-      760,   42,   42,   42,  760,   42,   42,   42,  760,   42,
-       42,   42,   42,   42,   42,  760,   42,   42,  760,   42,
-       42,  760,  760,  760,   42,  760,   42,   42,  760,   42,
-       42,   42,   42,   42,   42,  760,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,  760,  760,
-
-      760,   42,  760,   42,   42,   42,  760,   42,  760,   42,
-      760,   42,   42,  760,   42,   42,   42,  760,   42,   42,
-      760,   42,  760,  760,   42,   42,   42,   42,  760,   42,
-       42,   42,  760,   42,   42,   42,   42,   42,   42,   42,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       42,  760,   42,   42,  760,   42,   42,   42,  760,    0,
-      760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
-      760,  760
+      774,    1,  775,  775,    1,    5,    5,    5,    5,    5,
+      774,  774,  774,  774,  774,  776,  774,  774,  774,  774,
+      774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
+      774,  774,  774,  774,  774,  774,  774,  774,  774,  777,
+      774,  774,  774,  778,   15,  774,   45,   45,   45,  779,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,  776,  774,  774,
+      774,  774,  774,  774,  780,  774,  774,  774,  774,  774,
+      774,  774,  774,  774,  774,  774,  777,  774,  778,  774,
+      781,   45,   45,   45,  782,   45,  779,   45,   45,   45,
+
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+      780,  774,  774,  774,  774,  774,  774,  774,  774,  783,
+       45,   45,   45,  782,  774,  779,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,  774,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,  774,  774,  774,  774,  774,  774,  774,  784,   45,
+       45,   45,  779,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,  774,  774,  774,
+      785,   45,   45,   45,   45,   45,   45,  779,   45,   45,
+       45,   45,  774,   45,   45,  774,   45,   45,   45,   45,
+
+      774,   45,   45,   45,   45,   45,  774,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+      774,   45,   45,   45,   45,   45,   45,  774,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,  774,  774,  774,  774,   45,   45,  774,  786,   45,
+       45,  774,  774,   45,   45,  774,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,  774,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,  774,
+       45,   45,   45,   45,  774,   45,   45,   45,   45,   45,
+
+      774,   45,   45,   45,  774,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,  774,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,  774,   45,   45,   45,   45,   45,   45,  774,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,  774,  774,   45,   45,   45,   45,   45,
+       45,  774,   45,   45,   45,   45,   45,   45,   45,   45,
+
+       45,   45,   45,  774,   45,  774,   45,   45,  774,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,  774,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,  774,
+       45,  774,   45,   45,   45,   45,   45,   45,  774,   45,
+       45,   45,   45,   45,   45,   45,   45,  774,   45,   45,
+       45,   45,  774,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,  774,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,  774,   45,   45,   45,   45,  774,   45,  774,   45,
+
+       45,  774,  774,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,  774,  774,   45,  774,   45,  774,   45,   45,
+       45,   45,   45,  774,   45,  774,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,  774,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,  774,  774,   45,   45,   45,   45,  774,
+       45,   45,   45,  774,  774,   45,   45,   45,  774,   45,
+       45,   45,  774,   45,   45,   45,   45,   45,   45,  774,
+       45,   45,  774,   45,   45,  774,  774,  774,   45,  774,
+       45,   45,  774,   45,   45,   45,   45,   45,   45,  774,
+
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,  774,  774,  774,   45,  774,   45,   45,   45,
+      774,   45,  774,   45,  774,   45,   45,  774,   45,   45,
+       45,  774,   45,   45,  774,   45,  774,  774,   45,   45,
+       45,   45,  774,   45,   45,   45,  774,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,  774,   45,   45,  774,   45,
+       45,   45,  774,    0,  774,  774,  774,  774,  774,  774,
+      774,  774,  774,  774,  774,  774
     } ;
 
-static yyconst flex_uint16_t yy_nxt[1078] =
+static yyconst flex_uint16_t yy_nxt[1140] =
     {   0,
        12,   13,   14,   13,   12,   15,   16,   12,   17,   18,
        19,   20,   21,   22,   22,   22,   23,   24,   12,   12,
-       12,   12,   25,   12,   26,   12,   27,   12,   12,   12,
-       12,   12,   25,   28,   12,   12,   12,   12,   12,   12,
-       29,   12,   12,   12,   12,   30,   12,   12,   12,   12,
-       12,   31,   32,   34,   14,   34,   34,   14,   34,   35,
-       38,   37,   35,   12,   12,   37,   12,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   38,   12,   71,   39,
-       12,   39,   12,   72,   12,  116,   70,   70,   70,  117,
-       12,   12,   12,   12,   36,   68,   12,   39,   12,   39,
-
-       39,  677,   39,   12,  118,   68,  156,  157,  119,   12,
-       12,   41,   41,   41,   42,   42,   43,   42,   42,   42,
-       42,   42,   42,   42,   42,   44,   42,   42,   42,   42,
-       42,   42,   45,   42,   46,   42,   47,   42,   42,   48,
-       49,   50,   51,   52,   42,   42,   53,   54,   42,   55,
-       56,   57,   58,   59,   60,   61,   62,   63,   64,   42,
-       42,   42,   42,   42,   66,  488,   67,   67,   67,   66,
-      489,   69,   69,   69,   84,   68,   74,   84,   74,  102,
-       68,   75,   75,   75,   66,   68,   69,   69,   69,  103,
-       68,   94,  108,   95,   85,   68,   96,   85,  104,   97,
-
-       98,  109,  152,  110,   99,   68,   42,  100,  181,  182,
-      105,  153,  120,   42,  106,   42,  121,  107,  101,  168,
-       42,   42,   42,   42,   42,  122,  164,   42,   42,  165,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       90,  111,  112,  125,  123,  113,  169,   42,  124,  678,
-      114,  129,  126,  127,  133,  130,  681,  128,  134,  682,
-       42,   75,   75,   75,   42,   70,   70,   70,   42,  131,
-       70,   70,   70,  161,   68,   42,  448,  647,   42,   68,
-       42,   91,  449,   66,   68,   67,   67,   67,  162,   68,
-       74,  424,   74,  314,   68,   75,   75,   75,   66,  192,
-
-       69,   69,   69,  193,   68,   75,   75,   75,  285,   68,
-      268,  648,  286,  425,  186,  187,  188,  683,  269,   68,
-      147,  147,  147,  684,  189,  438,  190,  147,  147,  147,
-      191,  685,  315,  686,  439,  147,  147,  147,  147,  147,
-      147,  211,  211,  211,  270,  271,  485,  486,  211,  211,
-      211,  272,  687,  688,  689,  690,  211,  211,  211,  211,
-      211,  211,  274,  274,  274,  655,  691,  293,  602,  274,
-      274,  274,  294,  603,  692,  693,  694,  274,  274,  274,
-      274,  274,  274,  522,  695,  679,  696,  523,  697,  560,
-      680,  698,  656,  699,  561,  700,  701,  702,  703,  704,
-
-      705,  706,  295,  707,  708,  709,  296,   42,   42,   42,
-      710,  711,  712,  713,   42,   42,   42,  714,  715,  716,
-      717,  718,   42,   42,   42,   42,   42,   42,  562,  719,
-      720,  721,  722,  723,  724,  725,  726,  727,  728,  729,
-      730,  731,  732,  733,  734,  735,  736,  737,  738,  739,
-      740,  741,  742,  743,  744,  745,  746,  747,  748,  749,
-      750,  751,  752,  753,  754,  755,  756,  757,  758,  759,
-       33,   33,   33,   33,   33,   33,   33,   65,  676,   65,
-       65,   65,   65,   65,   81,  675,   81,  674,   81,   81,
-       81,   83,   83,   83,   83,   83,   83,   83,   89,   89,
-
-       89,   89,   89,   89,   89,  135,  673,  135,  135,  135,
-      135,  135,   83,   83,  672,   83,  145,  145,  145,  145,
-      145,  207,  207,  267,  267,  335,  335,   83,   83,  671,
-      670,  669,  668,  667,  666,  665,  664,  663,  662,  661,
-      660,  659,  658,  657,  654,  653,  652,  651,  650,  649,
-      646,  645,  644,  643,  642,  641,  640,  639,  638,  637,
-      636,  635,  634,  633,  632,  631,  630,  629,  628,  627,
-      626,  625,  624,  623,  622,  621,  620,  619,  618,  617,
-      616,  615,  614,  613,  612,  611,  610,  609,  608,  607,
-      606,  605,  604,  601,  600,  599,  598,  597,  596,  595,
-
-      594,  593,  592,  591,  590,  589,  588,  587,  586,  585,
-      584,  583,  582,  581,  580,  579,  578,  577,  576,  575,
-      574,  573,  572,  571,  570,  569,  568,  567,  566,  565,
-      564,  563,  559,  558,  557,  556,  555,  554,  553,  552,
-      551,  550,  549,  548,  547,  546,  545,  544,  543,  542,
-      541,  540,  539,  538,  537,  536,  535,  534,  533,  532,
-      531,  530,  529,  528,  527,  526,  525,  524,  521,  520,
-      519,  518,  517,  516,  515,  514,  513,  512,  511,  510,
-      509,  508,  507,  506,  505,  504,  503,  502,  501,  500,
-      499,  498,  497,  496,  495,  494,  493,  492,  491,  490,
-
-      487,  484,  483,  482,  481,  480,  479,  478,  477,  476,
-      475,  474,  473,  472,  471,  470,  469,  468,  467,  466,
-      465,  464,  463,  462,  461,  460,  459,  458,  457,  456,
-      455,  454,  453,  452,  451,  450,  447,  446,  445,  444,
-      443,  442,  441,  440,  437,  436,  435,  434,  433,  432,
-      431,  430,  429,  428,  427,  426,  423,  422,  421,  420,
-      419,  418,  417,  416,  415,  414,  413,  412,  411,  410,
-      409,  408,  407,  406,  405,  404,  403,  402,  401,  400,
-      399,  398,  397,  396,  395,  394,  393,  392,  391,  390,
-      389,  388,  387,  386,  385,  384,  383,  382,  381,  380,
-
-      379,  378,  377,  376,  375,  374,  373,  372,  371,  370,
-      369,  368,  367,  366,  365,  364,  363,  362,  361,  360,
-      359,  358,  357,  356,  355,  354,  353,  352,  351,  350,
-      349,  348,  347,  346,  345,  344,  343,  342,  341,  340,
-      339,  338,  337,  336,  334,  333,  332,  331,  330,  329,
-      328,  327,  326,  325,  324,  323,  322,  321,  320,  319,
-      318,  317,  316,  313,  312,  311,  310,  309,  308,  307,
-      306,  305,  304,  303,  302,  301,  300,  299,  298,  297,
-      292,  291,  290,  289,  288,  287,  284,  283,  282,  281,
-      280,  279,  278,  277,  276,  275,  273,  266,  205,  265,
-
-      264,  263,  262,  261,  260,  259,  258,  257,  256,  255,
-      254,  253,  252,  251,  250,  249,  248,  247,  246,  245,
-      244,  243,  242,  241,  240,  239,  238,  237,  236,  235,
-      234,  233,  232,  231,  230,  229,  228,  227,  226,  225,
-      224,  223,  222,  221,  220,  219,  218,  217,  216,  215,
-      214,  213,  212,  146,  210,  209,  208,  206,  205,  204,
-      203,  202,  201,  200,  199,  198,  197,  196,  195,  194,
-      185,  184,  183,  180,  179,  178,  177,  176,  175,  174,
-      173,  172,  171,  170,  167,  166,  163,  160,  159,  158,
-      155,  154,  151,  150,  149,  148,  146,  144,  143,  142,
-
-      141,  140,  139,  138,  137,  136,  132,  115,   93,   92,
-       88,   87,   86,   40,   82,   80,   79,   78,   77,   76,
-       73,   40,  760,   11,  760,  760,  760,  760,  760,  760,
-      760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
-      760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
-      760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
-      760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
-      760,  760,  760,  760,  760,  760,  760
+       12,   12,   12,   25,   26,   12,   27,   12,   12,   28,
+       12,   29,   12,   30,   12,   12,   12,   12,   12,   25,
+       31,   12,   12,   12,   12,   12,   12,   32,   12,   12,
+       12,   12,   33,   12,   12,   12,   12,   12,   34,   35,
+       37,   14,   37,   37,   14,   37,   38,   80,   40,   38,
+       12,   12,   40,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   41,   42,   41,   42,   74,   12,   12,
+       80,   12,   75,   81,   12,   77,   12,   77,   12,   79,
+
+       78,   78,   78,   79,   12,   12,   12,   12,   39,   12,
+       12,   42,   12,   42,   79,  502,   81,   12,   82,   42,
+      503,   42,  703,   12,   12,   44,   44,   44,   45,   45,
+       46,   45,   45,   45,   45,   45,   45,   45,   45,   47,
+       45,   45,   45,   45,   45,   45,   45,   48,   45,   45,
+       49,   45,   45,   45,   45,   45,   45,   50,   45,   45,
+       51,   52,   53,   54,   55,   45,   45,   56,   57,   45,
+       58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
+       45,   45,   45,   45,   45,   69,   80,   70,   70,   70,
+       69,   81,   72,   72,   72,   90,  282,   71,   73,   73,
+
+       73,  108,   71,   69,  283,   72,   72,   72,   71,   83,
+      144,  109,  104,   71,   84,   71,  105,  704,   71,  106,
+      110,  100,   91,  101,   71,   90,  102,  142,  114,  103,
+      107,   71,   45,  144,  111,  170,  144,  115,  112,  116,
+       45,  113,  122,   45,  124,  129,  123,  142,  125,  130,
+      171,   96,   91,   45,   45,   45,   45,   45,   45,  147,
+       45,   45,  705,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,  706,  143,  117,  118,  126,   45,  119,
+      177,  127,   45,  139,  120,  135,   45,  140,  161,  136,
+      128,  131,  707,   45,  143,  142,   45,  162,   45,   97,
+
+      132,  133,  212,  137,  214,  134,   73,   73,   73,   69,
+      708,   70,   70,   70,  178,  145,   71,   77,  709,   77,
+      214,   71,   78,   78,   78,  212,   69,  143,   72,   72,
+       72,  710,   71,   73,   73,   73,  213,   71,   71,   78,
+       78,   78,  214,   71,   78,   78,   78,  146,  165,  166,
+      173,  190,  191,  174,   71,  212,  213,  213,  217,   71,
+      156,  156,  156,  195,  196,  197,  711,  156,  156,  156,
+      156,  156,  201,  198,  328,  199,  202,  216,  215,  200,
+      438,  661,  156,  156,  156,  156,  156,  156,  223,  223,
+      223,  278,  278,  284,  285,  223,  223,  223,  223,  223,
+
+      299,  286,  499,  500,  300,  712,  713,  278,  279,  439,
+      223,  223,  223,  223,  223,  223,  288,  288,  288,  669,
+      329,  452,  662,  288,  288,  288,  288,  288,  307,  462,
+      453,  714,  536,  308,  715,  463,  537,  716,  288,  288,
+      288,  288,  288,  288,  574,  616,  693,  717,  718,  575,
+      617,  694,  719,  670,  720,  721,  722,  723,  724,  725,
+      726,  727,  728,  729,  730,  731,  732,  733,  734,  735,
+      309,  736,  737,  738,  310,   45,   45,   45,  739,  740,
+      741,  742,   45,   45,   45,   45,   45,  743,  744,  745,
+      576,  746,  747,  748,  749,  750,  751,   45,   45,   45,
+
+       45,   45,   45,  752,  753,  754,  755,  756,  757,  758,
+      759,  760,  761,  762,  763,  764,  765,  766,  767,  768,
+      769,  770,  771,  772,  773,   36,   36,   36,   36,   36,
+       36,   36,   68,  702,   68,   68,   68,   68,   68,   87,
+      701,   87,  700,   87,   87,   87,   89,   89,   89,   89,
+       89,   89,   89,   95,   95,   95,   95,   95,   95,   95,
+      141,  699,  141,  141,  141,  141,  141,   89,   89,  698,
+       89,  154,  154,  154,  154,  154,  219,  219,  281,  281,
+      349,  349,   89,   89,  697,  696,  695,  692,  691,  690,
+      689,  688,  687,  686,  685,  684,  683,  682,  681,  680,
+
+      679,  678,  677,  676,  675,  674,  673,  672,  671,  668,
+      667,  666,  665,  664,  663,  660,  659,  658,  657,  656,
+      655,  654,  653,  652,  651,  650,  649,  648,  647,  646,
+      645,  644,  643,  642,  641,  640,  639,  638,  637,  636,
+      635,  634,  633,  632,  631,  630,  629,  628,  627,  626,
+      625,  624,  623,  622,  621,  620,  619,  618,  615,  614,
+      613,  612,  611,  610,  609,  608,  607,  606,  605,  604,
+      603,  602,  601,  600,  599,  598,  597,  596,  595,  594,
+      593,  592,  591,  590,  589,  588,  587,  586,  585,  584,
+      583,  582,  581,  580,  579,  578,  577,  573,  572,  571,
+
+      570,  569,  568,  567,  566,  565,  564,  563,  562,  561,
+      560,  559,  558,  557,  556,  555,  554,  553,  552,  551,
+      550,  549,  548,  547,  546,  545,  544,  543,  542,  541,
+      540,  539,  538,  535,  534,  533,  532,  531,  530,  529,
+      528,  527,  526,  525,  524,  523,  522,  521,  520,  519,
+      518,  517,  516,  515,  514,  513,  512,  511,  510,  509,
+      508,  507,  506,  505,  504,  501,  498,  497,  496,  495,
+      494,  493,  492,  491,  490,  489,  488,  487,  486,  485,
+      484,  483,  482,  481,  480,  479,  478,  477,  476,  475,
+      474,  473,  472,  471,  470,  469,  468,  467,  466,  465,
+
+      464,  461,  460,  459,  458,  457,  456,  455,  454,  451,
+      450,  449,  448,  447,  446,  445,  444,  443,  442,  441,
+      440,  437,  436,  435,  434,  433,  432,  431,  430,  429,
+      428,  427,  426,  425,  424,  423,  422,  421,  420,  419,
+      418,  417,  416,  415,  414,  413,  412,  411,  410,  409,
+      408,  407,  406,  405,  404,  403,  402,  401,  400,  399,
+      398,  397,  396,  395,  394,  393,  392,  391,  390,  389,
+      388,  387,  386,  385,  384,  383,  382,  381,  380,  379,
+      378,  377,  376,  375,  374,  373,  372,  371,  370,  369,
+      368,  367,  366,  365,  364,  363,  362,  361,  360,  359,
+
+      358,  357,  356,  355,  354,  353,  352,  351,  350,  348,
+      347,  346,  345,  344,  343,  342,  341,  340,  339,  338,
+      337,  336,  335,  334,  333,  332,  331,  330,  327,  326,
+      325,  324,  323,  322,  321,  320,  319,  318,  317,  316,
+      315,  314,  313,  312,  311,  306,  305,  304,  303,  302,
+      301,  298,  297,  296,  295,  294,  293,  292,  291,  290,
+      289,  287,  280,  277,  276,  275,  274,  273,  272,  271,
+      270,  269,  268,  267,  266,  265,  264,  263,  262,  261,
+      260,  259,  258,  257,  256,  255,  254,  253,  252,  251,
+      250,  249,  248,  247,  246,  245,  244,  243,  242,  241,
+
+      240,  239,  238,  237,  236,  235,  234,  233,  232,  231,
+      230,  229,  228,  227,  226,  225,  224,  155,  222,  221,
+      220,  218,  211,  210,  209,  208,  207,  206,  205,  204,
+      203,  194,  193,  192,  189,  188,  187,  186,  185,  184,
+      183,  182,  181,  180,  179,  176,  175,  172,  169,  168,
+      167,  164,  163,  160,  159,  158,  157,  155,  153,  152,
+      151,  150,  149,  148,  138,  121,   99,   98,   94,   93,
+       92,   43,   88,   86,   85,   76,   43,  774,   11,  774,
+      774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
+      774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
+
+      774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
+      774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
+      774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
+      774,  774,  774,  774,  774,  774,  774,  774,  774
     } ;
 
-static yyconst flex_int16_t yy_chk[1078] =
+static yyconst flex_int16_t yy_chk[1140] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    3,    3,    3,    4,    4,    4,    3,
-        9,    7,    4,    5,    5,    8,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,   10,    9,   21,   13,
-        5,   13,    5,   21,    5,   57,   20,   20,   20,   57,
-        5,    5,    7,   10,    5,   20,    8,   34,    5,   34,
-
-       39,  649,   39,    5,   58,   20,   99,   99,   58,    5,
-        5,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        3,    3,    3,    4,    4,    4,    3,   27,    7,    4,
+        5,    5,    8,    5,    5,    5,    5,    5,    5,    5,
+        5,    5,    5,    9,   13,   10,   13,   21,    5,    5,
+       27,    5,   21,   28,    5,   25,    5,   25,    5,   26,
+
+       25,   25,   25,   31,    5,    5,    7,    9,    5,   10,
+        8,   37,    5,   37,   26,  451,   28,    5,   31,   42,
+      451,   42,  678,    5,    5,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
-       15,   15,   15,   15,   17,  437,   17,   17,   17,   19,
-      437,   19,   19,   19,   41,   17,   25,   83,   25,   52,
-       19,   25,   25,   25,   22,   17,   22,   22,   22,   52,
-       19,   50,   54,   50,   41,   22,   50,   83,   52,   50,
-
-       51,   54,   96,   54,   51,   22,   42,   51,  120,  120,
-       53,   96,   59,   42,   53,   42,   59,   53,   51,  108,
-       42,   42,   42,   42,   42,   59,  105,   42,   42,  105,
-       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
-       47,   55,   55,   61,   60,   55,  108,   47,   60,  652,
-       55,   62,   61,   61,   64,   62,  654,   61,   64,  656,
-       47,   74,   74,   74,   47,   66,   66,   66,   47,   62,
-       70,   70,   70,  103,   66,   47,  398,  617,   47,   70,
-       47,   47,  398,   67,   66,   67,   67,   67,  103,   70,
-       68,  372,   68,  247,   67,   68,   68,   68,   69,  125,
-
-       69,   69,   69,  125,   67,   75,   75,   75,  222,   69,
-      208,  617,  222,  372,  124,  124,  124,  657,  208,   69,
-       91,   91,   91,  658,  124,  388,  124,   91,   91,   91,
-      124,  660,  247,  661,  388,   91,   91,   91,   91,   91,
-       91,  147,  147,  147,  209,  209,  435,  435,  147,  147,
-      147,  209,  662,  663,  664,  665,  147,  147,  147,  147,
-      147,  147,  211,  211,  211,  624,  667,  229,  562,  211,
-      211,  211,  229,  562,  668,  670,  671,  211,  211,  211,
-      211,  211,  211,  474,  675,  653,  677,  474,  678,  516,
-      653,  680,  624,  681,  516,  682,  683,  684,  685,  687,
-
-      688,  689,  229,  690,  691,  692,  229,  274,  274,  274,
-      693,  694,  695,  696,  274,  274,  274,  697,  698,  702,
-      704,  705,  274,  274,  274,  274,  274,  274,  516,  706,
-      708,  710,  712,  713,  715,  716,  717,  719,  720,  722,
-      725,  726,  727,  728,  730,  731,  732,  734,  735,  736,
-      737,  738,  739,  740,  741,  742,  743,  744,  745,  746,
-      747,  748,  749,  750,  751,  753,  754,  756,  757,  758,
-      761,  761,  761,  761,  761,  761,  761,  762,  648,  762,
-      762,  762,  762,  762,  763,  647,  763,  645,  763,  763,
-      763,  764,  764,  764,  764,  764,  764,  764,  765,  765,
-
-      765,  765,  765,  765,  765,  766,  644,  766,  766,  766,
-      766,  766,  767,  767,  643,  767,  768,  768,  768,  768,
-      768,  769,  769,  770,  770,  771,  771,  772,  772,  642,
-      639,  638,  637,  636,  635,  634,  633,  632,  631,  630,
-      628,  627,  626,  625,  623,  622,  621,  620,  619,  618,
-      616,  615,  614,  613,  611,  609,  608,  607,  606,  605,
-      603,  601,  598,  597,  596,  595,  594,  593,  592,  591,
-      590,  587,  586,  584,  582,  581,  580,  579,  577,  576,
-      575,  574,  573,  572,  571,  570,  569,  568,  567,  566,
-      565,  564,  563,  561,  559,  558,  557,  556,  555,  554,
-
-      553,  552,  551,  550,  548,  547,  546,  545,  543,  542,
-      541,  540,  539,  538,  537,  536,  534,  533,  532,  531,
-      530,  529,  527,  525,  524,  523,  522,  521,  520,  519,
-      518,  517,  515,  514,  513,  511,  510,  509,  508,  507,
-      506,  505,  504,  503,  502,  501,  500,  499,  498,  497,
-      496,  494,  493,  491,  489,  488,  487,  486,  485,  484,
-      483,  482,  481,  480,  479,  477,  476,  475,  473,  472,
-      469,  468,  467,  466,  465,  464,  463,  462,  461,  460,
-      459,  458,  457,  456,  455,  454,  453,  452,  451,  450,
-      449,  448,  447,  446,  444,  443,  442,  441,  440,  439,
-
-      436,  434,  433,  432,  431,  430,  429,  428,  427,  426,
-      425,  423,  422,  421,  420,  419,  418,  417,  416,  415,
-      414,  413,  412,  411,  410,  409,  408,  407,  406,  405,
-      404,  403,  402,  401,  400,  399,  397,  396,  395,  394,
-      393,  392,  390,  389,  386,  385,  384,  383,  382,  380,
-      379,  378,  377,  375,  374,  373,  371,  370,  369,  368,
-      367,  366,  365,  364,  363,  362,  361,  359,  358,  357,
-      356,  355,  354,  353,  352,  351,  350,  349,  348,  347,
-      346,  345,  344,  343,  341,  340,  337,  336,  334,  333,
-      332,  327,  326,  325,  324,  323,  322,  321,  320,  319,
-
-      318,  317,  316,  315,  313,  312,  311,  310,  309,  308,
-      306,  305,  304,  303,  302,  301,  300,  299,  298,  297,
-      296,  295,  294,  292,  291,  290,  289,  288,  286,  285,
-      284,  283,  281,  280,  278,  277,  276,  275,  273,  272,
-      271,  270,  269,  268,  266,  265,  264,  263,  262,  261,
-      260,  259,  258,  257,  256,  255,  254,  253,  252,  251,
-      250,  249,  248,  246,  245,  244,  243,  242,  241,  240,
-      239,  238,  237,  236,  235,  234,  233,  232,  231,  230,
-      228,  227,  226,  225,  224,  223,  221,  220,  219,  218,
-      217,  216,  215,  214,  213,  212,  210,  206,  203,  202,
-
-      201,  200,  199,  198,  197,  196,  195,  194,  193,  192,
-      191,  190,  189,  188,  187,  186,  185,  184,  183,  182,
-      181,  180,  179,  178,  177,  176,  175,  174,  173,  172,
-      171,  170,  169,  167,  166,  165,  164,  163,  162,  161,
-      160,  159,  158,  157,  156,  155,  154,  153,  152,  151,
-      150,  149,  148,  145,  144,  143,  142,  139,  138,  137,
-      136,  134,  133,  132,  131,  130,  129,  128,  127,  126,
-      123,  122,  121,  119,  118,  117,  116,  115,  114,  113,
-      112,  111,  110,  109,  107,  106,  104,  102,  101,  100,
-       98,   97,   95,   94,   93,   92,   89,   88,   87,   86,
-
-       85,   81,   80,   78,   77,   76,   63,   56,   49,   48,
-       46,   45,   44,   40,   38,   36,   35,   30,   29,   28,
-       24,   14,   11,  760,  760,  760,  760,  760,  760,  760,
-      760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
-      760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
-      760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
-      760,  760,  760,  760,  760,  760,  760,  760,  760,  760,
-      760,  760,  760,  760,  760,  760,  760
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   17,   32,   17,   17,   17,
+       19,   33,   19,   19,   19,   44,  220,   17,   20,   20,
+
+       20,   55,   19,   22,  220,   22,   22,   22,   20,   32,
+       81,   55,   54,   17,   33,   22,   54,  679,   19,   54,
+       55,   53,   44,   53,   20,   89,   53,   79,   57,   53,
+       54,   22,   45,   81,   56,  109,   84,   57,   56,   57,
+       45,   56,   60,   45,   61,   63,   60,   79,   61,   63,
+      109,   50,   89,   45,   45,   45,   45,   45,   50,   84,
+       45,   45,  681,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,  682,   80,   58,   58,   62,   50,   58,
+      114,   62,   50,   67,   58,   65,   50,   67,  102,   65,
+       62,   64,  684,   50,   80,   82,   50,  102,   50,   50,
+
+       64,   64,  142,   65,  144,   64,   69,   69,   69,   70,
+      685,   70,   70,   70,  114,   82,   69,   71,  689,   71,
+      144,   70,   71,   71,   71,  142,   72,   83,   72,   72,
+       72,  691,   69,   73,   73,   73,  143,   70,   72,   77,
+       77,   77,  147,   73,   78,   78,   78,   83,  105,  105,
+      111,  126,  126,  111,   72,  145,  143,  146,  147,   73,
+       97,   97,   97,  130,  130,  130,  692,   97,   97,   97,
+       97,   97,  131,  130,  259,  130,  131,  146,  145,  130,
+      386,  631,   97,   97,   97,   97,   97,   97,  156,  156,
+      156,  212,  215,  221,  221,  156,  156,  156,  156,  156,
+
+      234,  221,  449,  449,  234,  694,  695,  212,  215,  386,
+      156,  156,  156,  156,  156,  156,  223,  223,  223,  638,
+      259,  402,  631,  223,  223,  223,  223,  223,  241,  412,
+      402,  696,  488,  241,  697,  412,  488,  698,  223,  223,
+      223,  223,  223,  223,  530,  576,  667,  699,  701,  530,
+      576,  667,  702,  638,  703,  704,  705,  706,  707,  708,
+      709,  710,  711,  712,  716,  718,  719,  720,  722,  724,
+      241,  726,  727,  729,  241,  288,  288,  288,  730,  731,
+      733,  734,  288,  288,  288,  288,  288,  736,  739,  740,
+      530,  741,  742,  744,  745,  746,  748,  288,  288,  288,
+
+      288,  288,  288,  749,  750,  751,  752,  753,  754,  755,
+      756,  757,  758,  759,  760,  761,  762,  763,  764,  765,
+      767,  768,  770,  771,  772,  775,  775,  775,  775,  775,
+      775,  775,  776,  677,  776,  776,  776,  776,  776,  777,
+      676,  777,  675,  777,  777,  777,  778,  778,  778,  778,
+      778,  778,  778,  779,  779,  779,  779,  779,  779,  779,
+      780,  674,  780,  780,  780,  780,  780,  781,  781,  672,
+      781,  782,  782,  782,  782,  782,  783,  783,  784,  784,
+      785,  785,  786,  786,  671,  670,  668,  666,  663,  662,
+      661,  659,  658,  657,  656,  653,  652,  651,  650,  649,
+
+      648,  647,  646,  645,  644,  642,  641,  640,  639,  637,
+      636,  635,  634,  633,  632,  630,  629,  628,  627,  625,
+      623,  622,  621,  620,  619,  617,  615,  612,  611,  610,
+      609,  608,  607,  606,  605,  604,  601,  600,  598,  596,
+      595,  594,  593,  591,  590,  589,  588,  587,  586,  585,
+      584,  583,  582,  581,  580,  579,  578,  577,  575,  573,
+      572,  571,  570,  569,  568,  567,  566,  565,  564,  562,
+      561,  560,  559,  557,  556,  555,  554,  553,  552,  551,
+      550,  548,  547,  546,  545,  544,  543,  541,  539,  538,
+      537,  536,  535,  534,  533,  532,  531,  529,  528,  527,
+
+      525,  524,  523,  522,  521,  520,  519,  518,  517,  516,
+      515,  514,  513,  512,  511,  510,  508,  507,  505,  503,
+      502,  501,  500,  499,  498,  497,  496,  495,  494,  493,
+      491,  490,  489,  487,  486,  483,  482,  481,  480,  479,
+      478,  477,  476,  475,  474,  473,  472,  471,  470,  469,
+      468,  467,  466,  465,  464,  463,  462,  461,  460,  458,
+      457,  456,  455,  454,  453,  450,  448,  447,  446,  445,
+      444,  443,  442,  441,  440,  439,  437,  436,  435,  434,
+      433,  432,  431,  430,  429,  428,  427,  426,  425,  424,
+      423,  422,  421,  420,  419,  418,  417,  416,  415,  414,
+
+      413,  411,  410,  409,  408,  407,  406,  404,  403,  400,
+      399,  398,  397,  396,  394,  393,  392,  391,  389,  388,
+      387,  385,  384,  383,  382,  381,  380,  379,  378,  377,
+      376,  375,  373,  372,  371,  370,  369,  368,  367,  366,
+      365,  364,  363,  362,  361,  360,  359,  358,  357,  355,
+      354,  351,  350,  348,  347,  346,  341,  340,  339,  338,
+      337,  336,  335,  334,  333,  332,  331,  330,  329,  327,
+      326,  325,  324,  323,  322,  320,  319,  318,  317,  316,
+      315,  314,  313,  312,  311,  310,  309,  308,  306,  305,
+      304,  303,  302,  300,  299,  298,  297,  295,  294,  292,
+
+      291,  290,  289,  287,  286,  285,  284,  283,  282,  280,
+      277,  276,  275,  274,  273,  272,  271,  270,  269,  268,
+      267,  266,  265,  264,  263,  262,  261,  260,  258,  257,
+      256,  255,  254,  253,  252,  251,  250,  249,  248,  247,
+      246,  245,  244,  243,  242,  240,  239,  238,  237,  236,
+      235,  233,  232,  231,  230,  229,  228,  227,  226,  225,
+      224,  222,  218,  211,  210,  209,  208,  207,  206,  205,
+      204,  203,  202,  201,  200,  199,  198,  197,  196,  195,
+      194,  193,  192,  191,  190,  189,  188,  187,  186,  185,
+      184,  183,  182,  181,  180,  179,  178,  176,  175,  174,
+
+      173,  172,  171,  170,  169,  168,  167,  166,  165,  164,
+      163,  162,  161,  160,  159,  158,  157,  154,  153,  152,
+      151,  148,  140,  139,  138,  137,  136,  135,  134,  133,
+      132,  129,  128,  127,  125,  124,  123,  122,  121,  120,
+      119,  118,  117,  116,  115,  113,  112,  110,  108,  107,
+      106,  104,  103,  101,  100,   99,   98,   95,   94,   93,
+       92,   91,   87,   86,   66,   59,   52,   51,   49,   48,
+       47,   43,   41,   39,   38,   24,   14,   11,  774,  774,
+      774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
+      774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
+
+      774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
+      774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
+      774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
+      774,  774,  774,  774,  774,  774,  774,  774,  774
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1033,7 +1063,7 @@ static char *yy_last_accepting_cpos;
 extern int parser4__flex_debug;
 int parser4__flex_debug = 1;
 
-static yyconst flex_int16_t yy_rule_linenum[105] =
+static yyconst flex_int16_t yy_rule_linenum[108] =
     {   0,
       128,  130,  132,  137,  138,  143,  144,  145,  157,  160,
       165,  172,  181,  190,  199,  208,  217,  226,  238,  248,
@@ -1044,9 +1074,9 @@ static yyconst flex_int16_t yy_rule_linenum[105] =
       645,  654,  663,  672,  682,  692,  701,  710,  719,  728,
       737,  746,  755,  764,  773,  782,  791,  800,  809,  818,
       827,  836,  845,  854,  863,  873,  883,  895,  906,  919,
-      982,  987,  992,  997,  998,  999, 1000, 1001, 1002, 1004,
+     1017, 1022, 1027, 1032, 1033, 1034, 1035, 1036, 1037, 1039,
 
-     1022, 1035, 1040, 1044
+     1057, 1070, 1075, 1079, 1081, 1083, 1085
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -1057,13 +1087,11 @@ static yyconst flex_int16_t yy_rule_linenum[105] =
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
 char *parser4_text;
-#line 1 "dhcp4_lexer.ll"
 /* Copyright (C) 2016 Internet Systems Consortium, Inc. ("ISC")
 
    This Source Code Form is subject to the terms of the Mozilla Public
    License, v. 2.0. If a copy of the MPL was not distributed with this
    file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-#line 8 "dhcp4_lexer.ll"
 #include <cerrno>
 #include <climits>
 #include <cstdlib>
@@ -1107,17 +1135,14 @@ unsigned int comment_start_line = 0;
    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 86 "dhcp4_lexer.ll"
 // This code run each time a pattern is matched. It updates the location
 // 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(parser4_leng);
-#line 1121 "dhcp4_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -1173,7 +1198,7 @@ FILE *parser4_get_out (void );
 
 void parser4_set_out  (FILE * _out_str  );
 
-                       int parser4_get_leng (void );
+yy_size_t parser4_get_leng (void );
 
 char *parser4_get_text (void );
 
@@ -1247,7 +1272,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( parser4_text, (size_t) parser4_leng, 1, parser4_out )) {} } while (0)
+#define ECHO do { if (fwrite( parser4_text, parser4_leng, 1, parser4_out )) {} } while (0)
 /* %endif */
 /* %if-c++-only C++ definition */
 /* %endif */
@@ -1275,7 +1300,7 @@ static int input (void );
        else \
                { \
                errno=0; \
-               while ( (result = (int) fread(buf, 1, max_size, parser4_in))==0 && ferror(parser4_in)) \
+               while ( (result = fread(buf, 1, max_size, parser4_in))==0 && ferror(parser4_in)) \
                        { \
                        if( errno != EINTR) \
                                { \
@@ -1404,9 +1429,6 @@ YY_DECL
 
        {
 /* %% [7.0] user's declarations go here */
-#line 92 "dhcp4_lexer.ll"
-
-
 
     // This part of the code is copied over to the verbatim to the top
     // of the generated parser4_lex function. Explanation:
@@ -1440,9 +1462,6 @@ YY_DECL
         }
     }
 
-
-#line 1445 "dhcp4_lexer.cc"
-
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
 /* %% [8.0] yymore()-related code goes here */
@@ -1470,13 +1489,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 761 )
+                               if ( yy_current_state >= 775 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
-                       yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
+                       yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 760 );
+               while ( yy_current_state != 774 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
 
@@ -1495,13 +1514,13 @@ do_action:      /* This label is used only to access EOF actions. */
                        {
                        if ( yy_act == 0 )
                                fprintf( stderr, "--scanner backing up\n" );
-                       else if ( yy_act < 105 )
+                       else if ( yy_act < 108 )
                                fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
                                         (long)yy_rule_linenum[yy_act], parser4_text );
-                       else if ( yy_act == 105 )
+                       else if ( yy_act == 108 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
                                         parser4_text );
-                       else if ( yy_act == 106 )
+                       else if ( yy_act == 109 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
                                fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -1519,17 +1538,14 @@ do_action:      /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 128 "dhcp4_lexer.ll"
 ;
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 130 "dhcp4_lexer.ll"
 ;
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 132 "dhcp4_lexer.ll"
 {
   BEGIN(COMMENT);
   comment_start_line = driver.loc_.end.line;;
@@ -1537,33 +1553,27 @@ YY_RULE_SETUP
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 137 "dhcp4_lexer.ll"
 BEGIN(INITIAL);
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 138 "dhcp4_lexer.ll"
 ;
        YY_BREAK
 case YY_STATE_EOF(COMMENT):
-#line 139 "dhcp4_lexer.ll"
 {
     isc_throw(Dhcp4ParseError, "Comment not closed. (/* in line " << comment_start_line);
 }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 143 "dhcp4_lexer.ll"
 BEGIN(DIR_ENTER);
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 144 "dhcp4_lexer.ll"
 BEGIN(DIR_INCLUDE);
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 145 "dhcp4_lexer.ll"
 {
     // Include directive.
 
@@ -1577,19 +1587,16 @@ YY_RULE_SETUP
 case YY_STATE_EOF(DIR_ENTER):
 case YY_STATE_EOF(DIR_INCLUDE):
 case YY_STATE_EOF(DIR_EXIT):
-#line 154 "dhcp4_lexer.ll"
 {
     isc_throw(Dhcp4ParseError, "Directive not closed.");
 }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 157 "dhcp4_lexer.ll"
 BEGIN(INITIAL);
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 160 "dhcp4_lexer.ll"
 {
     // Ok, we found a with space. Let's ignore it and update loc variable.
     driver.loc_.step();
@@ -1598,7 +1605,6 @@ YY_RULE_SETUP
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-#line 165 "dhcp4_lexer.ll"
 {
     // Newline found. Let's update the location and continue.
     driver.loc_.lines(parser4_leng);
@@ -1607,7 +1613,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 172 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -1619,7 +1624,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 181 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -1631,7 +1635,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 190 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
@@ -1643,7 +1646,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 199 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -1655,7 +1657,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 208 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -1667,7 +1668,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 217 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOSTS_DATABASE:
@@ -1679,7 +1679,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 226 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -1694,7 +1693,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 238 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -1707,7 +1705,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 248 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -1720,7 +1717,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 258 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -1733,7 +1729,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 268 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -1747,7 +1742,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 279 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -1760,7 +1754,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 289 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -1773,7 +1766,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 299 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -1786,7 +1778,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 309 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -1799,7 +1790,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 319 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -1811,7 +1801,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 328 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -1823,7 +1812,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 337 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -1835,7 +1823,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 346 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -1852,7 +1839,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 360 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -1870,7 +1856,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 375 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -1882,7 +1867,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 384 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -1894,7 +1878,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 393 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::POOLS:
@@ -1906,7 +1889,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 402 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -1918,7 +1900,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 411 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -1930,7 +1911,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 420 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -1942,7 +1922,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 429 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -1954,7 +1933,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 438 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -1966,7 +1944,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 447 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -1978,7 +1955,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 456 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -1991,7 +1967,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 466 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2003,7 +1978,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 475 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -2015,7 +1989,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 484 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGING:
@@ -2027,7 +2000,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 493 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -2039,7 +2011,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 502 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -2051,7 +2022,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 511 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -2063,7 +2033,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 520 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -2075,7 +2044,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 529 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2088,7 +2056,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 539 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2101,7 +2068,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 549 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -2114,7 +2080,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 559 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2126,7 +2091,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 568 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -2139,7 +2103,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 578 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -2152,7 +2115,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 588 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -2165,7 +2127,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 598 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -2178,7 +2139,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 608 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATIONS:
@@ -2190,7 +2150,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 617 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -2203,7 +2162,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 627 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -2215,7 +2173,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 636 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -2227,7 +2184,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 645 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -2239,7 +2195,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 654 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -2251,7 +2206,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 663 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2263,7 +2217,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 672 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -2276,7 +2229,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 682 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2288,7 +2240,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 692 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -2300,7 +2251,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 701 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -2312,7 +2262,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 710 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2324,7 +2273,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 719 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SERVER_ID:
@@ -2336,7 +2284,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 728 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SERVER_ID:
@@ -2348,7 +2295,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 737 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SERVER_ID:
@@ -2360,7 +2306,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 746 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SERVER_ID:
@@ -2372,7 +2317,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 755 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2384,7 +2328,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 764 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2396,7 +2339,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 773 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2408,7 +2350,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 782 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2420,7 +2361,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 791 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -2432,7 +2372,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 800 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -2444,7 +2383,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 809 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2456,7 +2394,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 818 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -2468,7 +2405,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 827 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -2480,7 +2416,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 836 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2492,7 +2427,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 845 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2504,7 +2438,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 854 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2516,7 +2449,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 863 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2529,7 +2461,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 873 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2542,7 +2473,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 883 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2557,7 +2487,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 895 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2571,7 +2500,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 906 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2585,7 +2513,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 919 "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.
@@ -2596,6 +2523,7 @@ YY_RULE_SETUP
     std::string decoded;
     decoded.reserve(len);
     for (size_t pos = 0; pos < len; ++pos) {
+        int b = 0;
         char c = raw[pos];
         switch (c) {
         case '"':
@@ -2630,8 +2558,42 @@ YY_RULE_SETUP
                 decoded.push_back('\t');
                 break;
             case 'u':
-                // not yet implemented
-                driver.error(driver.loc_, "Unsupported unicode escape in \"" + raw + "\"");
+                // support only \u0000 to \u00ff
+                ++pos;
+                if (pos + 4 > len) {
+                    // impossible condition
+                    driver.error(driver.loc_,
+                                 "Overflow unicode escape in \"" + raw + "\"");
+                }
+                if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
+                    driver.error(driver.loc_, "Unsupported unicode escape in \"" + raw + "\"");
+                }
+                pos += 2;
+                c = raw[pos];
+                if ((c >= '0') && (c <= '9')) {
+                    b = (c - '0') << 4;
+                } else if ((c >= 'A') && (c <= 'F')) {
+                    b = (c - 'A' + 10) << 4;
+                } else if ((c >= 'a') && (c <= 'f')) {
+                    b = (c - 'a' + 10) << 4;
+                } else {
+                    // impossible condition
+                    driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
+                }
+                pos++;
+                c = raw[pos];
+                if ((c >= '0') && (c <= '9')) {
+                    b |= c - '0';
+                } else if ((c >= 'A') && (c <= 'F')) {
+                    b |= c - 'A' + 10;
+                } else if ((c >= 'a') && (c <= 'f')) {
+                    b |= c - 'a' + 10;
+                } else {
+                    // impossible condition
+                    driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
+                }
+                decoded.push_back(static_cast<char>(b & 0xff));
+                break;
             default:
                 // impossible condition
                 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
@@ -2652,7 +2614,6 @@ YY_RULE_SETUP
 case 91:
 /* rule 91 can match eol */
 YY_RULE_SETUP
-#line 982 "dhcp4_lexer.ll"
 {
     // Bad string with a forbidden control character inside
     driver.error(driver.loc_, "Invalid control in " + std::string(parser4_text));
@@ -2661,7 +2622,6 @@ YY_RULE_SETUP
 case 92:
 /* rule 92 can match eol */
 YY_RULE_SETUP
-#line 987 "dhcp4_lexer.ll"
 {
     // Bad string with a bad escape inside
     driver.error(driver.loc_, "Bad escape in " + std::string(parser4_text));
@@ -2669,7 +2629,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 992 "dhcp4_lexer.ll"
 {
     // Bad string with an open escape at the end
     driver.error(driver.loc_, "Overflow escape in " + std::string(parser4_text));
@@ -2677,37 +2636,30 @@ YY_RULE_SETUP
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 997 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 998 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 999 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 1000 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 1001 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 1002 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 1004 "dhcp4_lexer.ll"
 {
     // An integer was found.
     std::string tmp(parser4_text);
@@ -2728,7 +2680,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 1022 "dhcp4_lexer.ll"
 {
     // A floating point was found.
     std::string tmp(parser4_text);
@@ -2744,7 +2695,6 @@ YY_RULE_SETUP
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 1035 "dhcp4_lexer.ll"
 {
     string tmp(parser4_text);
     return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -2752,18 +2702,27 @@ YY_RULE_SETUP
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 1040 "dhcp4_lexer.ll"
 {
    return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 1044 "dhcp4_lexer.ll"
+driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
+       YY_BREAK
+case 105:
+YY_RULE_SETUP
+driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
+       YY_BREAK
+case 106:
+YY_RULE_SETUP
+driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
+       YY_BREAK
+case 107:
+YY_RULE_SETUP
 driver.error (driver.loc_, "Invalid character: " + std::string(parser4_text));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 1046 "dhcp4_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
@@ -2787,12 +2746,10 @@ case YY_STATE_EOF(INITIAL):
     BEGIN(DIR_EXIT);
 }
        YY_BREAK
-case 105:
+case 108:
 YY_RULE_SETUP
-#line 1069 "dhcp4_lexer.ll"
 ECHO;
        YY_BREAK
-#line 2796 "dhcp4_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -2995,7 +2952,7 @@ static int yy_get_next_buffer (void)
 
        else
                {
-                       int num_to_read =
+                       yy_size_t num_to_read =
                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
                while ( num_to_read <= 0 )
@@ -3009,7 +2966,7 @@ static int yy_get_next_buffer (void)
 
                        if ( b->yy_is_our_buffer )
                                {
-                               int new_size = b->yy_buf_size * 2;
+                               yy_size_t new_size = b->yy_buf_size * 2;
 
                                if ( new_size <= 0 )
                                        b->yy_buf_size += b->yy_buf_size / 8;
@@ -3022,7 +2979,7 @@ static int yy_get_next_buffer (void)
                                }
                        else
                                /* Can't grow it, we don't own it. */
-                               b->yy_ch_buf = NULL;
+                               b->yy_ch_buf = 0;
 
                        if ( ! b->yy_ch_buf )
                                YY_FATAL_ERROR(
@@ -3109,10 +3066,10 @@ static int yy_get_next_buffer (void)
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 761 )
+                       if ( yy_current_state >= 775 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
-               yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
+               yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                }
 
        return yy_current_state;
@@ -3142,11 +3099,11 @@ static int yy_get_next_buffer (void)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 761 )
+               if ( yy_current_state >= 775 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
-       yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
-       yy_is_jam = (yy_current_state == 760);
+       yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+       yy_is_jam = (yy_current_state == 774);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -3185,7 +3142,7 @@ static int yy_get_next_buffer (void)
 
                else
                        { /* need more input */
-                       int offset = (yy_c_buf_p) - (yytext_ptr);
+                       yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
                        ++(yy_c_buf_p);
 
                        switch ( yy_get_next_buffer(  ) )
@@ -3209,7 +3166,7 @@ static int yy_get_next_buffer (void)
                                case EOB_ACT_END_OF_FILE:
                                        {
                                        if ( parser4_wrap( ) )
-                                               return 0;
+                                               return EOF;
 
                                        if ( ! (yy_did_buffer_switch_on_eof) )
                                                YY_NEW_FILE;
@@ -3525,7 +3482,7 @@ static void parser4_ensure_buffer_stack (void)
 /* %if-c++-only */
 /* %endif */
 {
-       int num_to_alloc;
+       yy_size_t num_to_alloc;
     
        if (!(yy_buffer_stack)) {
 
@@ -3533,7 +3490,7 @@ static void parser4_ensure_buffer_stack (void)
                 * scanner will even need a stack. We use 2 instead of 1 to avoid an
                 * immediate realloc on the next call.
          */
-      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
+               num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
                (yy_buffer_stack) = (struct yy_buffer_state**)parser4_alloc
                                                                (num_to_alloc * sizeof(struct yy_buffer_state*)
                                                                );
@@ -3582,7 +3539,7 @@ YY_BUFFER_STATE parser4__scan_buffer  (char * base, yy_size_t  size )
             base[size-2] != YY_END_OF_BUFFER_CHAR ||
             base[size-1] != YY_END_OF_BUFFER_CHAR )
                /* They forgot to leave room for the EOB's. */
-               return NULL;
+               return 0;
 
        b = (YY_BUFFER_STATE) parser4_alloc(sizeof( struct yy_buffer_state )  );
        if ( ! b )
@@ -3591,7 +3548,7 @@ YY_BUFFER_STATE parser4__scan_buffer  (char * base, yy_size_t  size )
        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;
+       b->yy_input_file = 0;
        b->yy_n_chars = b->yy_buf_size;
        b->yy_is_interactive = 0;
        b->yy_at_bol = 1;
@@ -3616,7 +3573,7 @@ YY_BUFFER_STATE parser4__scan_buffer  (char * base, yy_size_t  size )
 YY_BUFFER_STATE parser4__scan_string (yyconst char * yystr )
 {
     
-       return parser4__scan_bytes(yystr,(int) strlen(yystr) );
+       return parser4__scan_bytes(yystr,strlen(yystr) );
 }
 /* %endif */
 
@@ -3628,7 +3585,7 @@ YY_BUFFER_STATE parser4__scan_string (yyconst char * yystr )
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE parser4__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
+YY_BUFFER_STATE parser4__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
 {
        YY_BUFFER_STATE b;
        char *buf;
@@ -3636,7 +3593,7 @@ YY_BUFFER_STATE parser4__scan_bytes  (yyconst char * yybytes, int  _yybytes_len
        yy_size_t i;
     
        /* Get memory for full buffer, including space for trailing EOB's. */
-       n = (yy_size_t) _yybytes_len + 2;
+       n = _yybytes_len + 2;
        buf = (char *) parser4_alloc(n  );
        if ( ! buf )
                YY_FATAL_ERROR( "out of dynamic memory in parser4__scan_bytes()" );
@@ -3664,7 +3621,7 @@ YY_BUFFER_STATE parser4__scan_bytes  (yyconst char * yybytes, int  _yybytes_len
 #endif
 
 /* %if-c-only */
-static void yynoreturn yy_fatal_error (yyconst char* msg )
+static void yy_fatal_error (yyconst char* msg )
 {
                        (void) fprintf( stderr, "%s\n", msg );
        exit( YY_EXIT_FAILURE );
@@ -3724,7 +3681,7 @@ FILE *parser4_get_out  (void)
 /** Get the length of the current token.
  * 
  */
-int parser4_get_leng  (void)
+yy_size_t parser4_get_leng  (void)
 {
         return parser4_leng;
 }
@@ -3791,10 +3748,10 @@ static int yy_init_globals (void)
      * This function is called from parser4_lex_destroy(), so don't allocate here.
      */
 
-    (yy_buffer_stack) = NULL;
+    (yy_buffer_stack) = 0;
     (yy_buffer_stack_top) = 0;
     (yy_buffer_stack_max) = 0;
-    (yy_c_buf_p) = NULL;
+    (yy_c_buf_p) = (char *) 0;
     (yy_init) = 0;
     (yy_start) = 0;
 
@@ -3803,8 +3760,8 @@ static int yy_init_globals (void)
     parser4_in = stdin;
     parser4_out = stdout;
 #else
-    parser4_in = NULL;
-    parser4_out = NULL;
+    parser4_in = (FILE *) 0;
+    parser4_out = (FILE *) 0;
 #endif
 
     /* For future reference: Set errno on error, since we are called by
@@ -3867,7 +3824,7 @@ static int yy_flex_strlen (yyconst char * s )
 
 void *parser4_alloc (yy_size_t  size )
 {
-                       return malloc(size);
+                       return (void *) malloc( size );
 }
 
 void *parser4_realloc  (void * ptr, yy_size_t  size )
@@ -3880,7 +3837,7 @@ void *parser4_realloc  (void * ptr, yy_size_t  size )
         * any pointer type to void*, and deal with argument conversions
         * as though doing an assignment.
         */
-       return realloc(ptr, size);
+       return (void *) realloc( (char *) ptr, size );
 }
 
 void parser4_free (void * ptr )
@@ -3895,10 +3852,6 @@ void parser4_free (void * ptr )
 
 /* %ok-for-header */
 
-#line 1069 "dhcp4_lexer.ll"
-
-
-
 using namespace isc::dhcp;
 
 void