]> granicus.if.org Git - nethack/commitdiff
lex update
authornethack.rankin <nethack.rankin>
Thu, 23 Oct 2003 06:30:43 +0000 (06:30 +0000)
committernethack.rankin <nethack.rankin>
Thu, 23 Oct 2003 06:30:43 +0000 (06:30 +0000)
     This is a case where a one-line change to the scanner source produces
a large diff in the generated C code.

sys/share/lev_lex.c

index 776e048ce3b61af5f9549aea60ad3d5d4879898f..90cc7554c10acfc688f18061e6a3d2c6ee9a54bf 100644 (file)
@@ -208,18 +208,18 @@ static void FDECL(yy_fatal_error, (const char *));
        *yy_cp = '\0'; \
        yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 112
-#define YY_END_OF_BUFFER 113
-static yyconst short int yy_accept[640] =
+#define YY_NUM_RULES 113
+#define YY_END_OF_BUFFER 114
+static yyconst short int yy_accept[643] =
     {   0,
-        0,    0,    0,    0,  113,  111,  108,  107,  111,  111,
-      111,  111,  105,    4,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
-      111,    2,  111,  108,  111,  111,  105,  111,  111,  111,
-      111,  111,  111,  111,  111,  111,  111,  111,  111,  108,
-      107,    0,  106,    0,    0,  105,    0,    0,    0,    0,
+        0,    0,    0,    0,  114,  112,  109,  108,  112,  112,
+      112,  112,  106,    4,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,    2,  112,  109,  112,  112,  106,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  112,  112,  112,  109,
+      108,    0,  107,    0,    0,  106,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
@@ -228,60 +228,61 @@ static yyconst short int yy_accept[640] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       87,    0,    0,    3,    0,    2,    2,    0,  108,    0,
-      105,    0,    0,    0,    0,    0,    0,    0,    0,    2,
-        0,    0,  110,    0,  110,    0,    0,    0,    0,    0,
+       87,    0,    0,    3,    0,    2,    2,    0,  109,    0,
+      106,    0,    0,    0,    0,    0,    0,    0,    0,    2,
+        0,    0,  111,    0,  111,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   72,    0,    0,   67,    0,    0,    0,
+        0,    0,    0,    0,   72,    0,    0,   67,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       65,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  109,    0,    0,    0,    0,    0,   17,
-        0,    0,    0,    0,    0,   40,    0,    0,    0,    6,
-        0,    0,   42,    0,    0,    0,   33,    0,    0,    0,
-
-       36,   32,    0,    0,    0,   16,    0,    0,  104,    0,
-        0,    0,    0,    0,    0,    0,    0,   93,    0,    0,
-        0,    0,    0,    0,   88,   91,   51,    0,    0,    0,
-        0,    0,    0,   60,    0,    0,    0,    0,    0,   94,
-        0,    0,    0,    0,    0,    0,   55,    0,    0,    0,
-       45,    0,    0,    0,    0,    0,    0,    0,    0,   90,
-        0,    0,    0,   53,   12,    0,    0,    0,    0,    0,
-       25,    0,    0,    0,    0,    0,    0,   10,    0,    0,
-        0,    0,    8,    0,    0,    0,    7,    0,    0,    0,
-        0,    0,    0,   27,    0,    0,    0,   59,   86,    0,
-
-        0,   80,    0,    0,    0,    0,   74,    0,    0,    0,
-        0,    0,   89,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   50,    0,
-        0,    0,   58,    0,   64,    0,    0,    0,   52,    0,
-        0,   68,    0,    0,   30,   43,    0,    0,    0,    0,
-        0,    0,    0,   26,    0,    0,    0,    0,    0,   13,
-       28,    0,   21,    0,    0,    0,    0,   79,    0,   66,
-       49,   62,   46,    0,    0,   97,    0,   69,    0,    0,
-        0,    0,    0,   47,    0,    0,    0,    0,    0,    0,
-       48,  101,    0,    0,   56,    0,   54,    0,    0,   85,
-
-        0,    0,    1,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    5,   15,    0,    0,    0,   37,    0,   20,
-        0,   95,    0,    0,   92,    0,    0,    0,   78,    0,
-        0,    0,    0,   57,   73,   71,    0,    0,    0,   84,
-        0,    0,    0,    0,   39,    0,    0,   31,   11,    9,
-       19,    0,    0,    0,    0,    0,    0,    0,  102,    0,
-        0,    0,    0,    0,    0,    0,    0,   83,    0,    0,
-       77,    0,   96,   70,   14,    0,   41,    0,    0,    0,
-        0,    0,    0,    0,   75,   98,   61,    0,  100,   44,
-       81,   82,    0,    0,    0,   18,    0,    0,    0,    0,
-
-        0,    0,    0,   63,    0,   99,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   34,   35,    0,    0,
-        0,    0,    0,   76,  103,    0,    0,    0,   24,    0,
-        0,    0,   22,    0,    0,   23,   29,   38,    0
+        0,   65,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  110,    0,    0,    0,    0,    0,
+       17,    0,    0,    0,    0,    0,   40,    0,    0,    0,
+        6,    0,    0,   42,    0,    0,    0,   33,    0,    0,
+
+        0,   36,   32,    0,    0,    0,   16,    0,    0,  105,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   93,
+        0,    0,    0,    0,    0,    0,   88,   91,   51,    0,
+        0,    0,    0,    0,    0,   60,    0,    0,    0,    0,
+        0,   94,    0,    0,    0,    0,    0,    0,   55,    0,
+        0,    0,   45,    0,    0,    0,    0,    0,    0,    0,
+        0,   90,    0,    0,    0,   53,   12,    0,    0,    0,
+        0,    0,   25,    0,    0,    0,    0,    0,    0,   10,
+        0,    0,    0,    0,    8,    0,    0,    0,    7,    0,
+        0,    0,    0,    0,    0,   27,    0,    0,    0,   59,
+
+       86,    0,    0,   80,    0,   95,    0,    0,    0,   74,
+        0,    0,    0,    0,    0,   89,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   50,    0,    0,    0,   58,    0,   64,    0,    0,
+        0,   52,    0,    0,   68,    0,    0,   30,   43,    0,
+        0,    0,    0,    0,    0,    0,   26,    0,    0,    0,
+        0,    0,   13,   28,    0,   21,    0,    0,    0,    0,
+       79,    0,   66,   49,   62,   46,    0,    0,   98,    0,
+       69,    0,    0,    0,    0,    0,   47,    0,    0,    0,
+        0,    0,    0,   48,  102,    0,    0,   56,    0,   54,
+
+        0,    0,   85,    0,    0,    1,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    5,   15,    0,    0,    0,
+       37,    0,   20,    0,   96,    0,    0,   92,    0,    0,
+        0,   78,    0,    0,    0,    0,   57,   73,   71,    0,
+        0,    0,   84,    0,    0,    0,    0,   39,    0,    0,
+       31,   11,    9,   19,    0,    0,    0,    0,    0,    0,
+        0,  103,    0,    0,    0,    0,    0,    0,    0,    0,
+       83,    0,    0,   77,    0,   97,   70,   14,    0,   41,
+        0,    0,    0,    0,    0,    0,    0,   75,   99,   61,
+        0,  101,   44,   81,   82,    0,    0,    0,   18,    0,
+
+        0,    0,    0,    0,    0,    0,   63,    0,  100,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   34,
+       35,    0,    0,    0,    0,    0,   76,  104,    0,    0,
+        0,   24,    0,    0,    0,   22,    0,    0,   23,   29,
+       38,    0
     } ;
 
 static yyconst int yy_ec[256] =
