]> git.saurik.com Git - bison.git/commitdiff
Regenerate.
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 6 Nov 2002 00:06:50 +0000 (00:06 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 6 Nov 2002 00:06:50 +0000 (00:06 +0000)
src/scan-gram.c

index b2610c9022f03e30fc0fcca65258b3f2509c816b..ce16934ba4ec108d540c997ff981ce720407dd4e 100644 (file)
@@ -27,7 +27,7 @@
 #define YY_FLEX_MINOR_VERSION 5
 
 #include <stdio.h>
-#include <errno.h>
+
 
 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
 #ifdef c_plusplus
@@ -40,9 +40,7 @@
 #ifdef __cplusplus
 
 #include <stdlib.h>
-#ifndef _WIN32
 #include <unistd.h>
-#endif
 
 /* Use prototypes in function declarations. */
 #define YY_USE_PROTOS
@@ -309,52 +307,54 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
        *yy_cp = '\0'; \
        yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 102
-#define YY_END_OF_BUFFER 103
-static yyconst short int yy_accept[391] =
+#define YY_NUM_RULES 103
+#define YY_END_OF_BUFFER 104
+static yyconst short int yy_accept[399] =
     {   0,
-        0,    0,    0,    0,   59,   59,    0,    0,   85,   85,
-       80,   80,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  103,   51,   40,   40,   44,   51,   43,   38,
-       41,   51,   42,   36,   39,   51,   35,   48,   37,   57,
-       57,   52,   53,   59,   58,   59,   55,   55,   83,   82,
-       86,   78,   77,   81,   61,   60,   76,   63,   62,   96,
-       96,   88,   97,   87,   91,   97,   52,   53,   93,   92,
-       99,   88,  100,   87,   91,  101,   88,   87,   91,   40,
-       50,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   47,   41,   45,
-
-       46,   42,    0,   57,   56,    0,   59,   59,   59,   59,
-       55,   54,   83,   84,   84,   84,   84,   78,   79,   79,
-       79,   79,   61,   75,   73,   64,   75,   66,   67,   68,
-       69,   70,   71,   75,   72,   75,   63,   96,   94,    0,
-       94,    0,   89,   90,    0,   95,    0,   95,   99,   98,
-      101,   89,   90,  101,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       46,   49,    0,    0,    0,   85,    0,    0,    0,    0,
-       80,    0,    0,    0,   64,    0,    0,   65,    0,    0,
-
-        0,  101,  101,    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,   64,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   12,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   21,
-        0,    0,    0,    0,    0,   28,    0,   31,    0,    0,
-       34,    0,    0,    0,    2,    0,    0,    6,    0,    0,
-        0,    0,    0,    0,    0,   14,    0,    0,    0,   18,
-        0,    0,    0,    0,   24,    0,   27,   29,   32,    0,
-
-        0,   74,    1,    3,    0,    0,    8,    0,    0,    0,
-        0,    0,    0,    0,    0,   19,    0,    0,    0,    0,
-        0,    0,    4,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   22,    0,    0,    0,   33,    0,
-        0,    0,    0,    0,    0,    0,    0,   16,   17,    0,
-        0,   26,    0,    0,    0,    0,    0,    0,   25,   13,
-        0,    0,    0,    0,    5,    0,    0,    0,   11,    0,
-        0,    0,    0,    0,    9,    0,   15,   20,   23,   30,
-        0,    0,    7,    0,    0,    0,    0,    0,   10,    0
+        0,    0,    0,    0,   60,   60,    0,    0,   86,   86,
+       81,   81,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  104,   52,   41,   41,   45,   52,   44,   39,
+       42,   52,   43,   37,   40,   52,   36,   49,   38,   58,
+       58,   53,   54,   60,   59,   60,   56,   56,   84,   83,
+       87,   79,   78,   82,   62,   61,   77,   64,   63,   98,
+       89,   98,   98,   88,   92,   98,   98,   93,   95,  100,
+      101,   92,  102,   89,   88,   92,   41,   51,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   48,   42,   46,   47,   43,
+
+        0,   58,   57,    0,   60,   60,   60,   60,   56,   55,
+       84,   85,   85,   85,   85,   79,   80,   80,   80,   80,
+       62,   76,   74,   65,   76,   67,   68,   69,   70,   71,
+       72,   76,   73,   76,   64,   98,   96,    0,   96,    0,
+       94,    0,   90,   91,    0,   93,   98,    0,   97,    0,
+       97,  100,   99,  102,   90,   91,  102,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   47,   50,    0,    0,    0,   86,
+        0,    0,    0,    0,   81,    0,    0,    0,   65,    0,
+
+        0,   66,    0,    0,    0,    0,    0,    0,    0,  102,
+      102,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   65,    0,    0,    0,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   12,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   21,   35,   35,
+       35,   35,   35,   28,   35,   31,   35,   35,   34,    0,
+        0,   35,    2,   35,   35,    6,   35,   35,   35,   35,
+       35,   35,   35,   14,   35,   35,   35,   18,   35,   35,
+
+       35,   35,   24,   35,   27,   29,   32,   35,    0,   75,
+        1,    3,   35,   35,    8,   35,   35,   35,   35,   35,
+       35,   35,   35,   19,   35,   35,   35,   35,   35,   35,
+        4,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   22,   35,   35,   35,   33,   35,   35,   35,
+       35,   35,   35,   35,   35,   16,   17,   35,   35,   26,
+       35,   35,   35,   35,   35,   35,   25,   13,   35,   35,
+       35,   35,    5,   35,   35,   35,   11,   35,   35,   35,
+       35,   35,    9,   35,   15,   20,   23,   30,   35,   35,
+        7,   35,   35,   35,   35,   35,   10,    0
+
     } ;
 
 static yyconst int yy_ec[256] =
@@ -391,216 +391,222 @@ static yyconst int yy_ec[256] =
 
 static yyconst int yy_meta[54] =
     {   0,
-        1,    1,    2,    3,    4,    5,    6,    7,    1,    1,
-        8,    9,   10,   10,    1,    1,    1,    1,   11,    1,
-        4,   10,    8,   12,   13,   12,    8,   10,   10,   10,
-       10,   10,   10,    8,    8,    8,    8,    8,    8,    8,
-        8,    8,    8,    8,    8,    8,    8,    8,    8,    4,
+        1,    1,    2,    3,    4,    5,    6,    7,    1,    8,
+        9,    5,   10,   10,    1,    1,    4,    1,   11,    1,
+        4,   10,    9,   12,   13,   12,    9,   10,   10,   10,
+       10,   10,   10,    9,    9,    9,    9,    9,    9,    9,
+        9,    9,    9,    9,    9,    9,    9,    9,    9,    4,
         1,    4,   11
     } ;
 
-static yyconst short int yy_base[427] =
+static yyconst short int yy_base[436] =
     {   0,
-        0,    0,   46,   47,   53,   56,  802,  801,   59,   62,
-       50,   82,   65,   87,   85,   86,  110,  160,   92,  117,
-      121,  128,  808,  811,   58,   62,  811,  207,  811,  811,
-        0,   50,   54,  811,  811,    0,  811,  811,  811,    0,
-      114,  811,  811,  782,  811,  117,    0,  794,    0,  811,
-      146,    0,  811,  148,    0,  811,  254,    0,  811,    0,
-        0,  811,  165,  811,  149,  175,  811,  811,  811,  811,
-        0,  811,  753,  811,  175,    0,    0,    0,  182,   92,
-      811,  768,   95,   54,  767,  764,   68,  769,  163,  754,
-      110,  763,  121,  127,  758,  765,  768,  811,    0,  811,
-
-        0,  179,  776,    0,  811,  193,  769,  195,  199,  768,
-        0,  811,    0,  811,  203,  767,  212,    0,  811,  214,
-      766,  216,    0,  811,  811,  777,    0,  811,  811,  811,
-      811,  811,  811,    0,  811,    0,    0,    0,  811,  208,
-      212,    0,  811,  811,  225,  811,  216,  218,    0,  811,
-        0,    0,    0,  231,  749,  226,  745,  744,  744,  161,
-      742,  227,  754,  740,  743,  253,  749,  735,  736,   69,
-      735,  743,  744,  747,  731,  736,  730,  735,  727,  739,
-        0,  811,  240,  253,  266,  743,  269,  282,  742,  286,
-      741,  288,  293,  740,  751,    0,    0,    0,  744,  301,
-
-      297,  304,  300,  734,  715,  724,  714,  726,  716,  724,
-      723,  722,  743,  707,  741,  722,  715,  716,  709,  718,
-      702,  702,  699,  712,  701,  708,  704,  700,  694,  697,
-      703,  702,  692,  703,  701,  811,    0,    0,  305,  687,
-      695,  688,  684,  696,  682,  694,  713,  691,  679,  811,
-      678,  674,  686,  254,  681,  672,  676,  668,  681,  811,
-      667,  301,  666,  678,  664,  811,  668,  811,  667,  665,
-      811,    0,    0,  656,  811,  672,  657,  811,  303,  657,
-      659,  304,  672,  671,  662,  811,  655,  656,  651,  811,
-      649,  683,  660,  649,  811,  645,  811,  306,  811,  645,
-
-        0,  811,  811,  644,  657,  639,  811,  642,  643,  640,
-      639,  640,  637,  647,  637,  811,  635,  633,  647,  633,
-      628,  640,  811,  626,  638,  635,  612,  601,  614,  589,
-      594,  579,  592,  592,  811,  573,  573,  582,  811,  567,
-      564,  565,  525,  534,  510,  498,  489,  811,  811,  470,
-      461,  811,  466,  449,  458,  442,  427,  423,  811,  811,
-      296,  301,  295,  288,  811,  283,  275,  275,  811,  272,
-      259,  249,  254,  232,  811,  228,  811,  811,  811,  811,
-      234,  307,  811,  229,  208,  199,  203,  179,  811,  811,
-      334,  347,  360,  373,  386,  399,  412,  425,  438,  451,
-
-      457,  467,  480,  493,  506,  519,  530,  543,  554,  567,
-      579,  592,  604,  617,  630,  643,  201,  193,  167,  656,
-      159,  145,  136,  134,  120,   93
+        0,    0,   46,   47,   53,   56,  836,  835,   59,   62,
+       50,   82,   65,   87,   85,   86,  109,  158,   93,  116,
+      120,  127,  842,  845,   58,   62,  845,  205,  845,  845,
+        0,   50,   54,  845,  845,    0,  845,  845,  845,    0,
+       84,  845,  845,  816,  845,  100,    0,  828,    0,  845,
+      135,    0,  845,  146,    0,  845,  252,    0,  845,    0,
+      845,  163,   76,  845,  133,  130,  173,  845,  845,    0,
+      787,  142,    0,    0,    0,  144,  186,  845,    0,  802,
+       62,  142,  801,  798,  125,  803,  153,  788,  163,  797,
+      155,  163,  792,  799,  802,  845,    0,  845,    0,  183,
+
+      810,    0,  845,  199,  803,  258,  261,  802,    0,  845,
+        0,  845,  211,  801,  215,    0,  845,  217,  800,  219,
+        0,  845,  845,  811,    0,  845,  845,  845,  845,  845,
+      845,    0,  845,    0,    0,    0,  845,  210,  212,    0,
+      845,  227,  845,  845,  255,  845,  845,  264,  845,  255,
+      257,    0,  845,    0,    0,    0,  271,    0,  783,  249,
+      779,  778,  778,  155,  776,  243,  788,  774,  777,  269,
+      783,  769,  770,  252,  769,  777,  778,  781,  765,  770,
+      764,  769,  761,  773,    0,  845,  287,  282,  299,  777,
+      301,  303,  776,  308,  775,  310,  312,  774,  785,    0,
+
+        0,    0,  778,  314,  180,  316,  312,  319,  317,  323,
+      319,  768,  749,  758,  748,  760,  750,  758,  757,  756,
+      777,  741,  775,  756,  749,  750,  743,  752,  736,  736,
+      733,  746,  735,  742,  738,  734,  728,  731,  737,  736,
+      726,  737,  735,  845,    0,    0,  325,  721,  729,  722,
+      718,  730,  716,  728,  747,  725,  713,    0,  712,  708,
+      720,  318,  715,  706,  710,  702,  715,    0,  701,  319,
+      700,  712,  698,    0,  702,    0,  701,  699,    0,    0,
+        0,  690,    0,  706,  691,    0,  322,  691,  693,  323,
+      706,  705,  696,    0,  689,  690,  685,    0,  683,  717,
+
+      694,  683,    0,  679,    0,  326,    0,  679,    0,  845,
+        0,  678,  691,  673,    0,  676,  677,  674,  673,  674,
+      671,  681,  671,    0,  669,  667,  681,  667,  662,  674,
+        0,  660,  672,  671,  656,  657,  672,  659,  666,  653,
+      666,  667,    0,  649,  643,  642,    0,  623,  608,  612,
+      599,  610,  599,  588,  598,    0,    0,  587,  585,    0,
+      591,  549,  559,  535,  522,  501,    0,    0,  499,  499,
+      485,  476,    0,  468,  452,  445,    0,  308,  316,  311,
+      320,  307,    0,  303,    0,    0,    0,    0,  315,  330,
+        0,  310,  305,  270,  255,  218,    0,  845,  357,  370,
+
+      383,  396,  409,  422,  435,  448,  461,  474,  479,  489,
+      502,  515,  528,  541,  552,  565,  576,  589,  601,  614,
+      626,  639,  652,  658,  668,  221,  205,  197,  681,  164,
+      162,  133,  119,  108,   88
     } ;
 
-static yyconst short int yy_def[427] =
+static yyconst short int yy_def[436] =
     {   0,
-      390,    1,  391,  391,  392,  392,  393,  393,  394,  394,
-      395,  395,  396,  396,  397,  397,  398,  398,  399,  399,
-      400,  400,  390,  390,  390,  390,  390,  390,  390,  390,
-      401,  390,  390,  390,  390,  402,  390,  390,  390,  403,
-      390,  390,  390,  404,  390,  404,  405,  390,  406,  390,
-      407,  408,  390,  409,  410,  390,  411,  412,  390,  413,
-      413,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      414,  390,  390,  390,  390,  415,  415,  415,  415,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  401,  390,
-
-      416,  390,  402,  403,  390,  390,  404,  404,  404,  404,
-      405,  390,  406,  390,  390,  390,  390,  408,  390,  390,
-      390,  390,  410,  390,  390,  390,  417,  390,  390,  390,
-      390,  390,  390,  418,  390,  419,  412,  413,  390,  390,
-      390,  420,  390,  390,  390,  390,  390,  390,  414,  390,
-      415,  415,  415,  415,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      416,  390,  390,  390,  390,  390,  390,  390,  407,  390,
-      390,  390,  390,  409,  390,  421,  422,  419,  420,  390,
-
-      390,  415,  415,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  423,  424,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  425,  426,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-
-      418,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,    0,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390
+      398,    1,  399,  399,  400,  400,  401,  401,  402,  402,
+      403,  403,  404,  404,  405,  405,  406,  406,  407,  407,
+      408,  408,  398,  398,  398,  398,  398,  398,  398,  398,
+      409,  398,  398,  398,  398,  410,  398,  398,  398,  411,
+      398,  398,  398,  412,  398,  412,  413,  398,  414,  398,
+      415,  416,  398,  417,  418,  398,  419,  420,  398,  421,
+      398,  398,  398,  398,  398,  398,  398,  398,  398,  422,
+      398,  398,  423,  423,  423,  423,  398,  398,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  424,  398,  409,  398,  425,  398,
+
+      410,  411,  398,  398,  412,  412,  412,  412,  413,  398,
+      414,  398,  398,  398,  398,  416,  398,  398,  398,  398,
+      418,  398,  398,  398,  426,  398,  398,  398,  398,  398,
+      398,  427,  398,  428,  420,  421,  398,  398,  398,  429,
+      398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
+      398,  422,  398,  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,  424,
+      424,  424,  424,  424,  425,  398,  398,  398,  398,  398,
+      398,  398,  415,  398,  398,  398,  398,  417,  398,  430,
+
+      431,  428,  429,  398,  398,  398,  398,  398,  398,  423,
+      423,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  398,  432,  433,  398,  424,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  434,
+      435,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+
+      424,  424,  424,  424,  424,  424,  424,  424,  427,  398,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
+      424,  424,  424,  424,  424,  424,  424,    0,  398,  398,
+
+      398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
+      398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
+      398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
+      398,  398,  398,  398,  398
     } ;
 
-static yyconst short int yy_nxt[865] =
+static yyconst short int yy_nxt[899] =
     {   0,
        24,   25,   26,   27,   24,   28,   29,   24,   30,   24,
        31,   32,   33,   33,   34,   35,   36,   37,   24,   24,
        24,   31,   31,   24,   24,   24,   31,   31,   31,   31,
        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
        31,   31,   31,   31,   31,   31,   31,   31,   31,   38,
-       39,   24,   24,   41,   41,   45,   53,  100,   45,   80,
-       80,  101,   50,   80,   80,   50,  102,  102,   56,   42,
+       39,   24,   24,   41,   41,   45,   53,   98,   45,   77,
+       77,   99,   50,   77,   77,   50,  100,  100,   56,   42,
        42,   43,   43,   42,   54,   43,   42,   46,   43,   42,
        46,   43,   42,   51,   43,   42,   51,   43,   53,   57,
-       56,   59,   59,   80,   80,   72,  158,   73,   74,  162,
-
-      224,  159,  302,   75,  225,   42,   54,   43,  163,   57,
-       57,   57,   61,   62,   63,   42,   64,   43,  109,  110,
-       72,   65,   73,   74,   77,  105,  156,   78,   75,  301,
-       66,   77,   79,   67,   78,   68,  157,  169,  106,   79,
-       42,  108,   43,  273,   42,  272,   43,  115,  116,  120,
-      121,   42,  170,   43,  238,  171,  143,  173,  175,   69,
-      144,   70,   61,   62,   63,  174,   64,  176,  237,  139,
-      117,   65,  122,  145,  140,  177,  198,  141,  141,  146,
-       66,  142,  143,   67,  147,   68,  144,  148,  148,  152,
-      165,  102,  102,  153,  183,  184,  109,  110,  211,  145,
-
-      109,  110,  197,  166,  185,  186,  154,  167,  212,   69,
-      196,   70,   81,  188,  189,  190,  191,  193,  194,  108,
-      141,  141,  389,  108,  141,  141,  200,  201,  148,  148,
-      148,  148,  202,  203,  388,   82,  387,   83,   84,   85,
-       86,  183,  184,  386,   87,   88,   89,   90,   91,   92,
-       93,   94,   95,   96,  205,   97,   98,  125,  206,  214,
-      125,  385,  219,  287,  105,  383,  126,  185,  186,  207,
-      185,  186,  382,  125,  215,  381,  127,  106,  125,  219,
-      287,  128,  129,  188,  189,  380,  130,  190,  191,  190,
-      191,  379,  220,  131,  193,  194,  132,  378,  133,  134,
-
-      135,  136,  200,  201,  143,  202,  203,  152,  144,  139,
-      294,  153,  306,  309,  140,  321,  384,  141,  141,  377,
-      376,  145,  375,  374,  154,  373,  372,  294,  371,  306,
-      309,  370,  321,  384,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   44,   44,   44,
+       56,   59,   59,  160,  141,  103,   61,  310,   71,   64,
+
+      142,  107,  108,  161,   72,   42,   54,   43,  104,   57,
+       57,   57,   61,   62,   63,   64,   42,  309,   43,   61,
+       65,   71,   64,   74,  106,   66,   75,   72,  281,   67,
+       74,   76,   42,   75,   43,  146,  113,  114,   76,   42,
+      143,   43,  280,   42,  144,   43,  147,  118,  119,  143,
+       42,  155,   43,  144,  148,  156,  166,  145,   68,  115,
+       69,   61,   62,   63,   64,  167,  145,  137,  157,   65,
+      120,  246,  138,  245,   66,  139,  139,  149,   67,  140,
+      169,   42,  150,   43,  162,  151,  151,   77,   77,  163,
+      173,  177,  219,  170,  179,  100,  100,  171,  141,  178,
+
+      187,  188,  220,  180,  142,  174,  202,   68,  175,   69,
+       78,  181,  189,  190,  201,   79,  192,  193,  194,  195,
+      197,  198,  139,  139,  139,  139,   79,   79,  204,  205,
+      200,   79,   79,   80,   79,   81,   82,   83,   84,   79,
+       79,   79,   85,   86,   87,   88,   89,   90,   91,   92,
+       93,   94,   79,   95,   96,  123,  206,  207,  123,  107,
+      108,  397,  107,  108,  124,  208,  209,  151,  151,  151,
+      151,  123,  210,  211,  125,  222,  123,  213,  227,  126,
+      127,  214,  106,  232,  128,  106,  396,  233,  187,  188,
+      223,  129,  215,  103,  130,  227,  131,  132,  133,  134,
+
+      189,  190,  189,  190,  192,  193,  104,  395,  228,  194,
+      195,  194,  195,  197,  198,  204,  205,  206,  207,  143,
+      208,  209,  146,  144,  210,  211,  155,  295,  302,  137,
+      156,  314,  317,  147,  138,  329,  145,  139,  139,  392,
+      394,  148,  393,  157,  295,  302,  391,  390,  314,  317,
+      389,  388,  329,  387,  386,  385,  392,   40,   40,   40,
+       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
-       47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
-       47,   47,   47,   49,   49,   49,   49,   49,   49,   49,
-       49,   49,   49,   49,   49,   49,   52,   52,   52,   52,
-       52,   52,   52,   52,   52,   52,   52,   52,   52,   55,
-
-       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   58,   58,   58,   58,   58,   58,   58,   58,
-       58,   58,   58,   58,   58,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   60,   60,   60,   71,   71,
-       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
-       71,   76,   76,   76,   76,   76,   76,   76,   76,   76,
-       76,   76,   76,   76,   99,  369,   99,  103,  368,  103,
-      103,  103,  103,  103,  103,  103,  103,  367,  103,  103,
-      104,  104,  104,  104,  104,  104,  366,  104,  104,  104,
-      104,  365,  104,  107,  364,  107,  107,  107,  107,  107,
-
-      107,  107,  107,  107,  363,  107,  111,  111,  111,  111,
-      111,  111,  362,  111,  111,  111,  111,  111,  111,  113,
-      113,  361,  113,  113,  113,  113,  113,  113,  113,  113,
-      114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
-      114,  360,  114,  118,  118,  118,  118,  118,  359,  118,
-      118,  118,  118,  118,  119,  119,  119,  119,  119,  119,
-      119,  119,  119,  119,  119,  358,  119,  123,  123,  357,
-      123,  123,  123,  123,  123,  123,  123,  123,  123,  124,
-      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  137,  137,  137,  137,  137,  356,  137,  137,
-
-      137,  137,  137,  137,  138,  138,  355,  354,  138,  353,
-      138,  138,  352,  138,  138,  351,  138,  149,  149,  350,
-      149,  349,  348,  149,  149,  347,  149,  149,  346,  149,
-      151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
-      151,  345,  151,  181,  344,  181,  181,  181,  181,  181,
-      181,  181,  181,  181,  181,  181,  199,  343,  199,  199,
-      199,  199,  199,  199,  199,  199,  342,  199,  199,  341,
-      340,  339,  338,  337,  336,  335,  334,  333,  332,  331,
-      330,  329,  328,  327,  326,  325,  324,  323,  322,  320,
-      319,  318,  317,  316,  315,  314,  313,  312,  311,  310,
-
-      308,  307,  305,  304,  303,  300,  299,  298,  297,  296,
-      295,  293,  292,  291,  290,  289,  288,  286,  285,  284,
-      283,  282,  281,  280,  279,  278,  277,  276,  275,  274,
-      271,  270,  269,  268,  267,  266,  265,  264,  263,  262,
-      261,  260,  259,  258,  257,  256,  255,  254,  253,  252,
-      251,  250,  249,  248,  247,  246,  245,  244,  243,  242,
-      241,  240,  239,  236,  122,  192,  117,  187,  235,  234,
-      233,  232,  231,  230,  229,  228,  227,  226,  223,  222,
-      221,  218,  217,  216,  213,  210,  209,  208,  204,  195,
-      192,  187,  108,  108,  182,  180,  179,  178,  172,  168,
-
-      164,  161,  160,  155,  150,  112,  108,  390,   48,   48,
-       23,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390
+       44,   44,   44,   47,   47,   47,   47,   47,   47,   47,
+       47,   47,   47,   47,   47,   47,   49,   49,   49,   49,
+
+       49,   49,   49,   49,   49,   49,   49,   49,   49,   52,
+       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   55,   55,   55,   55,   55,   55,   55,   55,
+       55,   55,   55,   55,   55,   58,   58,   58,   58,   58,
+       58,   58,   58,   58,   58,   58,   58,   58,   60,   60,
+       60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
+       60,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   73,   73,   73,   73,   73,   73,
+       73,   73,   73,   73,   73,   73,   73,   97,   97,  101,
+      384,  101,  101,  101,  101,  101,  101,  101,  101,  383,
+
+      101,  101,  102,  102,  102,  102,  102,  102,  382,  102,
+      102,  102,  102,  381,  102,  105,  380,  105,  105,  105,
+      105,  105,  105,  105,  105,  105,  379,  105,  109,  109,
+      109,  109,  109,  109,  378,  109,  109,  109,  109,  109,
+      109,  111,  111,  377,  111,  111,  111,  111,  111,  111,
+      111,  111,  112,  112,  112,  112,  112,  112,  112,  112,
+      112,  112,  112,  376,  112,  116,  116,  116,  116,  116,
+      375,  116,  116,  116,  116,  116,  117,  117,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  374,  117,  121,
+      121,  373,  121,  121,  121,  121,  121,  121,  121,  121,
+
+      121,  122,  122,  122,  122,  122,  122,  122,  122,  122,
+      122,  122,  122,  122,  135,  135,  135,  135,  135,  372,
+      135,  135,  135,  135,  135,  135,  136,  136,  371,  370,
+      369,  368,  136,  136,  136,  136,  136,  367,  136,  152,
+      152,  366,  152,  365,  364,  152,  152,  152,  152,  152,
+      363,  152,  154,  154,  154,  154,  154,  154,  154,  154,
+      154,  154,  154,  362,  154,  158,  158,  158,  185,  361,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  203,  360,  203,  203,  203,  203,  203,  203,  203,
+      203,  359,  203,  203,  358,  357,  356,  355,  354,  353,
+
+      352,  351,  350,  349,  348,  347,  346,  345,  344,  343,
+      342,  341,  340,  339,  338,  337,  336,  335,  334,  333,
+      332,  331,  330,  328,  327,  326,  325,  324,  323,  322,
+      321,  320,  319,  318,  316,  315,  313,  312,  311,  308,
+      307,  306,  305,  304,  303,  301,  300,  299,  298,  297,
+      296,  294,  293,  292,  291,  290,  289,  288,  287,  286,
+      285,  284,  283,  282,  279,  278,  277,  276,  275,  274,
+      273,  272,  271,  270,  269,  268,  267,  266,  265,  264,
+      263,  262,  261,  260,  259,  258,  257,  256,  255,  254,
+      253,  252,  251,  250,  249,  248,  247,  244,  120,  196,
+
+      115,  191,  243,  242,  241,  240,  239,  238,  237,  236,
+      235,  234,  231,  230,  229,  226,  225,  224,  221,  218,
+      217,  216,  212,  199,  196,  191,  106,  106,  186,  184,
+      183,  182,  176,  172,  168,  165,  164,  159,  153,  110,
+      106,  398,   48,   48,   23,  398,  398,  398,  398,  398,
+      398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
+      398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
+      398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
+      398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
+      398,  398,  398,  398,  398,  398,  398,  398
+
     } ;
 
-static yyconst short int yy_chk[865] =
+static yyconst short int yy_chk[899] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -611,92 +617,96 @@ static yyconst short int yy_chk[865] =
        25,   32,    9,   26,   26,   10,   33,   33,   13,    3,
         4,    3,    4,   11,   11,   11,    5,    5,    5,    6,
         6,    6,    9,    9,    9,   10,   10,   10,   12,   13,
-       14,   15,   16,   80,   80,   19,   84,   19,   19,   87,
-
-      170,   84,  426,   19,  170,   12,   12,   12,   87,   15,
-       16,   14,   17,   17,   17,   19,   17,   19,   46,   46,
-       20,   17,   20,   20,   21,   41,   83,   21,   20,  425,
-       17,   22,   21,   17,   22,   17,   83,   91,   41,   22,
-       20,   46,   20,  424,   21,  423,   21,   51,   51,   54,
-       54,   22,   91,   22,  422,   91,   65,   93,   94,   17,
-       65,   17,   18,   18,   18,   93,   18,   94,  421,   63,
-       51,   18,   54,   65,   63,   94,  419,   63,   63,   66,
-       18,   63,   75,   18,   66,   18,   75,   66,   66,   79,
-       89,  102,  102,   79,  106,  106,  108,  108,  160,   75,
-
-      109,  109,  418,   89,  115,  115,   79,   89,  160,   18,
-      417,   18,   28,  117,  117,  120,  120,  122,  122,  108,
-      140,  140,  388,  109,  141,  141,  145,  145,  147,  147,
-      148,  148,  154,  154,  387,   28,  386,   28,   28,   28,
-       28,  183,  183,  385,   28,   28,   28,   28,   28,   28,
-       28,   28,   28,   28,  156,   28,   28,   57,  156,  162,
-       57,  384,  166,  254,  184,  381,   57,  185,  185,  156,
-      187,  187,  376,   57,  162,  374,   57,  184,   57,  166,
-      254,   57,   57,  188,  188,  373,   57,  190,  190,  192,
-      192,  372,  166,   57,  193,  193,   57,  371,   57,   57,
-
-       57,   57,  200,  200,  201,  202,  202,  203,  201,  239,
-      262,  203,  279,  282,  239,  298,  382,  239,  239,  370,
-      368,  201,  367,  366,  203,  364,  363,  262,  362,  279,
-      282,  361,  298,  382,  391,  391,  391,  391,  391,  391,
-      391,  391,  391,  391,  391,  391,  391,  392,  392,  392,
-      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
-      393,  393,  393,  393,  393,  393,  393,  393,  393,  393,
-      393,  393,  393,  394,  394,  394,  394,  394,  394,  394,
-      394,  394,  394,  394,  394,  394,  395,  395,  395,  395,
-      395,  395,  395,  395,  395,  395,  395,  395,  395,  396,
-
-      396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
-      396,  396,  397,  397,  397,  397,  397,  397,  397,  397,
-      397,  397,  397,  397,  397,  398,  398,  398,  398,  398,
-      398,  398,  398,  398,  398,  398,  398,  398,  399,  399,
+       14,   15,   16,   81,   63,   41,   19,  435,   19,   19,
+
+       63,   46,   46,   81,   19,   12,   12,   12,   41,   15,
+       16,   14,   17,   17,   17,   17,   19,  434,   19,   20,
+       17,   20,   20,   21,   46,   17,   21,   20,  433,   17,
+       22,   21,   17,   22,   17,   66,   51,   51,   22,   20,
+       65,   20,  432,   21,   65,   21,   66,   54,   54,   72,
+       22,   76,   22,   72,   66,   76,   85,   65,   17,   51,
+       17,   18,   18,   18,   18,   85,   72,   62,   76,   18,
+       54,  431,   62,  430,   18,   62,   62,   67,   18,   62,
+       87,   18,   67,   18,   82,   67,   67,   77,   77,   82,
+       89,   91,  164,   87,   92,  100,  100,   87,  205,   91,
+
+      104,  104,  164,   92,  205,   89,  428,   18,   89,   18,
+       28,   92,  113,  113,  427,   28,  115,  115,  118,  118,
+      120,  120,  138,  138,  139,  139,   28,   28,  142,  142,
+      426,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   57,  145,  145,   57,  106,
+      106,  396,  107,  107,   57,  148,  148,  150,  150,  151,
+      151,   57,  157,  157,   57,  166,   57,  160,  170,   57,
+       57,  160,  106,  174,   57,  107,  395,  174,  187,  187,
+      166,   57,  160,  188,   57,  170,   57,   57,   57,   57,
+
+      189,  189,  191,  191,  192,  192,  188,  394,  170,  194,
+      194,  196,  196,  197,  197,  204,  204,  206,  206,  207,
+      208,  208,  209,  207,  210,  210,  211,  262,  270,  247,
+      211,  287,  290,  209,  247,  306,  207,  247,  247,  390,
+      393,  209,  392,  211,  262,  270,  389,  384,  287,  290,
+      382,  381,  306,  380,  379,  378,  390,  399,  399,  399,
       399,  399,  399,  399,  399,  399,  399,  399,  399,  399,
-      399,  400,  400,  400,  400,  400,  400,  400,  400,  400,
-      400,  400,  400,  400,  401,  358,  401,  402,  357,  402,
-      402,  402,  402,  402,  402,  402,  402,  356,  402,  402,
-      403,  403,  403,  403,  403,  403,  355,  403,  403,  403,
-      403,  354,  403,  404,  353,  404,  404,  404,  404,  404,
-
-      404,  404,  404,  404,  351,  404,  405,  405,  405,  405,
-      405,  405,  350,  405,  405,  405,  405,  405,  405,  406,
-      406,  347,  406,  406,  406,  406,  406,  406,  406,  406,
-      407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
-      407,  346,  407,  408,  408,  408,  408,  408,  345,  408,
-      408,  408,  408,  408,  409,  409,  409,  409,  409,  409,
-      409,  409,  409,  409,  409,  344,  409,  410,  410,  343,
-      410,  410,  410,  410,  410,  410,  410,  410,  410,  411,
-      411,  411,  411,  411,  411,  411,  411,  411,  411,  411,
-      411,  411,  412,  412,  412,  412,  412,  342,  412,  412,
-
-      412,  412,  412,  412,  413,  413,  341,  340,  413,  338,
-      413,  413,  337,  413,  413,  336,  413,  414,  414,  334,
-      414,  333,  332,  414,  414,  331,  414,  414,  330,  414,
-      415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
-      415,  329,  415,  416,  328,  416,  416,  416,  416,  416,
-      416,  416,  416,  416,  416,  416,  420,  327,  420,  420,
-      420,  420,  420,  420,  420,  420,  326,  420,  420,  325,
-      324,  322,  321,  320,  319,  318,  317,  315,  314,  313,
-      312,  311,  310,  309,  308,  306,  305,  304,  300,  296,
-      294,  293,  292,  291,  289,  288,  287,  285,  284,  283,
-
-      281,  280,  277,  276,  274,  270,  269,  267,  265,  264,
-      263,  261,  259,  258,  257,  256,  255,  253,  252,  251,
-      249,  248,  247,  246,  245,  244,  243,  242,  241,  240,
-      235,  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,  209,  208,  207,  206,
-      205,  204,  199,  195,  194,  191,  189,  186,  180,  179,
-      178,  177,  176,  175,  174,  173,  172,  171,  169,  168,
-      167,  165,  164,  163,  161,  159,  158,  157,  155,  126,
-      121,  116,  110,  107,  103,   97,   96,   95,   92,   90,
-
-       88,   86,   85,   82,   73,   48,   44,   23,    8,    7,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390,  390,  390,  390,  390,  390,  390,
-      390,  390,  390,  390
+      400,  400,  400,  400,  400,  400,  400,  400,  400,  400,
+      400,  400,  400,  401,  401,  401,  401,  401,  401,  401,
+      401,  401,  401,  401,  401,  401,  402,  402,  402,  402,
+
+      402,  402,  402,  402,  402,  402,  402,  402,  402,  403,
+      403,  403,  403,  403,  403,  403,  403,  403,  403,  403,
+      403,  403,  404,  404,  404,  404,  404,  404,  404,  404,
+      404,  404,  404,  404,  404,  405,  405,  405,  405,  405,
+      405,  405,  405,  405,  405,  405,  405,  405,  406,  406,
+      406,  406,  406,  406,  406,  406,  406,  406,  406,  406,
+      406,  407,  407,  407,  407,  407,  407,  407,  407,  407,
+      407,  407,  407,  407,  408,  408,  408,  408,  408,  408,
+      408,  408,  408,  408,  408,  408,  408,  409,  409,  410,
+      376,  410,  410,  410,  410,  410,  410,  410,  410,  375,
+
+      410,  410,  411,  411,  411,  411,  411,  411,  374,  411,
+      411,  411,  411,  372,  411,  412,  371,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  370,  412,  413,  413,
+      413,  413,  413,  413,  369,  413,  413,  413,  413,  413,
+      413,  414,  414,  366,  414,  414,  414,  414,  414,  414,
+      414,  414,  415,  415,  415,  415,  415,  415,  415,  415,
+      415,  415,  415,  365,  415,  416,  416,  416,  416,  416,
+      364,  416,  416,  416,  416,  416,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  363,  417,  418,
+      418,  362,  418,  418,  418,  418,  418,  418,  418,  418,
+
+      418,  419,  419,  419,  419,  419,  419,  419,  419,  419,
+      419,  419,  419,  419,  420,  420,  420,  420,  420,  361,
+      420,  420,  420,  420,  420,  420,  421,  421,  359,  358,
+      355,  354,  421,  421,  421,  421,  421,  353,  421,  422,
+      422,  352,  422,  351,  350,  422,  422,  422,  422,  422,
+      349,  422,  423,  423,  423,  423,  423,  423,  423,  423,
+      423,  423,  423,  348,  423,  424,  424,  424,  425,  346,
+      425,  425,  425,  425,  425,  425,  425,  425,  425,  425,
+      425,  429,  345,  429,  429,  429,  429,  429,  429,  429,
+      429,  344,  429,  429,  342,  341,  340,  339,  338,  337,
+
+      336,  335,  334,  333,  332,  330,  329,  328,  327,  326,
+      325,  323,  322,  321,  320,  319,  318,  317,  316,  314,
+      313,  312,  308,  304,  302,  301,  300,  299,  297,  296,
+      295,  293,  292,  291,  289,  288,  285,  284,  282,  278,
+      277,  275,  273,  272,  271,  269,  267,  266,  265,  264,
+      263,  261,  260,  259,  257,  256,  255,  254,  253,  252,
+      251,  250,  249,  248,  243,  242,  241,  240,  239,  238,
+      237,  236,  235,  234,  233,  232,  231,  230,  229,  228,
+      227,  226,  225,  224,  223,  222,  221,  220,  219,  218,
+      217,  216,  215,  214,  213,  212,  203,  199,  198,  195,
+
+      193,  190,  184,  183,  182,  181,  180,  179,  178,  177,
+      176,  175,  173,  172,  171,  169,  168,  167,  165,  163,
+      162,  161,  159,  124,  119,  114,  108,  105,  101,   95,
+       94,   93,   90,   88,   86,   84,   83,   80,   71,   48,
+       44,   23,    8,    7,  398,  398,  398,  398,  398,  398,
+      398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
+      398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
+      398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
+      398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
+      398,  398,  398,  398,  398,  398,  398,  398
+
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -705,20 +715,20 @@ static char *yy_last_accepting_cpos;
 extern int yy_flex_debug;
 int yy_flex_debug = 1;
 
-static yyconst short int yy_rule_linenum[102] =
+static yyconst short int yy_rule_linenum[103] =
     {   0,
-      215,  216,  217,  218,  219,  220,  221,  222,  223,  224,
-      225,  226,  227,  228,  229,  230,  231,  232,  233,  234,
-      235,  236,  237,  238,  239,  240,  241,  242,  243,  244,
-      245,  246,  247,  248,  250,  251,  252,  253,  254,  256,
-      258,  264,  278,  281,  284,  285,  288,  291,  294,  302,
-      308,  323,  324,  334,  339,  354,  355,  370,  371,  383,
-      393,  412,  428,  447,  458,  471,  472,  473,  474,  475,
-      476,  477,  478,  479,  489,  494,  505,  511,  512,  513,
-      515,  532,  538,  539,  540,  542,  559,  562,  565,  566,
-      569,  580,  592,  594,  596,  599,  602,  621,  628,  629,
-
-      648
+      217,  218,  219,  220,  221,  222,  223,  224,  225,  226,
+      227,  228,  229,  230,  231,  232,  233,  234,  235,  236,
+      237,  238,  239,  240,  241,  242,  243,  244,  245,  246,
+      247,  248,  249,  250,  252,  257,  258,  259,  260,  261,
+      263,  265,  271,  285,  288,  291,  292,  295,  298,  301,
+      309,  315,  330,  331,  341,  346,  361,  362,  377,  378,
+      390,  400,  419,  435,  454,  465,  478,  479,  480,  481,
+      482,  483,  484,  485,  486,  496,  501,  512,  518,  519,
+      520,  522,  539,  545,  546,  547,  549,  566,  569,  572,
+      573,  576,  587,  588,  589,  602,  604,  609,  628,  635,
+
+      636,  655
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -895,7 +905,6 @@ scanner_last_string_free (void)
 }
 
 
-static int braces_level = 0;
 static int percent_percent_count = 0;
 
 /* Within well-formed rules, RULE_LENGTH is the number of values in
@@ -931,7 +940,7 @@ static int convert_ucn_to_byte (char const *hex_text);
    NUL and newline, as this simplifies our implementation.  */
 /* Zero or more instances of backslash-newline.  Following GCC, allow
    white space between the backslash and the newline.  */
-#line 935 "scan-gram.c"
+#line 944 "scan-gram.c"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -1031,20 +1040,9 @@ YY_MALLOC_DECL
                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
                result = n; \
                } \
