widl: Updated to current Wine version.
diff --git a/mingw-w64-tools/widl/include/winnt.h b/mingw-w64-tools/widl/include/winnt.h
index b8a630e..6b5b660 100644
--- a/mingw-w64-tools/widl/include/winnt.h
+++ b/mingw-w64-tools/widl/include/winnt.h
@@ -653,6 +653,8 @@
 #define PROCESSOR_ARCHITECTURE_IA32_ON_WIN64    10
 #define PROCESSOR_ARCHITECTURE_NEUTRAL          11
 #define PROCESSOR_ARCHITECTURE_ARM64            12
+#define PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64   13
+#define PROCESSOR_ARCHITECTURE_IA32_ON_ARM64    14
 #define PROCESSOR_ARCHITECTURE_UNKNOWN	0xFFFF
 
 /* dwProcessorType */
@@ -3490,6 +3492,7 @@
 #define IMAGE_REL_ARM64_TOKEN           0x000C
 #define IMAGE_REL_ARM64_SECTION         0x000D
 #define IMAGE_REL_ARM64_ADDR64          0x000E
+#define IMAGE_REL_ARM64_BRANCH19        0x000F
 
 /* IA64 relocation types */
 #define IMAGE_REL_IA64_ABSOLUTE		0x0000
diff --git a/mingw-w64-tools/widl/src/proxy.c b/mingw-w64-tools/widl/src/proxy.c
index 4c7d85d..87c27be 100644
--- a/mingw-w64-tools/widl/src/proxy.c
+++ b/mingw-w64-tools/widl/src/proxy.c
@@ -664,7 +664,8 @@
 
   /* proxy vtable */
   print_proxy( "static %sCINTERFACE_PROXY_VTABLE(%d) _%sProxyVtbl =\n",
-               need_delegation_indirect(iface) ? "" : "const ", count, iface->name);
+               (get_stub_mode() != MODE_Os || need_delegation_indirect(iface)) ? "" : "const ",
+               count, iface->name);
   print_proxy( "{\n");
   indent++;
   print_proxy( "{\n");
diff --git a/mingw-w64-tools/widl/src/widl.c b/mingw-w64-tools/widl/src/widl.c
index bde0bd6..1af4250 100644
--- a/mingw-w64-tools/widl/src/widl.c
+++ b/mingw-w64-tools/widl/src/widl.c
@@ -484,6 +484,11 @@
         uuid = get_attrp(type->attrs, ATTR_UUID);
         write_id_guid(idfile, "IID", is_attr(type->attrs, ATTR_DISPINTERFACE) ? "DIID" : "IID",
                    type->name, uuid);