@@ -327,157 +328,157 @@ static yyconst int yy_meta[65] =
         1,    1,    1,    1
     } ;
 
-static yyconst short int yy_base[645] =
+static yyconst short int yy_base[648] =
     {   0,
-        0,   58,   83,   62,  796,  797,   65,  797,  792,  788,
-      753,  779,  778,  797,  764,  758,   44,   43,  760,   42,
-       62,  759,   60,   63,   68,  770,  756,   92,   91,   91,
-      769,   71,   72,   76,   87,   55,   84,   77,   61,   96,
-      103,   95,  104,  103,  108,  111,   99,  107,  736,  779,
-      151,  797,  778,  169,  173,  179,  182,  185,  194,  197,
-      752,  180,  185,  193,  181,  194,  202,  214,  241,   75,
-      797,  773,  797,  769,  768,  763,  742,  759,  758,  136,
-      743,  756,  749,  754,  734,  738,  740,  742,  746,  728,
-      724,  729,  732,  732,  151,  734,  162,  729,  735,  726,
-
-      726,  738,  736,  725,  735,  723,  225,  224,  143,  704,
-      693,  703,  698,  683,  686,  683,  685,  697,  682,  162,
-      679,  673,  676,  675,  685,  679,  678,  180,  671,  666,
-      172,  668,  683,  192,  668,  670,  663,  229,  672,  676,
-      679,  678,  664,  670,  662,  203,  655,  658,  653,  235,
-      797,  654,  710,  797,  212,  797,  797,  709,  274,  264,
-      265,  269,  277,  247,  282,  283,  285,  293,  294,  797,
-      708,    0,  797,  701,  700,  693,  679,  678,  672,  673,
-      672,  666,  670,  679,  671,  671,  679,  663,  677,  675,
-      674,  660,  659,  671,  674,  646,  668,  660,  652,  666,
-
-      660,  655,  656,  657,  648,  659,  647,  650,  254,  626,
-      631,  616,  625,  618,  610,  608,  615,  611,  605,  608,
-      604,  609,  601,  601,  604,  598,  597,  598,  596,  601,
-      606,  607,  591,  797,  590,  591,  797,  596,  601,  590,
-      602,  592,  584,  582,  588,  584,  585,  272,  578,  591,
-      590,  580,  590,  589,  587,  582,  586,  571,  578,  567,
-      797,  580,  564,  574,  573,  562,  266,  303,  299,  595,
-      308,  311,  309,  797,  590,  603,  602,  603,  594,  797,
-      600,  600,  582,  580,  593,  797,  569,  591,  583,  572,
-      592,  573,  797,  575,  306,  587,  797,  588,  573,  572,
-
-      797,  797,  569,  570,  568,  797,  574,  304,  797,  540,
-      536,  535,  546,  545,  531,  533,  542,  797,  541,  527,
-      539,  534,  541,  536,  797,  797,  797,  539,  534,  533,
-      568,  530,  526,  797,  529,  528,  531,  517,  520,  797,
-      510,  511,  518,  511,  524,  509,  797,  515,  510,  518,
-      797,  515,  514,  503,  498,  497,  496,  500,  505,  797,
-      495,  499,  491,  797,  797,  548,  317,  535,  320,  321,
-      797,  527,  529,  524,  528,  514,  509,  797,  528,  509,
-      514,  509,  797,  524,  517,  518,  797,  513,  520,  501,
-      507,  505,  503,  797,  501,  500,  508,  797,  797,  480,
-
-      468,  797,  478,  469,  467,  463,  797,  475,  471,  468,
-      472,  454,  797,  470,  293,  461,  460,  464,  466,  450,
-      450,  462,  461,  464,  457,  446,  446,  460,  797,  455,
-      440,  452,  797,  444,  797,  436,  437,  449,  797,  435,
-      440,  797,  463,  333,  797,  797,  464,  462,  467,  466,
-      465,  456,  471,  797,  459,  465,  452,  461,  449,  797,
-      797,  438,  797,  452,  447,  440,  433,  797,  429,  797,
-      797,  797,  797,  418,  417,  797,  425,  797,  424,  419,
-      412,  421,  416,  797,  404,  404,  419,  404,  408,  405,
-      797,  797,  406,  401,  797,  396,  797,  402,  405,  797,
-
-      408,  407,  797,  332,  434,  421,  433,  422,  421,  411,
-      417,  421,  797,  797,  424,  412,  341,  797,  410,  797,
-      388,  797,  394,  393,  797,  391,  389,  380,  797,  379,
-      376,  387,  372,  797,  797,  797,  381,  374,  376,  797,
-      380,  382,  381,  395,  797,  404,  403,  797,  797,  797,
-      797,  408,  386,  392,  391,  403,  392,  375,  797,  370,
-      369,  353,  363,  353,  355,  363,  350,  797,  359,  348,
-      797,  356,  797,  797,  797,  386,  797,  388,  388,  371,
-      373,  376,  384,  367,  797,  797,  797,  336,  797,  797,
-      797,  797,  340,  334,  333,  797,  367,  366,  360,  358,
-
-      370,  371,  368,  797,  339,  797,  338,  365,  341,  343,
-      332,  347,  344,  339,  313,  311,  797,  797,  338,  322,
-      293,  278,  277,  797,  797,  253,  224,  209,  797,  161,
-      138,  123,  797,  101,   69,  797,  797,  797,  797,  371,
-      374,  376,  378,  381
+        0,   58,   83,   62,  799,  800,   65,  800,  795,  791,
+      756,  782,  781,  800,  767,  761,   44,   43,  763,   42,
+       62,  762,   60,   63,   68,  773,  759,   92,   91,   91,
+      772,   71,   72,   76,   87,   55,   84,   77,   61,   96,
+      103,   95,  104,  103,  108,  111,   99,  107,  739,  782,
+      151,  800,  781,  169,  173,  179,  182,  185,  194,  197,
+      755,  180,  185,  193,  181,  194,  202,  214,  241,   75,
+      800,  776,  800,  772,  771,  766,  745,  762,  761,  136,
+      746,  759,  752,  757,  737,  741,  743,  745,  749,  731,
+      727,  732,  735,  735,  151,  737,  162,  732,  738,  729,
+
+      729,  741,  739,  728,  738,  726,  225,  224,  143,  707,
+      696,  706,  192,  687,  690,  687,  689,  701,  686,  162,
+      683,  677,  680,  679,  689,  683,  682,  181,  675,  670,
+      199,  672,  687,  221,  672,  674,  667,  229,  676,  680,
+      683,  682,  668,  674,  666,  211,  659,  662,  657,  235,
+      800,  658,  714,  800,  204,  800,  800,  713,  277,  264,
+      274,  269,  279,  274,  282,  287,  285,  295,  293,  800,
+      712,    0,  800,  705,  704,  697,  683,  682,  676,  677,
+      676,  670,  674,  683,  675,  675,  683,  667,  681,  679,
+      678,  664,  663,  675,  678,  650,  672,  664,  656,  670,
+
+      664,  659,  660,  661,  652,  663,  651,  654,  295,  630,
+      635,  620,  629,  622,  614,  616,  611,  618,  614,  608,
+      611,  607,  612,  604,  604,  607,  601,  600,  601,  599,
+      604,  609,  610,  594,  800,  593,  594,  800,  599,  604,
+      593,  605,  595,  587,  585,  591,  587,  588,  273,  581,
+      594,  593,  583,  593,  592,  590,  585,  589,  574,  581,
+      570,  800,  583,  567,  577,  576,  565,  256,  306,  301,
+      598,  304,  309,  315,  800,  593,  606,  605,  606,  597,
+      800,  603,  603,  585,  583,  596,  800,  572,  594,  586,
+      575,  595,  576,  800,  578,  309,  590,  800,  591,  576,
+
+      575,  800,  800,  572,  573,  571,  800,  577,  307,  800,
+      543,  539,  538,  549,  548,  534,  547,  535,  544,  800,
+      543,  529,  541,  536,  543,  538,  800,  800,  800,  541,
+      536,  535,  570,  532,  528,  800,  531,  530,  533,  519,
+      522,  800,  512,  513,  520,  513,  526,  511,  800,  517,
+      512,  520,  800,  517,  516,  505,  500,  499,  498,  502,
+      507,  800,  497,  501,  493,  800,  800,  550,  318,  537,
+      321,  331,  800,  529,  531,  526,  530,  516,  511,  800,
+      530,  511,  516,  511,  800,  526,  519,  520,  800,  515,
+      522,  503,  509,  507,  505,  800,  503,  502,  510,  800,
+
+      800,  482,  470,  800,  480,  800,  471,  469,  465,  800,
+      477,  473,  470,  474,  456,  800,  472,  196,  463,  462,
+      466,  468,  452,  452,  464,  463,  466,  459,  448,  448,
+      462,  800,  457,  442,  454,  800,  446,  800,  438,  439,
+      451,  800,  437,  442,  800,  465,  335,  800,  800,  466,
+      464,  469,  468,  467,  458,  473,  800,  461,  467,  454,
+      463,  451,  800,  800,  440,  800,  454,  449,  442,  435,
+      800,  431,  800,  800,  800,  800,  420,  419,  800,  427,
+      800,  426,  421,  414,  423,  418,  800,  406,  406,  421,
+      406,  410,  407,  800,  800,  408,  403,  800,  398,  800,
+
+      404,  407,  800,  410,  409,  800,  329,  436,  423,  435,
+      424,  423,  413,  419,  423,  800,  800,  426,  414,  342,
+      800,  412,  800,  390,  800,  396,  395,  800,  393,  391,
+      382,  800,  381,  378,  389,  374,  800,  800,  800,  383,
+      376,  378,  800,  382,  384,  383,  397,  800,  406,  405,
+      800,  800,  800,  800,  410,  388,  394,  393,  405,  394,
+      377,  800,  372,  371,  355,  365,  355,  357,  365,  352,
+      800,  361,  350,  800,  358,  800,  800,  800,  388,  800,
+      390,  390,  373,  375,  378,  386,  369,  800,  800,  800,
+      338,  800,  800,  800,  800,  342,  336,  335,  800,  369,
+
+      368,  362,  360,  372,  373,  370,  800,  341,  800,  340,
+      367,  359,  347,  335,  350,  346,  342,  316,  315,  800,
+      800,  338,  327,  312,  310,  311,  800,  800,  236,  210,
+      188,  800,  161,  138,  123,  800,  101,   69,  800,  800,
+      800,  800,  372,  375,  377,  379,  382
     } ;
 
