OSDN Git Service

* alpha.md (addsi3, subsi3): No new temporaries once cse is
[pf3gnuchains/gcc-fork.git] / gcc / c-parse.c
index 8cfed9e..c20d2a0 100644 (file)
@@ -68,9 +68,7 @@
 #line 56 "c-parse.y"
 
 #include "config.h"
-
-#include <stdio.h>
-#include <errno.h>
+#include "system.h"
 #include <setjmp.h>
 
 #include "tree.h"
 #include "c-lex.h"
 #include "c-tree.h"
 #include "flags.h"
+#include "output.h"
+#include "toplev.h"
 
 #ifdef MULTIBYTE_CHARS
-#include <stdlib.h>
 #include <locale.h>
 #endif
 
    definition here.  */
 char *language_string = "GNU C";
 
-#ifndef errno
-extern int errno;
-#endif
-
-void yyerror ();
-
 /* Like YYERROR but do call yyerror.  */
 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
 
 /* Cause the `yydebug' variable to be defined.  */
 #define YYDEBUG 1
 
-#line 94 "c-parse.y"
+#line 87 "c-parse.y"
 typedef union {long itype; tree ttype; enum tree_code code;
        char *filename; int lineno; int ends_in_label; } YYSTYPE;
-#line 210 "c-parse.y"
+#line 204 "c-parse.y"
 
 /* Number of statements (loosely speaking) and compound statements 
    seen so far.  */
@@ -130,7 +123,7 @@ static int undeclared_variable_notice;
 /* Tell yyparse how to print a token's value, if yydebug is set.  */
 
 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
-extern void yyprint ();
+extern void yyprint                    PROTO ((FILE *, int, YYSTYPE));
 #include <stdio.h>
 
 #ifndef __cplusplus
@@ -141,11 +134,11 @@ extern void yyprint ();
 
 
 
-#define        YYFINAL         682
+#define        YYFINAL         688
 #define        YYFLAG          -32768
 #define        YYNTBASE        84
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 239)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 242)
 
 static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -207,44 +200,45 @@ static const short yyprhs[] = {     0,
    612,   619,   620,   626,   627,   632,   633,   639,   640,   641,
    647,   648,   649,   655,   657,   659,   663,   667,   672,   676,
    680,   684,   686,   690,   695,   699,   703,   707,   709,   713,
-   717,   721,   726,   730,   734,   736,   737,   745,   751,   754,
-   755,   763,   769,   772,   773,   782,   783,   791,   794,   795,
-   797,   798,   800,   802,   805,   806,   810,   813,   817,   819,
-   823,   825,   827,   830,   832,   836,   841,   848,   854,   856,
-   860,   862,   864,   868,   871,   874,   875,   877,   879,   882,
-   883,   886,   890,   894,   897,   901,   906,   910,   913,   917,
-   920,   922,   924,   927,   930,   931,   933,   936,   937,   938,
-   940,   942,   945,   949,   951,   954,   956,   959,   966,   972,
-   978,   981,   984,   989,   990,   995,   996,   997,  1001,  1006,
-  1010,  1012,  1014,  1016,  1018,  1021,  1022,  1027,  1029,  1033,
-  1034,  1035,  1043,  1049,  1052,  1053,  1054,  1055,  1068,  1069,
-  1076,  1079,  1082,  1085,  1089,  1096,  1105,  1116,  1129,  1133,
-  1138,  1140,  1142,  1143,  1150,  1154,  1160,  1163,  1166,  1167,
-  1169,  1170,  1172,  1173,  1175,  1177,  1181,  1186,  1188,  1192,
-  1193,  1196,  1199,  1200,  1205,  1208,  1209,  1211,  1213,  1217,
-  1219,  1223,  1228,  1233,  1238,  1243,  1248,  1249,  1252,  1254,
-  1257,  1259,  1263,  1265,  1269
+   717,   721,   726,   730,   734,   736,   738,   741,   743,   746,
+   748,   751,   752,   760,   766,   769,   770,   778,   784,   787,
+   788,   797,   798,   806,   809,   810,   812,   813,   815,   817,
+   820,   821,   825,   828,   832,   834,   838,   840,   842,   845,
+   847,   851,   856,   863,   869,   871,   875,   877,   879,   883,
+   886,   889,   890,   892,   894,   897,   898,   901,   905,   909,
+   912,   916,   921,   925,   928,   932,   935,   937,   939,   942,
+   945,   946,   948,   951,   952,   953,   955,   957,   960,   964,
+   966,   969,   971,   974,   981,   987,   993,   996,   999,  1004,
+  1005,  1010,  1011,  1012,  1016,  1021,  1025,  1027,  1029,  1031,
+  1033,  1036,  1037,  1042,  1044,  1048,  1049,  1050,  1058,  1064,
+  1067,  1068,  1069,  1070,  1083,  1084,  1091,  1094,  1097,  1100,
+  1104,  1111,  1120,  1131,  1144,  1148,  1153,  1155,  1157,  1158,
+  1165,  1169,  1175,  1178,  1181,  1182,  1184,  1185,  1187,  1188,
+  1190,  1192,  1196,  1201,  1203,  1207,  1208,  1211,  1214,  1215,
+  1220,  1223,  1224,  1226,  1228,  1232,  1234,  1238,  1243,  1248,
+  1253,  1258,  1263,  1264,  1267,  1269,  1272,  1274,  1278,  1280,
+  1284
 };
 
 static const short yyrhs[] = {    -1,
     85,     0,     0,    86,    88,     0,     0,    85,    87,    88,
      0,    90,     0,    89,     0,    27,    59,    99,    76,    77,
-     0,   238,    88,     0,   122,   136,    77,     0,   129,   122,
+     0,   241,    88,     0,   122,   136,    77,     0,   129,   122,
    136,    77,     0,   125,   122,   135,    77,     0,   129,    77,
      0,   125,    77,     0,     1,    77,     0,     1,    78,     0,
     77,     0,     0,     0,   125,   122,   165,    91,   116,    92,
-   196,     0,   125,   122,   165,     1,     0,     0,     0,   129,
-   122,   168,    93,   116,    94,   196,     0,   129,   122,   168,
-     1,     0,     0,     0,   122,   168,    95,   116,    96,   196,
+   199,     0,   125,   122,   165,     1,     0,     0,     0,   129,
+   122,   168,    93,   116,    94,   199,     0,   129,   122,   168,
+     1,     0,     0,     0,   122,   168,    95,   116,    96,   199,
      0,   122,   168,     1,     0,     3,     0,     4,     0,    43,
      0,    49,     0,    48,     0,    54,     0,    55,     0,    79,
      0,    80,     0,   101,     0,     0,   101,     0,   107,     0,
-   101,    81,   107,     0,   113,     0,    50,   105,     0,   238,
+   101,    81,   107,     0,   113,     0,    50,   105,     0,   241,
    105,     0,    98,   105,     0,    40,    97,     0,   103,   102,
-     0,   103,    59,   183,    76,     0,   104,   102,     0,   104,
-    59,   183,    76,     0,    33,   105,     0,    34,   105,     0,
-    11,     0,    29,     0,   102,     0,    59,   183,    76,   105,
-     0,     0,    59,   183,    76,    82,   106,   150,    78,     0,
+     0,   103,    59,   186,    76,     0,   104,   102,     0,   104,
+    59,   186,    76,     0,    33,   105,     0,    34,   105,     0,
+    11,     0,    29,     0,   102,     0,    59,   186,    76,   105,
+     0,     0,    59,   186,    76,    82,   106,   150,    78,     0,
    105,     0,   107,    48,   107,     0,   107,    49,   107,     0,
    107,    50,   107,     0,   107,    51,   107,     0,   107,    52,
    107,     0,   107,    46,   107,     0,   107,    47,   107,     0,
@@ -255,26 +249,26 @@ static const short yyrhs[] = {    -1,
    107,     0,     0,   107,    37,   112,    38,   107,     0,   107,
     36,   107,     0,   107,    35,   107,     0,     3,     0,     8,
      0,   115,     0,    59,    99,    76,     0,    59,     1,    76,
-     0,     0,    59,   114,   198,    76,     0,   113,    59,   100,
+     0,     0,    59,   114,   201,    76,     0,   113,    59,   100,
     76,     0,   113,    60,    99,    83,     0,   113,    58,    97,
      0,   113,    57,    97,     0,   113,    54,     0,   113,    55,
      0,     9,     0,   115,     9,     0,     0,   118,     0,   118,
-    10,     0,   203,   204,   119,     0,   117,     0,   191,     0,
-   118,   117,     0,   117,   191,     0,   127,   122,   135,    77,
+    10,     0,   206,   207,   119,     0,   117,     0,   194,     0,
+   118,   117,     0,   117,   194,     0,   127,   122,   135,    77,
      0,   130,   122,   136,    77,     0,   127,    77,     0,   130,
-    77,     0,   203,   204,   124,     0,   120,     0,   191,     0,
-   121,   120,     0,   120,   191,     0,     0,     0,   125,   122,
+    77,     0,   206,   207,   124,     0,   120,     0,   194,     0,
+   121,   120,     0,   120,   194,     0,     0,     0,   125,   122,
    135,    77,     0,   129,   122,   136,    77,     0,   125,   122,
    159,     0,   129,   122,   162,     0,   125,    77,     0,   129,
-    77,     0,   238,   124,     0,   133,   126,     0,   129,   133,
+    77,     0,   241,   124,     0,   133,   126,     0,   129,   133,
    126,     0,     0,   126,   134,     0,   126,     5,     0,   126,
    143,     0,   133,   128,     0,   130,   133,   128,     0,     0,
    128,   134,     0,   128,     5,     0,   130,     0,   143,     0,
    129,   130,     0,   129,   143,     0,     7,     0,     5,     0,
-   130,     7,     0,   130,     5,     0,   133,   132,     0,   185,
-   133,   132,     0,     0,   132,   134,     0,     6,     0,   169,
+   130,     7,     0,   130,     5,     0,   133,   132,     0,   188,
+   133,   132,     0,     0,   132,   134,     0,     6,     0,   172,
      0,     4,     0,    28,    59,    99,    76,     0,    28,    59,
-   183,    76,     0,     6,     0,     7,     0,   169,     0,   138,
+   186,    76,     0,     6,     0,     7,     0,   172,     0,   138,
      0,   135,    81,   138,     0,   140,     0,   136,    81,   138,
      0,     0,    27,    59,   115,    76,     0,     0,   165,   137,
    142,    36,   139,   148,     0,   165,   137,   142,     0,     0,
@@ -285,121 +279,124 @@ static const short yyrhs[] = {    -1,
    147,    59,     3,    81,   101,    76,     0,   147,    59,   100,
     76,     0,    97,     0,     5,     0,     6,     0,     7,     0,
    107,     0,     0,    82,   149,   150,    78,     0,     1,     0,
-     0,   151,   174,     0,   152,     0,   151,    81,   152,     0,
+     0,   151,   177,     0,   152,     0,   151,    81,   152,     0,
    107,     0,     0,    82,   153,   150,    78,     0,     1,     0,
      0,    60,   107,    10,   107,    83,    36,   154,   152,     0,
      0,    60,   107,    83,    36,   155,   152,     0,     0,    60,
    107,    83,   156,   152,     0,     0,    97,    38,   157,   152,
      0,     0,    58,    97,    36,   158,   152,     0,     0,     0,
-   165,   160,   116,   161,   198,     0,     0,     0,   168,   163,
-   116,   164,   198,     0,   166,     0,   168,     0,    59,   166,
-    76,     0,   166,    59,   233,     0,   166,    60,    99,    83,
-     0,   166,    60,    83,     0,    50,   186,   166,     0,   143,
-   123,   166,     0,     4,     0,   167,    59,   233,     0,   167,
-    60,    99,    83,     0,   167,    60,    83,     0,    50,   186,
+   165,   160,   116,   161,   201,     0,     0,     0,   168,   163,
+   116,   164,   201,     0,   166,     0,   168,     0,    59,   166,
+    76,     0,   166,    59,   236,     0,   166,    60,    99,    83,
+     0,   166,    60,    83,     0,    50,   189,   166,     0,   143,
+   123,   166,     0,     4,     0,   167,    59,   236,     0,   167,
+    60,    99,    83,     0,   167,    60,    83,     0,    50,   189,
    167,     0,   143,   123,   167,     0,     4,     0,   168,    59,
-   233,     0,    59,   168,    76,     0,    50,   186,   168,     0,
+   236,     0,    59,   168,    76,     0,    50,   189,   168,     0,
    168,    60,    99,    83,     0,   168,    60,    83,     0,   143,
-   123,   168,     0,     3,     0,     0,    13,    97,    82,   170,
-   176,    78,   142,     0,    13,    82,   176,    78,   142,     0,
-    13,    97,     0,     0,    14,    97,    82,   171,   176,    78,
-   142,     0,    14,    82,   176,    78,   142,     0,    14,    97,
-     0,     0,    12,    97,    82,   172,   181,   175,    78,   142,
-     0,     0,    12,    82,   173,   181,   175,    78,   142,     0,
-    12,    97,     0,     0,    81,     0,     0,    81,     0,   177,
-     0,   177,   178,     0,     0,   177,   178,    77,     0,   177,
-    77,     0,   131,   122,   179,     0,   131,     0,   185,   122,
-   179,     0,   185,     0,     1,     0,   238,   178,     0,   180,
-     0,   179,    81,   180,     0,   203,   204,   165,   142,     0,
-   203,   204,   165,    38,   107,   142,     0,   203,   204,    38,
-   107,   142,     0,   182,     0,   181,    81,   182,     0,     1,
-     0,    97,     0,    97,    36,   107,     0,   131,   184,     0,
-   185,   184,     0,     0,   187,     0,     7,     0,   185,     7,
-     0,     0,   186,     7,     0,    59,   187,    76,     0,    50,
-   186,   187,     0,    50,   186,     0,   187,    59,   226,     0,
-   187,    60,    99,    83,     0,   187,    60,    83,     0,    59,
-   226,     0,    60,    99,    83,     0,    60,    83,     0,   189,
-     0,   206,     0,   189,   206,     0,   189,   191,     0,     0,
-   188,     0,     1,    77,     0,     0,     0,   194,     0,   195,
-     0,   194,   195,     0,    32,   237,    77,     0,   198,     0,
-     1,   198,     0,    82,     0,   197,    78,     0,   197,   192,
-   193,   121,   190,    78,     0,   197,   192,   193,     1,    78,
-     0,   197,   192,   193,   188,    78,     0,   200,   205,     0,
-   200,     1,     0,    15,    59,    99,    76,     0,     0,    18,
-   202,   205,    17,     0,     0,     0,   203,   204,   208,     0,
-   203,   204,   219,   205,     0,   203,   204,   207,     0,   208,
-     0,   219,     0,   198,     0,   216,     0,    99,    77,     0,
-     0,   199,    16,   209,   205,     0,   199,     0,   199,    16,
-     1,     0,     0,     0,    17,   210,    59,    99,    76,   211,
-   205,     0,   201,    59,    99,    76,    77,     0,   201,     1,
-     0,     0,     0,     0,    19,    59,   221,    77,   212,   221,
-    77,   213,   221,    76,   214,   205,     0,     0,    20,    59,
-    99,    76,   215,   205,     0,    23,    77,     0,    24,    77,
-     0,    25,    77,     0,    25,    99,    77,     0,    27,   220,
-    59,    99,    76,    77,     0,    27,   220,    59,    99,    38,
-   222,    76,    77,     0,    27,   220,    59,    99,    38,   222,
-    38,   222,    76,    77,     0,    27,   220,    59,    99,    38,
-   222,    38,   222,    38,   225,    76,    77,     0,    26,    97,
-    77,     0,    26,    50,    99,    77,     0,    77,     0,   217,
-     0,     0,    19,    59,   113,    76,   218,   205,     0,    21,
-   107,    38,     0,    21,   107,    10,   107,    38,     0,    22,
-    38,     0,    97,    38,     0,     0,     7,     0,     0,    99,
-     0,     0,   223,     0,   224,     0,   223,    81,   224,     0,
-     9,    59,    99,    76,     0,   115,     0,   225,    81,   115,
-     0,     0,   227,   228,     0,   230,    76,     0,     0,   231,
-    77,   229,   228,     0,     1,    76,     0,     0,    10,     0,
-   231,     0,   231,    81,    10,     0,   232,     0,   231,    81,
-   232,     0,   125,   122,   167,   142,     0,   125,   122,   168,
-   142,     0,   125,   122,   184,   142,     0,   129,   122,   168,
-   142,     0,   129,   122,   184,   142,     0,     0,   234,   235,
-     0,   228,     0,   236,    76,     0,     3,     0,   236,    81,
-     3,     0,    97,     0,   237,    81,    97,     0,    31,     0
+   123,   168,     0,     3,     0,    13,     0,    13,   143,     0,
+    14,     0,    14,   143,     0,    12,     0,    12,   143,     0,
+     0,   169,    97,    82,   173,   179,    78,   142,     0,   169,
+    82,   179,    78,   142,     0,   169,    97,     0,     0,   170,
+    97,    82,   174,   179,    78,   142,     0,   170,    82,   179,
+    78,   142,     0,   170,    97,     0,     0,   171,    97,    82,
+   175,   184,   178,    78,   142,     0,     0,   171,    82,   176,
+   184,   178,    78,   142,     0,   171,    97,     0,     0,    81,
+     0,     0,    81,     0,   180,     0,   180,   181,     0,     0,
+   180,   181,    77,     0,   180,    77,     0,   131,   122,   182,
+     0,   131,     0,   188,   122,   182,     0,   188,     0,     1,
+     0,   241,   181,     0,   183,     0,   182,    81,   183,     0,
+   206,   207,   165,   142,     0,   206,   207,   165,    38,   107,
+   142,     0,   206,   207,    38,   107,   142,     0,   185,     0,
+   184,    81,   185,     0,     1,     0,    97,     0,    97,    36,
+   107,     0,   131,   187,     0,   188,   187,     0,     0,   190,
+     0,     7,     0,   188,     7,     0,     0,   189,     7,     0,
+    59,   190,    76,     0,    50,   189,   190,     0,    50,   189,
+     0,   190,    59,   229,     0,   190,    60,    99,    83,     0,
+   190,    60,    83,     0,    59,   229,     0,    60,    99,    83,
+     0,    60,    83,     0,   192,     0,   209,     0,   192,   209,
+     0,   192,   194,     0,     0,   191,     0,     1,    77,     0,
+     0,     0,   197,     0,   198,     0,   197,   198,     0,    32,
+   240,    77,     0,   201,     0,     1,   201,     0,    82,     0,
+   200,    78,     0,   200,   195,   196,   121,   193,    78,     0,
+   200,   195,   196,     1,    78,     0,   200,   195,   196,   191,
+    78,     0,   203,   208,     0,   203,     1,     0,    15,    59,
+    99,    76,     0,     0,    18,   205,   208,    17,     0,     0,
+     0,   206,   207,   211,     0,   206,   207,   222,   208,     0,
+   206,   207,   210,     0,   211,     0,   222,     0,   201,     0,
+   219,     0,    99,    77,     0,     0,   202,    16,   212,   208,
+     0,   202,     0,   202,    16,     1,     0,     0,     0,    17,
+   213,    59,    99,    76,   214,   208,     0,   204,    59,    99,
+    76,    77,     0,   204,     1,     0,     0,     0,     0,    19,
+    59,   224,    77,   215,   224,    77,   216,   224,    76,   217,
+   208,     0,     0,    20,    59,    99,    76,   218,   208,     0,
+    23,    77,     0,    24,    77,     0,    25,    77,     0,    25,
+    99,    77,     0,    27,   223,    59,    99,    76,    77,     0,
+    27,   223,    59,    99,    38,   225,    76,    77,     0,    27,
+   223,    59,    99,    38,   225,    38,   225,    76,    77,     0,
+    27,   223,    59,    99,    38,   225,    38,   225,    38,   228,
+    76,    77,     0,    26,    97,    77,     0,    26,    50,    99,
+    77,     0,    77,     0,   220,     0,     0,    19,    59,   113,
+    76,   221,   208,     0,    21,   107,    38,     0,    21,   107,
+    10,   107,    38,     0,    22,    38,     0,    97,    38,     0,
+     0,     7,     0,     0,    99,     0,     0,   226,     0,   227,
+     0,   226,    81,   227,     0,     9,    59,    99,    76,     0,
+   115,     0,   228,    81,   115,     0,     0,   230,   231,     0,
+   233,    76,     0,     0,   234,    77,   232,   231,     0,     1,
+    76,     0,     0,    10,     0,   234,     0,   234,    81,    10,
+     0,   235,     0,   234,    81,   235,     0,   125,   122,   167,
+   142,     0,   125,   122,   168,   142,     0,   125,   122,   187,
+   142,     0,   129,   122,   168,   142,     0,   129,   122,   187,
+   142,     0,     0,   237,   238,     0,   231,     0,   239,    76,
+     0,     3,     0,   239,    81,     3,     0,    97,     0,   240,
+    81,    97,     0,    31,     0
 };
 
 #endif
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   239,   244,   258,   260,   260,   261,   263,   265,   266,   274,
-   278,   289,   294,   299,   301,   303,   304,   305,   310,   317,
-   319,   324,   329,   335,   337,   342,   347,   353,   355,   360,
-   367,   369,   372,   374,   376,   378,   380,   382,   384,   388,
-   392,   395,   398,   401,   405,   407,   410,   413,   417,   445,
-   451,   454,   457,   460,   462,   466,   470,   474,   476,   479,
-   483,   510,   512,   514,   516,   518,   520,   522,   524,   526,
-   528,   530,   532,   534,   536,   540,   542,   546,   548,   551,
-   555,   557,   564,   567,   570,   576,   675,   676,   678,   684,
-   686,   700,   723,   725,   727,   731,   737,   739,   744,   746,
-   751,   753,   754,   764,   769,   771,   772,   773,   780,   786,
-   791,   794,   802,   807,   809,   810,   811,   818,   829,   833,
-   839,   844,   849,   854,   856,   858,   867,   870,   874,   876,
-   878,   883,   887,   890,   894,   897,   899,   911,   914,   916,
-   918,   922,   926,   928,   931,   944,   947,   951,   953,   961,
-   962,   963,   967,   969,   975,   976,   977,   980,   982,   985,
-   987,   990,   993,   999,  1006,  1008,  1015,  1022,  1025,  1032,
-  1035,  1039,  1042,  1046,  1051,  1054,  1058,  1061,  1063,  1065,
-  1067,  1074,  1076,  1077,  1078,  1083,  1085,  1090,  1098,  1103,
-  1107,  1110,  1112,  1117,  1120,  1122,  1124,  1128,  1131,  1131,
-  1134,  1134,  1137,  1137,  1140,  1140,  1143,  1145,  1156,  1164,
-  1168,  1179,  1187,  1194,  1196,  1201,  1204,  1209,  1211,  1213,
-  1220,  1222,  1230,  1236,  1238,  1240,  1247,  1249,  1255,  1261,
-  1263,  1265,  1267,  1274,  1276,  1279,  1284,  1286,  1290,  1292,
-  1294,  1296,  1300,  1302,  1305,  1308,  1311,  1314,  1318,  1320,
-  1323,  1325,  1329,  1332,  1337,  1339,  1341,  1355,  1362,  1367,
-  1373,  1378,  1380,  1385,  1387,  1391,  1395,  1399,  1409,  1411,
-  1416,  1421,  1424,  1428,  1431,  1435,  1438,  1441,  1444,  1448,
-  1451,  1455,  1459,  1461,  1463,  1465,  1467,  1469,  1471,  1473,
-  1483,  1491,  1493,  1495,  1499,  1501,  1504,  1507,  1518,  1520,
-  1525,  1527,  1530,  1544,  1547,  1550,  1552,  1554,  1562,  1570,
-  1581,  1586,  1589,  1603,  1612,  1616,  1620,  1624,  1630,  1634,
-  1639,  1642,  1647,  1650,  1651,  1668,  1673,  1676,  1688,  1690,
-  1700,  1710,  1711,  1719,  1722,  1734,  1738,  1755,  1765,  1774,
-  1779,  1784,  1789,  1793,  1797,  1808,  1815,  1822,  1829,  1840,
-  1846,  1849,  1854,  1877,  1911,  1936,  1967,  1982,  1993,  1997,
-  2001,  2004,  2009,  2011,  2014,  2016,  2020,  2025,  2028,  2034,
-  2039,  2044,  2046,  2055,  2056,  2062,  2064,  2074,  2076,  2080,
-  2083,  2089,  2099,  2108,  2117,  2127,  2141,  2146,  2151,  2153,
-  2162,  2165,  2170,  2173,  2177
+   233,   238,   252,   254,   254,   255,   257,   259,   260,   268,
+   272,   283,   288,   293,   295,   297,   298,   299,   304,   311,
+   313,   318,   323,   329,   331,   336,   341,   347,   349,   354,
+   361,   363,   366,   368,   370,   372,   374,   376,   378,   382,
+   386,   389,   392,   395,   399,   401,   404,   407,   411,   439,
+   445,   448,   451,   454,   456,   460,   464,   468,   470,   473,
+   477,   504,   506,   508,   510,   512,   514,   516,   518,   520,
+   522,   524,   526,   528,   530,   534,   536,   540,   542,   545,
+   549,   551,   558,   561,   564,   570,   669,   670,   672,   678,
+   680,   694,   717,   719,   721,   725,   731,   733,   738,   740,
+   745,   747,   748,   758,   763,   765,   766,   767,   774,   780,
+   785,   788,   796,   801,   803,   804,   805,   812,   823,   827,
+   833,   838,   843,   848,   850,   852,   861,   864,   868,   870,
+   872,   877,   881,   884,   888,   891,   893,   905,   908,   910,
+   912,   916,   920,   922,   925,   938,   941,   945,   947,   955,
+   956,   957,   961,   963,   969,   970,   971,   974,   976,   979,
+   981,   984,   987,   993,  1000,  1002,  1009,  1016,  1019,  1026,
+  1029,  1033,  1036,  1040,  1045,  1048,  1052,  1055,  1057,  1059,
+  1061,  1068,  1070,  1071,  1072,  1077,  1079,  1084,  1092,  1097,
+  1101,  1104,  1106,  1111,  1114,  1116,  1118,  1122,  1125,  1125,
+  1128,  1128,  1131,  1131,  1134,  1134,  1137,  1139,  1150,  1158,
+  1162,  1173,  1181,  1188,  1190,  1195,  1198,  1203,  1205,  1207,
+  1214,  1216,  1224,  1230,  1232,  1234,  1241,  1243,  1249,  1255,
+  1257,  1259,  1261,  1268,  1270,  1273,  1276,  1280,  1283,  1287,
+  1290,  1294,  1299,  1301,  1305,  1307,  1309,  1311,  1315,  1317,
+  1320,  1323,  1326,  1329,  1333,  1335,  1338,  1340,  1344,  1347,
+  1352,  1354,  1356,  1370,  1377,  1382,  1388,  1393,  1395,  1400,
+  1402,  1406,  1410,  1414,  1424,  1426,  1431,  1436,  1439,  1443,
+  1446,  1450,  1453,  1456,  1459,  1463,  1466,  1470,  1474,  1476,
+  1478,  1480,  1482,  1484,  1486,  1488,  1498,  1506,  1508,  1510,
+  1514,  1516,  1519,  1522,  1533,  1535,  1540,  1542,  1545,  1559,
+  1562,  1565,  1567,  1569,  1577,  1585,  1596,  1601,  1604,  1618,
+  1627,  1631,  1635,  1639,  1645,  1649,  1654,  1657,  1662,  1665,
+  1666,  1683,  1688,  1691,  1703,  1705,  1715,  1725,  1726,  1734,
+  1737,  1749,  1753,  1770,  1780,  1789,  1794,  1799,  1804,  1808,
+  1812,  1823,  1830,  1837,  1844,  1855,  1861,  1864,  1869,  1892,
+  1926,  1957,  1988,  2003,  2014,  2018,  2022,  2025,  2030,  2032,
+  2035,  2037,  2041,  2046,  2049,  2055,  2060,  2065,  2067,  2076,
+  2077,  2083,  2085,  2095,  2097,  2101,  2104,  2110,  2120,  2129,
+  2138,  2148,  2162,  2167,  2172,  2174,  2183,  2186,  2191,  2194,
+  2198
 };
 #endif
 
@@ -428,17 +425,18 @@ static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER"
 "attrib","any_word","init","@18","initlist_maybe_comma","initlist1","initelt",
 "@19","@20","@21","@22","@23","@24","nested_function","@25","@26","notype_nested_function",
 "@27","@28","declarator","after_type_declarator","parm_declarator","notype_declarator",
-"structsp","@29","@30","@31","@32","maybecomma","maybecomma_warn","component_decl_list",
-"component_decl_list2","component_decl","components","component_declarator",
-"enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
-"absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
-"label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
-"if_prefix","do_stmt_start","@33","save_filename","save_lineno","lineno_labeled_stmt",
-"lineno_stmt_or_label","stmt_or_label","stmt","@34","@35","@36","@37","@38",
-"@39","@40","all_iter_stmt","all_iter_stmt_simple","@41","label","maybe_type_qual",
-"xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
-"@42","parmlist_1","@43","parmlist_2","parms","parm","parmlist_or_identifiers",
-"@44","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension", NULL
+"struct_head","union_head","enum_head","structsp","@29","@30","@31","@32","maybecomma",
+"maybecomma_warn","component_decl_list","component_decl_list2","component_decl",
+"components","component_declarator","enumlist","enumerator","typename","absdcl",
+"nonempty_type_quals","type_quals","absdcl1","stmts","lineno_stmt_or_labels",
+"xstmts","errstmt","pushlevel","maybe_label_decls","label_decls","label_decl",
+"compstmt_or_error","compstmt_start","compstmt","simple_if","if_prefix","do_stmt_start",
+"@33","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
+"stmt_or_label","stmt","@34","@35","@36","@37","@38","@39","@40","all_iter_stmt",
+"all_iter_stmt_simple","@41","label","maybe_type_qual","xexpr","asm_operands",
+"nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@42","parmlist_1",
+"@43","parmlist_2","parms","parm","parmlist_or_identifiers","@44","parmlist_or_identifiers_1",
+"identifiers","identifiers_or_typenames","extension", NULL
 };
 #endif
 