+        if (type->details.iface->async_iface)
+        {
+          uuid = get_attrp(type->details.iface->async_iface->attrs, ATTR_UUID);
+          write_id_guid(idfile, "IID", "IID", type->details.iface->async_iface->name, uuid);
+        }
       }
       else if (type_get_type(type) == TYPE_COCLASS)
       {
diff --git a/mingw-w64-tools/widl/src/wpp/ppl.l b/mingw-w64-tools/widl/src/wpp/ppl.l
index 243049a..1a04860 100644
--- a/mingw-w64-tools/widl/src/wpp/ppl.l
+++ b/mingw-w64-tools/widl/src/wpp/ppl.l
@@ -150,6 +150,7 @@
 %x pp_macexp
 %x pp_if
 %x pp_ifd
+%x pp_ifignored
 %x pp_endif
 %x pp_line
 %x pp_defined
@@ -390,7 +391,7 @@
 <pp_pp>{ws}*undef{ws}*		if(yy_top_state() != pp_ignore) {yy_pp_state(pp_ifd); return tUNDEF;} else {yy_pp_state(pp_eol);}
 <pp_pp>{ws}*ifdef{ws}*		yy_pp_state(pp_ifd);	return tIFDEF;
 <pp_pp>{ws}*ifndef{ws}*		pp_incl_state.seen_junk--; yy_pp_state(pp_ifd);	return tIFNDEF;
-<pp_pp>{ws}*if{ws}*		yy_pp_state(pp_if);	return tIF;
+<pp_pp>{ws}*if{ws}*		if(yy_top_state() != pp_ignore) {yy_pp_state(pp_if);} else {yy_pp_state(pp_ifignored);} return tIF;
 <pp_pp>{ws}*elif{ws}*		yy_pp_state(pp_if);	return tELIF;
 <pp_pp>{ws}*else{ws}*		yy_pp_state(pp_endif);  return tELSE;
 <pp_pp>{ws}*endif{ws}*		yy_pp_state(pp_endif);  return tENDIF;
@@ -450,6 +451,9 @@
 <pp_if>\"			ppy_error("String constants not allowed in conditionals");
 <pp_if>.			return *ppy_text;
 
+<pp_ifignored>[^\n]+		ppy_lval.sint = 0; return tSINT;
+<pp_ifignored>\n		newline(1); yy_pop_state(); return tNL;
+
 	/*
 	 * Handle #ifdef, #ifndef and #undef
 	 * to get only an untranslated/unexpanded identifier
diff --git a/mingw-w64-tools/widl/src/wpp/ppl.yy.c b/mingw-w64-tools/widl/src/wpp/ppl.yy.c
index 0e0c875..37c4308 100644
--- a/mingw-w64-tools/widl/src/wpp/ppl.yy.c
+++ b/mingw-w64-tools/widl/src/wpp/ppl.yy.c
@@ -613,8 +613,8 @@
 	(yy_hold_char) = *yy_cp; \
 	*yy_cp = '\0'; \
 	(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 143
-#define YY_END_OF_BUFFER 144
+#define YY_NUM_RULES 145
+#define YY_END_OF_BUFFER 146
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -622,54 +622,54 @@
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static const flex_int16_t yy_accept[416] =
+static const flex_int16_t yy_accept[421] =
     {   0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  117,  117,    0,    0,    0,    0,
+        0,    0,    0,    0,  119,  119,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  144,  133,  134,  135,  121,  142,
-      122,  133,  132,  133,  134,    1,   21,   16,   18,   16,
-       21,   20,   17,   17,   17,   17,   17,   17,   17,   17,
-       68,   71,   69,   70,   28,   25,   26,   24,   28,   23,
-       28,   28,  123,  131,  124,  142,  125,  126,  142,  127,
-      128,  117,  118,  117,   77,   75,   77,   77,   74,   77,
+        0,    0,    0,    0,    0,    0,  146,  135,  136,  137,
+      123,  144,  124,  135,  134,  135,  136,    1,   21,   16,
+       18,   16,   21,   20,   17,   17,   17,   17,   17,   17,
+       17,   17,   70,   73,   71,   72,   28,   25,   26,   24,
+       28,   23,   28,   28,  125,  133,  126,  144,  127,  128,
+      144,  129,  130,  119,  120,  119,   79,   77,   79,   79,
 
-       78,   82,   84,   83,  142,   79,   90,   86,   90,   85,
-       88,   90,   90,   87,   90,   92,  100,  102,   95,  101,
-       97,   96,   93,   97,   92,  106,  106,  104,  103,  106,
-      114,  113,  110,  111,  107,  108,  109,  114,  114,  133,
-      134,  138,  121,  138,  122,  133,  132,  133,   53,   50,
-       47,   53,   52,   53,   51,   53,   33,   35,   53,   53,
-       53,   53,   49,   53,   53,   58,   55,   56,   58,   54,
-       58,   62,   59,   60,   62,   62,   22,   67,   64,   67,
-       65,   67,   63,   67,   29,   30,   32,   32,   32,   29,
-        1,  140,  143,  141,  139,  139,  133,  134,  133,  116,
+       76,   79,   80,   84,   86,   85,  144,   81,   92,   88,
+       92,   87,   90,   92,   92,   89,   92,   94,  102,  104,
+       97,  103,   99,   98,   95,   99,   94,  108,  108,  106,
+      105,  108,  116,  115,  112,  113,  109,  110,  111,  116,
+      116,  135,  136,  140,  123,  140,  124,  135,  134,  135,
+       53,   50,   47,   53,   52,   53,   51,   53,   33,   35,
+       53,   53,   53,   53,   49,   53,   53,   60,   57,   58,
+       60,   56,   60,   54,   55,   64,   61,   62,   64,   64,
+       22,   69,   66,   69,   67,   69,   65,   69,   29,   30,
+       32,   32,   32,   29,    1,  142,  145,  143,  141,  141,
 
-      120,  132,  136,  137,  134,    1,   16,   17,   17,   17,
-       17,   17,   17,   17,   17,   18,   19,   20,   17,   17,
-       17,   17,   17,   11,   17,   17,   17,   17,   17,   68,
-       69,   70,   72,   70,   25,   27,   28,  123,  130,  129,
-      130,  125,  127,  117,  117,  117,  119,   75,   73,   74,
-       76,   77,   78,   79,   81,   79,   86,   85,   90,   87,
-       91,   90,   92,   94,   97,   96,   96,   93,   99,   97,
-       92,  106,  104,  103,  106,  105,  106,  114,  114,  112,
-      115,  114,  133,  138,  138,   50,   44,   41,   33,   34,
-       33,   33,   37,   35,   35,   35,   39,   45,   43,   46,
+      135,  136,  135,  118,  122,  134,  138,  139,  136,    1,
+       16,   17,   17,   17,   17,   17,   17,   17,   17,   18,
+       19,   20,   17,   17,   17,   17,   17,   11,   17,   17,
+       17,   17,   17,   70,   71,   72,   74,   72,   25,   27,
+       28,  125,  132,  131,  132,  127,  129,  119,  119,  119,
+      121,   77,   75,   76,   78,   79,   80,   81,   83,   81,
+       88,   87,   92,   89,   93,   92,   94,   96,   99,   98,
+       98,   95,  101,   99,   94,  108,  106,  105,  108,  107,
+      108,  116,  116,  114,  117,  116,  135,  140,  140,   50,
+       44,   41,   33,   34,   33,   33,   37,   35,   35,   35,
 
-       40,   48,   49,  132,   42,   55,   54,   57,   58,   59,
-       61,    0,   22,   64,   63,   67,   66,   67,   29,   31,
-       32,   29,  140,  139,  120,  120,   17,   17,   17,   17,
-       17,   17,   11,   17,   17,   17,   17,   17,   17,   17,
-       69,   80,   89,   98,   34,   34,   33,   33,   33,   36,
-       35,   35,   35,  132,  120,   17,   12,   13,   17,   17,
-       17,   17,   17,   17,   15,   17,   17,   17,   34,   34,
-       34,   33,   36,   36,   35,  132,   17,   12,   13,   14,
-        4,    7,    9,   17,   17,   15,   17,    8,   17,   34,
-       36,   36,   36,  132,    3,   14,    4,    7,    9,   10,
+       39,   45,   43,   46,   40,   48,   49,  134,   42,   57,
+       56,   59,   60,   54,   61,   63,    0,   22,   66,   65,
+       69,   68,   69,   29,   31,   32,   29,  142,  141,  122,
+      122,   17,   17,   17,   17,   17,   17,   11,   17,   17,
+       17,   17,   17,   17,   17,   71,   82,   91,  100,   34,
+       34,   33,   33,   33,   36,   35,   35,   35,  134,  122,
+       17,   12,   13,   17,   17,   17,   17,   17,   17,   15,
+       17,   17,   17,   34,   34,   34,   33,   36,   36,   35,
+      134,   17,   12,   13,   14,    4,    7,    9,   17,   17,
+       15,   17,    8,   17,   34,   36,   36,   36,  134,    3,
 
-       17,    6,    8,   17,   36,  132,    3,   10,    2,    6,
-        5,   38,    2,    5,    0
+       14,    4,    7,    9,   10,   17,    6,    8,   17,   36,
+      134,    3,   10,    2,    6,    5,   38,    2,    5,    0
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -713,364 +713,369 @@
        15,   15,   15,   15,   15,   15,   15,   15,    1
     } ;
 
-static const flex_int16_t yy_base[460] =
+static const flex_int16_t yy_base[467] =
     {   0,
         0,   48,   55,    0,  102,  103,  130,    0,  177,  178,
       179,  182,  186,  187,  104,  107,  214,    0,  261,  262,
       289,    0,  338,    0,  386,  389,  414,  439,  466,    0,
-      515,    0,  564,    0,  399,  403,  612,  638,  665,    0,
-      428,  618,  714,  763, 1130,    0,   49, 1886, 1886, 1886,
-     1886,   96,    0,  109,  118, 1886, 1886,  811, 1886, 1126,
-      111,  111,  858, 1095,  154,  161, 1090, 1083, 1085, 1095,
-        0, 1886,  184,  124, 1886,  196, 1886, 1886,  254, 1886,
-        0,  199,    0, 1886, 1886,  269,    0, 1886, 1120,    0,
-     1886,    0, 1886,  263, 1886,  208, 1886,  267, 1112,  277,
+      515,    0,  564,    0, 1129, 1128,  399,  403,  612,  638,
+      665,    0,  428,  618,  714,  763, 1130,    0,   49, 1920,
+     1920, 1920, 1920,   96,    0,  109,  118, 1920, 1920,  811,
+     1920, 1126,  111,  111,  858, 1095,  154,  161, 1090, 1083,
+     1085, 1095,    0, 1920,  184,  124, 1920,  196, 1920, 1920,
+      254, 1920,    0,  199,    0, 1920, 1920,  269,    0, 1920,
+     1120,    0, 1920,    0, 1920,  263, 1920,  208, 1920,  267,
 
-        0, 1886, 1886, 1886,  271,  281, 1886,  393, 1886,  396,
-     1886, 1107,  396,    0,  406,    0, 1886, 1886, 1113, 1886,
-      400,  905,    0,  418,  954, 1886,  430, 1886, 1886,  433,
-        0, 1886, 1886, 1886, 1886, 1886, 1886,  432,  435,    0,
-      449, 1886, 1886, 1886, 1886,  444,    0, 1003, 1886,  456,
-     1886, 1099, 1886, 1110, 1886,  449, 1037,  714,  443, 1097,
-      603,    0,  623, 1083, 1066, 1886,  615, 1886,  619,    0,
-      632, 1886,  644, 1886,  635,  634,  635, 1886,  655, 1886,
-     1886,  646,    0,  659,    0, 1886, 1886,  725,  738,  741,
-     1886,  742, 1886, 1886,    0,  735,    0,  747,  741, 1886,
+     1112,  277,    0, 1920, 1920, 1920,  271,  281, 1920,  393,
+     1920,  396, 1920, 1107,  396,    0,  406,    0, 1920, 1920,
+     1113, 1920,  400,  905,    0,  418,  954, 1920,  430, 1920,
+     1920,  433,    0, 1920, 1920, 1920, 1920, 1920, 1920,  432,
+      435,    0,  449, 1920, 1920, 1920, 1920,  444,    0, 1003,
+     1920,  456, 1920, 1099, 1920, 1110, 1920,  449, 1037,  714,
+      443, 1097,  603,    0,  623, 1083, 1066, 1920,  615, 1920,
+      619,    0,  632,    0, 1920, 1920,  644, 1920,  635,  634,
+      635, 1920,  655, 1920, 1920,  646,    0,  659,    0, 1920,
+     1920,  725,  738,  741, 1920,  742, 1920, 1920,    0,  735,
 
-        0,    0, 1886, 1111,  755, 1886,    0,    0, 1079,  747,
-      754, 1074, 1067, 1069, 1079, 1886, 1886, 1104, 1069,  717,
-     1070, 1058, 1067,  777, 1063, 1052, 1062, 1056, 1041,    0,
-        0, 1886, 1886, 1079,  787, 1886, 1078,    0, 1886, 1886,
-     1077,    0,    0,    0,  743,  765, 1886,  791, 1886, 1069,
-     1886, 1075,    0, 1886,  794, 1074,  795,  798, 1062,    0,
-     1886, 1071,    0, 1886,  789,    0, 1085,    0,  801, 1070,
-        0,  804, 1886, 1886,  807, 1886, 1069,    0,  804, 1886,
-     1886, 1068,  806, 1886,    0,  818, 1886, 1886,  847,  843,
-      874,  799,    0,  905,  903,  800, 1886, 1886, 1886, 1886,
+        0,  747,  741, 1920,    0,    0, 1920, 1111,  755, 1920,
+        0,    0, 1079,  747,  754, 1074, 1067, 1069, 1079, 1920,
+     1920, 1104, 1069,  717, 1070, 1058, 1067,  777, 1063, 1052,
+     1062, 1056, 1041,    0,    0, 1920, 1920, 1079,  787, 1920,
+     1078,    0, 1920, 1920, 1077,    0,    0,    0,  743,  765,
+     1920,  791, 1920, 1069, 1920, 1075,    0, 1920,  794, 1074,
+      795,  798, 1062,    0, 1920, 1071,    0, 1920,  789,    0,
+     1085,    0,  801, 1070,    0,  804, 1920, 1920,  807, 1920,
+     1069,    0,  804, 1920, 1920, 1068,  806, 1920,    0,  818,
+     1920, 1920,  847,  843,  874,  799,    0,  905,  903,  800,
 
-     1886, 1886, 1066, 1026, 1886,  823,    0, 1886, 1048,  824,
-     1886, 1047,  816,  871,    0, 1886, 1886, 1027,    0, 1886,
-     1006,  872,  876,    0, 1134,    0,  969,  971,  948,  943,
-      906,  897,  880,  875,  871,  864,  844,  835,  833,  799,
-        0,  884, 1886,  890,  907,  845,  618,  863,  873,  914,
-      889,  910,  912,  799, 1183,  795,  938,  942,  796,  786,
-      747,  702,  695,  614,  959,  610,  598,  428,  932,  945,
-      946, 1886,  947,  952, 1886,  406,  395,  975,  984,  985,
-      990,  993,  994,  385,  372,  997,  365,  998,  247, 1886,
-      966,  991,  994,  241, 1023, 1024, 1029, 1032, 1033, 1036,
+     1920, 1920, 1920, 1920, 1920, 1920, 1066, 1026, 1920,  823,
+        0, 1920, 1048,    0,  824, 1920, 1047,  816,  871,    0,
+     1920, 1920, 1027,    0, 1920, 1006,  872,  876,    0, 1134,
+        0,  969,  971,  948,  943,  906,  897,  880,  875,  871,
+      864,  844,  835,  833,  799,    0,  884, 1920,  890,  907,
+      845,  618,  863,  873,  914,  889,  910,  912,  799, 1183,
+      795,  938,  942,  796,  786,  747,  702,  695,  614,  959,
+      610,  598,  428,  932,  945,  946, 1920,  947,  952, 1920,
+      406,  395,  975,  984,  985,  990,  993,  994,  385,  372,
+      997,  365,  998,  247, 1920,  966,  991,  994,  241, 1023,
 
-      153, 1037, 1040,   74, 1886,   22, 1041, 1044, 1045, 1054,
-     1055,    0, 1062, 1063, 1886, 1232, 1249, 1266, 1283, 1300,
-     1317, 1334, 1351, 1368, 1385, 1402, 1419, 1436, 1449, 1451,
-     1468, 1485, 1502, 1519, 1536, 1553, 1570, 1587, 1598, 1615,
-     1632, 1638, 1655, 1672, 1689, 1695, 1712, 1729, 1746, 1752,
-     1758, 1775, 1792, 1800, 1817, 1834, 1851, 1056, 1868
+     1024, 1029, 1032, 1033, 1036,  153, 1037, 1040,   74, 1920,
+       22, 1041, 1044, 1045, 1054, 1055,    0, 1062, 1063, 1920,
+     1232, 1249, 1266, 1283, 1300, 1317, 1334, 1351, 1368, 1385,
+     1402, 1419, 1436, 1453, 1466, 1468, 1485, 1502, 1519, 1536,
+     1553, 1570, 1587, 1604, 1615, 1632, 1649, 1655, 1672, 1689,
+     1706, 1712, 1729, 1746, 1763, 1769, 1786, 1792, 1809, 1826,
+     1834, 1851, 1868, 1885, 1056, 1902
     } ;
 
-static const flex_int16_t yy_def[460] =
+static const flex_int16_t yy_def[467] =
     {   0,
-      415,    1,  415,    3,  416,  416,  415,    7,  417,  417,
-      418,  418,  419,  419,  420,  420,  415,   17,  421,  421,
-      415,   21,  415,   23,  422,  422,  423,  423,  415,   29,
-      415,   31,  415,   33,  424,  424,  425,  425,  415,   39,
-      426,  426,  427,  427,  415,  428,  415,  415,  415,  415,
-      415,  429,  430,  429,  415,  415,  415,  415,  415,   58,
-      415,  415,   58,   63,   63,   63,   63,   63,   63,   63,
-      431,  415,  432,  415,  415,  415,  415,  415,  415,  415,
-      430,  415,  433,  415,  415,  434,  435,  415,  434,  436,
-      415,  437,  415,  438,  415,  415,  415,  415,  439,  415,
+      420,    1,  420,    3,  421,  421,  420,    7,  422,  422,
+      423,  423,  424,  424,  425,  425,  420,   17,  426,  426,
+      420,   21,  420,   23,  427,  427,  428,  428,  420,   29,
+      420,   31,  420,   33,  429,  429,  430,  430,  431,  431,
+      420,   41,  432,  432,  433,  433,  420,  434,  420,  420,
+      420,  420,  420,  435,  436,  435,  420,  420,  420,  420,
+      420,   60,  420,  420,   60,   65,   65,   65,   65,   65,
+       65,   65,  437,  420,  438,  420,  420,  420,  420,  420,
+      420,  420,  436,  420,  439,  420,  420,  440,  441,  420,
+      440,  442,  420,  443,  420,  444,  420,  420,  420,  420,
 
-      440,  415,  415,  415,  441,  415,  415,  415,  415,  415,
-      415,  415,  415,  442,  415,  443,  415,  415,  415,  415,
-      444,  445,  446,  415,  446,  415,  415,  415,  415,  415,
-      447,  415,  415,  415,  415,  415,  415,  448,  415,  428,
-      415,  415,  415,  415,  415,  429,  430,  449,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  430,  415,  430,  415,  415,  415,  415,  415,  450,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  415,  451,  452,  453,  415,  415,  415,  415,  453,
-      415,  415,  415,  415,  454,  454,  428,  415,  429,  415,
+      445,  420,  446,  420,  420,  420,  447,  420,  420,  420,
+      420,  420,  420,  420,  420,  448,  420,  449,  420,  420,
+      420,  420,  450,  451,  452,  420,  452,  420,  420,  420,
+      420,  420,  453,  420,  420,  420,  420,  420,  420,  454,
+      420,  434,  420,  420,  420,  420,  420,  435,  436,  455,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  436,  420,  436,  420,  420,  420,  420,
+      420,  456,  420,  457,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  458,  459,  460,  420,
+      420,  420,  420,  460,  420,  420,  420,  420,  461,  461,
 
-      455,  430,  415,  415,  415,  415,   58,   63,   63,   63,
-       63,   63,   63,   63,   63,  415,  415,  415,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,  431,
-      456,  415,  415,  415,  415,  415,  415,  433,  415,  415,
-      415,  435,  436,  437,  438,  438,  415,  415,  415,  439,
-      415,  415,  440,  415,  415,  415,  415,  415,  415,  442,
-      415,  415,  443,  415,  444,  457,  445,  446,  415,  415,
-      125,  415,  415,  415,  415,  415,  415,  447,  448,  415,
-      415,  415,  429,  415,  449,  415,  415,  415,  415,  415,
-      415,  415,  458,  415,  415,  415,  415,  415,  415,  415,
+      434,  420,  435,  420,  462,  436,  420,  420,  420,  420,
+       60,   65,   65,   65,   65,   65,   65,   65,   65,  420,
+      420,  420,   65,   65,   65,   65,   65,   65,   65,   65,
+       65,   65,   65,  437,  463,  420,  420,  420,  420,  420,
+      420,  439,  420,  420,  420,  441,  442,  443,  444,  444,
+      420,  420,  420,  445,  420,  420,  446,  420,  420,  420,
+      420,  420,  420,  448,  420,  420,  449,  420,  450,  464,
+      451,  452,  420,  420,  127,  420,  420,  420,  420,  420,
+      420,  453,  454,  420,  420,  420,  435,  420,  455,  420,
+      420,  420,  420,  420,  420,  420,  465,  420,  420,  420,
 
-      415,  415,  415,  430,  415,  415,  450,  415,  415,  415,
-      415,  415,  415,  415,  451,  415,  415,  415,  453,  415,
-      415,  453,  415,  454,  459,  455,   63,   63,   63,   63,
-       63,   63,  415,   63,   63,   63,   63,   63,   63,   63,
-      456,  415,  415,  415,  415,  415,  415,  415,  415,  458,
-      415,  415,  415,  430,  459,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,  415,  415,
-      415,  415,  415,  415,  415,  430,   63,  415,  415,   63,
-       63,   63,   63,   63,   63,  415,   63,   63,   63,  415,
-      415,  415,  415,  430,   63,  415,  415,  415,  415,   63,
+      420,  420,  420,  420,  420,  420,  420,  436,  420,  420,
+      456,  420,  420,  457,  420,  420,  420,  420,  420,  458,
+      420,  420,  420,  460,  420,  420,  460,  420,  461,  466,
+      462,   65,   65,   65,   65,   65,   65,  420,   65,   65,
+       65,   65,   65,   65,   65,  463,  420,  420,  420,  420,
+      420,  420,  420,  420,  465,  420,  420,  420,  436,  466,
+       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
+       65,   65,   65,  420,  420,  420,  420,  420,  420,  420,
+      436,   65,  420,  420,   65,   65,   65,   65,   65,   65,
+      420,   65,   65,   65,  420,  420,  420,  420,  436,   65,
 
-       63,   63,  415,   63,  415,  430,  415,  415,   63,  415,
-       63,  430,  415,  415,    0,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415
+      420,  420,  420,  420,   65,   65,   65,  420,   65,  420,
+      436,  420,  420,   65,  420,   65,  436,  420,  420,    0,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420
     } ;
 
-static const flex_int16_t yy_nxt[1936] =
+static const flex_int16_t yy_nxt[1970] =
     {   0,
-       46,   47,   48,   47,   46,   49,   50,   46,   51,   46,
-       46,   46,   46,   46,   52,   46,   46,   46,   46,   46,
-       46,   53,   53,   53,   53,   53,   54,   53,   53,   53,
-       53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
-       53,   53,   53,   53,   53,   53,   53,   53,   46,   55,
-      198,   55,  198,  412,   56,   57,   58,   59,   60,   57,
-       57,   57,   57,   57,   57,   57,   57,   57,   57,   61,
-       57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
-       57,   62,   57,   63,   63,   63,   64,   65,   63,   63,
-       63,   66,   67,   63,   63,   63,   68,   63,   63,   63,
+       48,   49,   50,   49,   48,   51,   52,   48,   53,   48,
+       48,   48,   48,   48,   54,   48,   48,   48,   48,   48,
+       48,   55,   55,   55,   55,   55,   56,   55,   55,   55,
+       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
+       55,   55,   55,   55,   55,   55,   55,   55,   48,   57,
+      202,   57,  202,  417,   58,   59,   60,   61,   62,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   63,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   64,   59,   65,   65,   65,   66,   67,   65,   65,
+       65,   68,   69,   65,   65,   65,   70,   65,   65,   65,
 
-       69,   70,   63,   57,   72,   72,   93,  200,  411,   93,
-      201,  203,  204,  217,  218,   94,   73,   73,   94,  205,
-      415,  205,  200,  415,  206,  201,  233,  234,   74,   74,
-       75,   76,   77,   76,   75,   78,   75,   75,   75,   75,
-       75,   75,   75,   75,   79,   75,   75,   75,   80,   75,
-       75,   81,   81,   81,   81,   81,   82,   81,   81,   81,
-       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
-       81,   81,   81,   81,   81,   81,   81,   81,   75,   84,
-       84,   84,   85,   85,   84,  409,  232,   88,   84,   84,
-       88,  220,  223,  221,  224,  200,  222,  235,  201,  235,
-
-      225,  236,  237,   86,   86,   89,   91,   91,   89,  248,
-      232,  248,   89,   89,   95,   96,   97,   96,   95,   95,
-       95,   95,   95,   95,   95,   95,   95,   95,   98,   95,
-       95,   95,   95,   95,   95,   99,   99,   99,   99,   99,
-      100,   99,   99,   99,   99,   99,   99,   99,   99,   99,
-       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
-       99,   99,   95,  102,  102,  200,  103,  103,  201,  104,
-      104,  240,  241,  406,  246,  105,  105,  247,  200,  251,
-      252,  201,  200,  255,  256,  201,  404,  106,  106,  107,
-      108,  109,  108,  107,  107,  107,  107,  107,  107,  110,
-
-      107,  111,  112,  113,  107,  107,  107,  107,  107,  107,
-      114,  114,  114,  114,  114,  115,  114,  114,  114,  114,
-      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
-      114,  114,  114,  114,  114,  114,  114,  107,  116,  116,
-      117,  116,  116,  118,  119,  116,  120,  116,  116,  116,
-      116,  116,  121,  122,  122,  122,  116,  116,  116,  123,
-      123,  123,  123,  123,  124,  125,  123,  123,  123,  123,
-      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
-      123,  123,  123,  123,  123,  123,  116,  127,  128,  127,
-      127,  128,  127,  402,  257,  129,  257,  258,  129,  258,
-
-      173,  174,  173,  401,  173,  174,  173,  200,  261,  262,
-      201,  200,  130,  175,  201,  130,  132,  175,  400,  133,
-      269,  270,  134,  135,  136,  176,  137,  395,  138,  176,
-      186,  272,  273,  272,  187,  276,  277,  281,  282,  274,
-      139,  132,  188,  280,  133,  394,  201,  134,  135,  136,
-      198,  137,  198,  138,  189,  415,  275,  286,  415,  286,
-      200,  297,  298,  201,  389,  139,  140,  141,  142,  141,
-      140,  143,  144,  140,  145,  140,  140,  140,  140,  140,
-      146,  140,  140,  140,  140,  140,  140,  147,  147,  147,
-      147,  147,  148,  147,  147,  147,  147,  147,  147,  147,
-
-      147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
-      147,  147,  147,  147,  140,  149,  150,  151,  150,  152,
-      153,  149,  154,  155,  149,  149,  149,  149,  149,  156,
-      157,  158,  158,  159,  160,  161,  162,  162,  162,  162,
-      162,  163,  162,  162,  162,  162,  164,  162,  162,  162,
-      162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
-      162,  162,  162,  165,  166,  167,  168,  167,  166,  166,
-      166,  166,  166,  166,  166,  166,  166,  166,  169,  166,
-      166,  166,  166,  166,  166,  170,  170,  170,  170,  170,
-      171,  170,  170,  170,  170,  170,  170,  170,  170,  170,
-
-      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
-      170,  170,  166,   76,   77,   76,  306,   78,  306,  190,
-      186,  190,  300,  301,  191,  302,  303,  177,  177,  177,
-      200,  388,  188,  201,  308,  309,  311,  312,   82,   76,
-       77,   76,  372,   78,  189,  310,  200,  310,  387,  201,
-      313,  313,  313,  177,  177,  177,  314,  200,  314,  385,
-      201,  317,  318,  372,   82,  178,  179,  180,  179,  178,
-      178,  178,  178,  178,  181,  181,  178,  178,  178,  182,
-      178,  178,  178,  178,  178,  178,  183,  183,  183,  183,
-      183,  184,  183,  183,  183,  183,  183,  183,  183,  183,
-
-      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
-      183,  183,  183,  178,   50,  192,  193,  192,   50,  194,
-       50,   50,   50,   50,   50,   50,   50,  384,  196,  294,
-      294,  294,   50,   50,   50,  383,  200,  295,  296,  201,
-      320,  321,  322,  323,  322,  323,  200,  206,  198,  325,
-      198,  295,  415,  328,  415,  415,  205,  415,  205,  296,
-      329,  206,   50,   50,  192,  193,  192,   50,  194,   50,
-       50,   50,   50,   50,   50,   50,  246,  196,  333,  247,
-      333,   50,   50,   50,  220,  223,  221,  224,  235,  222,
-      235,  382,  248,  225,  248,  342,  257,  342,  257,  258,
-
-      415,  258,  344,  415,  344,  272,  273,  272,  334,  276,
-      277,   50,  207,  274,  207,  415,  335,  415,  415,  286,
-      415,  286,  349,  353,  306,  310,  306,  310,  381,  380,
-      275,  313,  313,  313,  377,  376,  349,  353,  368,  208,
-      208,  208,  209,  210,  208,  208,  208,  211,  212,  208,
-      208,  208,  213,  208,  208,  208,  214,  215,  208,  415,
-      290,  415,  289,  289,  290,  367,  345,  346,  371,  366,
-      291,  292,  314,  322,  314,  322,  365,  323,  206,  323,
-      345,  333,  371,  333,  291,  342,  372,  342,  346,  208,
-      208,  344,  292,  344,  208,  208,  372,  347,  348,  208,
-
-      372,  364,  363,  208,  208,  266,  266,  362,  266,  266,
-      372,  347,  266,  375,  266,  266,  266,  266,  266,  348,
-      294,  294,  294,  266,  266,  266,  351,  352,  295,  296,
-      369,  370,  266,  375,  375,  375,  361,  373,  374,  378,
-      351,  378,  295,  379,  369,  379,  360,  375,  352,  375,
-      296,  373,  370,  266,  263,  263,  390,  263,  263,  374,
-      386,  263,  386,  263,  263,  263,  263,  263,  390,  390,
-      391,  392,  263,  263,  263,  393,  378,  390,  378,  359,
-      358,  271,  390,  390,  391,  379,  396,  379,  396,  393,
-      405,  397,  392,  397,  398,  399,  398,  399,  386,  403,
-
-      386,  403,  263,  283,  357,  356,  285,  283,  320,  283,
-      283,  405,  283,  283,  405,  283,  283,  405,  283,  283,
-      283,  283,  283,  283,  407,  396,  407,  396,  405,  317,
-      397,  405,  397,  398,  399,  398,  399,  408,  410,  408,
-      410,  403,  407,  403,  407,  408,  413,  408,  413,  311,
-      308,  283,  289,  289,  290,  410,  414,  410,  414,  354,
-      291,  292,  293,  413,  414,  413,  414,  350,  302,  350,
-      281,  276,  269,  261,  291,  343,  255,  251,  249,  240,
-      236,  233,  292,  340,  293,  266,  266,  339,  266,  266,
-      338,  337,  266,  336,  266,  266,  266,  266,  266,  332,
-
-      331,  330,  327,  266,  266,  266,  217,  229,  228,  227,
-      226,  219,  266,  203,  305,  304,  299,  288,  287,  264,
-      259,  249,  415,  229,  228,  227,  226,  219,  216,  415,
-      415,  415,  415,  266,  326,  326,  415,  326,  326,  326,
-      326,  326,  326,  326,  326,  326,  326,  415,  415,  415,
-      415,  415,  326,  326,  326,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  415,  326,  326,  326,  415,  326,  326,  326,  326,
-      326,  326,  326,  326,  326,  326,  415,  415,  415,  415,
-
-      415,  326,  326,  326,  415,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  326,   71,   71,   71,   71,   71,   71,   71,   71,
-       71,   71,   71,   71,   71,   71,   71,   71,   71,   83,
+       71,   72,   65,   59,   74,   74,   95,  204,  416,   95,
+      205,  207,  208,  221,  222,   96,   75,   75,   96,  209,
+      420,  209,  204,  420,  210,  205,  237,  238,   76,   76,
+       77,   78,   79,   78,   77,   80,   77,   77,   77,   77,
+       77,   77,   77,   77,   81,   77,   77,   77,   82,   77,
+       77,   83,   83,   83,   83,   83,   84,   83,   83,   83,
        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
-       83,   83,   83,   83,   83,   83,   87,   87,   87,   87,
-       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
-       87,   87,   87,   90,   90,   90,   90,   90,   90,   90,
-       90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
+       83,   83,   83,   83,   83,   83,   83,   83,   77,   86,
+       86,   86,   87,   87,   86,  414,  236,   90,   86,   86,
+       90,  224,  227,  225,  228,  204,  226,  239,  205,  239,
 
-       92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
-       92,   92,   92,   92,   92,   92,   92,  101,  101,  101,
+      229,  240,  241,   88,   88,   91,   93,   93,   91,  252,
+      236,  252,   91,   91,   97,   98,   99,   98,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,  100,   97,
+       97,   97,   97,   97,   97,  101,  101,  101,  101,  101,
+      102,  101,  101,  101,  101,  101,  101,  101,  101,  101,
       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
-      101,  101,  101,  101,  126,  126,  126,  126,  126,  126,
-      126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
-      126,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131,  131,  131,  131,  131,  131,  131,  131,  172,  172,
+      101,  101,   97,  104,  104,  204,  105,  105,  205,  106,
+      106,  244,  245,  411,  250,  107,  107,  251,  204,  255,
+      256,  205,  204,  259,  260,  205,  409,  108,  108,  109,
+      110,  111,  110,  109,  109,  109,  109,  109,  109,  112,
+
+      109,  113,  114,  115,  109,  109,  109,  109,  109,  109,
+      116,  116,  116,  116,  116,  117,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
+      116,  116,  116,  116,  116,  116,  116,  109,  118,  118,
+      119,  118,  118,  120,  121,  118,  122,  118,  118,  118,
+      118,  118,  123,  124,  124,  124,  118,  118,  118,  125,
+      125,  125,  125,  125,  126,  127,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  118,  129,  130,  129,
+      129,  130,  129,  407,  261,  131,  261,  262,  131,  262,
+
+      177,  178,  177,  406,  177,  178,  177,  204,  265,  266,
+      205,  204,  132,  179,  205,  132,  134,  179,  405,  135,
+      273,  274,  136,  137,  138,  180,  139,  400,  140,  180,
+      190,  276,  277,  276,  191,  280,  281,  285,  286,  278,
+      141,  134,  192,  284,  135,  399,  205,  136,  137,  138,
+      202,  139,  202,  140,  193,  420,  279,  290,  420,  290,
+      204,  301,  302,  205,  394,  141,  142,  143,  144,  143,
+      142,  145,  146,  142,  147,  142,  142,  142,  142,  142,
+      148,  142,  142,  142,  142,  142,  142,  149,  149,  149,
+      149,  149,  150,  149,  149,  149,  149,  149,  149,  149,
+
+      149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
+      149,  149,  149,  149,  142,  151,  152,  153,  152,  154,
+      155,  151,  156,  157,  151,  151,  151,  151,  151,  158,
+      159,  160,  160,  161,  162,  163,  164,  164,  164,  164,
+      164,  165,  164,  164,  164,  164,  166,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  167,  168,  169,  170,  169,  168,  168,
+      168,  168,  168,  168,  168,  168,  168,  168,  171,  168,
+      168,  168,  168,  168,  168,  172,  172,  172,  172,  172,
+      173,  172,  172,  172,  172,  172,  172,  172,  172,  172,
+
       172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
-      172,  172,  172,  172,  172,   75,   75,   75,   75,   75,
-       75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
+      172,  172,  168,   78,   79,   78,  310,   80,  310,  194,
+      190,  194,  304,  305,  195,  306,  307,  181,  181,  181,
+      204,  393,  192,  205,  312,  313,  316,  317,   84,   78,
+       79,   78,  377,   80,  193,  315,  204,  315,  392,  205,
+      318,  318,  318,  181,  181,  181,  319,  204,  319,  390,
+      205,  322,  323,  377,   84,  182,  183,  184,  183,  182,
+      182,  182,  182,  182,  185,  185,  182,  182,  182,  186,
+      182,  182,  182,  182,  182,  182,  187,  187,  187,  187,
+      187,  188,  187,  187,  187,  187,  187,  187,  187,  187,
 
-       75,   75,  185,  185,  185,  185,  185,  185,  185,  185,
-      185,  185,  185,  185,  185,  185,  185,  185,  185,  195,
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  197,  415,  415,  415,
-      415,  415,  197,  197,  197,  197,  415,  197,  197,  199,
-      415,  415,  415,  199,  415,  199,  199,  199,  199,  199,
-      199,  199,  202,  415,  202,  202,  415,  202,  230,  230,
-      415,  230,  230,  230,  230,  230,  230,  230,  415,  230,
-      230,  230,  230,  415,  230,  231,  231,  231,  231,  231,
-      231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  187,  187,  182,   52,  196,  197,  196,   52,  198,
+       52,   52,   52,   52,   52,   52,   52,  389,  200,  298,
+      298,  298,   52,   52,   52,  388,  204,  299,  300,  205,
+      325,  326,  327,  328,  327,  328,  204,  210,  202,  330,
+      202,  299,  420,  333,  420,  420,  209,  420,  209,  300,
+      334,  210,   52,   52,  196,  197,  196,   52,  198,   52,
+       52,   52,   52,   52,   52,   52,  250,  200,  338,  251,
+      338,   52,   52,   52,  224,  227,  225,  228,  239,  226,
+      239,  387,  252,  229,  252,  347,  261,  347,  261,  262,
 
-      231,  231,  238,  238,  415,  415,  238,  238,  238,  238,
-      238,  238,  238,  238,  238,  238,  238,  415,  238,  239,
-      239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
-      239,  239,  239,  239,  239,  239,  242,  242,  415,  242,
-      242,  415,  242,  242,  242,  242,  242,  242,  242,  242,
-      242,  415,  242,  243,  243,  415,  243,  243,  243,  243,
-      243,  243,  243,  243,  243,  415,  243,  243,  415,  243,
-      244,  244,  415,  244,  244,  244,  244,  244,  415,  244,
-      244,  244,  244,  244,  244,  244,  244,  245,  245,  415,
-      245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
+      420,  262,  349,  420,  349,  276,  277,  276,  339,  280,
+      281,   52,  211,  278,  211,  420,  340,  420,  420,  290,
+      420,  290,  354,  358,  310,  315,  310,  315,  386,  385,
+      279,  318,  318,  318,  382,  381,  354,  358,  373,  212,
+      212,  212,  213,  214,  212,  212,  212,  215,  216,  212,
+      212,  212,  217,  212,  212,  212,  218,  219,  212,  420,
+      294,  420,  293,  293,  294,  372,  350,  351,  376,  371,
+      295,  296,  319,  327,  319,  327,  370,  328,  210,  328,
+      350,  338,  376,  338,  295,  347,  377,  347,  351,  212,
+      212,  349,  296,  349,  212,  212,  377,  352,  353,  212,
 
-      245,  245,  245,  245,  250,  415,  415,  415,  415,  250,
-      415,  250,  250,  415,  250,  253,  253,  415,  415,  253,
-      415,  253,  253,  253,  253,  415,  253,  253,  253,  253,
-      415,  253,  254,  254,  254,  254,  254,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  254,  254,  254,  260,
-      415,  260,  260,  415,  260,  263,  263,  415,  415,  415,
-      415,  263,  263,  263,  263,  415,  415,  263,  415,  415,
-      415,  263,  265,  265,  415,  415,  415,  415,  265,  265,
-      265,  265,  265,  265,  265,  265,  265,  415,  265,  267,
-      267,  415,  415,  415,  415,  267,  267,  267,  267,  415,
+      377,  369,  368,  212,  212,  270,  270,  367,  270,  270,
+      377,  352,  270,  380,  270,  270,  270,  270,  270,  353,
+      298,  298,  298,  270,  270,  270,  356,  357,  299,  300,
+      374,  375,  270,  380,  380,  380,  366,  378,  379,  383,
+      356,  383,  299,  384,  374,  384,  365,  380,  357,  380,
+      300,  378,  375,  270,  267,  267,  395,  267,  267,  379,
+      391,  267,  391,  267,  267,  267,  267,  267,  395,  395,
+      396,  397,  267,  267,  267,  398,  383,  395,  383,  364,
+      363,  275,  395,  395,  396,  384,  401,  384,  401,  398,
+      410,  402,  397,  402,  403,  404,  403,  404,  391,  408,
 
-      267,  267,  267,  267,  415,  267,  268,  415,  268,  268,
-      415,  268,  278,  278,  415,  415,  278,  415,  415,  415,
-      278,  278,  415,  278,  278,  278,  278,  415,  278,  279,
-      279,  415,  415,  279,  415,  415,  415,  279,  279,  279,
-      279,  279,  279,  279,  415,  279,  284,  284,  284,  284,
-      284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
-      284,  284,  284,  307,  415,  307,  307,  415,  307,  315,
-      415,  315,  315,  415,  315,  316,  316,  316,  316,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
-      316,  316,  319,  319,  415,  319,  415,  319,  319,  319,
+      391,  408,  267,  287,  362,  361,  289,  287,  325,  287,
+      287,  410,  287,  287,  410,  287,  287,  410,  287,  287,
+      287,  287,  287,  287,  412,  401,  412,  401,  410,  322,
+      402,  410,  402,  403,  404,  403,  404,  413,  415,  413,
+      415,  408,  412,  408,  412,  413,  418,  413,  418,  316,
+      312,  287,  293,  293,  294,  415,  419,  415,  419,  359,
+      295,  296,  297,  418,  419,  418,  419,  355,  306,  355,
+      285,  280,  273,  265,  295,  348,  259,  255,  253,  244,
+      240,  237,  296,  345,  297,  270,  270,  344,  270,  270,
+      343,  342,  270,  341,  270,  270,  270,  270,  270,  337,
 
-      319,  319,  415,  319,  319,  319,  319,  415,  319,  324,
-      324,  324,  415,  324,  324,  324,  324,  326,  326,  415,
-      326,  326,  326,  326,  326,  326,  326,  326,  326,  326,
-      326,  326,  326,  326,  341,  341,  415,  341,  341,  341,
-      341,  341,  415,  341,  415,  341,  341,  341,  341,  415,
-      341,  266,  266,  415,  415,  415,  415,  266,  266,  266,
-      266,  415,  415,  266,  415,  415,  415,  266,  355,  355,
-      415,  355,  355,  355,  355,  355,  355,  355,  355,  355,
-      355,  355,  355,  355,  355,   45,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
+      336,  335,  332,  270,  270,  270,  221,  233,  232,  231,
+      230,  223,  270,  207,  309,  308,  303,  292,  291,  268,
+      263,  253,  420,  233,  232,  231,  230,  223,  220,  420,
+      175,  175,  420,  270,  331,  331,  420,  331,  331,  331,
+      331,  331,  331,  331,  331,  331,  331,  420,  420,  420,
+      420,  420,  331,  331,  331,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  331,  331,  331,  420,  331,  331,  331,  331,
+      331,  331,  331,  331,  331,  331,  420,  420,  420,  420,
 
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415
+      420,  331,  331,  331,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  331,   73,   73,   73,   73,   73,   73,   73,   73,
+       73,   73,   73,   73,   73,   73,   73,   73,   73,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   89,   89,   89,   89,
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   89,   89,   92,   92,   92,   92,   92,   92,   92,
+       92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
+
+       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
+       94,   94,   94,   94,   94,   94,   94,  103,  103,  103,
+      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103,  103,  128,  128,  128,  128,  128,  128,
+      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+      128,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  176,  176,  176,  176,  176,
+      176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
+
+      176,  176,   77,   77,   77,   77,   77,   77,   77,   77,
+       77,   77,   77,   77,   77,   77,   77,   77,   77,  189,
+      189,  189,  189,  189,  189,  189,  189,  189,  189,  189,
+      189,  189,  189,  189,  189,  189,  199,  199,  199,  199,
+      199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
+      199,  199,  199,  201,  420,  420,  420,  420,  420,  201,
+      201,  201,  201,  420,  201,  201,  203,  420,  420,  420,
+      203,  420,  203,  203,  203,  203,  203,  203,  203,  206,
+      420,  206,  206,  420,  206,  234,  234,  420,  234,  234,
+      234,  234,  234,  234,  234,  420,  234,  234,  234,  234,
+
+      420,  234,  235,  235,  235,  235,  235,  235,  235,  235,
+      235,  235,  235,  235,  235,  235,  235,  235,  235,  242,
+      242,  420,  420,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  420,  242,  243,  243,  243,  243,
+      243,  243,  243,  243,  243,  243,  243,  243,  243,  243,
+      243,  243,  243,  246,  246,  420,  246,  246,  420,  246,
+      246,  246,  246,  246,  246,  246,  246,  246,  420,  246,
+      247,  247,  420,  247,  247,  247,  247,  247,  247,  247,
+      247,  247,  420,  247,  247,  420,  247,  248,  248,  420,
+      248,  248,  248,  248,  248,  420,  248,  248,  248,  248,
+
+      248,  248,  248,  248,  249,  249,  420,  249,  249,  249,
+      249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
+      249,  254,  420,  420,  420,  420,  254,  420,  254,  254,
+      420,  254,  257,  257,  420,  420,  257,  420,  257,  257,
+      257,  257,  420,  257,  257,  257,  257,  420,  257,  258,
+      258,  258,  258,  258,  258,  258,  258,  258,  258,  258,
+      258,  258,  258,  258,  258,  258,  264,  420,  264,  264,
+      420,  264,  267,  267,  420,  420,  420,  420,  267,  267,
+      267,  267,  420,  420,  267,  420,  420,  420,  267,  269,
+      269,  420,  420,  420,  420,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  420,  269,  271,  271,  420,  420,
+      420,  420,  271,  271,  271,  271,  420,  271,  271,  271,
+      271,  420,  271,  272,  420,  272,  272,  420,  272,  282,
+      282,  420,  420,  282,  420,  420,  420,  282,  282,  420,
+      282,  282,  282,  282,  420,  282,  283,  283,  420,  420,
+      283,  420,  420,  420,  283,  283,  283,  283,  283,  283,
+      283,  420,  283,  288,  288,  288,  288,  288,  288,  288,
+      288,  288,  288,  288,  288,  288,  288,  288,  288,  288,
+      311,  420,  311,  311,  420,  311,  314,  314,  420,  314,
+      314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
+
+      314,  314,  314,  320,  420,  320,  320,  420,  320,  321,
+      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
+      321,  321,  321,  321,  321,  321,  324,  324,  420,  324,
+      420,  324,  324,  324,  324,  324,  420,  324,  324,  324,
+      324,  420,  324,  329,  329,  329,  420,  329,  329,  329,
+      329,  331,  331,  420,  331,  331,  331,  331,  331,  331,
+      331,  331,  331,  331,  331,  331,  331,  331,  346,  346,
+      420,  346,  346,  346,  346,  346,  420,  346,  420,  346,
+      346,  346,  346,  420,  346,  270,  270,  420,  420,  420,
+      420,  270,  270,  270,  270,  420,  420,  270,  420,  420,
+
+      420,  270,  360,  360,  420,  360,  360,  360,  360,  360,
+      360,  360,  360,  360,  360,  360,  360,  360,  360,   47,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420
     } ;
 
-static const flex_int16_t yy_chk[1936] =
+static const flex_int16_t yy_chk[1970] =
     {   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,    2,
-       47,    2,   47,  406,    2,    3,    3,    3,    3,    3,
+       49,    2,   49,  411,    2,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 
-        3,    3,    3,    3,    5,    6,   15,   52,  404,   16,
-       52,   54,   54,   62,   62,   15,    5,    6,   16,   55,
-       54,   55,   61,   54,   55,   61,   74,   74,    5,    6,
+        3,    3,    3,    3,    5,    6,   15,   54,  409,   16,
+       54,   56,   56,   64,   64,   15,    5,    6,   16,   57,
+       56,   57,   63,   56,   57,   63,   76,   76,    5,    6,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    9,
-       10,   11,    9,   10,   12,  401,   73,   11,   13,   14,
-       12,   65,   66,   65,   66,   73,   65,   76,   73,   76,
+       10,   11,    9,   10,   12,  406,   75,   11,   13,   14,
+       12,   67,   68,   67,   68,   75,   67,   78,   75,   78,
 
-       66,   82,   82,    9,   10,   11,   13,   14,   12,   96,
-       73,   96,   13,   14,   17,   17,   17,   17,   17,   17,
+       68,   84,   84,    9,   10,   11,   13,   14,   12,   98,
+       75,   98,   13,   14,   17,   17,   17,   17,   17,   17,
        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
-       17,   17,   17,   19,   20,   79,   19,   20,   79,   19,
-       20,   86,   86,  394,   94,   19,   20,   94,   98,  100,
-      100,   98,  105,  106,  106,  105,  389,   19,   20,   21,
+       17,   17,   17,   19,   20,   81,   19,   20,   81,   19,
+       20,   88,   88,  399,   96,   19,   20,   96,  100,  102,
+      102,  100,  107,  108,  108,  107,  394,   19,   20,   21,
        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
 
        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
@@ -1082,15 +1087,15 @@
        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
        23,   23,   23,   23,   23,   23,   23,   25,   25,   25,
-       26,   26,   26,  387,  108,   25,  108,  110,   26,  110,
+       26,   26,   26,  392,  110,   25,  110,  112,   26,  112,
 
-       35,   35,   35,  385,   36,   36,   36,  113,  115,  115,
-      113,  121,   25,   35,  121,   26,   27,   36,  384,   27,
-      124,  124,   27,   27,   27,   35,   27,  377,   27,   36,
-       41,  127,  127,  127,   41,  130,  130,  139,  139,  127,
-       27,   28,   41,  138,   28,  376,  138,   28,   28,   28,
-      141,   28,  141,   28,   41,  146,  127,  150,  146,  150,
-      156,  159,  159,  156,  368,   28,   29,   29,   29,   29,
+       37,   37,   37,  390,   38,   38,   38,  115,  117,  117,
+      115,  123,   25,   37,  123,   26,   27,   38,  389,   27,
+      126,  126,   27,   27,   27,   37,   27,  382,   27,   38,
+       43,  129,  129,  129,   43,  132,  132,  141,  141,  129,
+       27,   28,   43,  140,   28,  381,  140,   28,   28,   28,
+      143,   28,  143,   28,   43,  148,  129,  152,  148,  152,
+      158,  161,  161,  158,  373,   28,   29,   29,   29,   29,
        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
@@ -1107,152 +1112,155 @@
        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
 
        33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
-       33,   33,   33,   37,   37,   37,  167,   37,  167,   42,
-       42,   42,  161,  161,   42,  163,  163,   37,   37,   37,
-      169,  367,   42,  169,  171,  171,  176,  176,   37,   38,
-       38,   38,  347,   38,   42,  173,  175,  173,  366,  175,
-      177,  177,  177,   38,   38,   38,  179,  182,  179,  364,
-      182,  184,  184,  347,   38,   39,   39,   39,   39,   39,
-       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
-       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
-       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
+       33,   33,   33,   39,   39,   39,  169,   39,  169,   44,
+       44,   44,  163,  163,   44,  165,  165,   39,   39,   39,
+      171,  372,   44,  171,  173,  173,  180,  180,   39,   40,
+       40,   40,  352,   40,   44,  177,  179,  177,  371,  179,
+      181,  181,  181,   40,   40,   40,  183,  186,  183,  369,
+      186,  188,  188,  352,   40,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
 
-       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
-       39,   39,   39,   39,   43,   43,   43,   43,   43,   43,
-       43,   43,   43,   43,   43,   43,   43,  363,   43,  158,
-      158,  158,   43,   43,   43,  362,  188,  158,  158,  188,
-      189,  189,  190,  192,  190,  192,  196,  190,  198,  196,
-      198,  158,  199,  220,  245,  199,  205,  245,  205,  158,
-      220,  205,   43,   44,   44,   44,   44,   44,   44,   44,
-       44,   44,   44,   44,   44,   44,  246,   44,  224,  246,
-      224,   44,   44,   44,  210,  211,  210,  211,  235,  210,
-      235,  361,  248,  211,  248,  255,  257,  255,  257,  258,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,  368,   45,  160,
+      160,  160,   45,   45,   45,  367,  192,  160,  160,  192,
+      193,  193,  194,  196,  194,  196,  200,  194,  202,  200,
+      202,  160,  203,  224,  249,  203,  209,  249,  209,  160,
+      224,  209,   45,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,   46,   46,   46,   46,  250,   46,  228,  250,
+      228,   46,   46,   46,  214,  215,  214,  215,  239,  214,
+      239,  366,  252,  215,  252,  259,  261,  259,  261,  262,
 
-      265,  258,  269,  265,  269,  272,  272,  272,  224,  275,
-      275,   44,   58,  272,   58,  279,  224,  283,  279,  286,
-      283,  286,  292,  296,  306,  310,  306,  310,  360,  359,
-      272,  313,  313,  313,  356,  354,  292,  296,  340,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   58,   58,   58,   58,   63,
-      290,   63,  289,  289,  289,  339,  290,  290,  346,  338,
-      289,  289,  314,  322,  314,  322,  337,  323,  322,  323,
-      290,  333,  346,  333,  289,  342,  348,  342,  290,   63,
-       63,  344,  289,  344,   63,   63,  349,  291,  291,   63,
+      269,  262,  273,  269,  273,  276,  276,  276,  228,  279,
+      279,   46,   60,  276,   60,  283,  228,  287,  283,  290,
+      287,  290,  296,  300,  310,  315,  310,  315,  365,  364,
+      276,  318,  318,  318,  361,  359,  296,  300,  345,   60,
+       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
+       60,   60,   60,   60,   60,   60,   60,   60,   60,   65,
+      294,   65,  293,  293,  293,  344,  294,  294,  351,  343,
+      293,  293,  319,  327,  319,  327,  342,  328,  327,  328,
+      294,  338,  351,  338,  293,  347,  353,  347,  294,   65,
+       65,  349,  293,  349,   65,   65,  354,  295,  295,   65,
 
-      348,  336,  335,   63,   63,  122,  122,  334,  122,  122,
-      349,  291,  122,  351,  122,  122,  122,  122,  122,  291,
-      294,  294,  294,  122,  122,  122,  295,  295,  294,  294,
-      345,  345,  122,  352,  351,  353,  332,  350,  350,  357,
-      295,  357,  294,  358,  345,  358,  331,  352,  295,  353,
-      294,  350,  345,  122,  125,  125,  369,  125,  125,  350,
-      365,  125,  365,  125,  125,  125,  125,  125,  370,  371,
-      373,  373,  125,  125,  125,  374,  378,  369,  378,  330,
-      329,  125,  370,  371,  373,  379,  380,  379,  380,  374,
-      391,  381,  373,  381,  382,  383,  382,  383,  386,  388,
+      353,  341,  340,   65,   65,  124,  124,  339,  124,  124,
+      354,  295,  124,  356,  124,  124,  124,  124,  124,  295,
+      298,  298,  298,  124,  124,  124,  299,  299,  298,  298,
+      350,  350,  124,  357,  356,  358,  337,  355,  355,  362,
+      299,  362,  298,  363,  350,  363,  336,  357,  299,  358,
+      298,  355,  350,  124,  127,  127,  374,  127,  127,  355,
+      370,  127,  370,  127,  127,  127,  127,  127,  375,  376,
+      378,  378,  127,  127,  127,  379,  383,  374,  383,  335,
+      334,  127,  375,  376,  378,  384,  385,  384,  385,  379,
+      396,  386,  378,  386,  387,  388,  387,  388,  391,  393,
 
-      386,  388,  125,  148,  328,  327,  148,  148,  321,  148,
-      148,  391,  148,  148,  392,  148,  148,  393,  148,  148,
-      148,  148,  148,  148,  395,  396,  395,  396,  392,  318,
-      397,  393,  397,  398,  399,  398,  399,  400,  402,  400,
-      402,  403,  407,  403,  407,  408,  409,  408,  409,  312,
-      309,  148,  157,  157,  157,  410,  411,  410,  411,  304,
-      157,  157,  157,  413,  414,  413,  414,  458,  303,  458,
-      282,  277,  270,  262,  157,  259,  256,  252,  250,  241,
-      237,  234,  157,  229,  157,  267,  267,  228,  267,  267,
-      227,  226,  267,  225,  267,  267,  267,  267,  267,  223,
+      391,  393,  127,  150,  333,  332,  150,  150,  326,  150,
+      150,  396,  150,  150,  397,  150,  150,  398,  150,  150,
+      150,  150,  150,  150,  400,  401,  400,  401,  397,  323,
+      402,  398,  402,  403,  404,  403,  404,  405,  407,  405,
+      407,  408,  412,  408,  412,  413,  414,  413,  414,  317,
+      313,  150,  159,  159,  159,  415,  416,  415,  416,  308,
+      159,  159,  159,  418,  419,  418,  419,  465,  307,  465,
+      286,  281,  274,  266,  159,  263,  260,  256,  254,  245,
+      241,  238,  159,  233,  159,  271,  271,  232,  271,  271,
+      231,  230,  271,  229,  271,  271,  271,  271,  271,  227,
 
-      222,  221,  219,  267,  267,  267,  218,  215,  214,  213,
-      212,  209,  267,  204,  165,  164,  160,  154,  152,  119,
-      112,   99,   89,   70,   69,   68,   67,   64,   60,   45,
-        0,    0,    0,  267,  325,  325,    0,  325,  325,  325,
-      325,  325,  325,  325,  325,  325,  325,    0,    0,    0,
-        0,    0,  325,  325,  325,    0,    0,    0,    0,    0,
+      226,  225,  223,  271,  271,  271,  222,  219,  218,  217,
+      216,  213,  271,  208,  167,  166,  162,  156,  154,  121,
+      114,  101,   91,   72,   71,   70,   69,   66,   62,   47,
+       36,   35,    0,  271,  330,  330,    0,  330,  330,  330,
+      330,  330,  330,  330,  330,  330,  330,    0,    0,    0,
+        0,    0,  330,  330,  330,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  325,  355,  355,    0,  355,  355,  355,  355,
-      355,  355,  355,  355,  355,  355,    0,    0,    0,    0,
+        0,    0,  330,  360,  360,    0,  360,  360,  360,  360,
+      360,  360,  360,  360,  360,  360,    0,    0,    0,    0,
 
-        0,  355,  355,  355,    0,    0,    0,    0,    0,    0,
+        0,  360,  360,  360,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  355,  416,  416,  416,  416,  416,  416,  416,  416,
-      416,  416,  416,  416,  416,  416,  416,  416,  416,  417,
-      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
-      417,  417,  417,  417,  417,  417,  418,  418,  418,  418,
-      418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
-      418,  418,  418,  419,  419,  419,  419,  419,  419,  419,
-      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
-
-      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
-      420,  420,  420,  420,  420,  420,  420,  421,  421,  421,
-      421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
-      421,  421,  421,  421,  422,  422,  422,  422,  422,  422,
+        0,  360,  421,  421,  421,  421,  421,  421,  421,  421,
+      421,  421,  421,  421,  421,  421,  421,  421,  421,  422,
       422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
-      422,  423,  423,  423,  423,  423,  423,  423,  423,  423,
-      423,  423,  423,  423,  423,  423,  423,  423,  424,  424,
+      422,  422,  422,  422,  422,  422,  423,  423,  423,  423,
+      423,  423,  423,  423,  423,  423,  423,  423,  423,  423,
+      423,  423,  423,  424,  424,  424,  424,  424,  424,  424,
       424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
-      424,  424,  424,  424,  424,  425,  425,  425,  425,  425,
+
       425,  425,  425,  425,  425,  425,  425,  425,  425,  425,
-
-      425,  425,  426,  426,  426,  426,  426,  426,  426,  426,
-      426,  426,  426,  426,  426,  426,  426,  426,  426,  427,
+      425,  425,  425,  425,  425,  425,  425,  426,  426,  426,
+      426,  426,  426,  426,  426,  426,  426,  426,  426,  426,
+      426,  426,  426,  426,  427,  427,  427,  427,  427,  427,
       427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
-      427,  427,  427,  427,  427,  427,  428,    0,    0,    0,
-        0,    0,  428,  428,  428,  428,    0,  428,  428,  429,
-        0,    0,    0,  429,    0,  429,  429,  429,  429,  429,
-      429,  429,  430,    0,  430,  430,    0,  430,  431,  431,
-        0,  431,  431,  431,  431,  431,  431,  431,    0,  431,
-      431,  431,  431,    0,  431,  432,  432,  432,  432,  432,
+      427,  428,  428,  428,  428,  428,  428,  428,  428,  428,
+      428,  428,  428,  428,  428,  428,  428,  428,  429,  429,
+      429,  429,  429,  429,  429,  429,  429,  429,  429,  429,
+      429,  429,  429,  429,  429,  430,  430,  430,  430,  430,
+      430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
+
+      430,  430,  431,  431,  431,  431,  431,  431,  431,  431,
+      431,  431,  431,  431,  431,  431,  431,  431,  431,  432,
       432,  432,  432,  432,  432,  432,  432,  432,  432,  432,
+      432,  432,  432,  432,  432,  432,  433,  433,  433,  433,
+      433,  433,  433,  433,  433,  433,  433,  433,  433,  433,
+      433,  433,  433,  434,    0,    0,    0,    0,    0,  434,
+      434,  434,  434,    0,  434,  434,  435,    0,    0,    0,
+      435,    0,  435,  435,  435,  435,  435,  435,  435,  436,
+        0,  436,  436,    0,  436,  437,  437,    0,  437,  437,
+      437,  437,  437,  437,  437,    0,  437,  437,  437,  437,
 
-      432,  432,  433,  433,    0,    0,  433,  433,  433,  433,
-      433,  433,  433,  433,  433,  433,  433,    0,  433,  434,
-      434,  434,  434,  434,  434,  434,  434,  434,  434,  434,
-      434,  434,  434,  434,  434,  434,  435,  435,    0,  435,
-      435,    0,  435,  435,  435,  435,  435,  435,  435,  435,
-      435,    0,  435,  436,  436,    0,  436,  436,  436,  436,
-      436,  436,  436,  436,  436,    0,  436,  436,    0,  436,
-      437,  437,    0,  437,  437,  437,  437,  437,    0,  437,
-      437,  437,  437,  437,  437,  437,  437,  438,  438,    0,
-      438,  438,  438,  438,  438,  438,  438,  438,  438,  438,
+        0,  437,  438,  438,  438,  438,  438,  438,  438,  438,
+      438,  438,  438,  438,  438,  438,  438,  438,  438,  439,
+      439,    0,    0,  439,  439,  439,  439,  439,  439,  439,
+      439,  439,  439,  439,    0,  439,  440,  440,  440,  440,
+      440,  440,  440,  440,  440,  440,  440,  440,  440,  440,
+      440,  440,  440,  441,  441,    0,  441,  441,    0,  441,
+      441,  441,  441,  441,  441,  441,  441,  441,    0,  441,
+      442,  442,    0,  442,  442,  442,  442,  442,  442,  442,
+      442,  442,    0,  442,  442,    0,  442,  443,  443,    0,
+      443,  443,  443,  443,  443,    0,  443,  443,  443,  443,
 
-      438,  438,  438,  438,  439,    0,    0,    0,    0,  439,
-        0,  439,  439,    0,  439,  440,  440,    0,    0,  440,
-        0,  440,  440,  440,  440,    0,  440,  440,  440,  440,
-        0,  440,  441,  441,  441,  441,  441,  441,  441,  441,
-      441,  441,  441,  441,  441,  441,  441,  441,  441,  442,
-        0,  442,  442,    0,  442,  443,  443,    0,    0,    0,
-        0,  443,  443,  443,  443,    0,    0,  443,    0,    0,
-        0,  443,  444,  444,    0,    0,    0,    0,  444,  444,
-      444,  444,  444,  444,  444,  444,  444,    0,  444,  445,
-      445,    0,    0,    0,    0,  445,  445,  445,  445,    0,
+      443,  443,  443,  443,  444,  444,    0,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  445,    0,    0,    0,    0,  445,    0,  445,  445,
+        0,  445,  446,  446,    0,    0,  446,    0,  446,  446,
+      446,  446,    0,  446,  446,  446,  446,    0,  446,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  448,    0,  448,  448,
+        0,  448,  449,  449,    0,    0,    0,    0,  449,  449,
+      449,  449,    0,    0,  449,    0,    0,    0,  449,  450,
+      450,    0,    0,    0,    0,  450,  450,  450,  450,  450,
 
-      445,  445,  445,  445,    0,  445,  446,    0,  446,  446,
-        0,  446,  447,  447,    0,    0,  447,    0,    0,    0,
-      447,  447,    0,  447,  447,  447,  447,    0,  447,  448,
-      448,    0,    0,  448,    0,    0,    0,  448,  448,  448,
-      448,  448,  448,  448,    0,  448,  449,  449,  449,  449,
-      449,  449,  449,  449,  449,  449,  449,  449,  449,  449,
-      449,  449,  449,  450,    0,  450,  450,    0,  450,  451,
-        0,  451,  451,    0,  451,  452,  452,  452,  452,  452,
-      452,  452,  452,  452,  452,  452,  452,  452,  452,  452,
-      452,  452,  453,  453,    0,  453,    0,  453,  453,  453,
-
-      453,  453,    0,  453,  453,  453,  453,    0,  453,  454,
-      454,  454,    0,  454,  454,  454,  454,  455,  455,    0,
+      450,  450,  450,  450,    0,  450,  451,  451,    0,    0,
+        0,    0,  451,  451,  451,  451,    0,  451,  451,  451,
+      451,    0,  451,  452,    0,  452,  452,    0,  452,  453,
+      453,    0,    0,  453,    0,    0,    0,  453,  453,    0,
+      453,  453,  453,  453,    0,  453,  454,  454,    0,    0,
+      454,    0,    0,    0,  454,  454,  454,  454,  454,  454,
+      454,    0,  454,  455,  455,  455,  455,  455,  455,  455,
       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
-      455,  455,  455,  455,  456,  456,    0,  456,  456,  456,
-      456,  456,    0,  456,    0,  456,  456,  456,  456,    0,
-      456,  457,  457,    0,    0,    0,    0,  457,  457,  457,
-      457,    0,    0,  457,    0,    0,    0,  457,  459,  459,
-        0,  459,  459,  459,  459,  459,  459,  459,  459,  459,
-      459,  459,  459,  459,  459,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
+      456,    0,  456,  456,    0,  456,  457,  457,    0,  457,
+      457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
 
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  415,  415,  415,  415
+      457,  457,  457,  458,    0,  458,  458,    0,  458,  459,
+      459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
+      459,  459,  459,  459,  459,  459,  460,  460,    0,  460,
+        0,  460,  460,  460,  460,  460,    0,  460,  460,  460,
+      460,    0,  460,  461,  461,  461,    0,  461,  461,  461,
+      461,  462,  462,    0,  462,  462,  462,  462,  462,  462,
+      462,  462,  462,  462,  462,  462,  462,  462,  463,  463,
+        0,  463,  463,  463,  463,  463,    0,  463,    0,  463,
+      463,  463,  463,    0,  463,  464,  464,    0,    0,    0,
+        0,  464,  464,  464,  464,    0,    0,  464,    0,    0,
+
+        0,  464,  466,  466,    0,  466,  466,  466,  466,  466,
+      466,  466,  466,  466,  466,  466,  466,  466,  466,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  420
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1418,7 +1426,8 @@
 
 
 
-#line 164 "ppl.l"
+
+#line 165 "ppl.l"
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -1613,13 +1622,13 @@
 	wpp_callbacks->write(buffer, len);
 }
 
-#line 1616 "ppl.yy.c"
+#line 1625 "ppl.yy.c"
 /*
  **************************************************************************
  * The scanner starts here
  **************************************************************************
  */
-#line 1622 "ppl.yy.c"
+#line 1631 "ppl.yy.c"
 
 #define INITIAL 0
 #define pp_pp 1
@@ -1638,11 +1647,12 @@
 #define pp_macexp 14
 #define pp_if 15
 #define pp_ifd 16
-#define pp_endif 17
-#define pp_line 18
-#define pp_defined 19
-#define pp_ignore 20
-#define RCINCL 21
+#define pp_ifignored 17
+#define pp_endif 18
+#define pp_line 19
+#define pp_defined 20
+#define pp_ignore 21
+#define RCINCL 22
 
 #ifndef YY_NO_UNISTD_H
 /* Special case for "unistd.h", since it is non-ANSI. We include it way
@@ -1868,9 +1878,9 @@
 		}
 
 	{
-#line 366 "ppl.l"
+#line 367 "ppl.l"
 
-#line 368 "ppl.l"
+#line 369 "ppl.l"
 	/*
 	 * Catch line-continuations.
 	 * Note: Gcc keeps the line-continuations in, for example, strings
@@ -1883,7 +1893,7 @@
 	/*
 	 * Detect the leading # of a preprocessor directive.
 	 */
-#line 1886 "ppl.yy.c"
+#line 1896 "ppl.yy.c"
 
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 		{
@@ -1911,13 +1921,13 @@
 			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 >= 416 )
+				if ( yy_current_state >= 421 )
 					yy_c = yy_meta[yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 			++yy_cp;
 			}
-		while ( yy_current_state != 415 );
+		while ( yy_current_state != 420 );
 		yy_cp = (yy_last_accepting_cpos);
 		yy_current_state = (yy_last_accepting_state);
 
@@ -1939,7 +1949,7 @@
 
 case 1:
 YY_RULE_SETUP
-#line 380 "ppl.l"
+#line 381 "ppl.l"
 pp_incl_state.seen_junk++; yy_push_state(pp_pp);
 	YY_BREAK
 /*
@@ -1947,104 +1957,104 @@
 	 */
 case 2:
 YY_RULE_SETUP
-#line 385 "ppl.l"
+#line 386 "ppl.l"
 if(yy_top_state() != pp_ignore) {yy_pp_state(pp_inc); return tINCLUDE;} else {yy_pp_state(pp_eol);}
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 386 "ppl.l"
+#line 387 "ppl.l"
 yy_pp_state(yy_current_state() != pp_ignore ? pp_def : pp_eol);
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 387 "ppl.l"
+#line 388 "ppl.l"
 yy_pp_state(pp_eol);	if(yy_top_state() != pp_ignore) return tERROR;
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 388 "ppl.l"
+#line 389 "ppl.l"
 yy_pp_state(pp_eol);	if(yy_top_state() != pp_ignore) return tWARNING;
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 389 "ppl.l"
+#line 390 "ppl.l"
 yy_pp_state(pp_eol);	if(yy_top_state() != pp_ignore) return tPRAGMA;
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 390 "ppl.l"
+#line 391 "ppl.l"
 yy_pp_state(pp_eol);	if(yy_top_state() != pp_ignore) return tPPIDENT;
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 391 "ppl.l"
+#line 392 "ppl.l"
 if(yy_top_state() != pp_ignore) {yy_pp_state(pp_ifd); return tUNDEF;} else {yy_pp_state(pp_eol);}
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 392 "ppl.l"
+#line 393 "ppl.l"
 yy_pp_state(pp_ifd);	return tIFDEF;
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 393 "ppl.l"
+#line 394 "ppl.l"
 pp_incl_state.seen_junk--; yy_pp_state(pp_ifd);	return tIFNDEF;
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 394 "ppl.l"
-yy_pp_state(pp_if);	return tIF;
+#line 395 "ppl.l"
+if(yy_top_state() != pp_ignore) {yy_pp_state(pp_if);} else {yy_pp_state(pp_ifignored);} return tIF;
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 395 "ppl.l"
+#line 396 "ppl.l"
 yy_pp_state(pp_if);	return tELIF;
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 396 "ppl.l"
+#line 397 "ppl.l"
 yy_pp_state(pp_endif);  return tELSE;
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 397 "ppl.l"
+#line 398 "ppl.l"
 yy_pp_state(pp_endif);  return tENDIF;
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 398 "ppl.l"
+#line 399 "ppl.l"
 if(yy_top_state() != pp_ignore) {yy_pp_state(pp_line); return tLINE;} else {yy_pp_state(pp_eol);}
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 399 "ppl.l"
+#line 400 "ppl.l"
 if(yy_top_state() != pp_ignore) {yy_pp_state(pp_line); return tGCCLINE;} else {yy_pp_state(pp_eol);}
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 400 "ppl.l"
+#line 401 "ppl.l"
 ppy_error("Invalid preprocessor token '%s'", ppy_text);
 	YY_BREAK
 case 18:
 /* rule 18 can match eol */
 YY_RULE_SETUP
-#line 401 "ppl.l"
+#line 402 "ppl.l"
 newline(1); yy_pop_state(); return tNL;	/* This could be the null-token */
 	YY_BREAK
 case 19:
 /* rule 19 can match eol */
 YY_RULE_SETUP
-#line 402 "ppl.l"
+#line 403 "ppl.l"
 newline(0);
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 403 "ppl.l"
+#line 404 "ppl.l"
 ppy_error("Preprocessor junk '%s'", ppy_text);
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 404 "ppl.l"
+#line 405 "ppl.l"
 return *ppy_text;
 	YY_BREAK
 /*
@@ -2052,39 +2062,39 @@
 	 */
 case 22:
 YY_RULE_SETUP
-#line 409 "ppl.l"
+#line 410 "ppl.l"
 return make_number(10, &ppy_lval, ppy_text, ppy_leng);
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 410 "ppl.l"
+#line 411 "ppl.l"
 new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_iqs);
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 411 "ppl.l"
+#line 412 "ppl.l"
 new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs);
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 412 "ppl.l"
+#line 413 "ppl.l"
 ;
 	YY_BREAK
 case 26:
 /* rule 26 can match eol */
 YY_RULE_SETUP