-static yyconst short int yy_def[645] =
+static yyconst short int yy_def[648] =
     {   0,
-      639,    1,    1,    3,  639,  639,  639,  639,  639,  640,
-      641,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  642,
-      639,  639,  639,  643,  643,  643,  643,  643,  643,  643,
-      639,   60,   60,   60,   60,   60,   60,   60,  642,  639,
-      639,  640,  639,  639,  644,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  642,  639,  639,  639,  639,  639,   60,   60,
-       60,   60,   60,  639,   60,   60,   60,   60,   60,  639,
-      642,   69,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,   60,   60,  639,
-       60,   60,   60,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,   60,  639,   60,   60,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,   60,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-
-      639,  639,  639,   60,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,    0,  639,
-      639,  639,  639,  639
+      642,    1,    1,    3,  642,  642,  642,  642,  642,  643,
+      644,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  645,
+      642,  642,  642,  646,  646,  646,  646,  646,  646,  646,
+      642,   60,   60,   60,   60,   60,   60,   60,  645,  642,
+      642,  643,  642,  642,  647,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  645,  642,  642,  642,  642,  642,   60,   60,
+       60,   60,   60,  642,   60,   60,   60,   60,   60,  642,
+      645,   69,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,   60,   60,
+      642,   60,   60,   60,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,   60,  642,
+       60,   60,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,   60,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+
+      642,  642,  642,  642,  642,  642,   60,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,    0,  642,  642,  642,  642,  642
     } ;
 