@@ -466,23 +464,24 @@ static const short yyr1[] = {     0,
    152,   156,   152,   157,   152,   158,   152,   160,   161,   159,
    163,   164,   162,   165,   165,   166,   166,   166,   166,   166,
    166,   166,   167,   167,   167,   167,   167,   167,   168,   168,
-   168,   168,   168,   168,   168,   170,   169,   169,   169,   171,
-   169,   169,   169,   172,   169,   173,   169,   169,   174,   174,
-   175,   175,   176,   176,   177,   177,   177,   178,   178,   178,
-   178,   178,   178,   179,   179,   180,   180,   180,   181,   181,
-   181,   182,   182,   183,   183,   184,   184,   185,   185,   186,
-   186,   187,   187,   187,   187,   187,   187,   187,   187,   187,
-   188,   189,   189,   189,   190,   190,   191,   192,   193,   193,
-   194,   194,   195,   196,   196,   197,   198,   198,   198,   198,
-   199,   199,   200,   202,   201,   203,   204,   205,   205,   206,
-   207,   207,   208,   208,   208,   209,   208,   208,   208,   210,
-   211,   208,   208,   208,   212,   213,   214,   208,   215,   208,
-   208,   208,   208,   208,   208,   208,   208,   208,   208,   208,
-   208,   216,   218,   217,   219,   219,   219,   219,   220,   220,
-   221,   221,   222,   222,   223,   223,   224,   225,   225,   227,
-   226,   228,   229,   228,   228,   230,   230,   230,   230,   231,
-   231,   232,   232,   232,   232,   232,   234,   233,   235,   235,
-   236,   236,   237,   237,   238
+   168,   168,   168,   168,   168,   169,   169,   170,   170,   171,
+   171,   173,   172,   172,   172,   174,   172,   172,   172,   175,
+   172,   176,   172,   172,   177,   177,   178,   178,   179,   179,
+   180,   180,   180,   181,   181,   181,   181,   181,   181,   182,
+   182,   183,   183,   183,   184,   184,   184,   185,   185,   186,
+   186,   187,   187,   188,   188,   189,   189,   190,   190,   190,
+   190,   190,   190,   190,   190,   190,   191,   192,   192,   192,
+   193,   193,   194,   195,   196,   196,   197,   197,   198,   199,
+   199,   200,   201,   201,   201,   201,   202,   202,   203,   205,
+   204,   206,   207,   208,   208,   209,   210,   210,   211,   211,
+   211,   212,   211,   211,   211,   213,   214,   211,   211,   211,
+   215,   216,   217,   211,   218,   211,   211,   211,   211,   211,
+   211,   211,   211,   211,   211,   211,   211,   219,   221,   220,
+   222,   222,   222,   222,   223,   223,   224,   224,   225,   225,
+   226,   226,   227,   228,   228,   230,   229,   231,   232,   231,
+   231,   233,   233,   233,   233,   234,   234,   235,   235,   235,
+   235,   235,   237,   236,   238,   238,   239,   239,   240,   240,
+   241
 };
 
 static const short yyr2[] = {     0,
@@ -509,561 +508,547 @@ static const short yyr2[] = {     0,
      6,     0,     5,     0,     4,     0,     5,     0,     0,     5,
      0,     0,     5,     1,     1,     3,     3,     4,     3,     3,
      3,     1,     3,     4,     3,     3,     3,     1,     3,     3,
-     3,     4,     3,     3,     1,     0,     7,     5,     2,     0,
-     7,     5,     2,     0,     8,     0,     7,     2,     0,     1,
-     0,     1,     1,     2,     0,     3,     2,     3,     1,     3,
-     1,     1,     2,     1,     3,     4,     6,     5,     1,     3,
-     1,     1,     3,     2,     2,     0,     1,     1,     2,     0,
-     2,     3,     3,     2,     3,     4,     3,     2,     3,     2,
-     1,     1,     2,     2,     0,     1,     2,     0,     0,     1,
-     1,     2,     3,     1,     2,     1,     2,     6,     5,     5,
-     2,     2,     4,     0,     4,     0,     0,     3,     4,     3,
-     1,     1,     1,     1,     2,     0,     4,     1,     3,     0,
-     0,     7,     5,     2,     0,     0,     0,    12,     0,     6,
-     2,     2,     2,     3,     6,     8,    10,    12,     3,     4,
-     1,     1,     0,     6,     3,     5,     2,     2,     0,     1,
-     0,     1,     0,     1,     1,     3,     4,     1,     3,     0,
-     2,     2,     0,     4,     2,     0,     1,     1,     3,     1,
-     3,     4,     4,     4,     4,     4,     0,     2,     1,     2,
-     1,     3,     1,     3,     1
+     3,     4,     3,     3,     1,     1,     2,     1,     2,     1,
+     2,     0,     7,     5,     2,     0,     7,     5,     2,     0,
+     8,     0,     7,     2,     0,     1,     0,     1,     1,     2,
+     0,     3,     2,     3,     1,     3,     1,     1,     2,     1,
+     3,     4,     6,     5,     1,     3,     1,     1,     3,     2,
+     2,     0,     1,     1,     2,     0,     2,     3,     3,     2,
+     3,     4,     3,     2,     3,     2,     1,     1,     2,     2,
+     0,     1,     2,     0,     0,     1,     1,     2,     3,     1,
+     2,     1,     2,     6,     5,     5,     2,     2,     4,     0,
+     4,     0,     0,     3,     4,     3,     1,     1,     1,     1,
+     2,     0,     4,     1,     3,     0,     0,     7,     5,     2,
+     0,     0,     0,    12,     0,     6,     2,     2,     2,     3,
+     6,     8,    10,    12,     3,     4,     1,     1,     0,     6,
+     3,     5,     2,     2,     0,     1,     0,     1,     0,     1,
+     1,     3,     4,     1,     3,     0,     2,     2,     0,     4,
+     2,     0,     1,     1,     3,     1,     3,     4,     4,     4,
+     4,     4,     0,     2,     1,     2,     1,     3,     1,     3,
+     1
 };
 
 static const short yydefact[] = {     3,
-     5,     0,     0,     0,   152,   143,   150,   142,     0,     0,
-     0,     0,     0,     0,   395,    18,     4,     8,     7,     0,
-   118,   118,   138,   129,   139,   172,   151,     0,     6,    16,
-    17,    31,    32,   246,   248,   255,   239,   255,   243,     0,
-     0,     0,   235,   280,     0,     0,   160,   119,     0,    15,
-     0,    14,     0,   140,   129,   141,   145,   144,   127,   173,
-    10,     0,   244,     0,     0,   236,     0,   240,    86,    87,
-    99,    56,    57,     0,     0,     0,    33,    35,    34,     0,
-    36,    37,     0,    38,    39,     0,     0,    40,    58,     0,
-     0,    62,    43,    45,    88,     0,   278,     0,   276,   148,
-     0,   276,   177,     0,     0,    11,     0,     0,    30,     0,
-   387,     0,     0,   170,   222,   280,     0,     0,   158,   119,
-     0,   214,   215,     0,     0,   128,   131,   155,   156,   130,
-   132,   157,   271,   272,   251,   269,     0,   170,   262,   257,
-   118,   254,   118,     0,   255,   170,   255,    54,    55,    49,
-    46,     0,     0,     0,     0,    48,     0,     0,     0,    50,
-     0,    52,     0,     0,    79,    77,    75,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,    97,
-    98,     0,     0,    41,     0,   100,    47,   153,   280,   370,
-     0,   274,   277,   146,   154,   279,   148,   275,   183,   184,
-   185,   182,     0,   175,   178,   281,   231,   230,   161,   162,
-   234,     0,   229,     0,   233,     0,     0,    28,     0,   316,
-   106,   317,   169,   171,     0,     0,    13,     0,     0,    22,
-     0,   170,   387,     0,    12,    26,     0,     0,   252,     0,
-   251,   238,   316,   256,   316,   263,     0,   242,     0,    90,
-    89,   306,   298,     0,     0,     9,    44,     0,     0,    85,
-    84,     0,     0,     0,     0,    73,    74,    72,    71,    70,
-    68,    69,    63,    64,    65,    66,    67,    96,    95,     0,
-    42,     0,   284,     0,   288,     0,   290,     0,   370,     0,
-   149,   147,     0,   177,    41,     0,     0,   391,   377,   118,
-   118,   389,     0,   378,   380,   388,     0,   232,   297,     0,
-   108,   103,   107,     0,   167,   220,   216,   159,   221,    20,
-   166,   217,   219,     0,    24,   273,   270,   170,     0,   258,
-   264,   317,   260,   170,   170,   307,   299,    92,    60,    59,
-    51,    53,     0,     0,    78,    76,    93,    94,   283,   282,
-   371,   289,   285,   287,     0,   174,   176,    86,     0,   163,
-   375,   276,   276,   372,   373,     0,   390,     0,     0,    29,
-   304,   104,   118,   118,   135,     0,     0,   164,   218,     0,
-   247,   170,   316,     0,   237,   241,     0,     0,   300,   301,
-     0,    80,    83,   286,   179,     0,   181,   228,   280,   370,
-   119,   170,   170,   170,   280,   170,   170,     0,   379,   381,
-   392,   305,   111,     0,   112,     0,   135,   133,   189,   187,
-   186,   168,    21,     0,    25,   245,   265,     0,   170,   393,
-     0,     0,     0,   316,     0,     0,   115,   317,   292,   302,
-   197,    86,     0,     0,   195,     0,   194,     0,   249,   192,
-     0,     0,   284,     0,   387,     0,   382,   383,   384,   284,
-   385,   386,   374,     0,     0,   162,   134,   137,   136,     0,
-   165,   170,     0,   266,   303,     0,   309,   117,   116,   296,
-     0,   310,   294,   317,   293,     0,     0,     0,     0,   204,
-    61,     0,   191,    81,   180,   226,   280,   227,   223,   225,
-     0,   109,   110,     0,   268,   170,   394,   308,     0,   152,
-     0,   330,   314,     0,     0,     0,     0,     0,     0,     0,
-     0,   359,   351,     0,     0,   113,   118,   118,   323,   328,
-     0,     0,   320,   321,   324,   352,   322,     0,   206,     0,
-   202,     0,     0,   193,     0,   224,   188,   267,     0,     0,
-   316,   361,     0,     0,   357,   341,   342,   343,     0,     0,
-     0,   360,     0,   358,   325,   124,     0,   125,     0,     0,
-   312,   317,   311,   334,     0,   126,     0,     0,   200,     0,
-   196,   205,     0,     0,     0,   362,    45,     0,     0,     0,
-   355,   344,     0,   349,     0,     0,   122,   208,     0,   123,
-   211,   329,   316,     0,     0,   207,     0,     0,   203,   313,
-     0,   315,   353,   335,   339,     0,   350,     0,   120,     0,
-   121,     0,   327,   318,   316,     0,   198,   201,   331,   316,
-   361,   316,   356,   363,     0,   209,   212,   319,   333,     0,
-   316,   354,     0,   340,     0,     0,   364,   365,   345,     0,
-     0,   199,   332,   336,     0,   363,     0,     0,   210,   213,
-   361,     0,     0,   346,   366,     0,   367,     0,     0,   337,
-   368,     0,   347,   316,     0,     0,   338,   348,   369,     0,
-     0,     0
+     5,     0,     0,     0,   152,   143,   150,   142,   240,   236,
+   238,     0,     0,     0,   401,    18,     4,     8,     7,     0,
+   118,   118,   138,   129,   139,   172,     0,     0,     0,   151,
+     0,     6,    16,    17,   241,   237,   239,     0,     0,     0,
+   235,   286,     0,     0,   160,   119,     0,    15,     0,    14,
+     0,   140,   129,   141,   145,   144,   127,   173,    31,    32,
+   261,   245,   261,   249,   252,   254,    10,    86,    87,    99,
+    56,    57,     0,     0,     0,    33,    35,    34,     0,    36,
+    37,     0,    38,    39,     0,     0,    40,    58,     0,     0,
+    62,    43,    45,    88,     0,   284,     0,   282,   148,     0,
+   282,   177,     0,     0,    11,     0,     0,    30,     0,   393,
+     0,     0,   170,   222,   286,     0,     0,   158,   119,     0,
+   214,   215,     0,     0,   128,   131,   155,   156,   130,   132,
+   157,     0,     0,   242,     0,   246,     0,   250,    54,    55,
+    49,    46,     0,     0,     0,     0,    48,     0,     0,     0,
+    50,     0,    52,     0,     0,    79,    77,    75,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    97,    98,     0,     0,    41,     0,   100,    47,   153,   286,
+   376,     0,   280,   283,   146,   154,   285,   148,   281,   183,
+   184,   185,   182,     0,   175,   178,   287,   231,   230,   161,
+   162,   234,     0,   229,     0,   233,     0,     0,    28,     0,
+   322,   106,   323,   169,   171,     0,     0,    13,     0,     0,
+    22,     0,   170,   393,     0,    12,    26,     0,   170,   268,
+   263,   118,   260,   118,     0,   261,   170,   261,   277,   278,
+   257,   275,     0,    90,    89,   312,   304,     0,     0,     9,
+    44,     0,     0,    85,    84,     0,     0,     0,     0,    73,
+    74,    72,    71,    70,    68,    69,    63,    64,    65,    66,
+    67,    96,    95,     0,    42,     0,   290,     0,   294,     0,
+   296,     0,   376,     0,   149,   147,     0,   177,    41,     0,
+     0,   397,   383,   118,   118,   395,     0,   384,   386,   394,
+     0,   232,   303,     0,   108,   103,   107,     0,   167,   220,
+   216,   159,   221,    20,   166,   217,   219,     0,    24,   244,
+   322,   262,   322,   269,     0,   248,     0,     0,   258,     0,
+   257,   313,   305,    92,    60,    59,    51,    53,     0,     0,
+    78,    76,    93,    94,   289,   288,   377,   295,   291,   293,
+     0,   174,   176,    86,     0,   163,   381,   282,   282,   378,
+   379,     0,   396,     0,     0,    29,   310,   104,   118,   118,
+   135,     0,     0,   164,   218,     0,   264,   270,   323,   266,
+   170,   170,   279,   276,   170,     0,     0,     0,   306,   307,
+     0,    80,    83,   292,   179,     0,   181,   228,   286,   376,
+   119,   170,   170,   170,   286,   170,   170,     0,   385,   387,
+   398,   311,   111,     0,   112,     0,   135,   133,   189,   187,
+   186,   168,    21,     0,    25,   322,     0,   243,   247,   253,
+   170,   399,     0,     0,     0,   322,     0,     0,   115,   323,
+   298,   308,   197,    86,     0,     0,   195,     0,   194,     0,
+   255,   192,     0,     0,   290,     0,   393,     0,   388,   389,
+   390,   290,   391,   392,   380,     0,     0,   162,   134,   137,
+   136,     0,   165,   271,     0,   170,   251,   309,     0,   315,
+   117,   116,   302,     0,   316,   300,   323,   299,     0,     0,
+     0,     0,   204,    61,     0,   191,    81,   180,   226,   286,
+   227,   223,   225,     0,   109,   110,     0,   170,     0,   272,
+   400,   314,     0,   152,     0,   336,   320,     0,     0,     0,
+     0,     0,     0,     0,     0,   365,   357,     0,     0,   113,
+   118,   118,   329,   334,     0,     0,   326,   327,   330,   358,
+   328,     0,   206,     0,   202,     0,     0,   193,     0,   224,
+   188,   274,   170,     0,     0,   322,   367,     0,     0,   363,
+   347,   348,   349,     0,     0,     0,   366,     0,   364,   331,
+   124,     0,   125,     0,     0,   318,   323,   317,   340,     0,
+   126,     0,     0,   200,     0,   196,   205,   273,     0,     0,
+     0,   368,    45,     0,     0,     0,   361,   350,     0,   355,
+     0,     0,   122,   208,     0,   123,   211,   335,   322,     0,
+     0,   207,     0,     0,   203,   319,     0,   321,   359,   341,
+   345,     0,   356,     0,   120,     0,   121,     0,   333,   324,
+   322,     0,   198,   201,   337,   322,   367,   322,   362,   369,
+     0,   209,   212,   325,   339,     0,   322,   360,     0,   346,
+     0,     0,   370,   371,   351,     0,     0,   199,   338,   342,
+     0,   369,     0,     0,   210,   213,   367,     0,     0,   352,
+   372,     0,   373,     0,     0,   343,   374,     0,   353,   322,
+     0,     0,   344,   354,   375,     0,     0,     0
 };
 
-static const short yydefgoto[] = {   680,
-     1,     2,     3,    17,    18,    19,   231,   377,   237,   380,
-   113,   310,   446,    86,   153,   280,    88,    89,    90,    91,
-    92,   391,    93,   265,   264,   262,   451,   263,    94,   154,
-    95,   218,   219,   220,   372,   433,   434,    20,   108,   526,
-   300,    59,   373,   418,   301,    23,    99,   194,    24,   130,
-   118,    46,   114,   119,   424,    47,   376,   223,   224,    26,
-   203,   204,   205,   422,   470,   448,   449,   450,   489,   640,
-   608,   580,   543,   577,   597,   620,   650,   600,   622,   651,
-   210,   122,   496,   123,    27,   145,   147,   137,    62,   493,
-   240,    64,    65,   142,   330,   331,   135,   136,   101,   192,
-   102,   104,   193,   435,   436,   481,   221,   337,   388,   389,
-   390,   370,   253,   371,   530,   531,   532,   551,   572,   314,
-   573,   439,   533,   534,   603,   550,   641,   631,   661,   674,
-   632,   535,   536,   630,   537,   563,   588,   646,   647,   648,
-   672,   285,   286,   302,   408,   303,   304,   305,   213,   214,
-   306,   307,   431,    96
+static const short yydefgoto[] = {   686,
+     1,     2,     3,    17,    18,    19,   222,   373,   228,   376,
+   112,   304,   448,    85,   144,   274,    87,    88,    89,    90,
+    91,   391,    92,   259,   258,   256,   453,   257,    93,   145,
+    94,   209,   210,   211,   368,   435,   436,    20,   107,   530,
+   294,    57,   369,   418,   295,    23,    98,   185,    24,   129,
+   117,    44,   113,   118,   424,    45,   372,   214,   215,    26,
+   194,   195,   196,   422,   472,   450,   451,   452,   492,   646,
+   614,   585,   547,   582,   603,   626,   656,   606,   628,   657,
+   201,   121,   499,   122,    27,    28,    29,    30,   236,   238,
+   243,   137,   496,   330,   132,   133,   233,   377,   378,   241,
+   242,   100,   183,   101,   103,   184,   437,   438,   484,   212,
+   333,   388,   389,   390,   366,   247,   367,   534,   535,   536,
+   556,   577,   308,   578,   441,   537,   538,   609,   555,   647,
+   637,   667,   680,   638,   539,   540,   636,   541,   568,   594,
+   652,   653,   654,   678,   279,   280,   296,   408,   297,   298,
+   299,   204,   205,   300,   301,   433,    95
 };
 
-static const short yypact[] = {    66,
-    82,  2070,  2070,   286,-32768,-32768,-32768,-32768,    77,    84,
-   103,    30,    55,    79,-32768,-32768,-32768,-32768,-32768,    60,
-   113,   405,   142,-32768,   183,-32768,-32768,  2070,-32768,-32768,
--32768,-32768,-32768,-32768,   163,-32768,   170,-32768,   173,  1932,
-  1866,   165,-32768,-32768,    60,    35,-32768,   183,   589,-32768,
-   530,-32768,    60,   142,-32768,   183,-32768,-32768,  1138,-32768,
--32768,   458,-32768,   192,   267,-32768,   200,-32768,-32768,-32768,
--32768,-32768,-32768,  1932,  1932,   229,-32768,-32768,-32768,  1932,
--32768,-32768,   850,-32768,-32768,  1932,   206,   211,-32768,  1959,
-  1986,-32768,  2136,   366,   288,  1932,-32768,   243,   161,-32768,
-   271,   438,   842,   237,   150,-32768,   530,    60,-32768,   254,
--32768,  1408,   361,   183,-32768,-32768,   530,   106,-32768,   183,
-   732,   389,   413,   112,  1354,  1138,-32768,-32768,-32768,-32768,
-   183,-32768,-32768,   318,   297,-32768,   458,   183,-32768,-32768,
-   412,   306,   639,   824,-32768,   183,-32768,-32768,-32768,-32768,
--32768,   315,   321,   322,   331,-32768,   352,  1932,   850,-32768,
-   850,-32768,  1932,  1932,   401,-32768,-32768,  1932,  1932,  1932,
-  1932,  1932,  1932,  1932,  1932,  1932,  1932,  1932,  1932,-32768,
--32768,   229,   229,  1932,  1932,-32768,-32768,-32768,-32768,   161,
-  1421,-32768,   442,   648,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,    93,-32768,   394,-32768,   413,-32768,-32768,   443,
-   413,   466,-32768,   907,-32768,   377,   407,-32768,   323,    59,
--32768,-32768,   456,   183,   199,   283,-32768,   530,   530,-32768,
-   361,   183,-32768,  1474,-32768,-32768,   361,  1932,   229,   400,
-   297,-32768,-32768,-32768,-32768,-32768,   409,-32768,   416,-32768,
--32768,-32768,   418,   423,  1755,-32768,  2136,   427,   432,  2136,
-  2136,  1932,   479,  1932,  1932,  1725,  2193,  1903,  1130,  1357,
-   960,   960,   455,   455,-32768,-32768,-32768,-32768,-32768,   450,
-   211,   448,   310,   296,-32768,   628,-32768,   457,-32768,  1487,
--32768,   648,   465,   842,  2013,    52,   467,-32768,-32768,-32768,
-  1088,-32768,   470,   257,-32768,-32768,   154,-32768,-32768,    57,
--32768,-32768,-32768,   861,-32768,   389,-32768,-32768,   389,-32768,
-   512,-32768,-32768,   468,-32768,  2136,-32768,   183,   475,   473,
--32768,-32768,   473,   183,   183,-32768,   526,-32768,-32768,-32768,
--32768,-32768,   523,  1932,  2171,  2183,-32768,-32768,   442,-32768,
--32768,-32768,-32768,-32768,   482,-32768,-32768,   209,   490,-32768,
--32768,   177,    67,-32768,-32768,  1058,-32768,   576,   322,-32768,
--32768,-32768,   505,   451,-32768,  1343,    57,-32768,-32768,    57,
--32768,   183,-32768,   261,-32768,-32768,   229,   944,   526,-32768,
-  1163,-32768,  2065,-32768,-32768,  1932,-32768,-32768,-32768,    67,
-   183,   137,   242,   183,-32768,   242,   183,   628,-32768,-32768,
--32768,-32768,-32768,   530,-32768,    60,-32768,   387,-32768,-32768,
-  2136,-32768,-32768,  1343,-32768,-32768,-32768,  1932,   187,-32768,
-   276,   433,   672,   507,   508,   762,-32768,-32768,-32768,-32768,
--32768,   549,   229,  1932,-32768,   550,  2136,   514,   516,-32768,
-  1932,   250,   188,   609,-32768,  1540,-32768,-32768,-32768,   216,
--32768,-32768,-32768,   309,   325,   155,   387,-32768,-32768,  1163,
--32768,  1642,  1932,-32768,-32768,   229,-32768,-32768,-32768,-32768,
-   520,-32768,-32768,-32768,-32768,  1621,   564,  2109,  1163,-32768,
--32768,  1223,-32768,  2065,-32768,   459,-32768,   459,-32768,-32768,
-   524,-32768,-32768,   532,-32768,  1642,-32768,-32768,  1701,   573,
-   555,-32768,-32768,   559,   561,  1932,   584,   546,   547,  1879,
-   201,   619,-32768,   590,   553,-32768,   567,   794,-32768,   611,
-  1026,    61,-32768,-32768,-32768,-32768,-32768,  1812,-32768,  1932,
-   600,   569,  1283,-32768,   302,-32768,-32768,-32768,  1932,   591,
--32768,  1932,  1932,  1565,-32768,-32768,-32768,-32768,   580,  1932,
-   588,-32768,   610,-32768,-32768,-32768,   530,-32768,    60,  1106,
--32768,-32768,-32768,-32768,  1932,-32768,  1283,  2091,-32768,  1283,
--32768,-32768,   596,  1932,   665,-32768,   868,   630,   612,  1932,
--32768,-32768,   632,-32768,  1932,   350,-32768,   227,   355,-32768,
-   955,-32768,-32768,  1701,   634,-32768,   675,  1283,-32768,-32768,
-   637,-32768,-32768,-32768,-32768,  2158,-32768,    39,-32768,   361,
--32768,   361,-32768,-32768,-32768,   641,-32768,-32768,-32768,-32768,
-  1932,-32768,-32768,   705,   642,-32768,-32768,-32768,-32768,  1283,
--32768,-32768,   646,-32768,   666,    47,   643,-32768,-32768,   322,
-   322,-32768,-32768,-32768,  1932,   705,   651,   705,-32768,-32768,
-  1932,   653,    48,-32768,-32768,   654,-32768,   466,   655,-32768,
-   288,   303,-32768,-32768,   657,   466,-32768,-32768,   288,   735,
-   740,-32768
+static const short yypact[] = {    93,
+   154,  1950,  1950,   173,-32768,-32768,-32768,-32768,   130,   130,
+   130,   143,   166,   215,-32768,-32768,-32768,-32768,-32768,   554,
+    87,   336,   318,-32768,   130,-32768,    80,    83,    88,-32768,
+  1950,-32768,-32768,-32768,   130,   130,   130,  1812,  1746,   228,
+-32768,-32768,   554,   111,-32768,   130,   387,-32768,   327,-32768,
+   554,   318,-32768,   130,-32768,-32768,   858,-32768,-32768,-32768,
+-32768,   257,-32768,   265,-32768,   283,-32768,-32768,-32768,-32768,
+-32768,-32768,  1812,  1812,   290,-32768,-32768,-32768,  1812,-32768,
+-32768,   567,-32768,-32768,  1812,   136,   235,-32768,  1839,  1866,
+-32768,  2137,  1030,   326,  1812,-32768,   292,    20,-32768,   296,
+  1483,   975,   428,    29,-32768,   327,   554,-32768,   323,-32768,
+  1288,   808,   130,-32768,-32768,   327,   114,-32768,   130,   626,
+   243,   253,   151,  1234,   858,-32768,-32768,-32768,-32768,   130,
+-32768,   332,   885,-32768,   334,-32768,   436,-32768,-32768,-32768,
+-32768,-32768,   328,   340,   347,   342,-32768,   359,  1812,   567,
+-32768,   567,-32768,  1812,  1812,   407,-32768,-32768,  1812,  1812,
+  1812,  1812,  1812,  1812,  1812,  1812,  1812,  1812,  1812,  1812,
+-32768,-32768,   290,   290,  1812,  1812,-32768,-32768,-32768,-32768,
+    20,  1301,-32768,   321,  1036,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,    92,-32768,   389,-32768,   253,-32768,-32768,
+   430,   253,   450,-32768,   963,-32768,   380,   395,-32768,   728,
+    49,-32768,-32768,   438,   130,   207,   141,-32768,   327,   327,
+-32768,   808,   130,-32768,  1354,-32768,-32768,   808,   130,-32768,
+-32768,   376,   408,  1954,  2122,-32768,   130,-32768,-32768,   455,
+   412,-32768,   436,-32768,-32768,-32768,   421,   442,  1635,-32768,
+  2137,   447,   448,  2137,  2137,  1812,   492,  1812,  1812,  1605,
+  2159,  1783,   463,  1237,   973,   973,   310,   310,-32768,-32768,
+-32768,-32768,-32768,   458,   235,   452,    48,   374,-32768,  1558,
+-32768,   461,-32768,  1367,-32768,  1036,   465,   975,  1893,    57,
+   469,-32768,-32768,-32768,  1452,-32768,   473,   159,-32768,-32768,
+   102,-32768,-32768,    52,-32768,-32768,-32768,  1533,-32768,   243,
+-32768,-32768,   243,-32768,   495,-32768,-32768,   471,-32768,-32768,
+-32768,-32768,-32768,-32768,   478,-32768,   486,  1812,   290,   488,
+   412,-32768,   533,-32768,-32768,-32768,-32768,-32768,   529,  1812,
+  2097,  2149,-32768,-32768,   321,-32768,-32768,-32768,-32768,-32768,
+   494,-32768,-32768,   104,   506,-32768,-32768,   348,   269,-32768,
+-32768,   638,-32768,   584,   347,-32768,-32768,-32768,   512,   192,
+-32768,  1223,    52,-32768,-32768,    52,   509,-32768,-32768,   509,
+   130,   130,  2137,-32768,   130,   514,   290,   746,   533,-32768,
+  1043,-32768,  1974,-32768,-32768,  1812,-32768,-32768,-32768,   269,
+   130,   149,   203,   130,-32768,   203,   130,  1558,-32768,-32768,
+-32768,-32768,-32768,   327,-32768,   554,-32768,   785,-32768,-32768,
+  2137,-32768,-32768,  1223,-32768,-32768,   294,-32768,-32768,-32768,
+   130,-32768,   161,   393,   666,   515,   516,   826,-32768,-32768,
+-32768,-32768,-32768,   559,   290,  1812,-32768,   564,  2137,   525,
+   524,-32768,  1812,   153,   402,   892,-32768,  1420,-32768,-32768,
+-32768,   487,-32768,-32768,-32768,   171,   179,    50,   785,-32768,
+-32768,  1043,-32768,-32768,  1812,    91,-32768,-32768,   290,-32768,
+-32768,-32768,-32768,   528,-32768,-32768,-32768,-32768,  1501,   573,
+  1998,  1043,-32768,-32768,  1103,-32768,  1974,-32768,   424,-32768,
+   424,-32768,-32768,   531,-32768,-32768,   534,  2047,  1812,-32768,
+-32768,-32768,  1581,   580,   560,-32768,-32768,   561,   565,  1812,
+   590,   557,   558,  1759,   144,   630,-32768,   603,   578,-32768,
+   581,  1982,-32768,   641,   906,    56,-32768,-32768,-32768,-32768,
+-32768,  1692,-32768,  1812,   623,   583,  1163,-32768,   781,-32768,
+-32768,-32768,  2047,  1812,   605,-32768,  1812,  1812,  2070,-32768,
+-32768,-32768,-32768,   588,  1812,   599,-32768,   643,-32768,-32768,
+-32768,   327,-32768,   554,   986,-32768,-32768,-32768,-32768,  1812,
+-32768,  1163,  2021,-32768,  1163,-32768,-32768,-32768,   606,  1812,
+   687,-32768,   422,   628,   634,  1812,-32768,-32768,   636,-32768,
+  1812,   223,-32768,   349,   234,-32768,  1001,-32768,-32768,  1581,
+   635,-32768,   681,  1163,-32768,-32768,   642,-32768,-32768,-32768,
+-32768,  2119,-32768,    36,-32768,   808,-32768,   808,-32768,-32768,
+-32768,   645,-32768,-32768,-32768,-32768,  1812,-32768,-32768,   710,
+   646,-32768,-32768,-32768,-32768,  1163,-32768,-32768,   647,-32768,
+   667,    43,   650,-32768,-32768,   347,   347,-32768,-32768,-32768,
+  1812,   710,   651,   710,-32768,-32768,  1812,   660,    61,-32768,
+-32768,   661,-32768,   450,   662,-32768,   326,   168,-32768,-32768,
+   701,   450,-32768,-32768,   326,   727,   782,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,    65,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,    -5,-32768,   -40,   446,  -137,   424,-32768,-32768,
-   -55,-32768,   399,-32768,-32768,-32768,-32768,-32768,   190,-32768,
-  -191,  -207,   527,-32768,-32768,   314,-32768,    22,   -98,   215,
-     0,   700,-32768,   339,     7,    -7,   -15,   560,    11,  -149,
-  -366,   -45,  -107,   -52,-32768,-32768,-32768,   202,    14,    53,
--32768,   464,-32768,   337,-32768,  -378,-32768,  -409,-32768,-32768,
+-32768,-32768,-32768,    73,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   -24,-32768,   -38,   498,  -123,   432,-32768,-32768,
+   -10,-32768,   116,-32768,-32768,-32768,-32768,-32768,   224,-32768,
+  -178,  -204,   572,-32768,-32768,   357,-32768,    27,   -93,   260,
+     8,   750,-32768,   390,    13,     1,   -72,   616,    19,  -151,
+  -386,   -49,  -101,   -63,-32768,-32768,-32768,   -48,    11,   105,
+-32768,   518,-32768,   384,-32768,  -376,-32768,  -424,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-   -38,   -68,  -298,   -13,   -30,-32768,-32768,-32768,-32768,-32768,
-   528,    41,-32768,   620,   522,   391,   635,   537,     1,   -79,
-   -11,   -89,  -139,   344,-32768,-32768,  -180,-32768,-32768,-32768,
-   403,  -278,-32768,  -128,-32768,-32768,-32768,-32768,   -95,  -286,
-  -495,   358,-32768,   193,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   214,-32768,  -556,   147,-32768,   146,
--32768,   531,-32768,  -233,-32768,-32768,-32768,   449,  -195,-32768,
--32768,-32768,-32768,     9
+   -43,   -44,  -311,   -13,-32768,-32768,-32768,   -28,-32768,-32768,
+-32768,-32768,-32768,   485,   -23,-32768,   582,   496,   392,   589,
+   504,   -26,   -69,   -68,   -98,  -145,   388,-32768,-32768,  -143,
+-32768,-32768,-32768,   449,  -230,-32768,  -118,-32768,-32768,-32768,
+-32768,  -100,  -334,  -454,   401,-32768,   232,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,   244,-32768,  -542,
+   194,-32768,   197,-32768,   575,-32768,  -234,-32768,-32768,-32768,
+   500,  -189,-32768,-32768,-32768,-32768,     6
 };
 
 
-#define        YYLAST          2245
-
-
-static const short yytable[] = {    87,
-    98,    21,    21,    35,    37,    39,    49,   124,    22,    22,
-    28,    28,   121,   232,    54,    25,    25,   222,   148,   149,
-   296,   229,   198,   320,   151,   254,   225,    21,   132,   325,
-   156,   105,    55,    48,    22,    56,    28,   322,   311,   125,
-   187,    25,    51,    53,   291,   384,   281,   464,   226,   141,
-   284,   100,   351,   143,   209,   585,   134,   369,    48,  -102,
-   186,   574,    43,   402,   120,    -1,    48,    29,   312,    43,
-   150,   216,   131,   144,   643,   100,   634,    60,    67,    32,
-    33,    -2,   544,   155,   656,   668,    32,    33,    40,    14,
-   207,   504,    61,   100,   211,   132,    14,   202,   423,   283,
-    60,   425,   232,   105,   666,    32,    33,   623,    60,    44,
-   542,   106,   197,    41,   635,   107,   405,    48,    45,   575,
-   120,    48,   657,   669,   222,   400,   191,   360,   141,   638,
-   120,   134,   143,   582,   642,   222,   644,    42,   252,   131,
-  -102,   222,   291,   349,   282,   653,    57,   332,    58,   332,
-   288,   486,   144,   197,   100,   498,   316,   281,    34,   258,
-   319,   259,   243,   132,   245,    36,    14,   606,   293,   100,
-   609,   100,    60,   294,   463,   318,   278,   279,   677,    43,
-   398,   110,   227,    60,    38,   247,   228,   249,   235,    50,
-    43,   398,   107,   324,   206,   455,   456,   509,   628,   340,
-   596,    43,   115,    32,    33,   206,    14,   437,   111,   112,
-   189,   207,    14,   111,   112,   211,    14,    14,    43,   190,
-   191,   343,   206,   103,   473,   208,   399,    25,    14,   367,
-   652,    32,    33,   134,   368,   400,   191,   399,   120,    43,
-   412,   120,   120,   206,    63,    14,   400,   191,   116,   355,
-   560,    66,   478,   110,    68,   483,  -162,   117,   452,   499,
-   284,   132,  -162,    43,   115,   405,    14,   139,   469,   138,
-     5,    14,     7,    97,   400,   191,    60,   146,     9,    10,
-    11,   157,   404,   407,   395,   604,    44,   332,   202,   396,
-    14,   158,   438,    54,    13,    45,   186,    15,   428,    25,
-   111,   112,   454,  -162,    43,   398,   374,  -162,   206,   453,
-   116,    55,   212,   349,    56,   460,   206,   469,   188,   117,
-   349,   362,   363,   217,   375,   495,  -105,  -105,  -105,  -105,
-   158,    14,  -105,   365,  -105,  -105,  -105,   366,   438,   242,
-   484,   233,   234,   140,  -253,   429,   195,   248,   403,   406,
-  -105,   497,   475,   238,   289,   290,   476,   529,   317,   189,
-    45,   217,    30,    31,  -316,  -316,  -316,  -316,   190,   191,
-   465,   350,  -316,  -316,  -316,   401,    48,   239,   675,    25,
-   529,   430,   244,   676,   417,   502,   105,   132,  -316,   228,
-   250,   468,   128,   129,   414,   416,   251,   120,     9,    10,
-    11,   503,   466,   252,  -105,   107,   255,   545,     5,     6,
-     7,     8,   636,    48,   637,   501,     9,    10,    11,   180,
-   181,    25,   182,   183,   184,   185,   619,   120,   256,    48,
-   228,   621,    13,   321,    14,   107,   132,   487,   -82,   207,
-   211,     5,  -101,     7,   196,   525,   207,   233,   234,     9,
-    10,    11,   295,    60,     5,    57,     7,    58,   133,   308,
-    32,    33,     9,    10,    11,    13,   401,   401,   525,   110,
-   507,   111,   112,    48,    71,   529,   671,   328,    13,   559,
-   524,    52,   187,   309,   679,   527,   334,   189,  -259,  -259,
-   232,   315,   528,   335,   538,   336,   190,   191,   338,    25,
-   289,   290,   341,   524,   177,   178,   179,   342,   583,   309,
-   477,   586,   589,   160,   162,   561,   344,   455,   456,   593,
-    54,   659,   660,   599,   222,   347,   222,   415,   598,   381,
-   348,   207,    43,   115,   605,   385,   386,   527,    55,   352,
-   356,    56,   361,   611,   528,   364,   538,   378,   567,   569,
-   379,    25,   382,   383,   618,   601,   257,   387,   401,    14,
-   392,   260,   261,   525,   394,   397,   266,   267,   268,   269,
-   270,   271,   272,   273,   274,   275,   276,   277,   411,   116,
-   120,   413,    48,   426,  -295,   482,   -31,   490,   117,   109,
-   586,   491,   -27,   -27,   -27,   -27,   492,   508,   524,   539,
-   -27,   -27,   -27,   457,   458,   459,   546,   461,   462,   547,
-   -32,    43,   398,   549,   662,   110,   -27,   552,  -162,   553,
-   586,   555,   556,   557,  -162,   562,   570,   564,   297,   565,
-   474,     5,     6,     7,     8,   579,   326,   299,    14,     9,
-    10,    11,     5,   566,     7,   196,   581,   111,   112,   584,
-     9,    10,    11,   128,   129,    13,   592,    14,   497,     9,
-    10,    11,   345,   346,   594,  -162,    13,    45,   595,  -162,
-   -27,   610,   217,   505,  -114,  -114,  -114,  -114,  -114,  -114,
-  -114,   612,  -114,  -114,  -114,  -114,  -114,   615,  -114,  -114,
-  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
-  -114,  -114,  -114,  -376,  -114,  -114,   614,   548,   617,   626,
-   627,  -114,   629,   645,  -114,  -261,  -261,   639,   649,  -114,
-  -114,  -114,   654,   658,   655,  -114,  -114,   664,   667,   670,
-  -114,   673,   230,   678,   681,   -19,   -19,   -19,   -19,   682,
-   359,   587,   393,   -19,   -19,   -19,   313,   479,  -114,  -114,
-  -114,  -114,   576,  -114,   126,   467,   292,   357,   110,   -19,
-   471,  -162,   217,   246,  -316,  -316,   333,  -162,   329,  -316,
-  -316,   241,  -316,   427,   421,   327,  -316,   480,  -316,  -316,
-  -316,  -316,  -316,  -316,  -316,  -316,  -316,  -316,  -316,   447,
-  -316,   440,  -316,   485,  -316,  -316,   624,     5,     6,     7,
-     8,  -316,   663,   665,  -316,     9,    10,    11,  -162,  -316,
-  -316,  -316,  -162,   -19,   410,  -316,  -316,   625,     0,   353,
-  -316,    13,   421,    14,   139,     0,   472,     5,     0,     7,
-    97,     0,     0,     0,     0,     9,    10,    11,  -316,  -291,
-  -316,  -316,   488,  -316,    32,    33,   199,   200,   201,   494,
-   152,    13,    69,     5,    15,     7,    97,    70,    71,     0,
-    72,     9,    10,    11,     5,     6,     7,     8,   447,     0,
-   568,   506,     9,    10,    11,     0,     0,    13,    73,     0,
-    15,     0,    74,    75,     0,     0,     0,   447,    13,    76,
-   447,     0,    77,     0,     0,     0,     0,    78,    79,    80,
-     0,     0,     0,    81,    82,     0,     0,   297,    83,   298,
-     5,     6,     7,     8,   554,     0,   299,     0,     9,    10,
-    11,   180,   181,     0,   182,   183,   184,   185,    84,    85,
-     0,   -91,     0,     0,    13,     0,    14,     0,   578,     0,
-     0,   447,     0,   613,   432,     0,  -316,  -316,  -316,  -316,
-  -316,  -316,  -316,     0,  -316,  -316,  -316,  -316,  -316,     0,
-  -316,  -316,  -316,  -316,  -316,  -316,  -316,  -316,  -316,  -316,
-  -316,  -316,  -316,  -316,  -316,   447,  -316,  -316,   447,     0,
-     0,   110,  -376,  -316,  -162,     0,  -316,     0,   616,     0,
-  -162,  -316,  -316,  -316,     0,     0,     0,  -316,  -316,     0,
-     0,     0,  -316,     0,     0,     0,   447,   175,   176,   177,
-   178,   179,     0,   111,   112,     0,     0,     0,     0,     0,
-  -316,     0,  -316,  -316,     0,  -316,   571,     0,  -316,  -316,
-     0,  -162,     0,  -316,  -316,  -162,  -316,     0,   447,     0,
-  -316,     0,  -316,  -316,  -316,  -316,  -316,  -316,  -316,  -316,
-  -316,  -316,  -316,     0,  -316,     0,  -316,     0,  -316,  -316,
-     0,     5,     6,     7,     8,  -316,     0,   409,  -316,     9,
-    10,    11,     0,  -316,  -316,  -316,     0,     0,     0,  -316,
-  -316,     0,     0,     0,  -316,    13,     0,    14,     0,     0,
-     0,     5,     6,     7,     8,     0,     0,     0,     0,     9,
-    10,    11,  -316,     0,  -316,  -316,   602,  -316,  -326,  -326,
-     0,     0,     0,  -326,  -326,    13,  -326,    14,     0,     0,
-  -326,     0,  -326,  -326,  -326,  -326,  -326,  -326,  -326,  -326,
-  -326,  -326,  -326,     0,  -326,     0,  -326,     0,  -326,  -326,
-     0,     0,   127,   128,   129,  -326,     0,     0,  -326,     9,
-    10,    11,     0,  -326,  -326,  -326,     0,     0,     0,  -326,
-  -326,     0,     0,   441,  -326,   442,    33,    14,     0,     0,
-    70,    71,     0,    72,   172,   173,   174,   175,   176,   177,
-   178,   179,  -326,     0,  -326,  -326,     0,  -326,     0,     0,
-     0,    73,     0,    15,     0,    74,    75,     0,     0,     0,
-     0,     0,    76,     0,     0,    77,     0,     0,     0,     0,
-    78,    79,    80,     0,     0,     0,    81,    82,     0,     0,
-   443,    83,   444,   441,     0,   442,    33,     0,     0,     0,
-    70,    71,     0,    72,     0,     0,     0,     0,     0,     0,
-  -190,    84,    85,     0,   445,     0,     0,     0,     0,     0,
-     0,    73,     0,    15,     0,    74,    75,     0,     0,     0,
-     0,     0,    76,     0,     0,    77,     0,     0,     0,     0,
-    78,    79,    80,     0,     0,     0,    81,    82,     0,     0,
-   443,    83,   444,   441,     0,   442,    33,     0,     0,     0,
-    70,    71,     0,    72,     0,     0,     0,     0,     0,     0,
-  -250,    84,    85,     0,   445,     0,     0,     0,     0,     0,
-     0,    73,     0,    15,     0,    74,    75,     0,     0,     0,
-     0,     0,    76,     0,     0,    77,     0,     0,     0,     0,
-    78,    79,    80,     0,     0,     0,    81,    82,     0,     0,
-   443,    83,   444,   419,     0,    69,     0,     0,     0,     0,
-    70,    71,     0,    72,   236,     0,     0,   -23,   -23,   -23,
-   -23,    84,    85,     0,   445,   -23,   -23,   -23,     0,     0,
-     0,    73,     0,    15,     0,    74,    75,     0,     0,     0,
-   110,   -23,    76,  -162,     0,    77,     0,     0,     0,  -162,
-    78,    79,    80,     0,     0,     0,    81,    82,     0,     0,
-     0,    83,   173,   174,   175,   176,   177,   178,   179,     0,
-    69,     0,   111,   112,     0,    70,    71,     0,    72,     0,
-     0,    84,    85,    69,   420,     0,     0,     0,    70,    71,
-  -162,    72,     0,     0,  -162,   -23,    73,     0,    15,     0,
-    74,    75,     0,     0,     0,     0,     0,    76,     0,    73,
-    77,    15,     0,    74,    75,    78,    79,    80,     0,     0,
-    76,    81,    82,    77,     0,     0,    83,     0,    78,    79,
-    80,     0,     0,     0,    81,    82,    69,     0,     0,    83,
-     0,    70,    71,     0,    72,     0,    84,    85,     0,    69,
-   215,     0,     0,     0,    70,    71,     0,    72,     0,    84,
-    85,     0,    73,   287,    15,     0,    74,    75,     0,     0,
-     0,     0,     0,    76,     0,    73,    77,    15,     0,    74,
-    75,    78,    79,    80,     0,     0,    76,    81,    82,    77,
-     0,     0,    83,     0,    78,    79,    80,     0,     0,     0,
-    81,    82,    69,     0,     0,    83,     0,    70,    71,     0,
-    72,     0,    84,    85,     0,     0,   323,     0,     0,     0,
-     0,     0,     0,     0,     0,    84,    85,     0,    73,   354,
-    15,     0,    74,    75,   590,     0,     0,     0,     0,    76,
-     0,     0,    77,     0,     0,     0,     0,    78,    79,    80,
-     0,     0,     0,    81,    82,     0,     0,     0,    83,   163,
-   164,   165,   591,   166,   167,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,   177,   178,   179,     0,    84,    85,
-     0,     0,   500,   442,   510,     6,     7,     8,    70,    71,
-     0,    72,     9,    10,    11,   511,     0,   512,   513,   514,
-   515,   516,   517,   518,   519,   520,   521,   522,    13,    73,
-    14,    15,     0,    74,    75,     0,     0,     0,     0,     0,
-    76,     0,     0,    77,     0,     0,     0,     0,    78,    79,
-    80,    14,     0,     0,    81,    82,   163,   164,   165,    83,
-   166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
-   176,   177,   178,   179,     0,     0,     0,   523,     0,    84,
-    85,     0,   252,   442,    33,     0,     0,     0,    70,    71,
-     0,    72,     0,     0,     0,   511,     0,   512,   513,   514,
-   515,   516,   517,   518,   519,   520,   521,   522,     0,    73,
-     0,    15,     0,    74,    75,     0,     0,     0,     0,     0,
-    76,     0,     0,    77,     0,     0,     0,     0,    78,    79,
-    80,     0,     0,     0,    81,    82,     0,    69,     0,    83,
-     0,     0,    70,    71,     0,    72,   169,   170,   171,   172,
-   173,   174,   175,   176,   177,   178,   179,   523,     0,    84,
-    85,     0,   252,    73,     0,    15,     0,    74,    75,     0,
-     0,     0,     0,     0,    76,     0,     0,    77,     0,     0,
-     0,     0,    78,    79,    80,     0,     0,     0,    81,    82,
-     0,     0,     0,    83,    69,     5,     6,     7,     8,    70,
-    71,     0,    72,     9,    10,    11,     0,     0,     0,     0,
-     0,     0,     0,    84,    85,     0,   339,     0,     0,    13,
-    73,    14,    15,     0,    74,    75,     0,     0,     0,     0,
-     0,    76,     0,     0,    77,     0,     0,     0,     0,    78,
-    79,    80,     0,     0,     0,    81,    82,     0,    69,     5,
-    83,     7,    97,    70,    71,     0,    72,     9,    10,    11,
-     0,    69,     0,     0,     0,     0,    70,    71,     0,    72,
-    84,    85,     0,    13,    73,     0,    15,     0,    74,    75,
-     0,     0,     0,     0,     0,    76,     0,    73,    77,    15,
-     0,    74,    75,    78,    79,    80,     0,     0,    76,    81,
-    82,    77,     0,     0,    83,     0,    78,    79,    80,     0,
-     0,     0,    81,    82,    69,     0,     0,    83,     0,    70,
-    71,     0,    72,     0,    84,    85,   171,   172,   173,   174,
-   175,   176,   177,   178,   179,   558,     0,    84,    85,     0,
-    73,    69,    15,     0,    74,    75,    70,    71,     0,    72,
-     0,    76,     0,     0,    77,     0,     0,     0,     0,    78,
-    79,    80,     0,     0,     0,    81,    82,    73,    69,    15,
-    83,    74,    75,    70,    71,     0,    72,     0,    76,     0,
-     0,    77,     0,     0,     0,     0,    78,    79,    80,     0,
-    84,    85,    81,    82,    73,   358,    15,   159,    74,    75,
-    70,    71,     0,    72,     0,    76,     0,     0,    77,     0,
-     0,     0,     0,    78,    79,    80,     0,    84,    85,    81,
-    82,    73,     0,    15,   161,    74,    75,     0,     0,     0,
-     0,     0,    76,     0,     0,    77,     0,     0,     0,     0,
-    78,    79,    80,     0,    84,    85,    81,    82,     0,     0,
-     4,    83,  -118,     5,     6,     7,     8,     0,     0,     0,
-     0,     9,    10,    11,     0,     0,     0,     0,     0,     0,
-     0,    84,    85,     0,     0,     0,    12,    13,     0,    14,
-    15,   165,     0,   166,   167,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,   177,   178,   179,     0,   540,  -118,
-     0,     0,     0,     0,     0,   163,   164,   165,  -118,   166,
-   167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
-   177,   178,   179,   163,   164,   165,    16,   166,   167,   168,
-   169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
-   179,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   163,   164,   165,   607,   166,   167,   168,   169,   170,   171,
-   172,   173,   174,   175,   176,   177,   178,   179,     0,     0,
-     0,   541,   163,   164,   165,   633,   166,   167,   168,   169,
-   170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
-   167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
-   177,   178,   179,   168,   169,   170,   171,   172,   173,   174,
-   175,   176,   177,   178,   179,   170,   171,   172,   173,   174,
-   175,   176,   177,   178,   179
+#define        YYLAST          2211
+
+
+static const short yytable[] = {    86,
+    97,   123,    62,    64,    66,   120,    47,    31,    31,    21,
+    21,   213,    25,    25,    22,    22,   216,   314,   223,    35,
+    36,    37,    52,   319,   290,   220,   248,   466,   131,   104,
+    46,   189,    54,   285,   316,   278,    31,   124,    21,   135,
+    53,    25,   200,    22,   427,   347,   402,    49,    51,  -102,
+   141,   275,   365,    46,   197,   146,   579,    99,   306,   119,
+   232,    46,   139,   140,   234,   177,   305,   130,   142,   180,
+   548,   217,   207,   640,   147,    32,   109,   193,   181,   182,
+   662,   277,    59,    60,   178,    59,    60,   110,   111,   198,
+    59,    60,    -1,   202,   649,   507,   131,   180,   674,   223,
+    99,   591,   104,    67,   199,   489,   181,   182,   110,   111,
+   213,   641,   240,    46,   580,   546,   119,    46,   663,   188,
+    14,   213,   587,   252,   672,   253,   119,   213,   509,    58,
+  -102,   345,   356,   246,   285,   130,   675,   276,   235,    58,
+    58,    58,   423,   282,   501,   425,    59,    60,   272,   273,
+    58,    99,   513,    -2,   629,   312,   131,   612,    58,    14,
+   615,    61,   232,    48,    63,   275,   234,   287,    99,    65,
+    99,   310,   288,   465,   315,   313,   644,   363,    14,   395,
+   320,   648,   364,   650,   396,   602,   318,   105,   326,   634,
+   218,   106,   659,   565,   219,     5,    55,     7,    56,   224,
+   225,    38,   198,     9,    10,    11,   202,   457,   458,    41,
+   114,   148,   325,   197,   327,    25,   311,   339,   240,    13,
+   379,   658,   379,    58,    39,   683,   119,   226,   498,   119,
+   119,   106,    14,   149,    58,   361,    14,   478,   336,   362,
+   235,   479,   610,   681,   439,   351,   412,   505,   682,    33,
+    34,   219,   188,    99,   278,   506,   115,   131,   321,   106,
+   323,   110,   111,   193,   251,   116,   471,   502,   415,   254,
+   255,    41,   454,    40,   260,   261,   262,   263,   264,   265,
+   266,   267,   268,   269,   270,   271,   102,   440,   404,   407,
+    25,   481,    59,    60,   486,    52,    41,   114,    14,   625,
+   455,   224,   225,   219,   240,    54,   462,   456,   370,   345,
+   627,   110,   111,    53,   106,   149,   345,   471,   405,    58,
+   358,   359,    55,    14,    56,   379,   371,   400,   182,    41,
+   114,   475,   428,   429,   177,   440,   430,   487,   134,     5,
+     6,     7,     8,   115,   403,   406,   136,     9,    10,    11,
+    41,   398,   116,   459,   460,   461,    14,   463,   464,   168,
+   169,   170,   432,    13,   138,    14,   467,   179,   401,    46,
+   533,   186,    25,   341,   342,   109,   115,    14,  -162,   283,
+   284,   203,   477,   476,  -162,   116,   104,   108,   417,   131,
+   -27,   -27,   -27,   -27,   533,   414,   416,   399,   -27,   -27,
+   -27,   549,   468,   244,    41,   398,   400,   182,   197,   229,
+    46,   237,    50,   109,   -27,   245,  -162,   249,    25,   504,
+   490,   642,  -162,   643,   119,  -162,    46,   510,   246,  -162,
+    41,    14,   283,   284,   197,   250,   239,   119,    59,    60,
+   131,   198,   202,   383,   -82,   110,   111,   289,   198,   346,
+   529,   399,  -265,  -265,   511,   393,   109,    14,    70,   552,
+   400,   182,   302,  -162,   528,   401,   401,  -162,   -27,   303,
+   480,   303,    46,   309,   529,   171,   172,    42,   173,   174,
+   175,   176,   457,   458,   322,   564,    43,   421,   528,    41,
+   328,   533,   329,   197,   542,   677,   531,   619,   332,    25,
+   566,   532,   223,   685,   588,    58,   449,   163,   164,   165,
+   166,   167,   168,   169,   170,   589,    14,   334,   592,   595,
+   151,   153,   337,   338,   605,   213,   599,   213,   604,   340,
+   374,   178,    52,   343,   344,   198,   405,   665,   666,   421,
+   352,   611,    54,   348,   357,   400,   182,   542,   360,   531,
+    53,   617,    25,   375,   532,   381,    41,   572,   574,   401,
+   607,   491,   624,   382,   387,   385,   392,   143,   497,    68,
+     5,   529,     7,    96,    69,    70,   394,    71,     9,    10,
+    11,   397,   119,    14,    46,   528,   411,   449,   413,   426,
+   508,   431,  -301,   485,    13,    72,   -31,    15,   592,    73,
+    74,   493,   494,    42,   495,   512,    75,   449,   543,    76,
+   449,   551,    43,   550,    77,    78,    79,   -32,   554,   557,
+    80,    81,   668,   558,   553,    82,   221,   560,   592,   -19,
+   -19,   -19,   -19,   561,   562,   559,   567,   -19,   -19,   -19,
+   569,     5,     6,     7,     8,    83,    84,   409,   -91,     9,
+    10,    11,   109,   -19,   570,  -162,   575,   571,   584,   583,
+   586,  -162,   449,   590,   598,    13,   208,    14,  -114,  -114,
+  -114,  -114,  -114,  -114,  -114,   600,  -114,  -114,  -114,  -114,
+  -114,   616,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
+  -114,  -114,  -114,  -114,  -114,  -114,  -114,   449,  -114,  -114,
+   449,   601,  -162,   618,   620,  -114,  -162,   -19,  -114,   621,
+   632,   622,   623,  -114,  -114,  -114,   633,   635,   651,  -114,
+  -114,   645,   655,   660,  -114,   661,   687,   670,   208,   449,
+   664,  -105,  -105,  -105,  -105,   673,   676,  -105,   679,  -105,
+  -105,  -105,  -114,  -114,  -114,  -114,   434,  -114,  -322,  -322,
+  -322,  -322,  -322,  -322,  -322,  -105,  -322,  -322,  -322,  -322,
+  -322,   449,  -322,  -322,  -322,  -322,  -322,  -322,  -322,  -322,
+  -322,  -322,  -322,  -322,  -322,  -322,  -322,   684,  -322,  -322,
+   593,   688,   307,    41,   398,  -322,   355,   197,  -322,   470,
+   127,   128,   482,  -322,  -322,  -322,     9,    10,    11,  -322,
+  -322,   581,   125,   286,  -322,   353,   469,   473,   208,  -105,
+    14,  -322,  -322,  -322,  -322,   386,   324,   474,   380,  -322,
+  -322,  -322,  -322,   483,  -322,  -322,   208,  -322,  -322,  -322,
+   500,   331,   384,  -322,  -322,  -322,  -322,   442,   488,    43,
+  -322,   630,  -322,  -322,  -322,  -322,  -322,  -322,  -322,  -322,
+  -322,  -322,  -322,   631,  -322,   669,  -322,   349,  -322,  -322,
+   671,   410,   126,   127,   128,  -322,     0,     0,  -322,     9,
+    10,    11,     0,  -322,  -322,  -322,     0,     0,     0,  -322,
+  -322,     0,     0,     0,  -322,   230,     0,    14,     5,  -101,
+     7,    96,     0,     0,    41,   398,     9,    10,    11,     0,
+     0,     0,  -322,  -297,  -322,  -322,   576,  -322,  -322,  -322,
+     0,     0,    13,  -322,  -322,    15,  -322,     0,     0,     0,
+  -322,    14,  -322,  -322,  -322,  -322,  -322,  -322,  -322,  -322,
+  -322,  -322,  -322,     0,  -322,     0,  -322,     0,  -322,  -322,
+     0,   500,     0,     0,     0,  -322,     0,     0,  -322,     0,
+    43,     0,     0,  -322,  -322,  -322,     0,     0,     0,  -322,
+  -322,   231,  -259,   291,  -322,   292,     5,     6,     7,     8,
+     0,     0,   293,     0,     9,    10,    11,    59,    60,   190,
+   191,   192,  -322,     0,  -322,  -322,   608,  -322,  -332,  -332,
+    13,     0,    14,  -332,  -332,     0,  -332,     0,     0,     0,
+  -332,     0,  -332,  -332,  -332,  -332,  -332,  -332,  -332,  -332,
+  -332,  -332,  -332,     0,  -332,     0,  -332,     0,  -332,  -332,
+   166,   167,   168,   169,   170,  -332,     0,   109,  -332,     0,
+  -162,     0,     0,  -332,  -332,  -332,  -162,     0,  -382,  -332,
+  -332,   127,   128,   443,  -332,   444,    60,     9,    10,    11,
+    69,    70,     0,    71,     0,     0,     0,     0,     0,   110,
+   111,     0,  -332,     0,  -332,  -332,     0,  -332,     0,     0,
+     0,    72,     0,    15,     0,    73,    74,  -162,     0,     0,
+     0,  -162,    75,   171,   172,    76,   173,   174,   175,   176,
+    77,    78,    79,     0,     0,     0,    80,    81,     0,     0,
+   445,    82,   446,   443,     0,   444,    60,     0,     0,     0,
+    69,    70,     0,    71,     0,     0,     0,     0,     0,     0,
+  -190,    83,    84,     0,   447,     0,     0,     0,     0,     0,
+     0,    72,     0,    15,     0,    73,    74,     0,     0,     0,
+     0,     0,    75,     0,     0,    76,     0,     0,     0,     0,
+    77,    78,    79,     0,     0,     0,    80,    81,     0,     0,
+   445,    82,   446,   443,     0,   444,    60,     0,     0,     0,
+    69,    70,     0,    71,     0,     0,     0,     0,     0,     0,
+  -256,    83,    84,     0,   447,     0,     0,     0,     0,     0,
+     0,    72,     0,    15,     0,    73,    74,     0,     0,     0,
+     0,     0,    75,     0,     0,    76,     0,     0,     0,     0,
+    77,    78,    79,     0,     0,     0,    80,    81,     0,     0,
+   445,    82,   446,   419,     0,    68,     0,     0,     0,     0,
+    69,    70,     0,    71,   227,     0,     0,   -23,   -23,   -23,
+   -23,    83,    84,     0,   447,   -23,   -23,   -23,     0,     0,
+     0,    72,     0,    15,     0,    73,    74,     0,     0,     0,
+   109,   -23,    75,  -162,     0,    76,     0,     0,     0,  -162,
+    77,    78,    79,     0,     0,     0,    80,    81,     0,     0,
+     0,    82,   164,   165,   166,   167,   168,   169,   170,     0,
+    68,     0,   110,   111,     0,    69,    70,     0,    71,     0,
+     0,    83,    84,    68,   420,     0,     0,     0,    69,    70,
+  -162,    71,     0,     0,  -162,   -23,    72,     0,    15,     0,
+    73,    74,     0,     0,     0,     0,     0,    75,     0,    72,
+    76,    15,     0,    73,    74,    77,    78,    79,     0,     0,
+    75,    80,    81,    76,     0,     0,    82,     0,    77,    78,
+    79,     0,     0,     0,    80,    81,    68,     0,     0,    82,
+     0,    69,    70,     0,    71,     0,    83,    84,     0,    68,
+   206,     0,     0,     0,    69,    70,     0,    71,     0,    83,
+    84,     0,    72,   281,    15,     0,    73,    74,     0,     0,
+     0,     0,     0,    75,     0,    72,    76,    15,     0,    73,
+    74,    77,    78,    79,     0,     0,    75,    80,    81,    76,
+     0,     0,    82,     0,    77,    78,    79,     0,     0,     0,
+    80,    81,    68,     0,     0,    82,     0,    69,    70,     0,
+    71,     0,    83,    84,     0,     0,   317,     0,     0,     0,
+     0,     0,     0,     0,     0,    83,    84,     0,    72,   350,
+    15,     0,    73,    74,     0,     5,     6,     7,     8,    75,
+     0,     0,    76,     9,    10,    11,     0,    77,    78,    79,
+     0,     0,     0,    80,    81,     0,     0,     0,    82,    13,
+     0,    14,     0,     0,     0,     0,     5,     0,     7,   187,
+     0,     0,     0,     0,     9,    10,    11,     0,    83,    84,
+     0,     0,   503,   444,   514,     6,     7,     8,    69,    70,
+    13,    71,     9,    10,    11,   515,     0,   516,   517,   518,
+   519,   520,   521,   522,   523,   524,   525,   526,    13,    72,
+    14,    15,   180,    73,    74,     0,     5,     6,     7,     8,
+    75,   181,   182,    76,     9,    10,    11,     0,    77,    78,
+    79,     0,     0,     0,    80,    81,     0,     0,   291,    82,
+    13,     5,     6,     7,     8,     0,     0,   293,     0,     9,
+    10,    11,     0,     0,     0,     0,     0,   527,     0,    83,
+    84,     0,   246,   444,    60,    13,     0,    14,    69,    70,
+     0,    71,     0,     0,     0,   515,     0,   516,   517,   518,
+   519,   520,   521,   522,   523,   524,   525,   526,     0,    72,
+     0,    15,     0,    73,    74,     0,     0,     0,     0,     0,
+    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
+    79,     0,     0,  -382,    80,    81,     0,    68,     0,    82,
+     0,     0,    69,    70,     0,    71,   160,   161,   162,   163,
+   164,   165,   166,   167,   168,   169,   170,   527,     0,    83,
+    84,     0,   246,    72,     0,    15,     0,    73,    74,     0,
+     0,     0,     0,     0,    75,     0,     0,    76,     0,     0,
+     0,     0,    77,    78,    79,     0,     0,     0,    80,    81,
+     0,     0,     0,    82,    68,     5,     6,     7,     8,    69,
+    70,     0,    71,     9,    10,    11,     0,     0,     0,     0,
+     0,     0,     0,    83,    84,     0,   335,     0,     0,    13,
+    72,    14,    15,     0,    73,    74,     0,     0,     0,     0,
+     0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
+    78,    79,     0,     0,     0,    80,    81,     0,    68,     5,
+    82,     7,    96,    69,    70,     0,    71,     9,    10,    11,
+     0,    68,     0,     0,     0,     0,    69,    70,     0,    71,
+    83,    84,     0,    13,    72,     0,    15,     0,    73,    74,
+     0,     0,     0,     0,     0,    75,     0,    72,    76,    15,
+     0,    73,    74,    77,    78,    79,     0,     0,    75,    80,
+    81,    76,     0,     0,    82,     0,    77,    78,    79,     0,
+     0,     0,    80,    81,    68,     0,     0,    82,     0,    69,
+    70,     0,    71,     0,    83,    84,   162,   163,   164,   165,
+   166,   167,   168,   169,   170,   563,     0,    83,    84,     0,
+    72,    68,    15,     0,    73,    74,    69,    70,     0,    71,
+     0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
+    78,    79,     0,     0,     0,    80,    81,    72,    68,    15,
+    82,    73,    74,    69,    70,     0,    71,     0,    75,     0,
+     0,    76,     0,     0,     0,     0,    77,    78,    79,     0,
+    83,    84,    80,    81,    72,   354,    15,   150,    73,    74,
+    69,    70,     0,    71,     0,    75,     0,     0,    76,     0,
+     0,     0,     0,    77,    78,    79,     0,    83,    84,    80,
+    81,    72,     0,    15,   152,    73,    74,     0,     0,     0,
+     0,     0,    75,     0,     0,    76,     0,     0,     0,     0,
+    77,    78,    79,     0,    83,    84,    80,    81,     0,     0,
+     4,    82,  -118,     5,     6,     7,     8,     5,     0,     7,
+   187,     9,    10,    11,     0,     9,    10,    11,     0,     0,
+     0,    83,    84,     0,     0,     0,    12,    13,     0,    14,
+    15,    13,     0,     0,     0,     5,     6,     7,     8,     0,
+     0,     0,     0,     9,    10,    11,     0,     0,     0,  -118,
+     0,     0,     0,     0,     0,     0,     0,   544,  -118,    13,
+   156,    14,   157,   158,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,   168,   169,   170,    16,     0,     0,     0,
+  -267,  -267,   154,   155,   156,     0,   157,   158,   159,   160,
+   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
+     0,     0,     0,     0,     0,   154,   155,   156,   573,   157,
+   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+   168,   169,   170,     0,     0,     0,    14,     0,     0,   596,
+   545,   154,   155,   156,     0,   157,   158,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,   168,   169,   170,     0,
+     0,     0,     0,   613,   154,   155,   156,   597,   157,   158,
+   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
+   169,   170,   230,     0,     0,     5,     0,     7,    96,     0,
+     0,     0,     0,     9,    10,    11,   158,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,   168,   169,   170,    13,
+     0,     0,    15,   154,   155,   156,   639,   157,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+   170,   154,   155,   156,     0,   157,   158,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,   168,   169,   170,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+   170,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+   170
 };
 
-static const short yycheck[] = {    40,
-    41,     2,     3,     9,    10,    11,    20,    53,     2,     3,
-     2,     3,    51,   121,    22,     2,     3,   113,    74,    75,
-   212,   120,   102,   231,    80,   154,   116,    28,    59,   237,
-    86,    45,    22,    20,    28,    22,    28,   233,   219,    53,
-    96,    28,    21,    22,   194,   332,   184,   414,   117,    65,
-   190,    41,   286,    65,   107,   551,    62,     1,    45,     1,
-     9,     1,     3,   362,    51,     0,    53,     3,    10,     3,
-    76,   112,    59,    65,   631,    65,    38,    25,    38,     3,
-     4,     0,   492,    83,    38,    38,     3,     4,    59,    30,
-   104,   470,    28,    83,   108,   126,    30,   103,   377,   189,
-    48,   380,   210,   117,   661,     3,     4,   603,    56,    50,
-   489,    77,   102,    59,    76,    81,    50,   104,    59,    59,
-   107,   108,    76,    76,   220,    59,    60,    76,   144,   625,
-   117,   137,   144,   543,   630,   231,   632,    59,    82,   126,
-    82,   237,   292,   283,   185,   641,     5,   243,     7,   245,
-   191,   438,   144,   143,   144,   454,   225,   295,    82,   159,
-   229,   161,   141,   194,   143,    82,    30,   577,    76,   159,
-   580,   161,   120,    81,   408,   228,   182,   183,   674,     3,
-     4,    27,    77,   131,    82,   145,    81,   147,    77,    77,
-     3,     4,    81,   234,     7,    59,    60,   484,   608,   255,
-   567,     3,     4,     3,     4,     7,    30,   388,    59,    60,
-    50,   225,    30,    59,    60,   229,    30,    30,     3,    59,
-    60,   262,     7,    59,    38,    76,    50,   214,    30,    76,
-   640,     3,     4,   239,    81,    59,    60,    50,   225,     3,
-   369,   228,   229,     7,    82,    30,    59,    60,    50,   290,
-    50,    82,   433,    27,    82,   436,    30,    59,   396,   455,
-   400,   292,    36,     3,     4,    50,    30,     1,   418,    78,
-     4,    30,     6,     7,    59,    60,   224,    78,    12,    13,
-    14,    76,   362,   363,    76,   572,    50,   383,   294,    81,
-    30,    81,   388,   301,    28,    59,     9,    31,    38,   286,
-    59,    60,   401,    77,     3,     4,   314,    81,     7,   399,
-    50,   301,    59,   453,   301,   405,     7,   467,    76,    59,
-   460,   300,   301,     1,   314,    76,     4,     5,     6,     7,
-    81,    30,    10,    77,    12,    13,    14,    81,   434,   138,
-   436,    59,    60,    77,    78,   384,    76,   146,   362,   363,
-    28,    50,    77,    36,    59,    60,    81,   486,    76,    50,
-    59,     1,    77,    78,     4,     5,     6,     7,    59,    60,
-   416,    76,    12,    13,    14,   362,   363,    81,    76,   366,
-   509,   387,    77,    81,   374,    77,   400,   418,    28,    81,
-    76,     5,     6,     7,   373,   374,    76,   384,    12,    13,
-    14,    77,   416,    82,    82,    81,    76,   497,     4,     5,
-     6,     7,   620,   400,   622,   456,    12,    13,    14,    54,
-    55,   408,    57,    58,    59,    60,    77,   414,    77,   416,
-    81,    77,    28,   232,    30,    81,   467,   443,    38,   453,
-   454,     4,    82,     6,     7,   486,   460,    59,    60,    12,
-    13,    14,    59,   401,     4,     5,     6,     7,     1,    83,
-     3,     4,    12,    13,    14,    28,   453,   454,   509,    27,
-   476,    59,    60,   460,     9,   604,   668,    78,    28,   520,
-   486,    77,   538,    77,   676,   486,    78,    50,    77,    78,
-   598,    36,   486,    78,   486,    78,    59,    60,    76,   486,
-    59,    60,    76,   509,    50,    51,    52,    76,   549,    77,
-    78,   552,   553,    90,    91,   521,    38,    59,    60,   560,
-   528,   650,   651,   569,   620,    76,   622,    77,   567,   328,
-    83,   545,     3,     4,   575,   334,   335,   538,   528,    83,
-    76,   528,    76,   584,   538,    76,   538,    36,   527,   528,
-    83,   538,    78,    81,   595,   569,   158,    32,   545,    30,
-    38,   163,   164,   604,    83,    76,   168,   169,   170,   171,
-   172,   173,   174,   175,   176,   177,   178,   179,     3,    50,
-   567,    77,   569,   382,    78,    78,    38,    38,    59,     1,
-   631,    78,     4,     5,     6,     7,    81,    78,   604,    36,
-    12,    13,    14,   402,   403,   404,    83,   406,   407,    78,
-    38,     3,     4,    59,   655,    27,    28,    59,    30,    59,
-   661,    38,    77,    77,    36,     7,    16,    38,     1,    77,
-   429,     4,     5,     6,     7,    36,   238,    10,    30,    12,
-    13,    14,     4,    77,     6,     7,    78,    59,    60,    59,
-    12,    13,    14,     6,     7,    28,    77,    30,    50,    12,
-    13,    14,   264,   265,    77,    77,    28,    59,    59,    81,
-    82,    76,     1,   472,     3,     4,     5,     6,     7,     8,
-     9,    17,    11,    12,    13,    14,    15,    76,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-    29,    30,    31,    76,    33,    34,    77,   506,    77,    76,
-    36,    40,    76,     9,    43,    77,    78,    77,    77,    48,
-    49,    50,    77,    81,    59,    54,    55,    77,    76,    76,
-    59,    77,     1,    77,     0,     4,     5,     6,     7,     0,
-   295,   552,   344,    12,    13,    14,   220,   434,    77,    78,
-    79,    80,   538,    82,    55,   417,   197,   294,    27,    28,
-   424,    30,     1,   144,     3,     4,   245,    36,   241,     8,
-     9,   137,    11,   383,   376,   239,    15,   434,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,   391,
-    29,   389,    31,   436,    33,    34,   604,     4,     5,     6,
-     7,    40,   656,   658,    43,    12,    13,    14,    77,    48,
-    49,    50,    81,    82,   366,    54,    55,   604,    -1,   289,
-    59,    28,   424,    30,     1,    -1,   428,     4,    -1,     6,
-     7,    -1,    -1,    -1,    -1,    12,    13,    14,    77,    78,
-    79,    80,   444,    82,     3,     4,     5,     6,     7,   451,
-     1,    28,     3,     4,    31,     6,     7,     8,     9,    -1,
-    11,    12,    13,    14,     4,     5,     6,     7,   470,    -1,
-    77,   473,    12,    13,    14,    -1,    -1,    28,    29,    -1,
-    31,    -1,    33,    34,    -1,    -1,    -1,   489,    28,    40,
-   492,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    -1,    -1,     1,    59,     3,
-     4,     5,     6,     7,   516,    -1,    10,    -1,    12,    13,
-    14,    54,    55,    -1,    57,    58,    59,    60,    79,    80,
-    -1,    82,    -1,    -1,    28,    -1,    30,    -1,   540,    -1,
-    -1,   543,    -1,    76,     1,    -1,     3,     4,     5,     6,
-     7,     8,     9,    -1,    11,    12,    13,    14,    15,    -1,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,    30,    31,   577,    33,    34,   580,    -1,
-    -1,    27,    76,    40,    30,    -1,    43,    -1,   590,    -1,
-    36,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-    -1,    -1,    59,    -1,    -1,    -1,   608,    48,    49,    50,
-    51,    52,    -1,    59,    60,    -1,    -1,    -1,    -1,    -1,
-    77,    -1,    79,    80,    -1,    82,     1,    -1,     3,     4,
-    -1,    77,    -1,     8,     9,    81,    11,    -1,   640,    -1,
-    15,    -1,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,
-    -1,     4,     5,     6,     7,    40,    -1,    10,    43,    12,
+static const short yycheck[] = {    38,
+    39,    51,    27,    28,    29,    49,    20,     2,     3,     2,
+     3,   112,     2,     3,     2,     3,   115,   222,   120,     9,
+    10,    11,    22,   228,   203,   119,   145,   414,    57,    43,
+    20,   101,    22,   185,   224,   181,    31,    51,    31,    63,
+    22,    31,   106,    31,   379,   280,   358,    21,    22,     1,
+    75,   175,     1,    43,     7,    82,     1,    39,    10,    49,
+   133,    51,    73,    74,   133,     9,   210,    57,    79,    50,
+   495,   116,   111,    38,    85,     3,    27,   102,    59,    60,
+    38,   180,     3,     4,    95,     3,     4,    59,    60,   103,
+     3,     4,     0,   107,   637,   472,   125,    50,    38,   201,
+    82,   556,   116,    31,    76,   440,    59,    60,    59,    60,
+   211,    76,   137,   103,    59,   492,   106,   107,    76,   101,
+    30,   222,   547,   150,   667,   152,   116,   228,    38,    25,
+    82,   277,    76,    82,   286,   125,    76,   176,   133,    35,
+    36,    37,   373,   182,   456,   376,     3,     4,   173,   174,
+    46,   133,   487,     0,   609,   219,   185,   582,    54,    30,
+   585,    82,   235,    77,    82,   289,   235,    76,   150,    82,
+   152,   216,    81,   408,   223,   220,   631,    76,    30,    76,
+   229,   636,    81,   638,    81,   572,   225,    77,   237,   614,
+    77,    81,   647,    50,    81,     4,     5,     6,     7,    59,
+    60,    59,   216,    12,    13,    14,   220,    59,    60,     3,
+     4,    76,   236,     7,   238,   205,    76,   256,   243,    28,
+   321,   646,   323,   119,    59,   680,   216,    77,    76,   219,
+   220,    81,    30,    81,   130,    77,    30,    77,   249,    81,
+   235,    81,   577,    76,   388,   284,   365,    77,    81,    77,
+    78,    81,   234,   235,   400,    77,    50,   286,   232,    81,
+   234,    59,    60,   288,   149,    59,   418,   457,    77,   154,
+   155,     3,   396,    59,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,   168,   169,   170,    59,   388,   358,   359,
+   280,   435,     3,     4,   438,   295,     3,     4,    30,    77,
+   399,    59,    60,    81,   329,   295,   405,   401,   308,   455,
+    77,    59,    60,   295,    81,    81,   462,   469,    50,   215,
+   294,   295,     5,    30,     7,   426,   308,    59,    60,     3,
+     4,    38,   381,   382,     9,   436,   385,   438,    82,     4,
+     5,     6,     7,    50,   358,   359,    82,    12,    13,    14,
+     3,     4,    59,   402,   403,   404,    30,   406,   407,    50,
+    51,    52,   387,    28,    82,    30,   416,    76,   358,   359,
+   489,    76,   362,   258,   259,    27,    50,    30,    30,    59,
+    60,    59,   431,   427,    36,    59,   400,     1,   370,   418,
+     4,     5,     6,     7,   513,   369,   370,    50,    12,    13,
+    14,   500,   416,    76,     3,     4,    59,    60,     7,    78,
+   400,    78,    77,    27,    28,    76,    30,    76,   408,   458,
+   445,   626,    36,   628,   414,    77,   416,   476,    82,    81,
+     3,    30,    59,    60,     7,    77,     1,   427,     3,     4,
+   469,   455,   456,   328,    38,    59,    60,    59,   462,    76,
+   489,    50,    77,    78,   479,   340,    27,    30,     9,   508,
+    59,    60,    83,    77,   489,   455,   456,    81,    82,    77,
+    78,    77,   462,    36,   513,    54,    55,    50,    57,    58,
+    59,    60,    59,    60,    77,   524,    59,   372,   513,     3,
+    36,   610,    81,     7,   489,   674,   489,    76,    78,   489,
+   525,   489,   604,   682,   553,   401,   391,    45,    46,    47,
+    48,    49,    50,    51,    52,   554,    30,    76,   557,   558,
+    89,    90,    76,    76,   574,   626,   565,   628,   572,    38,
+    36,   542,   532,    76,    83,   549,    50,   656,   657,   424,
+    76,   580,   532,    83,    76,    59,    60,   542,    76,   542,
+   532,   590,   542,    83,   542,    78,     3,   531,   532,   549,
+   574,   446,   601,    78,    32,    78,    38,     1,   453,     3,
+     4,   610,     6,     7,     8,     9,    83,    11,    12,    13,
+    14,    76,   572,    30,   574,   610,     3,   472,    77,    81,
+   475,    78,    78,    78,    28,    29,    38,    31,   637,    33,
+    34,    38,    78,    50,    81,    78,    40,   492,    36,    43,
+   495,    78,    59,    83,    48,    49,    50,    38,    59,    59,
+    54,    55,   661,    59,   509,    59,     1,    38,   667,     4,
+     5,     6,     7,    77,    77,   520,     7,    12,    13,    14,
+    38,     4,     5,     6,     7,    79,    80,    10,    82,    12,
+    13,    14,    27,    28,    77,    30,    16,    77,    36,   544,
+    78,    36,   547,    59,    77,    28,     1,    30,     3,     4,
+     5,     6,     7,     8,     9,    77,    11,    12,    13,    14,
+    15,    76,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    28,    29,    30,    31,   582,    33,    34,
+   585,    59,    77,    17,    77,    40,    81,    82,    43,    76,
+    76,   596,    77,    48,    49,    50,    36,    76,     9,    54,
+    55,    77,    77,    77,    59,    59,     0,    77,     1,   614,
+    81,     4,     5,     6,     7,    76,    76,    10,    77,    12,
+    13,    14,    77,    78,    79,    80,     1,    82,     3,     4,
+     5,     6,     7,     8,     9,    28,    11,    12,    13,    14,
+    15,   646,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    28,    29,    30,    31,    77,    33,    34,
+   557,     0,   211,     3,     4,    40,   289,     7,    43,     5,
+     6,     7,   436,    48,    49,    50,    12,    13,    14,    54,
+    55,   542,    53,   188,    59,   288,   417,   424,     1,    82,
+    30,     4,     5,     6,     7,   331,   235,   426,   323,    12,
+    13,    14,    77,   436,    79,    80,     1,    82,     3,     4,
+    50,   243,   329,     8,     9,    28,    11,   389,   438,    59,
+    15,   610,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,   610,    29,   662,    31,   283,    33,    34,
+   664,   362,     5,     6,     7,    40,    -1,    -1,    43,    12,
     13,    14,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,    -1,    -1,    59,    28,    -1,    30,    -1,    -1,
-    -1,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
-    13,    14,    77,    -1,    79,    80,     1,    82,     3,     4,
-    -1,    -1,    -1,     8,     9,    28,    11,    30,    -1,    -1,
+    55,    -1,    -1,    -1,    59,     1,    -1,    30,     4,    82,
+     6,     7,    -1,    -1,     3,     4,    12,    13,    14,    -1,
+    -1,    -1,    77,    78,    79,    80,     1,    82,     3,     4,
+    -1,    -1,    28,     8,     9,    31,    11,    -1,    -1,    -1,
+    15,    30,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,
+    -1,    50,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
+    59,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
+    55,    77,    78,     1,    59,     3,     4,     5,     6,     7,
+    -1,    -1,    10,    -1,    12,    13,    14,     3,     4,     5,
+     6,     7,    77,    -1,    79,    80,     1,    82,     3,     4,
+    28,    -1,    30,     8,     9,    -1,    11,    -1,    -1,    -1,
     15,    -1,    17,    18,    19,    20,    21,    22,    23,    24,
     25,    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,
-    -1,    -1,     5,     6,     7,    40,    -1,    -1,    43,    12,
-    13,    14,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,    -1,     1,    59,     3,     4,    30,    -1,    -1,
-     8,     9,    -1,    11,    45,    46,    47,    48,    49,    50,
-    51,    52,    77,    -1,    79,    80,    -1,    82,    -1,    -1,
-    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
-    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    51,    52,    40,    -1,    27,    43,    -1,
+    30,    -1,    -1,    48,    49,    50,    36,    -1,    76,    54,
+    55,     6,     7,     1,    59,     3,     4,    12,    13,    14,
+     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    59,
+    60,    -1,    77,    -1,    79,    80,    -1,    82,    -1,    -1,
+    -1,    29,    -1,    31,    -1,    33,    34,    77,    -1,    -1,
+    -1,    81,    40,    54,    55,    43,    57,    58,    59,    60,
     48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
     58,    59,    60,     1,    -1,     3,     4,    -1,    -1,    -1,
      8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1100,25 +1085,25 @@ static const short yycheck[] = {    40,
     54,    55,     3,    -1,    -1,    59,    -1,     8,     9,    -1,
     11,    -1,    79,    80,    -1,    -1,    83,    -1,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    79,    80,    -1,    29,    83,
-    31,    -1,    33,    34,    10,    -1,    -1,    -1,    -1,    40,
-    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    35,
-    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    -1,    79,    80,
+    31,    -1,    33,    34,    -1,     4,     5,     6,     7,    40,
+    -1,    -1,    43,    12,    13,    14,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    28,
+    -1,    30,    -1,    -1,    -1,    -1,     4,    -1,     6,     7,
+    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    79,    80,
     -1,    -1,    83,     3,     4,     5,     6,     7,     8,     9,
-    -1,    11,    12,    13,    14,    15,    -1,    17,    18,    19,
+    28,    11,    12,    13,    14,    15,    -1,    17,    18,    19,
     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-    30,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    30,    -1,    -1,    54,    55,    35,    36,    37,    59,
-    39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-    49,    50,    51,    52,    -1,    -1,    -1,    77,    -1,    79,
-    80,    -1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
+    30,    31,    50,    33,    34,    -1,     4,     5,     6,     7,
+    40,    59,    60,    43,    12,    13,    14,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,     1,    59,
+    28,     4,     5,     6,     7,    -1,    -1,    10,    -1,    12,
+    13,    14,    -1,    -1,    -1,    -1,    -1,    77,    -1,    79,
+    80,    -1,    82,     3,     4,    28,    -1,    30,     8,     9,
     -1,    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,
     20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
     -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
     40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,
+    50,    -1,    -1,    76,    54,    55,    -1,     3,    -1,    59,
     -1,    -1,     8,     9,    -1,    11,    42,    43,    44,    45,
     46,    47,    48,    49,    50,    51,    52,    77,    -1,    79,
     80,    -1,    82,    29,    -1,    31,    -1,    33,    34,    -1,
@@ -1150,27 +1135,36 @@ static const short yycheck[] = {    40,
     55,    29,    -1,    31,    59,    33,    34,    -1,    -1,    -1,
     -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
     48,    49,    50,    -1,    79,    80,    54,    55,    -1,    -1,
-     1,    59,     3,     4,     5,     6,     7,    -1,    -1,    -1,
-    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
+     1,    59,     3,     4,     5,     6,     7,     4,    -1,     6,
+     7,    12,    13,    14,    -1,    12,    13,    14,    -1,    -1,
     -1,    79,    80,    -1,    -1,    -1,    27,    28,    -1,    30,
-    31,    37,    -1,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    -1,    10,    50,
-    -1,    -1,    -1,    -1,    -1,    35,    36,    37,    59,    39,
-    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-    50,    51,    52,    35,    36,    37,    77,    39,    40,    41,
-    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-    52,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    35,    36,    37,    83,    39,    40,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
-    -1,    83,    35,    36,    37,    38,    39,    40,    41,    42,
+    31,    28,    -1,    -1,    -1,     4,     5,     6,     7,    -1,
+    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    50,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    59,    28,
+    37,    30,    39,    40,    41,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    77,    -1,    -1,    -1,
+    77,    78,    35,    36,    37,    -1,    39,    40,    41,    42,
     43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+    -1,    -1,    -1,    -1,    -1,    35,    36,    37,    77,    39,
     40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-    50,    51,    52,    41,    42,    43,    44,    45,    46,    47,
-    48,    49,    50,    51,    52,    43,    44,    45,    46,    47,
-    48,    49,    50,    51,    52
+    50,    51,    52,    -1,    -1,    -1,    30,    -1,    -1,    10,
+    83,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    -1,
+    -1,    -1,    -1,    83,    35,    36,    37,    38,    39,    40,
+    41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+    51,    52,     1,    -1,    -1,     4,    -1,     6,     7,    -1,
+    -1,    -1,    -1,    12,    13,    14,    40,    41,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    28,
+    -1,    -1,    31,    35,    36,    37,    38,    39,    40,    41,
+    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    41,
+    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+    52
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/cygnus/latest-940103/share/bison.simple"
+#line 3 "/usr/lib/bison.simple"
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -1363,7 +1357,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/cygnus/latest-940103/share/bison.simple"
+#line 196 "/usr/lib/bison.simple"
 
 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
    into yyparse.  The argument should have type void *.
@@ -1668,14 +1662,14 @@ yyreduce:
   switch (yyn) {
 
 case 1:
-#line 240 "c-parse.y"
+#line 234 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids an empty source file");
                  finish_file ();
                ;
     break;}
 case 2:
-#line 245 "c-parse.y"
+#line 239 "c-parse.y"
 {
                  /* In case there were missing closebraces,
                     get us back to the global binding level.  */
@@ -1685,15 +1679,15 @@ case 2:
                ;
     break;}
 case 3:
-#line 259 "c-parse.y"
+#line 253 "c-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 5:
-#line 260 "c-parse.y"
+#line 254 "c-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 9:
-#line 267 "c-parse.y"
+#line 261 "c-parse.y"
 { STRIP_NOPS (yyvsp[-2].ttype);
                  if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
                       && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
@@ -1703,11 +1697,11 @@ case 9:
                    error ("argument of `asm' is not a constant string"); ;
     break;}
 case 10:
-#line 275 "c-parse.y"
+#line 269 "c-parse.y"
 { pedantic = yyvsp[-1].itype; ;
     break;}
 case 11:
-#line 280 "c-parse.y"
+#line 274 "c-parse.y"
 { if (pedantic)
                    error ("ANSI C forbids data definition with no type or storage class");
                  else if (!flag_traditional)
@@ -1719,45 +1713,45 @@ case 11:
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 12:
-#line 290 "c-parse.y"
+#line 284 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 13:
-#line 295 "c-parse.y"
+#line 289 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
 case 14:
-#line 300 "c-parse.y"
+#line 294 "c-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 15:
-#line 302 "c-parse.y"
+#line 296 "c-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 18:
-#line 306 "c-parse.y"
+#line 300 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
     break;}
 case 19:
-#line 312 "c-parse.y"
+#line 306 "c-parse.y"
 { if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 0))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
 case 20:
-#line 317 "c-parse.y"
+#line 311 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 21:
-#line 319 "c-parse.y"
+#line 313 "c-parse.y"
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -1765,25 +1759,25 @@ case 21:
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 22:
-#line 325 "c-parse.y"
+#line 319 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 23:
-#line 330 "c-parse.y"
+#line 324 "c-parse.y"
 { if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 0))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
 case 24:
-#line 335 "c-parse.y"
+#line 329 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 25:
-#line 337 "c-parse.y"
+#line 331 "c-parse.y"
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -1791,25 +1785,25 @@ case 25:
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 26:
-#line 343 "c-parse.y"
+#line 337 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 27:
-#line 348 "c-parse.y"
+#line 342 "c-parse.y"
 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 0))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
 case 28:
-#line 353 "c-parse.y"
+#line 347 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 29:
-#line 355 "c-parse.y"
+#line 349 "c-parse.y"
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -1817,72 +1811,72 @@ case 29:
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 30:
-#line 361 "c-parse.y"
+#line 355 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 33:
-#line 373 "c-parse.y"
+#line 367 "c-parse.y"
 { yyval.code = ADDR_EXPR; ;
     break;}
 case 34:
-#line 375 "c-parse.y"
+#line 369 "c-parse.y"
 { yyval.code = NEGATE_EXPR; ;
     break;}
 case 35:
-#line 377 "c-parse.y"
+#line 371 "c-parse.y"
 { yyval.code = CONVERT_EXPR; ;
     break;}
 case 36:
-#line 379 "c-parse.y"
+#line 373 "c-parse.y"
 { yyval.code = PREINCREMENT_EXPR; ;
     break;}
 case 37:
-#line 381 "c-parse.y"
+#line 375 "c-parse.y"
 { yyval.code = PREDECREMENT_EXPR; ;
     break;}
 case 38:
-#line 383 "c-parse.y"
+#line 377 "c-parse.y"
 { yyval.code = BIT_NOT_EXPR; ;
     break;}
 case 39:
-#line 385 "c-parse.y"
+#line 379 "c-parse.y"
 { yyval.code = TRUTH_NOT_EXPR; ;
     break;}
 case 40:
-#line 389 "c-parse.y"
+#line 383 "c-parse.y"
 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
     break;}
 case 41:
-#line 394 "c-parse.y"
+#line 388 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 43:
-#line 400 "c-parse.y"
+#line 394 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 44:
-#line 402 "c-parse.y"
+#line 396 "c-parse.y"
 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 46:
-#line 408 "c-parse.y"
+#line 402 "c-parse.y"
 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
     break;}
 case 47:
-#line 411 "c-parse.y"
+#line 405 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  pedantic = yyvsp[-1].itype; ;
     break;}
 case 48:
-#line 414 "c-parse.y"
+#line 408 "c-parse.y"
 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
                  overflow_warning (yyval.ttype); ;
     break;}
 case 49:
-#line 418 "c-parse.y"
+#line 412 "c-parse.y"
 { tree label = lookup_label (yyvsp[0].ttype);
                  if (pedantic)
                    pedwarn ("ANSI C forbids `&&'");
@@ -1897,7 +1891,7 @@ case 49:
                ;
     break;}
 case 50:
-#line 446 "c-parse.y"
+#line 440 "c-parse.y"
 { skip_evaluation--;
                  if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
                      && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
@@ -1905,49 +1899,49 @@ case 50:
                  yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
     break;}
 case 51:
-#line 452 "c-parse.y"
+#line 446 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 52:
-#line 455 "c-parse.y"
+#line 449 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
     break;}
 case 53:
-#line 458 "c-parse.y"
+#line 452 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 54:
-#line 461 "c-parse.y"
+#line 455 "c-parse.y"
 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
     break;}
 case 55:
-#line 463 "c-parse.y"
+#line 457 "c-parse.y"
 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
     break;}
 case 56:
-#line 467 "c-parse.y"
+#line 461 "c-parse.y"
 { skip_evaluation++; ;
     break;}
 case 57:
-#line 471 "c-parse.y"
+#line 465 "c-parse.y"
 { skip_evaluation++; ;
     break;}
 case 59:
-#line 477 "c-parse.y"
+#line 471 "c-parse.y"
 { tree type = groktypename (yyvsp[-2].ttype);
                  yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
     break;}
 case 60:
-#line 480 "c-parse.y"
+#line 474 "c-parse.y"
 { start_init (NULL_TREE, NULL, 0);
                  yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
                  really_start_incremental_init (yyvsp[-2].ttype); ;
     break;}
 case 61:
-#line 484 "c-parse.y"
+#line 478 "c-parse.y"
 { char *name;
                  tree result = pop_init_level (0);
                  tree type = yyvsp[-5].ttype;
@@ -1974,90 +1968,90 @@ case 61:
                ;
     break;}
 case 63:
-#line 513 "c-parse.y"
+#line 507 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 64:
-#line 515 "c-parse.y"
+#line 509 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 65:
-#line 517 "c-parse.y"
+#line 511 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 66:
-#line 519 "c-parse.y"
+#line 513 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 67:
-#line 521 "c-parse.y"
+#line 515 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 68:
-#line 523 "c-parse.y"
+#line 517 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 69:
-#line 525 "c-parse.y"
+#line 519 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 70:
-#line 527 "c-parse.y"
+#line 521 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 71:
-#line 529 "c-parse.y"
+#line 523 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 72:
-#line 531 "c-parse.y"
+#line 525 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 73:
-#line 533 "c-parse.y"
+#line 527 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 74:
-#line 535 "c-parse.y"
+#line 529 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 75:
-#line 537 "c-parse.y"
+#line 531 "c-parse.y"
 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
                  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
     break;}
 case 76:
-#line 540 "c-parse.y"
+#line 534 "c-parse.y"
 { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
                  yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
     break;}
 case 77:
-#line 543 "c-parse.y"
+#line 537 "c-parse.y"
 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
                  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
     break;}
 case 78:
-#line 546 "c-parse.y"
+#line 540 "c-parse.y"
 { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
                  yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
     break;}
 case 79:
-#line 549 "c-parse.y"
+#line 543 "c-parse.y"
 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
                  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
     break;}
 case 80:
-#line 552 "c-parse.y"
+#line 546 "c-parse.y"
 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
                                      - (yyvsp[-4].ttype == boolean_false_node)); ;
     break;}
 case 81:
-#line 555 "c-parse.y"
+#line 549 "c-parse.y"
 { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
                  yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
     break;}
 case 82:
-#line 558 "c-parse.y"
+#line 552 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
                  /* Make sure first operand is calculated only once.  */
@@ -2066,23 +2060,23 @@ case 82:
                  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
     break;}
 case 83:
-#line 565 "c-parse.y"
+#line 559 "c-parse.y"
 { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
                  yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
     break;}
 case 84:
-#line 568 "c-parse.y"
+#line 562 "c-parse.y"
 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
                  C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
     break;}
 case 85:
-#line 571 "c-parse.y"
+#line 565 "c-parse.y"
 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
                  /* This inhibits warnings in truthvalue_conversion.  */
                  C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
     break;}
 case 86:
-#line 578 "c-parse.y"
+#line 572 "c-parse.y"
 {
                  yyval.ttype = lastiddecl;
                  if (!yyval.ttype || yyval.ttype == error_mark_node)
@@ -2110,7 +2104,7 @@ case 86:
                              if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
                                  || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
                                {
-                                 error ("`%s' undeclared (first use this function)",
+                                 error ("`%s' undeclared (first use in this function)",
                                         IDENTIFIER_POINTER (yyvsp[0].ttype));
 
                                  if (! undeclared_variable_notice)
@@ -2182,11 +2176,11 @@ case 86:
                ;
     break;}
 case 88:
-#line 677 "c-parse.y"
+#line 671 "c-parse.y"
 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
     break;}
 case 89:
-#line 679 "c-parse.y"
+#line 673 "c-parse.y"
 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
                  if (class == 'e' || class == '1'
                      || class == '2' || class == '<')
@@ -2194,11 +2188,11 @@ case 89:
                  yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 90:
-#line 685 "c-parse.y"
+#line 679 "c-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 91:
-#line 687 "c-parse.y"
+#line 681 "c-parse.y"
 { if (current_function_decl == 0)
                    {
                      error ("braced-group within expression allowed only inside a function");
@@ -2214,7 +2208,7 @@ case 91:
                  yyval.ttype = expand_start_stmt_expr (); ;
     break;}
 case 92:
-#line 701 "c-parse.y"
+#line 695 "c-parse.y"
 { tree rtl_exp;
                  if (pedantic)
                    pedwarn ("ANSI C forbids braced-groups within expressions");
@@ -2239,21 +2233,21 @@ case 92:
                ;
     break;}
 case 93:
-#line 724 "c-parse.y"
+#line 718 "c-parse.y"
 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 94:
-#line 726 "c-parse.y"
+#line 720 "c-parse.y"
 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 95:
-#line 728 "c-parse.y"
+#line 722 "c-parse.y"
 {
                    yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
 case 96:
-#line 732 "c-parse.y"
+#line 726 "c-parse.y"
 {
                   tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
 
@@ -2261,56 +2255,56 @@ case 96:
                ;
     break;}
 case 97:
-#line 738 "c-parse.y"
+#line 732 "c-parse.y"
 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
 case 98:
-#line 740 "c-parse.y"
+#line 734 "c-parse.y"
 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
 case 100:
-#line 747 "c-parse.y"
+#line 741 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 103:
-#line 756 "c-parse.y"
+#line 750 "c-parse.y"
 { c_mark_varargs ();
                  if (pedantic)
                    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
     break;}
 case 104:
-#line 766 "c-parse.y"
+#line 760 "c-parse.y"
 { ;
     break;}
 case 109:
-#line 782 "c-parse.y"
+#line 776 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 110:
-#line 787 "c-parse.y"
+#line 781 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);     
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 111:
-#line 792 "c-parse.y"
+#line 786 "c-parse.y"
 { shadow_tag_warned (yyvsp[-1].ttype, 1);
                  pedwarn ("empty declaration"); ;
     break;}
 case 112:
-#line 795 "c-parse.y"
+#line 789 "c-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 113:
-#line 804 "c-parse.y"
+#line 798 "c-parse.y"
 { ;
     break;}
 case 118:
-#line 819 "c-parse.y"
+#line 813 "c-parse.y"
 { yyval.itype = suspend_momentary ();
                  pending_xref_error ();
                  declspec_stack = tree_cons (prefix_attributes,
@@ -2320,131 +2314,131 @@ case 118:
                                     &current_declspecs, &prefix_attributes); ;
     break;}
 case 119:
-#line 830 "c-parse.y"
+#line 824 "c-parse.y"
 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
     break;}
 case 120:
-#line 835 "c-parse.y"
+#line 829 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 121:
-#line 840 "c-parse.y"
+#line 834 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 122:
-#line 845 "c-parse.y"
+#line 839 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 123:
-#line 850 "c-parse.y"
+#line 844 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 124:
-#line 855 "c-parse.y"
+#line 849 "c-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 125:
-#line 857 "c-parse.y"
+#line 851 "c-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 126:
-#line 859 "c-parse.y"
+#line 853 "c-parse.y"
 { pedantic = yyvsp[-1].itype; ;
     break;}
 case 127:
-#line 869 "c-parse.y"
+#line 863 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 128:
-#line 871 "c-parse.y"
+#line 865 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 129:
-#line 875 "c-parse.y"
+#line 869 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 130:
-#line 877 "c-parse.y"
+#line 871 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 131:
-#line 879 "c-parse.y"
+#line 873 "c-parse.y"
 { if (extra_warnings)
                    warning ("`%s' is not at beginning of declaration",
                             IDENTIFIER_POINTER (yyvsp[0].ttype));
                  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 132:
-#line 884 "c-parse.y"
+#line 878 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 133:
-#line 889 "c-parse.y"
+#line 883 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 134:
-#line 891 "c-parse.y"
+#line 885 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 135:
-#line 896 "c-parse.y"
+#line 890 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 136:
-#line 898 "c-parse.y"
+#line 892 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 137:
-#line 900 "c-parse.y"
+#line 894 "c-parse.y"
 { if (extra_warnings)
                    warning ("`%s' is not at beginning of declaration",
                             IDENTIFIER_POINTER (yyvsp[0].ttype));
                  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 138:
-#line 913 "c-parse.y"
+#line 907 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 139:
-#line 915 "c-parse.y"
+#line 909 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
     break;}
 case 140:
-#line 917 "c-parse.y"
+#line 911 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 141:
-#line 919 "c-parse.y"
+#line 913 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 142:
-#line 924 "c-parse.y"
+#line 918 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
 case 143:
-#line 927 "c-parse.y"
+#line 921 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 144:
-#line 929 "c-parse.y"
+#line 923 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
 case 145:
-#line 932 "c-parse.y"
+#line 926 "c-parse.y"
 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
                    warning ("`%s' is not at beginning of declaration",
                             IDENTIFIER_POINTER (yyvsp[0].ttype));
@@ -2452,138 +2446,138 @@ case 145:
                  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
     break;}
 case 146:
-#line 946 "c-parse.y"
+#line 940 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 147:
-#line 948 "c-parse.y"
+#line 942 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 148:
-#line 952 "c-parse.y"
+#line 946 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 149:
-#line 954 "c-parse.y"
+#line 948 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 152:
-#line 964 "c-parse.y"
+#line 958 "c-parse.y"
 { /* For a typedef name, record the meaning, not the name.
                     In case of `foo foo, bar;'.  */
                  yyval.ttype = lookup_name (yyvsp[0].ttype); ;
     break;}
 case 153:
-#line 968 "c-parse.y"
+#line 962 "c-parse.y"
 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
     break;}
 case 154:
-#line 970 "c-parse.y"
+#line 964 "c-parse.y"
 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
     break;}
 case 162:
-#line 992 "c-parse.y"
+#line 986 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 163:
-#line 994 "c-parse.y"
+#line 988 "c-parse.y"
 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
 case 164:
-#line 1001 "c-parse.y"
+#line 995 "c-parse.y"
 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
                                          yyvsp[-1].ttype, prefix_attributes);
                  start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
     break;}
 case 165:
-#line 1006 "c-parse.y"
+#line 1000 "c-parse.y"
 { finish_init ();
                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
     break;}
 case 166:
-#line 1009 "c-parse.y"
+#line 1003 "c-parse.y"
 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
                                       yyvsp[0].ttype, prefix_attributes);
                  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); 
                 ;
     break;}
 case 167:
-#line 1017 "c-parse.y"
+#line 1011 "c-parse.y"
 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
                                          yyvsp[-1].ttype, prefix_attributes);
                  start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
     break;}
 case 168:
-#line 1022 "c-parse.y"
+#line 1016 "c-parse.y"
 { finish_init ();
                  decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
     break;}
 case 169:
-#line 1026 "c-parse.y"
+#line 1020 "c-parse.y"
 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
                                       yyvsp[0].ttype, prefix_attributes);
                  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 170:
-#line 1034 "c-parse.y"
+#line 1028 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 171:
-#line 1036 "c-parse.y"
+#line 1030 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 172:
-#line 1041 "c-parse.y"
+#line 1035 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 173:
-#line 1043 "c-parse.y"
+#line 1037 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 174:
-#line 1048 "c-parse.y"
+#line 1042 "c-parse.y"
 { yyval.ttype = yyvsp[-2].ttype; ;
     break;}
 case 175:
-#line 1053 "c-parse.y"
+#line 1047 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 176:
-#line 1055 "c-parse.y"
+#line 1049 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 177:
-#line 1060 "c-parse.y"
+#line 1054 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 178:
-#line 1062 "c-parse.y"
+#line 1056 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 179:
-#line 1064 "c-parse.y"
+#line 1058 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
     break;}
 case 180:
-#line 1066 "c-parse.y"
+#line 1060 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
     break;}
 case 181:
-#line 1068 "c-parse.y"
+#line 1062 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 187:
-#line 1086 "c-parse.y"
+#line 1080 "c-parse.y"
 { really_start_incremental_init (NULL_TREE);
                  /* Note that the call to clear_momentary
                     is in process_init_element.  */
                  push_momentary (); ;
     break;}
 case 188:
-#line 1091 "c-parse.y"
+#line 1085 "c-parse.y"
 { yyval.ttype = pop_init_level (0);
                  if (yyval.ttype == error_mark_node
                      && ! (yychar == STRING || yychar == CONSTANT))
@@ -2592,48 +2586,48 @@ case 188:
                    pop_momentary_nofree (); ;
     break;}
 case 189:
-#line 1099 "c-parse.y"
+#line 1093 "c-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 190:
-#line 1105 "c-parse.y"
+#line 1099 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids empty initializer braces"); ;
     break;}
 case 194:
-#line 1119 "c-parse.y"
+#line 1113 "c-parse.y"
 { process_init_element (yyvsp[0].ttype); ;
     break;}
 case 195:
-#line 1121 "c-parse.y"
+#line 1115 "c-parse.y"
 { push_init_level (0); ;
     break;}
 case 196:
-#line 1123 "c-parse.y"
+#line 1117 "c-parse.y"
 { process_init_element (pop_init_level (0)); ;
     break;}
 case 198:
-#line 1129 "c-parse.y"
+#line 1123 "c-parse.y"
 { set_init_index (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
     break;}
 case 200:
-#line 1132 "c-parse.y"
+#line 1126 "c-parse.y"
 { set_init_index (yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 202:
-#line 1135 "c-parse.y"
+#line 1129 "c-parse.y"
 { set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
     break;}
 case 204:
-#line 1138 "c-parse.y"
+#line 1132 "c-parse.y"
 { set_init_label (yyvsp[-1].ttype); ;
     break;}
 case 206:
-#line 1141 "c-parse.y"
+#line 1135 "c-parse.y"
 { set_init_label (yyvsp[-1].ttype); ;
     break;}
 case 208:
-#line 1147 "c-parse.y"
+#line 1141 "c-parse.y"
 { push_c_function_context ();
                  if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 1))
@@ -2644,16 +2638,16 @@ case 208:
                  reinit_parse_for_function (); ;
     break;}
 case 209:
-#line 1156 "c-parse.y"
+#line 1150 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 210:
-#line 1164 "c-parse.y"
+#line 1158 "c-parse.y"
 { finish_function (1);
                  pop_c_function_context (); ;
     break;}
 case 211:
-#line 1170 "c-parse.y"
+#line 1164 "c-parse.y"
 { push_c_function_context ();
                  if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 1))
@@ -2664,328 +2658,352 @@ case 211:
                  reinit_parse_for_function (); ;
     break;}
 case 212:
-#line 1179 "c-parse.y"
+#line 1173 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 213:
-#line 1187 "c-parse.y"
+#line 1181 "c-parse.y"
 { finish_function (1);
                  pop_c_function_context (); ;
     break;}
 case 216:
-#line 1203 "c-parse.y"
+#line 1197 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 217:
-#line 1205 "c-parse.y"
+#line 1199 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 218:
-#line 1210 "c-parse.y"
+#line 1204 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 219:
-#line 1212 "c-parse.y"
+#line 1206 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 220:
-#line 1214 "c-parse.y"
+#line 1208 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 221:
-#line 1221 "c-parse.y"
+#line 1215 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 223:
-#line 1232 "c-parse.y"
+#line 1226 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 224:
-#line 1237 "c-parse.y"
+#line 1231 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 225:
-#line 1239 "c-parse.y"
+#line 1233 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 226:
-#line 1241 "c-parse.y"
+#line 1235 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 227:
-#line 1248 "c-parse.y"
+#line 1242 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 229:
-#line 1257 "c-parse.y"
+#line 1251 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 230:
-#line 1262 "c-parse.y"
+#line 1256 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 231:
-#line 1264 "c-parse.y"
+#line 1258 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 232:
-#line 1266 "c-parse.y"
+#line 1260 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 233:
-#line 1268 "c-parse.y"
+#line 1262 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 234:
-#line 1275 "c-parse.y"
+#line 1269 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 236:
-#line 1281 "c-parse.y"
+#line 1275 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 237:
+#line 1277 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 238:
+#line 1282 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 239:
+#line 1284 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 240:
+#line 1289 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 241:
+#line 1291 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 242:
+#line 1296 "c-parse.y"
 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
                  /* Start scope of tag before parsing components.  */
                ;
     break;}
-case 237:
-#line 1285 "c-parse.y"
-{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+case 243:
+#line 1300 "c-parse.y"
+{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
     break;}
-case 238:
-#line 1287 "c-parse.y"
+case 244:
+#line 1302 "c-parse.y"
 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
-                                     yyvsp[-2].ttype, yyvsp[0].ttype);
+                                     yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
                ;
     break;}
-case 239:
-#line 1291 "c-parse.y"
+case 245:
+#line 1306 "c-parse.y"
 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
     break;}
-case 240:
-#line 1293 "c-parse.y"
+case 246:
+#line 1308 "c-parse.y"
 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
     break;}
-case 241:
-#line 1295 "c-parse.y"
-{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+case 247:
+#line 1310 "c-parse.y"
+{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
     break;}
-case 242:
-#line 1297 "c-parse.y"
+case 248:
+#line 1312 "c-parse.y"
 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
-                                     yyvsp[-2].ttype, yyvsp[0].ttype);
+                                     yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
                ;
     break;}
-case 243:
-#line 1301 "c-parse.y"
+case 249:
+#line 1316 "c-parse.y"
 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
     break;}
-case 244:
-#line 1303 "c-parse.y"
+case 250:
+#line 1318 "c-parse.y"
 { yyvsp[0].itype = suspend_momentary ();
                  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
     break;}
-case 245:
-#line 1306 "c-parse.y"
-{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
+case 251:
+#line 1321 "c-parse.y"
+{ yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype));
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
-case 246:
-#line 1309 "c-parse.y"
+case 252:
+#line 1324 "c-parse.y"
 { yyvsp[0].itype = suspend_momentary ();
                  yyval.ttype = start_enum (NULL_TREE); ;
     break;}