-#line 413 "ppl.l"
+#line 414 "ppl.l"
 newline(1); yy_pop_state(); return tNL;
 	YY_BREAK
 case 27:
 /* rule 27 can match eol */
 YY_RULE_SETUP
-#line 414 "ppl.l"
+#line 415 "ppl.l"
 newline(0);
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 415 "ppl.l"
+#line 416 "ppl.l"
 ppy_error(yy_current_state() == pp_inc ? "Trailing junk in #include" : "Trailing junk in #line");
 	YY_BREAK
 /*
@@ -2092,24 +2102,24 @@
 	 */
 case 29:
 YY_RULE_SETUP
-#line 420 "ppl.l"
+#line 421 "ppl.l"
 ;
 	YY_BREAK
 case 30:
 /* rule 30 can match eol */
 YY_RULE_SETUP
-#line 421 "ppl.l"
+#line 422 "ppl.l"
 newline(1);
 	YY_BREAK
 case 31:
 /* rule 31 can match eol */
 YY_RULE_SETUP
-#line 422 "ppl.l"
+#line 423 "ppl.l"
 newline(0);
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 423 "ppl.l"
+#line 424 "ppl.l"
 ;
 	YY_BREAK
 /*
@@ -2120,165 +2130,176 @@
 	 */
 case 33:
 YY_RULE_SETUP