-static yyconst short int yy_nxt[862] =
+static yyconst short int yy_nxt[865] =
     {   0,
         6,    7,    8,    9,    7,   10,    6,    6,   11,   12,
        12,    6,   13,   14,   15,   16,   17,   18,   19,   20,
@@ -490,93 +491,93 @@ static yyconst short int yy_nxt[862] =
        86,   92,   94,  108,   51,   52,   53,   54,   51,   55,
        87,   93,   56,   56,   55,   57,   95,   58,   59,   60,
 
-      638,   61,   62,  128,   55,   63,   98,   55,   64,  104,
+      641,   61,   62,  128,   55,   63,   98,   55,   64,  104,
        99,  122,   65,  101,   66,   67,  123,  129,   68,  126,
-      100,  105,   55,  102,  103,  109,  124,  127,  637,  113,
+      100,  105,   55,  102,  103,  109,  124,  127,  640,  113,
       110,  111,  114,  117,  115,  112,  118,  116,  130,  125,
       119,  137,  131,  120,  134,  135,  132,  139,  121,  141,
-      143,  138,  133,  145,  636,  148,  142,  149,  144,  136,
-      146,  140,  150,  179,  151,  155,  180,  147,  635,   92,
-       70,  157,  158,  159,  639,  157,  158,  195,  196,   93,
-      639,  157,  158,  639,  157,  158,  639,  157,  158,  634,
-      198,  161,  199,  210,  161,  639,  157,  158,  639,  157,
-
-      158,  160,  160,  211,  222,  165,  160,  166,   85,   97,
-      162,   90,   88,  639,  160,  160,  167,  223,  163,  235,
-      104,  639,  639,  160,   78,   80,  168,  103,  169,  107,
-      639,  209,  105,  231,  236,  160,  108,  108,  232,  239,
-      633,  267,  639,  170,  171,  172,  240,  172,  241,  191,
-      172,  172,  172,  172,  632,  172,  172,  172,  308,  258,
-      172,  259,  172,  172,  270,  172,  172,  183,  365,  366,
-      172,  245,  172,  172,  246,   70,  172,  161,  159,  263,
-      172,  631,  264,  247,  248,  160,  160,  249,  265,  250,
-      160,  269,  639,  639,  309,  160,  271,  639,  160,  630,
-
-      189,  268,  639,  160,  160,  639,  160,  272,  308,  629,
-      639,  639,  203,  639,  160,  160,  346,  367,  347,  273,
-      160,  639,  639,  388,  160,  628,  277,  639,  283,  160,
-      160,  639,  160,  369,  370,  389,  639,  639,  160,  639,
-      627,  160,  160,  444,  309,  639,  479,  371,  639,  639,
-      394,  480,  504,  160,  160,  626,  625,  554,  624,  623,
-      639,  639,  622,  621,  620,  619,  618,  555,  520,  556,
-      557,   72,   72,   72,   74,   74,  153,  153,  153,  160,
-      160,  174,  174,  617,  616,  615,  614,  613,  612,  611,
-      610,  609,  608,  607,  606,  605,  604,  603,  602,  601,
-
-      600,  599,  598,  597,  596,  595,  594,  593,  592,  591,
-      590,  589,  588,  587,  586,  585,  584,  583,  582,  581,
-      580,  579,  578,  577,  576,  575,  574,  573,  572,  571,
-      570,  569,  568,  567,  566,  565,  564,  563,  562,  561,
-      560,  559,  558,  553,  552,  551,  550,  549,  548,  547,
-      546,  545,  544,  543,  542,  541,  540,  539,  538,  537,
-      536,  535,  534,  533,  532,  531,  530,  529,  528,  527,
-      526,  525,  524,  523,  522,  521,  520,  519,  518,  517,
-      516,  515,  514,  513,  512,  511,  510,  509,  508,  507,
-      506,  505,  503,  502,  501,  500,  499,  498,  497,  496,
-
-      495,  494,  493,  492,  491,  490,  489,  488,  487,  486,
-      485,  484,  483,  482,  481,  478,  477,  476,  475,  474,
-      473,  472,  471,  470,  469,  468,  467,  466,  465,  464,
-      463,  462,  461,  460,  459,  458,  457,  456,  455,  454,
-      453,  452,  451,  450,  449,  448,  447,  446,  445,  443,
-      365,  442,  441,  440,  439,  438,  437,  436,  435,  434,
-      433,  432,  431,  430,  429,  428,  427,  426,  425,  424,
-      423,  422,  421,  420,  419,  418,  417,  416,  415,  414,
-      413,  412,  411,  410,  409,  408,  407,  406,  405,  404,
-      403,  402,  401,  400,  399,  398,  397,  396,  395,  394,
-
-      393,  392,  391,  390,  387,  386,  385,  384,  383,  382,
-      381,  380,  379,  378,  377,  376,  375,  374,  373,  372,
-      371,  368,  364,  363,  362,  361,  360,  359,  358,  357,
-      356,  355,  354,  353,  352,  351,  350,  349,  348,  345,
-      344,  343,  342,  341,  340,  339,  338,  337,  336,  335,
-      334,  333,  332,  331,  330,  329,  328,  327,  326,  325,
-      324,  323,  322,  321,  320,  319,  318,  317,  316,  315,
-      314,  313,  312,  311,  310,  307,  306,  305,  304,  303,
-      302,  301,  300,  299,  298,  297,  296,  295,  294,  293,
-      292,  291,  290,  289,  288,  287,  286,  285,  284,  283,
-
-      282,  281,  280,  279,  278,  277,  276,  275,  274,  274,
-      170,  157,  154,  266,  262,  261,  260,  257,  256,  255,
-      254,  253,  252,  251,  244,  243,  242,  238,  237,  234,
-      233,  230,  229,  228,  227,  226,  225,  224,  221,  220,
-      219,  218,  217,  216,  215,  214,  213,  212,  208,  207,
-      206,  205,  204,  203,  202,  201,  200,  197,  194,  193,
-      192,  191,  190,  189,  188,  187,  186,  185,  184,  183,
-      182,  181,  178,  177,  176,   76,  175,  173,   73,  164,
-      156,  154,  152,  106,   97,   96,   88,   83,   78,   77,
-       76,   76,   75,   73,   71,  639,    5,  639,  639,  639,
-
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639
+      143,  138,  133,  145,  639,  148,  142,  149,  144,  136,
+      146,  140,  150,  179,  151,  155,  180,  147,  638,   92,
+       70,  157,  158,  159,  642,  157,  158,  195,  196,   93,
+      642,  157,  158,  642,  157,  158,  642,  157,  158,  637,
+      198,  161,  199,  210,  161,  642,  157,  158,  642,  157,
+
+      158,  160,  160,  211,  223,  165,  160,  166,   85,   97,
+      162,   90,   88,  642,  160,  160,  167,  224,  163,  636,
+      104,  642,  642,  160,   78,   80,  168,  103,  169,  107,
+      642,  209,  105,  268,  232,  160,  108,  108,  215,  233,
+      635,  191,  642,  170,  171,  172,  236,  172,  216,  482,
+      172,  172,  172,  172,  483,  172,  172,  172,  367,  368,
+      172,  237,  172,  172,  634,  172,  172,  259,  240,  260,
+      172,  246,  172,  172,  247,  241,  172,  242,   70,  264,
+      172,  159,  265,  248,  249,  160,  161,  250,  266,  251,
+      160,  271,  642,  270,  183,  160,  272,  642,  160,  309,
+
+      160,  269,  642,  160,  189,  642,  160,  642,  160,  273,
+      642,  309,  203,  642,  160,  642,  160,  348,  274,  349,
+      369,  642,  160,  642,  284,  160,  390,  160,  278,  642,
+      160,  371,  642,  633,  642,  310,  160,  642,  391,  160,
+      372,  632,  160,  642,  631,  630,  642,  310,  373,  642,
+      160,  396,  160,  447,  507,  629,  160,  642,  557,  642,
+      628,  627,  626,  642,  625,  523,  624,  623,  558,  622,
+      559,  560,   72,   72,   72,   74,   74,  153,  153,  153,
+      160,  160,  174,  174,  621,  620,  619,  618,  617,  616,
+      615,  614,  613,  612,  611,  610,  609,  608,  607,  606,
+
+      605,  604,  603,  602,  601,  600,  599,  598,  597,  596,
+      595,  594,  593,  592,  591,  590,  589,  588,  587,  586,
+      585,  584,  583,  582,  581,  580,  579,  578,  577,  576,
+      575,  574,  573,  572,  571,  570,  569,  568,  567,  566,
+      565,  564,  563,  562,  561,  556,  555,  554,  553,  552,
+      551,  550,  549,  548,  547,  546,  545,  544,  543,  542,
+      541,  540,  539,  538,  537,  536,  535,  534,  533,  532,
+      531,  530,  529,  528,  527,  526,  525,  524,  523,  522,
+      521,  520,  519,  518,  517,  516,  515,  514,  513,  512,
+      511,  510,  509,  508,  506,  505,  504,  503,  502,  501,
+
+      500,  499,  498,  497,  496,  495,  494,  493,  492,  491,
+      490,  489,  488,  487,  486,  485,  484,  481,  480,  479,
+      478,  477,  476,  475,  474,  473,  472,  471,  470,  469,
+      468,  467,  466,  465,  464,  463,  462,  461,  460,  459,
+      458,  457,  456,  455,  454,  453,  452,  451,  450,  449,
+      448,  446,  367,  445,  444,  443,  442,  441,  440,  439,
+      438,  437,  436,  435,  434,  433,  432,  431,  430,  429,
+      428,  427,  426,  425,  424,  423,  422,  421,  420,  419,
+      418,  417,  416,  415,  414,  413,  412,  411,  410,  409,
+      408,  407,  406,  405,  404,  403,  402,  401,  400,  399,
+
+      398,  397,  396,  395,  394,  393,  392,  389,  388,  387,
+      386,  385,  384,  383,  382,  381,  380,  379,  378,  377,
+      376,  375,  374,  373,  370,  366,  365,  364,  363,  362,
+      361,  360,  359,  358,  357,  356,  355,  354,  353,  352,
+      351,  350,  347,  346,  345,  344,  343,  342,  341,  340,
+      339,  338,  337,  336,  335,  334,  333,  332,  331,  330,
+      329,  328,  327,  326,  325,  324,  323,  322,  321,  320,
+      319,  318,  317,  316,  315,  314,  313,  312,  311,  308,
+      307,  306,  305,  304,  303,  302,  301,  300,  299,  298,
+      297,  296,  295,  294,  293,  292,  291,  290,  289,  288,
+
+      287,  286,  285,  284,  283,  282,  281,  280,  279,  278,
+      277,  276,  275,  275,  170,  157,  154,  267,  263,  262,
+      261,  258,  257,  256,  255,  254,  253,  252,  245,  244,
+      243,  239,  238,  235,  234,  231,  230,  229,  228,  227,
+      226,  225,  222,  221,  220,  219,  218,  217,  214,  213,
+      212,  208,  207,  206,  205,  204,  203,  202,  201,  200,
+      197,  194,  193,  192,  191,  190,  189,  188,  187,  186,
+      185,  184,  183,  182,  181,  178,  177,  176,   76,  175,
+      173,   73,  164,  156,  154,  152,  106,   97,   96,   88,
+       83,   78,   77,   76,   76,   75,   73,   71,  642,    5,
+
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642
     } ;
 