-case 247:
-#line 1312 "c-parse.y"
-{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
+case 253:
+#line 1327 "c-parse.y"
+{ yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype));
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
-case 248:
-#line 1315 "c-parse.y"
+case 254:
+#line 1330 "c-parse.y"
 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
     break;}
-case 252:
-#line 1326 "c-parse.y"
+case 258:
+#line 1341 "c-parse.y"
 { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
     break;}
-case 253:
-#line 1331 "c-parse.y"
+case 259:
+#line 1346 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 254:
-#line 1333 "c-parse.y"
+case 260:
+#line 1348 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                  pedwarn ("no semicolon at end of struct or union"); ;
     break;}
-case 255:
-#line 1338 "c-parse.y"
+case 261:
+#line 1353 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 256:
-#line 1340 "c-parse.y"
+case 262:
+#line 1355 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
     break;}
-case 257:
-#line 1342 "c-parse.y"
+case 263:
+#line 1357 "c-parse.y"
 { if (pedantic)
                    pedwarn ("extra semicolon in struct or union specified"); ;
     break;}
-case 258:
-#line 1357 "c-parse.y"
+case 264:
+#line 1372 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
-case 259:
-#line 1363 "c-parse.y"
+case 265:
+#line 1378 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids member declarations with no members");
                  shadow_tag(yyvsp[0].ttype);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 260:
-#line 1368 "c-parse.y"
+case 266:
+#line 1383 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
-case 261:
-#line 1374 "c-parse.y"
+case 267:
+#line 1389 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids member declarations with no members");
                  shadow_tag(yyvsp[0].ttype);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 262:
-#line 1379 "c-parse.y"
+case 268:
+#line 1394 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 263:
-#line 1381 "c-parse.y"
+case 269:
+#line 1396 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  pedantic = yyvsp[-1].itype; ;
     break;}
-case 265:
-#line 1388 "c-parse.y"
+case 271:
+#line 1403 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 266:
-#line 1393 "c-parse.y"
+case 272:
+#line 1408 "c-parse.y"
 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
                  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
-case 267:
-#line 1397 "c-parse.y"
+case 273:
+#line 1412 "c-parse.y"
 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
                  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
-case 268:
-#line 1400 "c-parse.y"
+case 274:
+#line 1415 "c-parse.y"
 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
                  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
-case 270:
-#line 1412 "c-parse.y"
+case 276:
+#line 1427 "c-parse.y"
 { if (yyvsp[-2].ttype == error_mark_node)
                    yyval.ttype = yyvsp[-2].ttype;
                  else
                    yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
     break;}
-case 271:
-#line 1417 "c-parse.y"
+case 277:
+#line 1432 "c-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
-case 272:
-#line 1423 "c-parse.y"
+case 278:
+#line 1438 "c-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 273:
-#line 1425 "c-parse.y"
+case 279:
+#line 1440 "c-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 274:
-#line 1430 "c-parse.y"
+case 280:
+#line 1445 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 275:
-#line 1432 "c-parse.y"
+case 281:
+#line 1447 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 276:
-#line 1437 "c-parse.y"
+case 282:
+#line 1452 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 278:
-#line 1443 "c-parse.y"
+case 284:
+#line 1458 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 279:
-#line 1445 "c-parse.y"
+case 285:
+#line 1460 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 280:
-#line 1450 "c-parse.y"
+case 286:
+#line 1465 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 281:
-#line 1452 "c-parse.y"
+case 287:
+#line 1467 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 282:
-#line 1457 "c-parse.y"
+case 288:
+#line 1472 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
-case 283:
-#line 1460 "c-parse.y"
+case 289:
+#line 1475 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 284:
-#line 1462 "c-parse.y"
+case 290:
+#line 1477 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 285:
-#line 1464 "c-parse.y"
+case 291:
+#line 1479 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 286:
-#line 1466 "c-parse.y"
+case 292:
+#line 1481 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 287:
-#line 1468 "c-parse.y"
+case 293:
+#line 1483 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
-case 288:
-#line 1470 "c-parse.y"
+case 294:
+#line 1485 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 289:
-#line 1472 "c-parse.y"
+case 295:
+#line 1487 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 290:
-#line 1474 "c-parse.y"
+case 296:
+#line 1489 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
     break;}
-case 291:
-#line 1485 "c-parse.y"
+case 297:
+#line 1500 "c-parse.y"
 {
                  if (pedantic && yyvsp[0].ends_in_label)
                    pedwarn ("ANSI C forbids label at end of compound statement");
                ;
     break;}
-case 293:
-#line 1494 "c-parse.y"
+case 299:
+#line 1509 "c-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
-case 294:
-#line 1496 "c-parse.y"
+case 300:
+#line 1511 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 298:
-#line 1508 "c-parse.y"
+case 304:
+#line 1523 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  pushlevel (0);
                  clear_last_expr ();
@@ -2993,13 +3011,13 @@ case 298:
                  expand_start_bindings (0);
                ;
     break;}
-case 300:
-#line 1521 "c-parse.y"
+case 306:
+#line 1536 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids label declarations"); ;
     break;}
-case 303:
-#line 1532 "c-parse.y"
+case 309:
+#line 1547 "c-parse.y"
 { tree link;
                  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
                    {
@@ -3009,20 +3027,20 @@ case 303:
                    }
                ;
     break;}
-case 304:
-#line 1546 "c-parse.y"
+case 310:
+#line 1561 "c-parse.y"
 {;
     break;}
-case 306:
-#line 1550 "c-parse.y"
+case 312:
+#line 1565 "c-parse.y"
 { compstmt_count++; ;
     break;}
-case 307:
-#line 1553 "c-parse.y"
+case 313:
+#line 1568 "c-parse.y"
 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
     break;}
-case 308:
-#line 1555 "c-parse.y"
+case 314:
+#line 1570 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), 1, 0);
                  yyval.ttype = poplevel (1, 1, 0);
@@ -3031,8 +3049,8 @@ case 308:
                  else
                    pop_momentary (); ;
     break;}
-case 309:
-#line 1563 "c-parse.y"
+case 315:
+#line 1578 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3041,8 +3059,8 @@ case 309:
                  else
                    pop_momentary (); ;
     break;}
-case 310:
-#line 1571 "c-parse.y"
+case 316:
+#line 1586 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3051,8 +3069,8 @@ case 310:
                  else
                    pop_momentary (); ;
     break;}
-case 313:
-#line 1591 "c-parse.y"
+case 319:
+#line 1606 "c-parse.y"
 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, 
                                       compstmt_count);
@@ -3061,8 +3079,8 @@ case 313:
                  if_stmt_line = yyvsp[-4].lineno;
                  position_after_white_space (); ;
     break;}
-case 314:
-#line 1605 "c-parse.y"
+case 320:
+#line 1620 "c-parse.y"
 { stmt_count++;
                  compstmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
@@ -3071,44 +3089,44 @@ case 314:
                  expand_start_loop_continue_elsewhere (1);
                  position_after_white_space (); ;
     break;}
-case 315:
-#line 1613 "c-parse.y"
+case 321:
+#line 1628 "c-parse.y"
 { expand_loop_continue_here (); ;
     break;}
-case 316:
-#line 1617 "c-parse.y"
+case 322:
+#line 1632 "c-parse.y"
 { yyval.filename = input_filename; ;
     break;}
-case 317:
-#line 1621 "c-parse.y"
+case 323:
+#line 1636 "c-parse.y"
 { yyval.lineno = lineno; ;
     break;}
-case 318:
-#line 1626 "c-parse.y"
+case 324:
+#line 1641 "c-parse.y"
 { ;
     break;}
-case 319:
-#line 1631 "c-parse.y"
+case 325:
+#line 1646 "c-parse.y"
 { ;
     break;}
-case 320:
-#line 1636 "c-parse.y"
+case 326:
+#line 1651 "c-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
-case 321:
-#line 1641 "c-parse.y"
+case 327:
+#line 1656 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 322:
-#line 1643 "c-parse.y"
+case 328:
+#line 1658 "c-parse.y"
 { yyval.ends_in_label = 1; ;
     break;}
-case 323:
-#line 1649 "c-parse.y"
+case 329:
+#line 1664 "c-parse.y"
 { stmt_count++; ;
     break;}
-case 325:
-#line 1652 "c-parse.y"
+case 331:
+#line 1667 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
 /* It appears that this should not be done--that a non-lvalue array
@@ -3126,20 +3144,20 @@ case 325:
                  iterator_expand (yyvsp[-1].ttype);
                  clear_momentary (); ;
     break;}
-case 326:
-#line 1669 "c-parse.y"
+case 332:
+#line 1684 "c-parse.y"
 { c_expand_start_else ();
                  yyvsp[-1].itype = stmt_count;
                  position_after_white_space (); ;
     break;}
-case 327:
-#line 1673 "c-parse.y"
+case 333:
+#line 1688 "c-parse.y"
 { c_expand_end_cond ();
                  if (extra_warnings && stmt_count == yyvsp[-3].itype)
                    warning ("empty body in an else-statement"); ;
     break;}
-case 328:
-#line 1677 "c-parse.y"
+case 334:
+#line 1692 "c-parse.y"
 { c_expand_end_cond ();
                  /* This warning is here instead of in simple_if, because we
                     do not want a warning if an empty if is followed by an
@@ -3149,12 +3167,12 @@ case 328:
                    warning_with_file_and_line (if_stmt_file, if_stmt_line,
                                                "empty body in an if-statement"); ;
     break;}
-case 329:
-#line 1689 "c-parse.y"
+case 335:
+#line 1704 "c-parse.y"
 { c_expand_end_cond (); ;
     break;}
-case 330:
-#line 1691 "c-parse.y"
+case 336:
+#line 1706 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
                  /* The emit_nop used to come before emit_line_note,
@@ -3165,8 +3183,8 @@ case 330:
                     We will see.  --rms, July 15, 1991.  */
                  emit_nop (); ;
     break;}
-case 331:
-#line 1701 "c-parse.y"
+case 337:
+#line 1716 "c-parse.y"
 { /* Don't start the loop till we have succeeded
                     in parsing the end test.  This is to make sure
                     that we end every loop we start.  */
@@ -3176,25 +3194,25 @@ case 331:
                                             truthvalue_conversion (yyvsp[-1].ttype));
                  position_after_white_space (); ;
     break;}
-case 332:
-#line 1710 "c-parse.y"
+case 338:
+#line 1725 "c-parse.y"
 { expand_end_loop (); ;
     break;}
-case 333:
-#line 1713 "c-parse.y"
+case 339:
+#line 1728 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_exit_loop_if_false (NULL_PTR,
                                             truthvalue_conversion (yyvsp[-2].ttype));
                  expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 334:
-#line 1720 "c-parse.y"
+case 340:
+#line 1735 "c-parse.y"
 { expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 335:
-#line 1724 "c-parse.y"
+case 341:
+#line 1739 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  /* See comment in `while' alternative, above.  */
@@ -3206,13 +3224,13 @@ case 335:
                     fn without calling expand_end_loop.  */
                ;
     break;}
-case 336:
-#line 1736 "c-parse.y"
+case 342:
+#line 1751 "c-parse.y"
 { yyvsp[0].lineno = lineno;
                  yyval.filename = input_filename; ;
     break;}
-case 337:
-#line 1739 "c-parse.y"
+case 343:
+#line 1754 "c-parse.y"
 { 
                  /* Start the loop.  Doing this after parsing
                     all the expressions ensures we will end the loop.  */
@@ -3229,8 +3247,8 @@ case 337:
                  yyvsp[-2].filename = input_filename;
                  position_after_white_space (); ;
     break;}
-case 338:
-#line 1755 "c-parse.y"
+case 344:
+#line 1770 "c-parse.y"
 { /* Emit the increment expression, with a line number.  */
                  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
                  expand_loop_continue_here ();
@@ -3242,8 +3260,8 @@ case 338:
                    pop_momentary ();
                  expand_end_loop (); ;
     break;}
-case 339:
-#line 1766 "c-parse.y"
+case 345:
+#line 1781 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_case (yyvsp[-1].ttype);
@@ -3252,42 +3270,42 @@ case 339:
                  push_momentary ();
                  position_after_white_space (); ;
     break;}
-case 340:
-#line 1774 "c-parse.y"
+case 346:
+#line 1789 "c-parse.y"
 { expand_end_case (yyvsp[-3].ttype);
                  if (yychar == CONSTANT || yychar == STRING)
                    pop_momentary_nofree ();
                  else
                    pop_momentary (); ;
     break;}
-case 341:
-#line 1780 "c-parse.y"
+case 347:
+#line 1795 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  if ( ! expand_exit_something ())
                    error ("break statement not within loop or switch"); ;
     break;}
-case 342:
-#line 1785 "c-parse.y"
+case 348:
+#line 1800 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  if (! expand_continue_loop (NULL_PTR))
                    error ("continue statement not within a loop"); ;
     break;}
-case 343:
-#line 1790 "c-parse.y"
+case 349:
+#line 1805 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  c_expand_return (NULL_TREE); ;
     break;}
-case 344:
-#line 1794 "c-parse.y"
+case 350:
+#line 1809 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
                  c_expand_return (yyvsp[-1].ttype); ;
     break;}
-case 345:
-#line 1798 "c-parse.y"
+case 351:
+#line 1813 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
                  STRIP_NOPS (yyvsp[-2].ttype);
@@ -3298,32 +3316,32 @@ case 345:
                  else
                    error ("argument of `asm' is not a constant string"); ;
     break;}
-case 346:
-#line 1809 "c-parse.y"
+case 352:
+#line 1824 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
                  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
                                         yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 347:
-#line 1816 "c-parse.y"
+case 353:
+#line 1831 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
                  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
                                         yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 348:
-#line 1824 "c-parse.y"
+case 354:
+#line 1839 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
                  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
                                         yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 349:
-#line 1830 "c-parse.y"
+case 355:
+#line 1845 "c-parse.y"
 { tree decl;
                  stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -3335,16 +3353,16 @@ case 349:
                    }
                ;
     break;}
-case 350:
-#line 1841 "c-parse.y"
+case 356:
+#line 1856 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids `goto *expr;'");
                  stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
     break;}
-case 353:
-#line 1856 "c-parse.y"
+case 359:
+#line 1871 "c-parse.y"
 {
            /* The value returned by this action is  */
            /*      1 if everything is OK */ 
@@ -3366,15 +3384,15 @@ case 353:
              }
          ;
     break;}
-case 354:
-#line 1877 "c-parse.y"
+case 360:
+#line 1892 "c-parse.y"
 {
            if (yyvsp[-1].itype)
              iterator_for_loop_end (yyvsp[-3].ttype);
          ;
     break;}
-case 355:
-#line 1912 "c-parse.y"
+case 361:
+#line 1927 "c-parse.y"
 { register tree value = check_case_value (yyvsp[-1].ttype);
                  register tree label
                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
@@ -3384,8 +3402,14 @@ case 355:
                  if (value != error_mark_node)
                    {
                      tree duplicate;
-                     int success = pushcase (value, convert_and_check,
-                                             label, &duplicate);
+                     int success;
+
+                     if (pedantic && ! INTEGRAL_TYPE_P (TREE_TYPE (value)))
+                       pedwarn ("label must have integral type in ANSI C");
+
+                     success = pushcase (value, convert_and_check,
+                                         label, &duplicate);
+
                      if (success == 1)
                        error ("case label not within a switch statement");
                      else if (success == 2)
@@ -3400,8 +3424,8 @@ case 355:
                    }
                  position_after_white_space (); ;
     break;}
-case 356:
-#line 1937 "c-parse.y"
+case 362:
+#line 1958 "c-parse.y"
 { register tree value1 = check_case_value (yyvsp[-3].ttype);
                  register tree value2 = check_case_value (yyvsp[-1].ttype);
                  register tree label
@@ -3433,8 +3457,8 @@ case 356:
                    }
                  position_after_white_space (); ;
     break;}
-case 357:
-#line 1968 "c-parse.y"
+case 363:
+#line 1989 "c-parse.y"
 {
                  tree duplicate;
                  register tree label
@@ -3450,8 +3474,8 @@ case 357:
                    }
                  position_after_white_space (); ;
     break;}
-case 358:
-#line 1983 "c-parse.y"
+case 364:
+#line 2004 "c-parse.y"
 { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
                  stmt_count++;
                  emit_nop ();
@@ -3459,53 +3483,53 @@ case 358:
                    expand_label (label);
                  position_after_white_space (); ;
     break;}
-case 359:
-#line 1995 "c-parse.y"
+case 365:
+#line 2016 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 360:
-#line 1998 "c-parse.y"
+case 366:
+#line 2019 "c-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
-case 361:
-#line 2003 "c-parse.y"
+case 367:
+#line 2024 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 363:
-#line 2010 "c-parse.y"
+case 369:
+#line 2031 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 366:
-#line 2017 "c-parse.y"
+case 372:
+#line 2038 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 367:
-#line 2022 "c-parse.y"
+case 373:
+#line 2043 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 368:
-#line 2027 "c-parse.y"
+case 374:
+#line 2048 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
-case 369:
-#line 2029 "c-parse.y"
+case 375:
+#line 2050 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
     break;}
-case 370:
-#line 2035 "c-parse.y"
+case 376:
+#line 2056 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (0); ;
     break;}
-case 371:
-#line 2039 "c-parse.y"
+case 377:
+#line 2060 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 373:
-#line 2047 "c-parse.y"
+case 379:
+#line 2068 "c-parse.y"
 { tree parm;
                  if (pedantic)
                    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -3514,20 +3538,20 @@ case 373:
                    TREE_ASM_WRITTEN (parm) = 1;
                  clear_parm_order (); ;
     break;}
-case 374:
-#line 2055 "c-parse.y"
+case 380:
+#line 2076 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 375:
-#line 2057 "c-parse.y"
+case 381:
+#line 2078 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
-case 376:
-#line 2063 "c-parse.y"
+case 382:
+#line 2084 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
-case 377:
-#line 2065 "c-parse.y"
+case 383:
+#line 2086 "c-parse.y"
 { yyval.ttype = get_parm_info (0);
                  /* Gcc used to allow this as an extension.  However, it does
                     not work for all targets, and thus has been disabled.
@@ -3538,24 +3562,24 @@ case 377:
                  error ("ANSI C requires a named argument before `...'");
                ;
     break;}
-case 378:
-#line 2075 "c-parse.y"
+case 384:
+#line 2096 "c-parse.y"
 { yyval.ttype = get_parm_info (1); ;
     break;}
-case 379:
-#line 2077 "c-parse.y"
+case 385:
+#line 2098 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
-case 380:
-#line 2082 "c-parse.y"
+case 386:
+#line 2103 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 381:
-#line 2084 "c-parse.y"
+case 387:
+#line 2105 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 382:
-#line 2091 "c-parse.y"
+case 388:
+#line 2112 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3565,8 +3589,8 @@ case 382:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 383:
-#line 2100 "c-parse.y"
+case 389:
+#line 2121 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3576,8 +3600,8 @@ case 383:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 384:
-#line 2109 "c-parse.y"
+case 390:
+#line 2130 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3587,8 +3611,8 @@ case 384:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 385:
-#line 2118 "c-parse.y"
+case 391:
+#line 2139 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3598,8 +3622,8 @@ case 385:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 386:
-#line 2128 "c-parse.y"
+case 392:
+#line 2149 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3609,50 +3633,50 @@ case 386:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 387:
-#line 2142 "c-parse.y"
+case 393:
+#line 2163 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (1); ;
     break;}
-case 388:
-#line 2146 "c-parse.y"
+case 394:
+#line 2167 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 390:
-#line 2154 "c-parse.y"
+case 396:
+#line 2175 "c-parse.y"
 { tree t;
                  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
                    if (TREE_VALUE (t) == NULL_TREE)
                      error ("`...' in old-style identifier list");
                  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 391:
-#line 2164 "c-parse.y"
+case 397:
+#line 2185 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 392:
-#line 2166 "c-parse.y"
+case 398:
+#line 2187 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
-case 393:
-#line 2172 "c-parse.y"
+case 399:
+#line 2193 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 394:
-#line 2174 "c-parse.y"
+case 400:
+#line 2195 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
-case 395:
-#line 2179 "c-parse.y"
+case 401:
+#line 2200 "c-parse.y"
 { yyval.itype = pedantic;
                  pedantic = 0; ;
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/cygnus/latest-940103/share/bison.simple"
+#line 498 "/usr/lib/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -3848,5 +3872,5 @@ yyerrhandle:
   yystate = yyn;
   goto yynewstate;
 }
-#line 2183 "c-parse.y"
+#line 2204 "c-parse.y"