-#line 432 "ppl.l"
+#line 433 "ppl.l"
 return make_number(8, &ppy_lval, ppy_text, ppy_leng);
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 433 "ppl.l"
+#line 434 "ppl.l"
 ppy_error("Invalid octal digit");
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 434 "ppl.l"
+#line 435 "ppl.l"
 return make_number(10, &ppy_lval, ppy_text, ppy_leng);
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 435 "ppl.l"
+#line 436 "ppl.l"
 return make_number(16, &ppy_lval, ppy_text, ppy_leng);
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 436 "ppl.l"
+#line 437 "ppl.l"
 ppy_error("Invalid hex number");
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 437 "ppl.l"
+#line 438 "ppl.l"
 yy_push_state(pp_defined); return tDEFINED;
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 438 "ppl.l"
+#line 439 "ppl.l"
 return tLSHIFT;
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 439 "ppl.l"
+#line 440 "ppl.l"
 return tRSHIFT;
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 440 "ppl.l"
+#line 441 "ppl.l"
 return tLOGAND;
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 441 "ppl.l"
+#line 442 "ppl.l"
 return tLOGOR;
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 442 "ppl.l"
+#line 443 "ppl.l"
 return tEQ;
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 443 "ppl.l"
+#line 444 "ppl.l"
 return tNE;
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 444 "ppl.l"
+#line 445 "ppl.l"
 return tLTE;
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 445 "ppl.l"
+#line 446 "ppl.l"
 return tGTE;
 	YY_BREAK
 case 47:
 /* rule 47 can match eol */
 YY_RULE_SETUP