-static yyconst short int yy_chk[862] =
+static yyconst short int yy_chk[865] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -589,90 +590,90 @@ static yyconst short int yy_chk[862] =
        21,   24,   25,   32,    2,    3,    3,    3,    4,    3,
        21,   24,    3,    3,    3,    3,   25,    3,    3,    3,
 
-      635,    3,    3,   39,    3,    3,   28,    3,    3,   30,
+      638,    3,    3,   39,    3,    3,   28,    3,    3,   30,
        28,   36,    3,   29,    3,    3,   36,   39,    3,   38,
-       28,   30,    3,   29,   29,   33,   37,   38,  634,   34,
+       28,   30,    3,   29,   29,   33,   37,   38,  637,   34,
        33,   33,   34,   35,   34,   33,   35,   34,   40,   37,
        35,   42,   40,   35,   41,   41,   40,   43,   35,   44,
-       45,   42,   40,   46,  632,   47,   44,   47,   45,   41,
-       46,   43,   48,   80,   48,   51,   80,   46,  631,   51,
+       45,   42,   40,   46,  635,   47,   44,   47,   45,   41,
+       46,   43,   48,   80,   48,   51,   80,   46,  634,   51,
        54,   54,   54,   54,   55,   55,   55,   95,   95,   51,
-       56,   56,   56,   57,   57,   57,   58,   58,   58,  630,
+       56,   56,   56,   57,   57,   57,   58,   58,   58,  633,
        97,   56,   97,  109,   57,   59,   59,   59,   60,   60,
 
        60,   62,   65,  109,  120,   62,   63,   64,   62,   65,