-       else \
-               { \
-               errno=0; \
-               while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
-                       { \
-                       if( errno != EINTR) \
-                               { \
-                               YY_FATAL_ERROR( "input in flex scanner failed" ); \
-                               break; \
-                               } \
-                       errno=0; \
-                       clearerr(yyin); \
-                       } \
-               }
+       else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
+                 && ferror( yyin ) ) \
+               YY_FATAL_ERROR( "input in flex scanner failed" );
 #endif
 
 /* No semi-colon after return; correct usage is to write "yyterminate();" -
@@ -1096,6 +1094,8 @@ YY_DECL
 #line 202 "scan-gram.l"
 
 
+  int braces_level IF_LINT (= 0);
+
   /* At each yylex invocation, mark the current position as the
      start of the next token.  */
   YY_STEP;
@@ -1156,13 +1156,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 >= 391 )
+                               if ( yy_current_state >= 399 )
                                        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] != 811 );
+               while ( yy_base[yy_current_state] != 845 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -1182,13 +1182,13 @@ do_action:      /* This label is used only to access EOF actions. */
                        {
                        if ( yy_act == 0 )
                                fprintf( stderr, "--scanner backing up\n" );
-                       else if ( yy_act < 102 )
+                       else if ( yy_act < 103 )
                                fprintf( stderr, "--accepting rule at line %d (\"%s\")\n",
                                         yy_rule_linenum[yy_act], yytext );
-                       else if ( yy_act == 102 )
+                       else if ( yy_act == 103 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
                                         yytext );
-                       else if ( yy_act == 103 )
+                       else if ( yy_act == 104 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
                                fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -1207,216 +1207,224 @@ do_action:    /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 215 "scan-gram.l"
+#line 217 "scan-gram.l"
 return PERCENT_NONASSOC;
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 216 "scan-gram.l"
+#line 218 "scan-gram.l"
 return PERCENT_DEBUG;
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 217 "scan-gram.l"
+#line 219 "scan-gram.l"
 return PERCENT_DEFINE;
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 218 "scan-gram.l"
+#line 220 "scan-gram.l"
 return PERCENT_DEFINES;
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 219 "scan-gram.l"
+#line 221 "scan-gram.l"
 return PERCENT_DESTRUCTOR;
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 220 "scan-gram.l"
+#line 222 "scan-gram.l"
 return PERCENT_DPREC;
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 221 "scan-gram.l"
+#line 223 "scan-gram.l"
 return PERCENT_ERROR_VERBOSE;
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 222 "scan-gram.l"
+#line 224 "scan-gram.l"
 return PERCENT_EXPECT;
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 223 "scan-gram.l"
+#line 225 "scan-gram.l"
 return PERCENT_FILE_PREFIX;
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 224 "scan-gram.l"
+#line 226 "scan-gram.l"
 return PERCENT_YACC;
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 225 "scan-gram.l"
+#line 227 "scan-gram.l"
 return PERCENT_GLR_PARSER;
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 226 "scan-gram.l"
+#line 228 "scan-gram.l"
 return PERCENT_LEFT;
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 227 "scan-gram.l"
+#line 229 "scan-gram.l"
 return PERCENT_LOCATIONS;
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 228 "scan-gram.l"
+#line 230 "scan-gram.l"
 return PERCENT_MERGE;
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 229 "scan-gram.l"
+#line 231 "scan-gram.l"
 return PERCENT_NAME_PREFIX;
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 230 "scan-gram.l"
+#line 232 "scan-gram.l"
 return PERCENT_NO_LINES;
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 231 "scan-gram.l"
+#line 233 "scan-gram.l"
 return PERCENT_NONASSOC;
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 232 "scan-gram.l"
+#line 234 "scan-gram.l"
 return PERCENT_NTERM;
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 233 "scan-gram.l"
+#line 235 "scan-gram.l"
 return PERCENT_OUTPUT;
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 234 "scan-gram.l"
+#line 236 "scan-gram.l"
 return PERCENT_PARSE_PARAM;
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 235 "scan-gram.l"
+#line 237 "scan-gram.l"
 rule_length--; return PERCENT_PREC;
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 236 "scan-gram.l"
+#line 238 "scan-gram.l"
 return PERCENT_PRINTER;
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 237 "scan-gram.l"
+#line 239 "scan-gram.l"
 return PERCENT_PURE_PARSER;
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 238 "scan-gram.l"
+#line 240 "scan-gram.l"
 return PERCENT_RIGHT;
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 239 "scan-gram.l"
+#line 241 "scan-gram.l"
 return PERCENT_LEX_PARAM;
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 240 "scan-gram.l"
+#line 242 "scan-gram.l"
 return PERCENT_SKELETON;
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 241 "scan-gram.l"
+#line 243 "scan-gram.l"
 return PERCENT_START;
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 242 "scan-gram.l"
+#line 244 "scan-gram.l"
 return PERCENT_TOKEN;
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 243 "scan-gram.l"
+#line 245 "scan-gram.l"
 return PERCENT_TOKEN;
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 244 "scan-gram.l"
+#line 246 "scan-gram.l"
 return PERCENT_TOKEN_TABLE;
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 245 "scan-gram.l"
+#line 247 "scan-gram.l"
 return PERCENT_TYPE;
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 246 "scan-gram.l"
+#line 248 "scan-gram.l"
 return PERCENT_UNION;
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 247 "scan-gram.l"
+#line 249 "scan-gram.l"
 return PERCENT_VERBOSE;
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 248 "scan-gram.l"
+#line 250 "scan-gram.l"
 return PERCENT_YACC;
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 250 "scan-gram.l"
-return EQUAL;
+#line 252 "scan-gram.l"
+{
+    complain_at (*yylloc, _("invalid directive: %s"), quote (yytext));
+    YY_STEP;
+  }
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 251 "scan-gram.l"
-rule_length = 0; return COLON;
+#line 257 "scan-gram.l"
+return EQUAL;
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 252 "scan-gram.l"
-rule_length = 0; return PIPE;
+#line 258 "scan-gram.l"
+rule_length = 0; return COLON;
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 253 "scan-gram.l"
-return COMMA;
+#line 259 "scan-gram.l"
+rule_length = 0; return PIPE;
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 254 "scan-gram.l"
-return SEMICOLON;
+#line 260 "scan-gram.l"
+return COMMA;
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 256 "scan-gram.l"
-YY_STEP;
+#line 261 "scan-gram.l"
+return SEMICOLON;
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 258 "scan-gram.l"
+#line 263 "scan-gram.l"
+YY_STEP;
+       YY_BREAK
+case 42:
+YY_RULE_SETUP
+#line 265 "scan-gram.l"
 {
     yylval->symbol = symbol_get (yytext, *yylloc);
     rule_length++;
     return ID;
   }
        YY_BREAK
-case 42:
+case 43:
 YY_RULE_SETUP
-#line 264 "scan-gram.l"
+#line 271 "scan-gram.l"
 {
     unsigned long num;
     errno = 0;
@@ -1431,44 +1439,44 @@ YY_RULE_SETUP
   }
        YY_BREAK
 /* Characters.  We don't check there is only one.  */
-case 43:
+case 44:
 YY_RULE_SETUP
-#line 278 "scan-gram.l"
+#line 285 "scan-gram.l"
 YY_OBS_GROW; yy_push_state (SC_ESCAPED_CHARACTER);
        YY_BREAK
 /* Strings. */
-case 44:
+case 45:
 YY_RULE_SETUP
-#line 281 "scan-gram.l"
+#line 288 "scan-gram.l"
 YY_OBS_GROW; yy_push_state (SC_ESCAPED_STRING);
        YY_BREAK
 /* Comments. */
-case 45:
+case 46:
 YY_RULE_SETUP
-#line 284 "scan-gram.l"
+#line 291 "scan-gram.l"
 BEGIN SC_YACC_COMMENT;
        YY_BREAK
-case 46:
+case 47:
 YY_RULE_SETUP
-#line 285 "scan-gram.l"
+#line 292 "scan-gram.l"
 YY_STEP;
        YY_BREAK
 /* Prologue. */
-case 47:
+case 48:
 YY_RULE_SETUP
-#line 288 "scan-gram.l"
+#line 295 "scan-gram.l"
 yy_push_state (SC_PROLOGUE);
        YY_BREAK
 /* Code in between braces.  */
-case 48:
+case 49:
 YY_RULE_SETUP
-#line 291 "scan-gram.l"
-YY_OBS_GROW; ++braces_level; yy_push_state (SC_BRACED_CODE);
+#line 298 "scan-gram.l"
+YY_OBS_GROW; braces_level = 0; yy_push_state (SC_BRACED_CODE);
        YY_BREAK
 /* A type. */
-case 49:
+case 50:
 YY_RULE_SETUP
-#line 294 "scan-gram.l"
+#line 301 "scan-gram.l"
 {
     obstack_grow (&string_obstack, yytext + 1, yyleng - 2);
     YY_OBS_FINISH;
@@ -1476,18 +1484,18 @@ YY_RULE_SETUP
     return TYPE;
   }
        YY_BREAK
-case 50:
+case 51:
 YY_RULE_SETUP
-#line 302 "scan-gram.l"
+#line 309 "scan-gram.l"
 {
     if (++percent_percent_count == 2)
       yy_push_state (SC_EPILOGUE);
     return PERCENT_PERCENT;
   }
        YY_BREAK
-case 51:
+case 52:
 YY_RULE_SETUP
-#line 308 "scan-gram.l"
+#line 315 "scan-gram.l"
 {
     complain_at (*yylloc, _("invalid character: %s"), quote (yytext));
     YY_STEP;
@@ -1501,14 +1509,14 @@ YY_RULE_SETUP
   `-------------------------------------------------------------------*/
 
 
-case 52:
+case 53:
 YY_RULE_SETUP
-#line 323 "scan-gram.l"
+#line 330 "scan-gram.l"
 obstack_sgrow (&string_obstack, "@<:@");
        YY_BREAK
-case 53:
+case 54:
 YY_RULE_SETUP
-#line 324 "scan-gram.l"
+#line 331 "scan-gram.l"
 obstack_sgrow (&string_obstack, "@:>@");
        YY_BREAK
 
@@ -1517,21 +1525,21 @@ obstack_sgrow (&string_obstack, "@:>@");
   `---------------------------------------------------------------*/
 
 
-case 54:
+case 55:
 YY_RULE_SETUP
-#line 334 "scan-gram.l"
+#line 341 "scan-gram.l"
 {
     YY_STEP;
     BEGIN INITIAL;
   }
        YY_BREAK
-case 55:
+case 56:
 YY_RULE_SETUP
-#line 339 "scan-gram.l"
+#line 346 "scan-gram.l"
 ;
        YY_BREAK
 case YY_STATE_EOF(SC_YACC_COMMENT):
-#line 341 "scan-gram.l"
+#line 348 "scan-gram.l"
 {
     complain_at (*yylloc, _("unexpected end of file in a comment"));
     BEGIN INITIAL;
@@ -1543,18 +1551,18 @@ case YY_STATE_EOF(SC_YACC_COMMENT):
   `------------------------------------------------------------*/
 
 
-case 56:
+case 57:
 YY_RULE_SETUP
-#line 354 "scan-gram.l"
+#line 361 "scan-gram.l"
 YY_OBS_GROW; yy_pop_state ();
        YY_BREAK
-case 57:
+case 58:
 YY_RULE_SETUP
-#line 355 "scan-gram.l"
+#line 362 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
 case YY_STATE_EOF(SC_COMMENT):
-#line 357 "scan-gram.l"
+#line 364 "scan-gram.l"
 {
     complain_at (*yylloc, _("unexpected end of file in a comment"));
     yy_pop_state ();
@@ -1566,18 +1574,18 @@ case YY_STATE_EOF(SC_COMMENT):
   `--------------------------------------------------------------*/
 
 
-case 58:
+case 59:
 YY_RULE_SETUP
-#line 370 "scan-gram.l"
+#line 377 "scan-gram.l"
 YY_OBS_GROW; yy_pop_state ();
        YY_BREAK
-case 59:
+case 60:
 YY_RULE_SETUP
-#line 371 "scan-gram.l"
+#line 378 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
 case YY_STATE_EOF(SC_LINE_COMMENT):
-#line 372 "scan-gram.l"
+#line 379 "scan-gram.l"
 yy_pop_state ();
        YY_BREAK
 
@@ -1587,9 +1595,9 @@ yy_pop_state ();
   `----------------------------------------------------------------*/
 
 
-case 60:
+case 61:
 YY_RULE_SETUP
-#line 383 "scan-gram.l"
+#line 390 "scan-gram.l"
 {
     assert (yy_top_state () == INITIAL);
     YY_OBS_GROW;
@@ -1600,13 +1608,13 @@ YY_RULE_SETUP
     return STRING;
   }
        YY_BREAK
-case 61:
+case 62:
 YY_RULE_SETUP
-#line 393 "scan-gram.l"
+#line 400 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
 case YY_STATE_EOF(SC_ESCAPED_STRING):
-#line 395 "scan-gram.l"
+#line 402 "scan-gram.l"
 {
     complain_at (*yylloc, _("unexpected end of file in a string"));
     assert (yy_top_state () == INITIAL);
@@ -1623,9 +1631,9 @@ case YY_STATE_EOF(SC_ESCAPED_STRING):
   `---------------------------------------------------------------*/
 
 
-case 62:
+case 63:
 YY_RULE_SETUP
-#line 412 "scan-gram.l"
+#line 419 "scan-gram.l"
 {
     YY_OBS_GROW;
     assert (yy_top_state () == INITIAL);
@@ -1642,13 +1650,13 @@ YY_RULE_SETUP
     }
   }
        YY_BREAK
-case 63:
+case 64:
 YY_RULE_SETUP
-#line 428 "scan-gram.l"
+#line 435 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
 case YY_STATE_EOF(SC_ESCAPED_CHARACTER):
-#line 430 "scan-gram.l"
+#line 437 "scan-gram.l"
 {
     complain_at (*yylloc, _("unexpected end of file in a character"));
     assert (yy_top_state () == INITIAL);
@@ -1664,9 +1672,9 @@ case YY_STATE_EOF(SC_ESCAPED_CHARACTER):
   `----------------------------*/
 
 
-case 64:
+case 65:
 YY_RULE_SETUP
-#line 447 "scan-gram.l"
+#line 454 "scan-gram.l"
 {
     unsigned long c = strtoul (yytext + 1, 0, 8);
     if (UCHAR_MAX < c)
@@ -1678,9 +1686,9 @@ YY_RULE_SETUP
       obstack_1grow (&string_obstack, c);
   }
        YY_BREAK
-case 65:
+case 66:
 YY_RULE_SETUP
-#line 458 "scan-gram.l"
+#line 465 "scan-gram.l"
 {
     unsigned long c;
     errno = 0;
@@ -1694,49 +1702,49 @@ YY_RULE_SETUP
       obstack_1grow (&string_obstack, c);
   }
        YY_BREAK
-case 66:
+case 67:
 YY_RULE_SETUP
-#line 471 "scan-gram.l"
+#line 478 "scan-gram.l"
 obstack_1grow (&string_obstack, '\a');
        YY_BREAK
-case 67:
+case 68:
 YY_RULE_SETUP
-#line 472 "scan-gram.l"
+#line 479 "scan-gram.l"
 obstack_1grow (&string_obstack, '\b');
        YY_BREAK
-case 68:
+case 69:
 YY_RULE_SETUP
-#line 473 "scan-gram.l"
+#line 480 "scan-gram.l"
 obstack_1grow (&string_obstack, '\f');
        YY_BREAK
-case 69:
+case 70:
 YY_RULE_SETUP
-#line 474 "scan-gram.l"
+#line 481 "scan-gram.l"
 obstack_1grow (&string_obstack, '\n');
        YY_BREAK
-case 70:
+case 71:
 YY_RULE_SETUP
-#line 475 "scan-gram.l"
+#line 482 "scan-gram.l"
 obstack_1grow (&string_obstack, '\r');
        YY_BREAK
-case 71:
+case 72:
 YY_RULE_SETUP
-#line 476 "scan-gram.l"
+#line 483 "scan-gram.l"
 obstack_1grow (&string_obstack, '\t');
        YY_BREAK
-case 72:
+case 73:
 YY_RULE_SETUP
-#line 477 "scan-gram.l"
+#line 484 "scan-gram.l"
 obstack_1grow (&string_obstack, '\v');
        YY_BREAK
-case 73:
+case 74:
 YY_RULE_SETUP
-#line 478 "scan-gram.l"
+#line 485 "scan-gram.l"
 obstack_1grow (&string_obstack, yytext[1]);
        YY_BREAK
-case 74:
+case 75:
 YY_RULE_SETUP
-#line 479 "scan-gram.l"
+#line 486 "scan-gram.l"
 {
     int c = convert_ucn_to_byte (yytext);
     if (c < 0)
@@ -1748,18 +1756,18 @@ YY_RULE_SETUP
       obstack_1grow (&string_obstack, c);
   }
        YY_BREAK
-case 75:
+case 76:
 YY_RULE_SETUP
-#line 489 "scan-gram.l"
+#line 496 "scan-gram.l"
 {
     complain_at (*yylloc, _("unrecognized escape: %s"), quote (yytext));
     YY_OBS_GROW;
   }
        YY_BREAK
 /* FLex wants this rule, in case of a `\<<EOF>>'. */
-case 76:
+case 77:
 YY_RULE_SETUP
-#line 494 "scan-gram.l"
+#line 501 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
 
@@ -1769,38 +1777,38 @@ YY_OBS_GROW;
   `----------------------------------------------------------*/
 
 
-case 77:
+case 78:
 YY_RULE_SETUP
-#line 505 "scan-gram.l"
+#line 512 "scan-gram.l"
 {
     YY_OBS_GROW;
     assert (yy_top_state () != INITIAL);
     yy_pop_state ();
   }
        YY_BREAK
-case 78:
+case 79:
 YY_RULE_SETUP
-#line 511 "scan-gram.l"
+#line 518 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
-case 79:
+case 80:
 YY_RULE_SETUP
-#line 512 "scan-gram.l"
+#line 519 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
-case 80:
+case 81:
 YY_RULE_SETUP
-#line 513 "scan-gram.l"
+#line 520 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
 /* Needed for `\<<EOF>>', `\\<<newline>>[', and `\\<<newline>>]'.  */
-case 81:
+case 82:
 YY_RULE_SETUP
-#line 515 "scan-gram.l"
+#line 522 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
 case YY_STATE_EOF(SC_CHARACTER):
-#line 517 "scan-gram.l"
+#line 524 "scan-gram.l"
 {
     complain_at (*yylloc, _("unexpected end of file in a character"));
     assert (yy_top_state () != INITIAL);
@@ -1814,38 +1822,38 @@ case YY_STATE_EOF(SC_CHARACTER):
   `----------------------------------------------------------------*/
 
 
-case 82:
+case 83:
 YY_RULE_SETUP
-#line 532 "scan-gram.l"
+#line 539 "scan-gram.l"
 {
     assert (yy_top_state () != INITIAL);
     YY_OBS_GROW;
     yy_pop_state ();
   }
        YY_BREAK
-case 83:
+case 84:
 YY_RULE_SETUP
-#line 538 "scan-gram.l"
+#line 545 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
-case 84:
+case 85:
 YY_RULE_SETUP
-#line 539 "scan-gram.l"
+#line 546 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
-case 85:
+case 86:
 YY_RULE_SETUP
-#line 540 "scan-gram.l"
+#line 547 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
 /* Needed for `\<<EOF>>', `\\<<newline>>[', and `\\<<newline>>]'.  */
-case 86:
+case 87:
 YY_RULE_SETUP
-#line 542 "scan-gram.l"
+#line 549 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
 case YY_STATE_EOF(SC_STRING):
-#line 544 "scan-gram.l"
+#line 551 "scan-gram.l"
 {
     complain_at (*yylloc, _("unexpected end of file in a string"));
     assert (yy_top_state () != INITIAL);
@@ -1859,32 +1867,32 @@ case YY_STATE_EOF(SC_STRING):
 
 
 /* Characters.  We don't check there is only one.  */
-case 87:
+case 88:
 YY_RULE_SETUP
-#line 559 "scan-gram.l"
+#line 566 "scan-gram.l"
 YY_OBS_GROW; yy_push_state (SC_CHARACTER);
        YY_BREAK
 /* Strings. */
-case 88:
+case 89:
 YY_RULE_SETUP
-#line 562 "scan-gram.l"
+#line 569 "scan-gram.l"
 YY_OBS_GROW; yy_push_state (SC_STRING);
        YY_BREAK
 /* Comments. */
-case 89:
+case 90:
 YY_RULE_SETUP
-#line 565 "scan-gram.l"
+#line 572 "scan-gram.l"
 YY_OBS_GROW; yy_push_state (SC_COMMENT);
        YY_BREAK
-case 90:
+case 91:
 YY_RULE_SETUP
-#line 566 "scan-gram.l"
+#line 573 "scan-gram.l"
 YY_OBS_GROW; yy_push_state (SC_LINE_COMMENT);
        YY_BREAK
 /* Not comments. */
-case 91:
+case 92:
 YY_RULE_SETUP
-#line 569 "scan-gram.l"
+#line 576 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
 
@@ -1894,12 +1902,23 @@ YY_OBS_GROW;
   `---------------------------------------------------------------*/
 
 
-case 92:
+case 93:
+YY_RULE_SETUP
+#line 587 "scan-gram.l"
+YY_OBS_GROW; braces_level++;
+       YY_BREAK
+case 94:
+YY_RULE_SETUP
+#line 588 "scan-gram.l"
+YY_OBS_GROW; braces_level--;
+       YY_BREAK
+case 95:
 YY_RULE_SETUP
-#line 580 "scan-gram.l"
+#line 589 "scan-gram.l"
 {
     YY_OBS_GROW;
-    if (--braces_level == 0)
+    braces_level--;
+    if (braces_level < 0)
       {
        yy_pop_state ();
        YY_OBS_FINISH;
@@ -1909,36 +1928,27 @@ YY_RULE_SETUP
       }
   }
        YY_BREAK
-case 93:
-YY_RULE_SETUP
-#line 592 "scan-gram.l"
-YY_OBS_GROW; braces_level++;
-       YY_BREAK
-case 94:
+case 96:
 YY_RULE_SETUP
-#line 594 "scan-gram.l"
+#line 602 "scan-gram.l"
 { handle_dollar (current_braced_code,
                                                   yytext, *yylloc); }
        YY_BREAK
-case 95:
+case 97:
 YY_RULE_SETUP
-#line 596 "scan-gram.l"
+#line 604 "scan-gram.l"
 { handle_at (current_braced_code,
                                               yytext, *yylloc); }
        YY_BREAK
-case 96:
-YY_RULE_SETUP
-#line 599 "scan-gram.l"
-YY_OBS_GROW;
-       YY_BREAK
-/* A stray $, or /, or etc. */
-case 97:
+/* `"<"{splice}"<"' tokenizes `<<%' correctly (as `<<' `%') rather
+     than incorrrectly (as `<' `<%').  */
+case 98:
 YY_RULE_SETUP
-#line 602 "scan-gram.l"
+#line 609 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
 case YY_STATE_EOF(SC_BRACED_CODE):
-#line 604 "scan-gram.l"
+#line 611 "scan-gram.l"
 {
     complain_at (*yylloc, _("unexpected end of file in a braced code"));
     yy_pop_state ();
@@ -1953,9 +1963,9 @@ case YY_STATE_EOF(SC_BRACED_CODE):
   `--------------------------------------------------------------*/
 
 
-case 98:
+case 99:
 YY_RULE_SETUP
-#line 621 "scan-gram.l"
+#line 628 "scan-gram.l"
 {
     yy_pop_state ();
     YY_OBS_FINISH;
@@ -1963,18 +1973,18 @@ YY_RULE_SETUP
     return PROLOGUE;
   }
        YY_BREAK
-case 99:
+case 100:
 YY_RULE_SETUP
-#line 628 "scan-gram.l"
+#line 635 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
-case 100:
+case 101:
 YY_RULE_SETUP
-#line 629 "scan-gram.l"
+#line 636 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
 case YY_STATE_EOF(SC_PROLOGUE):
-#line 631 "scan-gram.l"
+#line 638 "scan-gram.l"
 {
     complain_at (*yylloc, _("unexpected end of file in a prologue"));
     yy_pop_state ();
@@ -1990,13 +2000,13 @@ case YY_STATE_EOF(SC_PROLOGUE):
   `---------------------------------------------------------------*/
 
 
-case 101:
+case 102:
 YY_RULE_SETUP
-#line 648 "scan-gram.l"
+#line 655 "scan-gram.l"
 YY_OBS_GROW;
        YY_BREAK
 case YY_STATE_EOF(SC_EPILOGUE):
-#line 650 "scan-gram.l"
+#line 657 "scan-gram.l"
 {
     yy_pop_state ();
     YY_OBS_FINISH;
@@ -2005,12 +2015,12 @@ case YY_STATE_EOF(SC_EPILOGUE):
   }
        YY_BREAK
 
-case 102:
+case 103:
 YY_RULE_SETUP
-#line 659 "scan-gram.l"
+#line 666 "scan-gram.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
        YY_BREAK
-#line 2014 "scan-gram.c"
+#line 2024 "scan-gram.c"
 case YY_STATE_EOF(INITIAL):
        yyterminate();
 
@@ -2302,7 +2312,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 >= 391 )
+                       if ( yy_current_state >= 399 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2337,11 +2347,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 >= 391 )
+               if ( yy_current_state >= 399 )
                        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 == 390);
+       yy_is_jam = (yy_current_state == 398);
 
        return yy_is_jam ? 0 : yy_current_state;
        }
@@ -2574,15 +2584,11 @@ YY_BUFFER_STATE b;
        }
 
 
-#ifndef _WIN32
-#include <unistd.h>
-#else
 #ifndef YY_ALWAYS_INTERACTIVE
 #ifndef YY_NEVER_INTERACTIVE
 extern int isatty YY_PROTO(( int ));
 #endif
 #endif
-#endif
 
 #ifdef YY_USE_PROTOS
 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
@@ -2900,7 +2906,7 @@ int main()
        return 0;
        }
 #endif
-#line 659 "scan-gram.l"
+#line 666 "scan-gram.l"
 
 
 /*------------------------------------------------------------------.