-#line 446 "ppl.l"
+#line 447 "ppl.l"
 newline(1); yy_pop_state(); return tNL;
 	YY_BREAK
 case 48:
 /* rule 48 can match eol */
 YY_RULE_SETUP
-#line 447 "ppl.l"
+#line 448 "ppl.l"
 newline(0);
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 448 "ppl.l"
+#line 449 "ppl.l"
 ppy_error("Junk in conditional expression");
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 449 "ppl.l"
+#line 450 "ppl.l"
 ;
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 450 "ppl.l"
+#line 451 "ppl.l"
 new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs);
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 451 "ppl.l"
+#line 452 "ppl.l"
 ppy_error("String constants not allowed in conditionals");
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 452 "ppl.l"
+#line 453 "ppl.l"
 return *ppy_text;
 	YY_BREAK
+case 54:
+YY_RULE_SETUP
+#line 455 "ppl.l"
+ppy_lval.sint = 0; return tSINT;
+	YY_BREAK
+case 55:
+/* rule 55 can match eol */
+YY_RULE_SETUP
+#line 456 "ppl.l"
+newline(1); yy_pop_state(); return tNL;
+	YY_BREAK
 /*
 	 * Handle #ifdef, #ifndef and #undef
 	 * to get only an untranslated/unexpanded identifier
 	 */