-       58,   64,   63,   63,   64,   66,   66,  120,   60,  131,
+       58,   64,   63,   63,   64,   66,   66,  120,   60,  631,
        67,   64,   66,   67,   59,   60,   66,   66,   68,  107,
-       67,  108,   67,  128,  131,   68,  108,  107,  128,  134,
-      628,  155,   68,   69,   69,   69,  134,   69,  134,  155,
-       69,   69,   69,   69,  627,   69,   69,   69,  209,  146,
-       69,  146,   69,   69,  164,   69,   69,  164,  267,  267,
-       69,  138,   69,   69,  138,  159,   69,  161,  159,  150,
-       69,  626,  150,  138,  138,  160,  161,  138,  150,  138,
-      162,  163,  160,  161,  209,  159,  165,  162,  163,  623,
-
-      166,  162,  159,  165,  166,  163,  167,  168,  308,  622,
-      165,  166,  167,  167,  168,  169,  248,  268,  248,  169,
-      269,  168,  169,  295,  268,  621,  269,  269,  271,  271,
-      273,  268,  272,  272,  273,  295,  271,  273,  367,  272,
-      620,  369,  370,  370,  308,  367,  415,  367,  369,  370,
-      369,  415,  444,  504,  444,  619,  616,  517,  615,  614,
-      504,  444,  613,  612,  611,  610,  609,  517,  504,  517,
-      517,  640,  640,  640,  641,  641,  642,  642,  642,  643,
-      643,  644,  644,  608,  607,  605,  603,  602,  601,  600,
-      599,  598,  597,  595,  594,  593,  588,  584,  583,  582,
-
-      581,  580,  579,  578,  576,  572,  570,  569,  567,  566,
-      565,  564,  563,  562,  561,  560,  558,  557,  556,  555,
-      554,  553,  552,  547,  546,  544,  543,  542,  541,  539,
-      538,  537,  533,  532,  531,  530,  528,  527,  526,  524,
-      523,  521,  519,  516,  515,  512,  511,  510,  509,  508,
-      507,  506,  505,  502,  501,  499,  498,  496,  494,  493,
-      490,  489,  488,  487,  486,  485,  483,  482,  481,  480,
-      479,  477,  475,  474,  469,  467,  466,  465,  464,  462,
-      459,  458,  457,  456,  455,  453,  452,  451,  450,  449,
-      448,  447,  443,  441,  440,  438,  437,  436,  434,  432,
-
-      431,  430,  428,  427,  426,  425,  424,  423,  422,  421,
-      420,  419,  418,  417,  416,  414,  412,  411,  410,  409,
-      408,  406,  405,  404,  403,  401,  400,  397,  396,  395,
-      393,  392,  391,  390,  389,  388,  386,  385,  384,  382,
-      381,  380,  379,  377,  376,  375,  374,  373,  372,  368,
-      366,  363,  362,  361,  359,  358,  357,  356,  355,  354,
-      353,  352,  350,  349,  348,  346,  345,  344,  343,  342,
-      341,  339,  338,  337,  336,  335,  333,  332,  331,  330,
-      329,  328,  324,  323,  322,  321,  320,  319,  317,  316,
-      315,  314,  313,  312,  311,  310,  307,  305,  304,  303,
-
-      300,  299,  298,  296,  294,  292,  291,  290,  289,  288,
-      287,  285,  284,  283,  282,  281,  279,  278,  277,  276,
-      275,  270,  266,  265,  264,  263,  262,  260,  259,  258,
-      257,  256,  255,  254,  253,  252,  251,  250,  249,  247,
-      246,  245,  244,  243,  242,  241,  240,  239,  238,  236,
-      235,  233,  232,  231,  230,  229,  228,  227,  226,  225,
-      224,  223,  222,  221,  220,  219,  218,  217,  216,  215,
-      214,  213,  212,  211,  210,  208,  207,  206,  205,  204,
-      203,  202,  201,  200,  199,  198,  197,  196,  195,  194,
-      193,  192,  191,  190,  189,  188,  187,  186,  185,  184,
-
-      183,  182,  181,  180,  179,  178,  177,  176,  175,  174,
-      171,  158,  153,  152,  149,  148,  147,  145,  144,  143,
-      142,  141,  140,  139,  137,  136,  135,  133,  132,  130,
-      129,  127,  126,  125,  124,  123,  122,  121,  119,  118,
-      117,  116,  115,  114,  113,  112,  111,  110,  106,  105,
-      104,  103,  102,  101,  100,   99,   98,   96,   94,   93,
-       92,   91,   90,   89,   88,   87,   86,   85,   84,   83,
-       82,   81,   79,   78,   77,   76,   75,   74,   72,   61,
-       53,   50,   49,   31,   27,   26,   22,   19,   16,   15,
-       13,   12,   11,   10,    9,    5,  639,  639,  639,  639,
-
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639,  639,  639,  639,  639,  639,  639,  639,  639,  639,
-      639
+       67,  108,   67,  155,  128,   68,  108,  107,  113,  128,
+      630,  155,   68,   69,   69,   69,  131,   69,  113,  418,
+       69,   69,   69,   69,  418,   69,   69,   69,  268,  268,
+       69,  131,   69,   69,  629,   69,   69,  146,  134,  146,
+       69,  138,   69,   69,  138,  134,   69,  134,  159,  150,
+       69,  159,  150,  138,  138,  160,  161,  138,  150,  138,
+      162,  164,  160,  163,  164,  161,  165,  162,  159,  209,
+
+      163,  162,  161,  165,  166,  159,  167,  163,  166,  168,
+      165,  309,  167,  167,  169,  166,  168,  249,  169,  249,
+      269,  169,  270,  168,  272,  272,  296,  269,  270,  270,
+      273,  273,  272,  626,  269,  209,  274,  273,  296,  369,
+      274,  625,  371,  274,  624,  623,  369,  309,  369,  371,
+      507,  371,  372,  372,  447,  622,  447,  507,  520,  372,
+      619,  618,  617,  447,  616,  507,  615,  614,  520,  613,
+      520,  520,  643,  643,  643,  644,  644,  645,  645,  645,
+      646,  646,  647,  647,  612,  611,  610,  608,  606,  605,
+      604,  603,  602,  601,  600,  598,  597,  596,  591,  587,
+
+      586,  585,  584,  583,  582,  581,  579,  575,  573,  572,
+      570,  569,  568,  567,  566,  565,  564,  563,  561,  560,
+      559,  558,  557,  556,  555,  550,  549,  547,  546,  545,
+      544,  542,  541,  540,  536,  535,  534,  533,  531,  530,
+      529,  527,  526,  524,  522,  519,  518,  515,  514,  513,
+      512,  511,  510,  509,  508,  505,  504,  502,  501,  499,
+      497,  496,  493,  492,  491,  490,  489,  488,  486,  485,
+      484,  483,  482,  480,  478,  477,  472,  470,  469,  468,
+      467,  465,  462,  461,  460,  459,  458,  456,  455,  454,
+      453,  452,  451,  450,  446,  444,  443,  441,  440,  439,
+
+      437,  435,  434,  433,  431,  430,  429,  428,  427,  426,
+      425,  424,  423,  422,  421,  420,  419,  417,  415,  414,
+      413,  412,  411,  409,  408,  407,  405,  403,  402,  399,
+      398,  397,  395,  394,  393,  392,  391,  390,  388,  387,
+      386,  384,  383,  382,  381,  379,  378,  377,  376,  375,
+      374,  370,  368,  365,  364,  363,  361,  360,  359,  358,
+      357,  356,  355,  354,  352,  351,  350,  348,  347,  346,
+      345,  344,  343,  341,  340,  339,  338,  337,  335,  334,
+      333,  332,  331,  330,  326,  325,  324,  323,  322,  321,
+      319,  318,  317,  316,  315,  314,  313,  312,  311,  308,
+
+      306,  305,  304,  301,  300,  299,  297,  295,  293,  292,
+      291,  290,  289,  288,  286,  285,  284,  283,  282,  280,
+      279,  278,  277,  276,  271,  267,  266,  265,  264,  263,
+      261,  260,  259,  258,  257,  256,  255,  254,  253,  252,
+      251,  250,  248,  247,  246,  245,  244,  243,  242,  241,
+      240,  239,  237,  236,  234,  233,  232,  231,  230,  229,
+      228,  227,  226,  225,  224,  223,  222,  221,  220,  219,
+      218,  217,  216,  215,  214,  213,  212,  211,  210,  208,
+      207,  206,  205,  204,  203,  202,  201,  200,  199,  198,
+      197,  196,  195,  194,  193,  192,  191,  190,  189,  188,
+
+      187,  186,  185,  184,  183,  182,  181,  180,  179,  178,
+      177,  176,  175,  174,  171,  158,  153,  152,  149,  148,
+      147,  145,  144,  143,  142,  141,  140,  139,  137,  136,
+      135,  133,  132,  130,  129,  127,  126,  125,  124,  123,
+      122,  121,  119,  118,  117,  116,  115,  114,  112,  111,
+      110,  106,  105,  104,  103,  102,  101,  100,   99,   98,
+       96,   94,   93,   92,   91,   90,   89,   88,   87,   86,
+       85,   84,   83,   82,   81,   79,   78,   77,   76,   75,
+       74,   72,   61,   53,   50,   49,   31,   27,   26,   22,
+       19,   16,   15,   13,   12,   11,   10,    9,    5,  642,
+
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642,  642,  642,  642,  642,  642,  642,
+      642,  642,  642,  642
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -915,13 +916,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 640 )
+                               if ( yy_current_state >= 643 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 797 );
+               while ( yy_base[yy_current_state] != 800 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -1341,76 +1342,80 @@ YY_RULE_SETUP
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-{ yylval.i=1; return CURSE_TYPE; }
+{ yylval.i=ENGR_BLOOD; return ENGRAVING_TYPE; }
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-{ yylval.i=2; return CURSE_TYPE; }
+{ yylval.i=1; return CURSE_TYPE; }
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-{ yylval.i=3; return CURSE_TYPE; }
+{ yylval.i=2; return CURSE_TYPE; }
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-{ return CONTAINED; }
+{ yylval.i=3; return CURSE_TYPE; }
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-{ yylval.i=NOTELEPORT; return FLAG_TYPE; }
+{ return CONTAINED; }
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-{ yylval.i=HARDFLOOR; return FLAG_TYPE; }
+{ yylval.i=NOTELEPORT; return FLAG_TYPE; }
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-{ yylval.i=NOMMAP; return FLAG_TYPE; }
+{ yylval.i=HARDFLOOR; return FLAG_TYPE; }
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-{ yylval.i=ARBOREAL; return FLAG_TYPE; }       /* KMH */
+{ yylval.i=NOMMAP; return FLAG_TYPE; }
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-{ yylval.i=SHORTSIGHTED; return FLAG_TYPE; }
+{ yylval.i=ARBOREAL; return FLAG_TYPE; }       /* KMH */
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-{ yylval.i = atoi(yytext + 1); return PERCENT; }
+{ yylval.i=SHORTSIGHTED; return FLAG_TYPE; }
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-{ yylval.i=atoi(yytext); return INTEGER; }
+{ yylval.i = atoi(yytext + 1); return PERCENT; }
        YY_BREAK
 case 106:
 YY_RULE_SETUP
+{ yylval.i=atoi(yytext); return INTEGER; }
+       YY_BREAK
+case 107:
+YY_RULE_SETUP
 { yytext[yyleng-1] = 0; /* Discard the trailing \" */
                  yylval.map = (char *) alloc(strlen(yytext+1)+1);
                  Strcpy(yylval.map, yytext+1); /* Discard the first \" */
                  return STRING; }
        YY_BREAK
-case 107:
+case 108:
 YY_RULE_SETUP
 { line_number++; }
        YY_BREAK
-case 108:
+case 109:
 YY_RULE_SETUP
 ;
        YY_BREAK
-case 109:
+case 110:
 YY_RULE_SETUP
 { yylval.i = yytext[2]; return CHAR; }
        YY_BREAK
-case 110:
+case 111:
 YY_RULE_SETUP
 { yylval.i = yytext[1]; return CHAR; }
        YY_BREAK
-case 111:
+case 112:
 YY_RULE_SETUP
 { return yytext[0]; }
        YY_BREAK
-case 112:
+case 113:
 YY_RULE_SETUP
 ECHO;
        YY_BREAK
@@ -1705,7 +1710,7 @@ static yy_state_type yy_get_previous_state()
                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 >= 640 )
+                       if ( yy_current_state >= 643 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1736,11 +1741,11 @@ yy_state_type yy_current_state;
        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 >= 640 )
+               if ( yy_current_state >= 643 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 639);
+       yy_is_jam = (yy_current_state == 642);
 
        return yy_is_jam ? 0 : yy_current_state;
        }