-case 54:
-YY_RULE_SETUP
-#line 458 "ppl.l"
-ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT;
-	YY_BREAK
-case 55:
-YY_RULE_SETUP
-#line 459 "ppl.l"
-;
-	YY_BREAK
 case 56:
-/* rule 56 can match eol */
-YY_RULE_SETUP
-#line 460 "ppl.l"
-newline(1); yy_pop_state(); return tNL;
-	YY_BREAK
-case 57:
-/* rule 57 can match eol */
-YY_RULE_SETUP
-#line 461 "ppl.l"
-newline(0);
-	YY_BREAK
-case 58:
 YY_RULE_SETUP
 #line 462 "ppl.l"
+ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT;
+	YY_BREAK
+case 57:
+YY_RULE_SETUP
+#line 463 "ppl.l"
+;
+	YY_BREAK
+case 58:
+/* rule 58 can match eol */
+YY_RULE_SETUP
+#line 464 "ppl.l"
+newline(1); yy_pop_state(); return tNL;
+	YY_BREAK
+case 59:
+/* rule 59 can match eol */
+YY_RULE_SETUP
+#line 465 "ppl.l"
+newline(0);
+	YY_BREAK
+case 60:
+YY_RULE_SETUP
+#line 466 "ppl.l"
 ppy_error("Identifier expected");
 	YY_BREAK
 /*
 	 * Handle #else and #endif.
 	 */
-case 59:
+case 61:
 YY_RULE_SETUP
-#line 467 "ppl.l"
+#line 471 "ppl.l"
 ;
 	YY_BREAK
-case 60:
-/* rule 60 can match eol */
+case 62:
+/* rule 62 can match eol */
 YY_RULE_SETUP
-#line 468 "ppl.l"
+#line 472 "ppl.l"
 newline(1); yy_pop_state(); return tNL;
 	YY_BREAK
-case 61:
-/* rule 61 can match eol */
+case 63:
+/* rule 63 can match eol */
 YY_RULE_SETUP
-#line 469 "ppl.l"
+#line 473 "ppl.l"
 newline(0);
 	YY_BREAK
-case 62:
+case 64:
 YY_RULE_SETUP
-#line 470 "ppl.l"
+#line 474 "ppl.l"
 ppy_error("Garbage after #else or #endif.");
 	YY_BREAK
 /*
@@ -2286,31 +2307,31 @@
 	 * This is necessary to get the identifier prior to any
 	 * substitutions.
 	 */
-case 63:
-YY_RULE_SETUP
-#line 477 "ppl.l"
-yy_pop_state(); ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT;
-	YY_BREAK
-case 64:
-YY_RULE_SETUP
-#line 478 "ppl.l"
-;
-	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 479 "ppl.l"
-return *ppy_text;
+#line 481 "ppl.l"
+yy_pop_state(); ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT;
 	YY_BREAK
 case 66:
-/* rule 66 can match eol */
 YY_RULE_SETUP
-#line 480 "ppl.l"
-newline(0);
+#line 482 "ppl.l"
+;
 	YY_BREAK
 case 67:
-/* rule 67 can match eol */
 YY_RULE_SETUP
-#line 481 "ppl.l"
+#line 483 "ppl.l"
+return *ppy_text;
+	YY_BREAK
+case 68:
+/* rule 68 can match eol */
+YY_RULE_SETUP
+#line 484 "ppl.l"
+newline(0);
+	YY_BREAK
+case 69:
+/* rule 69 can match eol */
+YY_RULE_SETUP
+#line 485 "ppl.l"
 ppy_error("Identifier expected");
 	YY_BREAK
 /*
@@ -2319,205 +2340,205 @@
 	 * will act appropriately.
 	 * Comments are stripped from the literal text.
 	 */
-case 68:
-YY_RULE_SETUP
-#line 489 "ppl.l"
-if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; }
-	YY_BREAK
-case 69:
-YY_RULE_SETUP
-#line 490 "ppl.l"
-if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; }
-	YY_BREAK
 case 70:
-/* rule 70 can match eol */
 YY_RULE_SETUP
-#line 491 "ppl.l"
+#line 493 "ppl.l"
 if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; }
 	YY_BREAK
 case 71:
-/* rule 71 can match eol */
 YY_RULE_SETUP
-#line 492 "ppl.l"
-newline(1); yy_pop_state(); if(yy_current_state() != pp_ignore) { return tNL; }
+#line 494 "ppl.l"
+if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; }
 	YY_BREAK
 case 72:
 /* rule 72 can match eol */
 YY_RULE_SETUP
-#line 493 "ppl.l"
+#line 495 "ppl.l"
+if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; }
+	YY_BREAK
+case 73:
+/* rule 73 can match eol */
+YY_RULE_SETUP
+#line 496 "ppl.l"
+newline(1); yy_pop_state(); if(yy_current_state() != pp_ignore) { return tNL; }
+	YY_BREAK
+case 74:
+/* rule 74 can match eol */
+YY_RULE_SETUP
+#line 497 "ppl.l"
 newline(0);
 	YY_BREAK
 /*
 	 * Handle left side of #define
 	 */
-case 73:
-YY_RULE_SETUP
-#line 498 "ppl.l"
-ppy_lval.cptr = pp_xstrdup(ppy_text); if(ppy_lval.cptr) ppy_lval.cptr[ppy_leng-1] = '\0'; yy_pp_state(pp_macro);  return tMACRO;
-	YY_BREAK
-case 74:
-YY_RULE_SETUP
-#line 499 "ppl.l"
-ppy_lval.cptr = pp_xstrdup(ppy_text); yy_pp_state(pp_define); return tDEFINE;
-	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 500 "ppl.l"
-;
+#line 502 "ppl.l"
+ppy_lval.cptr = pp_xstrdup(ppy_text); if(ppy_lval.cptr) ppy_lval.cptr[ppy_leng-1] = '\0'; yy_pp_state(pp_macro);  return tMACRO;
 	YY_BREAK
 case 76:
-/* rule 76 can match eol */
 YY_RULE_SETUP
-#line 501 "ppl.l"
-newline(0);
+#line 503 "ppl.l"
+ppy_lval.cptr = pp_xstrdup(ppy_text); yy_pp_state(pp_define); return tDEFINE;
 	YY_BREAK
 case 77:
-/* rule 77 can match eol */
 YY_RULE_SETUP
-#line 502 "ppl.l"
+#line 504 "ppl.l"
+;
+	YY_BREAK
+case 78:
+/* rule 78 can match eol */
+YY_RULE_SETUP
+#line 505 "ppl.l"
+newline(0);
+	YY_BREAK
+case 79:
+/* rule 79 can match eol */
+YY_RULE_SETUP
+#line 506 "ppl.l"
 perror("Identifier expected");
 	YY_BREAK
 /*
 	 * Scan the substitution of a define
 	 */
-case 78:
-YY_RULE_SETUP
-#line 507 "ppl.l"
-ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL;
-	YY_BREAK
-case 79:
-/* rule 79 can match eol */
-YY_RULE_SETUP
-#line 508 "ppl.l"
-ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL;
-	YY_BREAK
 case 80:
-/* rule 80 can match eol */
 YY_RULE_SETUP
-#line 509 "ppl.l"
-newline(0); ppy_lval.cptr = pp_xstrdup(" "); return tLITERAL;
+#line 511 "ppl.l"
+ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL;
 	YY_BREAK
 case 81:
 /* rule 81 can match eol */
 YY_RULE_SETUP
-#line 510 "ppl.l"
-newline(0);
+#line 512 "ppl.l"
+ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL;
 	YY_BREAK
 case 82:
 /* rule 82 can match eol */
 YY_RULE_SETUP
-#line 511 "ppl.l"
-newline(1); yy_pop_state(); return tNL;
+#line 513 "ppl.l"
+newline(0); ppy_lval.cptr = pp_xstrdup(" "); return tLITERAL;
 	YY_BREAK
 case 83:
+/* rule 83 can match eol */
 YY_RULE_SETUP
-#line 512 "ppl.l"
-new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs);
+#line 514 "ppl.l"
+newline(0);
 	YY_BREAK
 case 84:
+/* rule 84 can match eol */
 YY_RULE_SETUP
-#line 513 "ppl.l"
+#line 515 "ppl.l"
+newline(1); yy_pop_state(); return tNL;
+	YY_BREAK
+case 85:
+YY_RULE_SETUP
+#line 516 "ppl.l"
+new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs);
+	YY_BREAK
+case 86:
+YY_RULE_SETUP
+#line 517 "ppl.l"
 new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs);
 	YY_BREAK
 /*
 	 * Scan the definition macro arguments
 	 */
-case 85:
-YY_RULE_SETUP
-#line 518 "ppl.l"
-yy_pp_state(pp_mbody); return tMACROEND;
-	YY_BREAK
-case 86:
-YY_RULE_SETUP
-#line 519 "ppl.l"
-;
-	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 520 "ppl.l"
-ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT;
+#line 522 "ppl.l"
+yy_pp_state(pp_mbody); return tMACROEND;
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 521 "ppl.l"
-return ',';
+#line 523 "ppl.l"
+;
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 522 "ppl.l"
-return tELIPSIS;
+#line 524 "ppl.l"
+ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT;
 	YY_BREAK
 case 90:
-/* rule 90 can match eol */
 YY_RULE_SETUP
-#line 523 "ppl.l"
-ppy_error("Argument identifier expected");
+#line 525 "ppl.l"
+return ',';
 	YY_BREAK
 case 91:
-/* rule 91 can match eol */
 YY_RULE_SETUP
-#line 524 "ppl.l"
+#line 526 "ppl.l"
+return tELIPSIS;
+	YY_BREAK
+case 92:
+/* rule 92 can match eol */
+YY_RULE_SETUP
+#line 527 "ppl.l"
+ppy_error("Argument identifier expected");
+	YY_BREAK
+case 93:
+/* rule 93 can match eol */
+YY_RULE_SETUP
+#line 528 "ppl.l"
 newline(0);
 	YY_BREAK
 /*
 	 * Scan the substitution of a macro
 	 */
-case 92:
-YY_RULE_SETUP
-#line 529 "ppl.l"
-ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL;
-	YY_BREAK
-case 93:
-YY_RULE_SETUP
-#line 530 "ppl.l"
-ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT;
-	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 531 "ppl.l"
-return tCONCAT;
-	YY_BREAK
-case 95:
-YY_RULE_SETUP
-#line 532 "ppl.l"
-return tSTRINGIZE;
-	YY_BREAK
-case 96:
-YY_RULE_SETUP
 #line 533 "ppl.l"
 ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL;
 	YY_BREAK
-case 97:
+case 95:
 YY_RULE_SETUP
 #line 534 "ppl.l"
-ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL;
+ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT;
 	YY_BREAK
-case 98:
-/* rule 98 can match eol */
+case 96:
 YY_RULE_SETUP
 #line 535 "ppl.l"
-newline(0); ppy_lval.cptr = pp_xstrdup(" "); return tLITERAL;
+return tCONCAT;
 	YY_BREAK
-case 99:
-/* rule 99 can match eol */
+case 97:
 YY_RULE_SETUP
 #line 536 "ppl.l"
-newline(0);
+return tSTRINGIZE;
+	YY_BREAK
+case 98:
+YY_RULE_SETUP
+#line 537 "ppl.l"
+ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL;
+	YY_BREAK
+case 99:
+YY_RULE_SETUP
+#line 538 "ppl.l"
+ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL;
 	YY_BREAK
 case 100:
 /* rule 100 can match eol */
 YY_RULE_SETUP
-#line 537 "ppl.l"
-newline(1); yy_pop_state(); return tNL;
+#line 539 "ppl.l"
+newline(0); ppy_lval.cptr = pp_xstrdup(" "); return tLITERAL;
 	YY_BREAK
 case 101:
+/* rule 101 can match eol */
 YY_RULE_SETUP
-#line 538 "ppl.l"
-new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs);
+#line 540 "ppl.l"
+newline(0);
 	YY_BREAK
 case 102:
+/* rule 102 can match eol */
 YY_RULE_SETUP
-#line 539 "ppl.l"
+#line 541 "ppl.l"
+newline(1); yy_pop_state(); return tNL;
+	YY_BREAK
+case 103:
+YY_RULE_SETUP
+#line 542 "ppl.l"
+new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs);
+	YY_BREAK
+case 104:
+YY_RULE_SETUP
+#line 543 "ppl.l"
 new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs);
 	YY_BREAK
 /*
@@ -2529,32 +2550,32 @@
 	 * If we do not see a '(' as next trailing token, then we have
 	 * a false alarm. We just continue with a nose-bleed...
 	 */
-case 103:
+case 105:
 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 550 "ppl.l"
+#line 554 "ppl.l"
 yy_pp_state(pp_macscan);
 	YY_BREAK
-case 104:
-/* rule 104 can match eol */
+case 106:
+/* rule 106 can match eol */
 YY_RULE_SETUP
-#line 551 "ppl.l"
+#line 555 "ppl.l"
 {
 		if(yy_top_state() != pp_macscan)
 			newline(0);
 	}
 	YY_BREAK
-case 105:
-/* rule 105 can match eol */
+case 107:
+/* rule 107 can match eol */
 YY_RULE_SETUP
-#line 555 "ppl.l"
+#line 559 "ppl.l"
 newline(0);
 	YY_BREAK
-case 106:
+case 108:
 YY_RULE_SETUP
-#line 556 "ppl.l"
+#line 560 "ppl.l"
 {
 		macexpstackentry_t *mac = pop_macro();
 		yy_pop_state();
@@ -2567,17 +2588,17 @@
 	 * Macro expansion argument text scanning.
 	 * This state is active when a macro's arguments are being read for expansion.
 	 */
-case 107:
+case 109:
 YY_RULE_SETUP
-#line 568 "ppl.l"
+#line 572 "ppl.l"
 {
 		if(++MACROPARENTHESES() > 1)
 			add_text_to_macro(ppy_text, ppy_leng);
 	}
 	YY_BREAK
-case 108:
+case 110:
 YY_RULE_SETUP
-#line 572 "ppl.l"
+#line 576 "ppl.l"
 {
 		if(--MACROPARENTHESES() == 0)
 		{
@@ -2588,9 +2609,9 @@
 			add_text_to_macro(ppy_text, ppy_leng);
 	}
 	YY_BREAK
-case 109:
+case 111:
 YY_RULE_SETUP
-#line 581 "ppl.l"
+#line 585 "ppl.l"
 {
 		if(MACROPARENTHESES() > 1)
 			add_text_to_macro(ppy_text, ppy_leng);
@@ -2598,68 +2619,68 @@
 			macro_add_arg(0);
 	}
 	YY_BREAK
-case 110:
-YY_RULE_SETUP
-#line 587 "ppl.l"
-new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs);
-	YY_BREAK
-case 111:
-YY_RULE_SETUP
-#line 588 "ppl.l"
-new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs);
-	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 589 "ppl.l"
-yy_push_state(pp_comment); add_text_to_macro(" ", 1);
+#line 591 "ppl.l"
+new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs);
 	YY_BREAK
 case 113:
-/* rule 113 can match eol */
 YY_RULE_SETUP
-#line 590 "ppl.l"
-pp_status.line_number++; pp_status.char_number = 1; add_text_to_macro(ppy_text, ppy_leng);
+#line 592 "ppl.l"
+new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs);
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 591 "ppl.l"
-add_text_to_macro(ppy_text, ppy_leng);
+#line 593 "ppl.l"
+yy_push_state(pp_comment); add_text_to_macro(" ", 1);
 	YY_BREAK
 case 115:
 /* rule 115 can match eol */
 YY_RULE_SETUP
-#line 592 "ppl.l"
+#line 594 "ppl.l"
+pp_status.line_number++; pp_status.char_number = 1; add_text_to_macro(ppy_text, ppy_leng);
+	YY_BREAK
+case 116:
+YY_RULE_SETUP
+#line 595 "ppl.l"
+add_text_to_macro(ppy_text, ppy_leng);
+	YY_BREAK
+case 117:
+/* rule 117 can match eol */
+YY_RULE_SETUP
+#line 596 "ppl.l"
 newline(0);
 	YY_BREAK
 /*
 	 * Comment handling (almost all start-conditions)
 	 */
-case 116:
-YY_RULE_SETUP
-#line 597 "ppl.l"
-yy_push_state(pp_comment);
-	YY_BREAK
-case 117:
-YY_RULE_SETUP
-#line 598 "ppl.l"
-;
-	YY_BREAK
 case 118:
-/* rule 118 can match eol */
 YY_RULE_SETUP
-#line 599 "ppl.l"
-newline(0);
+#line 601 "ppl.l"
+yy_push_state(pp_comment);
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 600 "ppl.l"
+#line 602 "ppl.l"
+;
+	YY_BREAK
+case 120:
+/* rule 120 can match eol */
+YY_RULE_SETUP
+#line 603 "ppl.l"
+newline(0);
+	YY_BREAK
+case 121:
+YY_RULE_SETUP
+#line 604 "ppl.l"
 yy_pop_state();
 	YY_BREAK
 /*
 	 * Remove C++ style comment (almost all start-conditions)
 	 */
-case 120:
+case 122:
 YY_RULE_SETUP
-#line 605 "ppl.l"
+#line 609 "ppl.l"
 {
 		if(ppy_text[ppy_leng-1] == '\\')
 			ppy_warning("C++ style comment ends with an escaped newline (escape ignored)");
@@ -2668,24 +2689,24 @@
 /*
 	 * Single, double and <> quoted constants
 	 */
-case 121:
-YY_RULE_SETUP
-#line 613 "ppl.l"
-pp_incl_state.seen_junk++; new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs);
-	YY_BREAK
-case 122:
-YY_RULE_SETUP
-#line 614 "ppl.l"
-pp_incl_state.seen_junk++; new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs);
-	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 615 "ppl.l"
-add_string(ppy_text, ppy_leng);
+#line 617 "ppl.l"
+pp_incl_state.seen_junk++; new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs);
 	YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 616 "ppl.l"
+#line 618 "ppl.l"
+pp_incl_state.seen_junk++; new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs);
+	YY_BREAK
+case 125:
+YY_RULE_SETUP
+#line 619 "ppl.l"
+add_string(ppy_text, ppy_leng);
+	YY_BREAK
+case 126:
+YY_RULE_SETUP
+#line 620 "ppl.l"
 {
 		add_string(ppy_text, ppy_leng);
 		yy_pop_state();
@@ -2707,14 +2728,14 @@
 		}
 	}
 	YY_BREAK
-case 125:
+case 127:
 YY_RULE_SETUP
-#line 636 "ppl.l"
+#line 640 "ppl.l"
 add_string(ppy_text, ppy_leng);
 	YY_BREAK
-case 126:
+case 128:
 YY_RULE_SETUP
-#line 637 "ppl.l"
+#line 641 "ppl.l"
 {
 		add_string(ppy_text, ppy_leng);
 		yy_pop_state();
@@ -2730,14 +2751,14 @@
 		}
 	}
 	YY_BREAK
-case 127:
+case 129:
 YY_RULE_SETUP
-#line 651 "ppl.l"
+#line 655 "ppl.l"
 add_string(ppy_text, ppy_leng);
 	YY_BREAK
-case 128:
+case 130:
 YY_RULE_SETUP
-#line 652 "ppl.l"
+#line 656 "ppl.l"
 {
 		add_string(ppy_text, ppy_leng);
 		yy_pop_state();
@@ -2745,10 +2766,10 @@
 		return tIQSTRING;
 	}
 	YY_BREAK
-case 129:
-/* rule 129 can match eol */
+case 131:
+/* rule 131 can match eol */
 YY_RULE_SETUP
-#line 658 "ppl.l"
+#line 662 "ppl.l"
 {
 		/*
 		 * This is tricky; we need to remove the line-continuation
@@ -2774,15 +2795,15 @@
 		}
 	}
 	YY_BREAK
-case 130:
+case 132:
 YY_RULE_SETUP
-#line 682 "ppl.l"
+#line 686 "ppl.l"
 add_string(ppy_text, ppy_leng);
 	YY_BREAK
-case 131:
-/* rule 131 can match eol */
+case 133:
+/* rule 133 can match eol */
 YY_RULE_SETUP
-#line 683 "ppl.l"
+#line 687 "ppl.l"
 {
 		newline(1);
 		add_string(ppy_text, ppy_leng);
@@ -2792,9 +2813,9 @@
 /*
 	 * Identifier scanning
 	 */
-case 132:
+case 134:
 YY_RULE_SETUP
-#line 692 "ppl.l"
+#line 696 "ppl.l"
 {
 		pp_entry_t *ppp;
 		pp_incl_state.seen_junk++;
@@ -2841,60 +2862,60 @@
 	 * Everything else that needs to be passed and
 	 * newline and continuation handling
 	 */
-case 133:
-YY_RULE_SETUP
-#line 738 "ppl.l"
-pp_incl_state.seen_junk++; put_buffer(ppy_text, ppy_leng);
-	YY_BREAK
-case 134:
-YY_RULE_SETUP
-#line 739 "ppl.l"
-put_buffer(ppy_text, ppy_leng);
-	YY_BREAK
 case 135:
-/* rule 135 can match eol */
-YY_RULE_SETUP
-#line 740 "ppl.l"
-newline(1);
-	YY_BREAK
-case 136:
-/* rule 136 can match eol */
-YY_RULE_SETUP
-#line 741 "ppl.l"
-newline(0);
-	YY_BREAK
-case 137:
 YY_RULE_SETUP
 #line 742 "ppl.l"
 pp_incl_state.seen_junk++; put_buffer(ppy_text, ppy_leng);
 	YY_BREAK
+case 136:
+YY_RULE_SETUP
+#line 743 "ppl.l"
+put_buffer(ppy_text, ppy_leng);
+	YY_BREAK
+case 137:
+/* rule 137 can match eol */
+YY_RULE_SETUP
+#line 744 "ppl.l"
+newline(1);
+	YY_BREAK
+case 138:
+/* rule 138 can match eol */
+YY_RULE_SETUP
+#line 745 "ppl.l"
+newline(0);
+	YY_BREAK
+case 139:
+YY_RULE_SETUP
+#line 746 "ppl.l"
+pp_incl_state.seen_junk++; put_buffer(ppy_text, ppy_leng);
+	YY_BREAK
 /*
 	 * Special catcher for macro argmument expansion to prevent
 	 * newlines to propagate to the output or admin.
 	 */
-case 138:
-/* rule 138 can match eol */
+case 140:
+/* rule 140 can match eol */
 YY_RULE_SETUP
-#line 748 "ppl.l"
+#line 752 "ppl.l"
 put_buffer(ppy_text, ppy_leng);
 	YY_BREAK
-case 139:
+case 141:
 YY_RULE_SETUP
-#line 750 "ppl.l"
+#line 754 "ppl.l"
 {
 		ppy_lval.cptr=pp_xstrdup(ppy_text);
         	yy_pop_state();
 		return tRCINCLUDEPATH;
 	}
 	YY_BREAK
-case 140:
+case 142:
 YY_RULE_SETUP
-#line 756 "ppl.l"
+#line 760 "ppl.l"
 ;
 	YY_BREAK
-case 141:
+case 143:
 YY_RULE_SETUP
-#line 758 "ppl.l"
+#line 762 "ppl.l"
 {
 		new_string(); add_string(ppy_text,ppy_leng);yy_push_state(pp_dqs);
 	}
@@ -2903,9 +2924,9 @@
 	 * This is a 'catch-all' rule to discover errors in the scanner
 	 * in an orderly manner.
 	 */
-case 142:
+case 144:
 YY_RULE_SETUP
-#line 766 "ppl.l"
+#line 770 "ppl.l"
 pp_incl_state.seen_junk++; ppy_warning("Unmatched text '%c' (0x%02x); please report\n", isprint(*ppy_text & 0xff) ? *ppy_text : ' ', *ppy_text);
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
@@ -2925,12 +2946,13 @@
 case YY_STATE_EOF(pp_macexp):
 case YY_STATE_EOF(pp_if):
 case YY_STATE_EOF(pp_ifd):
+case YY_STATE_EOF(pp_ifignored):
 case YY_STATE_EOF(pp_endif):
 case YY_STATE_EOF(pp_line):
 case YY_STATE_EOF(pp_defined):
 case YY_STATE_EOF(pp_ignore):
 case YY_STATE_EOF(RCINCL):
-#line 768 "ppl.l"
+#line 772 "ppl.l"
 {
 		YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
 		bufferstackentry_t *bep = pop_buffer();
@@ -2956,12 +2978,12 @@
 		ppy__delete_buffer(b);
 	}
 	YY_BREAK
-case 143:
+case 145:
 YY_RULE_SETUP
-#line 793 "ppl.l"
+#line 797 "ppl.l"
 ECHO;
 	YY_BREAK
-#line 2964 "ppl.yy.c"
+#line 2986 "ppl.yy.c"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -3258,7 +3280,7 @@
 		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 >= 416 )
+			if ( yy_current_state >= 421 )
 				yy_c = yy_meta[yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -3286,11 +3308,11 @@
 	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 >= 416 )
+		if ( yy_current_state >= 421 )
 			yy_c = yy_meta[yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-	yy_is_jam = (yy_current_state == 415);
+	yy_is_jam = (yy_current_state == 420);
 
 		return yy_is_jam ? 0 : yy_current_state;
 }
@@ -3977,7 +3999,7 @@
 
 #define YYTABLES_NAME "yytables"
 
-#line 793 "ppl.l"
+#line 797 "ppl.l"
 
 /*
  **************************************************************************