OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / gcc / c-parse.c
index 842d252..9c71df9 100644 (file)
@@ -1,76 +1,79 @@
 
 /*  A Bison parser, made from c-parse.y
- by  GNU Bison version 1.25
-  */
+    by GNU Bison version 1.28  */
 
 #define YYBISON 1  /* Identify Bison output.  */
 
-#define        IDENTIFIER      258
-#define        TYPENAME        259
-#define        SCSPEC  260
-#define        TYPESPEC        261
-#define        TYPE_QUAL       262
-#define        CONSTANT        263
-#define        STRING  264
-#define        ELLIPSIS        265
-#define        SIZEOF  266
-#define        ENUM    267
-#define        STRUCT  268
-#define        UNION   269
-#define        IF      270
-#define        ELSE    271
-#define        WHILE   272
-#define        DO      273
-#define        FOR     274
-#define        SWITCH  275
-#define        CASE    276
-#define        DEFAULT 277
-#define        BREAK   278
-#define        CONTINUE        279
-#define        RETURN  280
-#define        GOTO    281
-#define        ASM_KEYWORD     282
-#define        TYPEOF  283
-#define        ALIGNOF 284
-#define        ATTRIBUTE       285
-#define        EXTENSION       286
-#define        LABEL   287
-#define        REALPART        288
-#define        IMAGPART        289
-#define        ASSIGN  290
-#define        OROR    291
-#define        ANDAND  292
-#define        EQCOMPARE       293
-#define        ARITHCOMPARE    294
-#define        LSHIFT  295
-#define        RSHIFT  296
-#define        UNARY   297
-#define        PLUSPLUS        298
-#define        MINUSMINUS      299
-#define        HYPERUNARY      300
-#define        POINTSAT        301
-#define        INTERFACE       302
-#define        IMPLEMENTATION  303
-#define        END     304
-#define        SELECTOR        305
-#define        DEFS    306
-#define        ENCODE  307
-#define        CLASSNAME       308
-#define        PUBLIC  309
-#define        PRIVATE 310
-#define        PROTECTED       311
-#define        PROTOCOL        312
-#define        OBJECTNAME      313
-#define        CLASS   314
-#define        ALIAS   315
-#define        OBJC_STRING     316
-
-#line 56 "c-parse.y"
+#define        IDENTIFIER      257
+#define        TYPENAME        258
+#define        SCSPEC  259
+#define        TYPESPEC        260
+#define        TYPE_QUAL       261
+#define        CONSTANT        262
+#define        STRING  263
+#define        ELLIPSIS        264
+#define        SIZEOF  265
+#define        ENUM    266
+#define        STRUCT  267
+#define        UNION   268
+#define        IF      269
+#define        ELSE    270
+#define        WHILE   271
+#define        DO      272
+#define        FOR     273
+#define        SWITCH  274
+#define        CASE    275
+#define        DEFAULT 276
+#define        BREAK   277
+#define        CONTINUE        278
+#define        RETURN  279
+#define        GOTO    280
+#define        ASM_KEYWORD     281
+#define        TYPEOF  282
+#define        ALIGNOF 283
+#define        ATTRIBUTE       284
+#define        EXTENSION       285
+#define        LABEL   286
+#define        REALPART        287
+#define        IMAGPART        288
+#define        VA_ARG  289
+#define        PTR_VALUE       290
+#define        PTR_BASE        291
+#define        PTR_EXTENT      292
+#define        END_OF_LINE     293
+#define        ASSIGN  294
+#define        OROR    295
+#define        ANDAND  296
+#define        EQCOMPARE       297
+#define        ARITHCOMPARE    298
+#define        LSHIFT  299
+#define        RSHIFT  300
+#define        UNARY   301
+#define        PLUSPLUS        302
+#define        MINUSMINUS      303
+#define        HYPERUNARY      304
+#define        POINTSAT        305
+#define        INTERFACE       306
+#define        IMPLEMENTATION  307
+#define        END     308
+#define        SELECTOR        309
+#define        DEFS    310
+#define        ENCODE  311
+#define        CLASSNAME       312
+#define        PUBLIC  313
+#define        PRIVATE 314
+#define        PROTECTED       315
+#define        PROTOCOL        316
+#define        OBJECTNAME      317
+#define        CLASS   318
+#define        ALIAS   319
+#define        OBJC_STRING     320
+
+#line 34 "c-parse.y"
 
 #include "config.h"
 #include "system.h"
 #include <setjmp.h>
-
 #include "tree.h"
 #include "input.h"
 #include "c-lex.h"
@@ -78,7 +81,8 @@
 #include "flags.h"
 #include "output.h"
 #include "toplev.h"
-
+#include "ggc.h"
+  
 #ifdef MULTIBYTE_CHARS
 #include <locale.h>
 #endif
@@ -86,7 +90,7 @@
 
 /* Since parsers are distinct for each language, put the language string
    definition here.  */
-char *language_string = "GNU C";
+const char * const language_string = "GNU C";
 
 /* Like YYERROR but do call yyerror.  */
 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
@@ -94,10 +98,10 @@ char *language_string = "GNU C";
 /* Cause the `yydebug' variable to be defined.  */
 #define YYDEBUG 1
 
-#line 87 "c-parse.y"
+#line 65 "c-parse.y"
 typedef union {long itype; tree ttype; enum tree_code code;
        char *filename; int lineno; int ends_in_label; } YYSTYPE;
-#line 204 "c-parse.y"
+#line 186 "c-parse.y"
 
 /* Number of statements (loosely speaking) and compound statements 
    seen so far.  */
@@ -119,11 +123,32 @@ static tree declspec_stack;
 /* 1 if we explained undeclared var errors.  */
 static int undeclared_variable_notice;
 
+/* For __extension__, save/restore the warning flags which are
+   controlled by __extension__.  */
+#define SAVE_WARN_FLAGS()      \
+       size_int (pedantic | (warn_pointer_arith << 1))
+#define RESTORE_WARN_FLAGS(tval) \
+  do {                                     \
+    int val = tree_low_cst (tval, 0);      \
+    pedantic = val & 1;                    \
+    warn_pointer_arith = (val >> 1) & 1;   \
+  } while (0)
+
 
 /* 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                    PROTO ((FILE *, int, YYSTYPE));
+extern void yyprint                    PARAMS ((FILE *, int, YYSTYPE));
+
+/* Add GC roots for variables local to this file.  */
+void
+c_parse_init ()
+{
+  ggc_add_tree_root (&declspec_stack, 1);
+  ggc_add_tree_root (&current_declspecs, 1);
+  ggc_add_tree_root (&prefix_attributes, 1);
+}
+
 #include <stdio.h>
 
 #ifndef __cplusplus
@@ -134,26 +159,26 @@ extern void yyprint                       PROTO ((FILE *, int, YYSTYPE));
 
 
 
-#define        YYFINAL         688
+#define        YYFINAL         706
 #define        YYFLAG          -32768
-#define        YYNTBASE        84
+#define        YYNTBASE        89
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 242)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 320 ? yytranslate[x] : 247)
 
 static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,    80,     2,     2,     2,    52,    43,     2,    59,
-    76,    50,    48,    81,    49,    58,    51,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,    38,    77,     2,
-    36,     2,    37,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,    85,     2,     2,     2,    57,    48,     2,    64,
+    81,    55,    53,    86,    54,    63,    56,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,    43,    82,     2,
+    41,     2,    42,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-    60,     2,    83,    42,     2,     2,     2,     2,     2,     2,
+    65,     2,    88,    47,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,    82,    41,    78,    79,     2,     2,     2,     2,
+     2,     2,    87,    46,    83,    84,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -166,13 +191,13 @@ static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
-     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-    39,    40,    44,    45,    46,    47,    53,    54,    55,    56,
-    57,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-    70,    71,    72,    73,    74,    75
+     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
+     7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+    37,    38,    39,    40,    44,    45,    49,    50,    51,    52,
+    58,    59,    60,    61,    62,    66,    67,    68,    69,    70,
+    71,    72,    73,    74,    75,    76,    77,    78,    79,    80
 };
 
 #if YYDEBUG != 0
@@ -182,221 +207,223 @@ static const short yyprhs[] = {     0,
     55,    63,    68,    69,    70,    78,    83,    84,    85,    92,
     96,    98,   100,   102,   104,   106,   108,   110,   112,   114,
    116,   117,   119,   121,   125,   127,   130,   133,   136,   139,
-   142,   147,   150,   155,   158,   161,   163,   165,   167,   172,
-   173,   181,   183,   187,   191,   195,   199,   203,   207,   211,
-   215,   219,   223,   227,   231,   232,   237,   238,   243,   244,
-   245,   253,   254,   260,   264,   268,   270,   272,   274,   278,
-   282,   283,   288,   293,   298,   302,   306,   309,   312,   314,
-   317,   318,   320,   323,   327,   329,   331,   334,   337,   342,
-   347,   350,   353,   357,   359,   361,   364,   367,   368,   369,
-   374,   379,   383,   387,   390,   393,   396,   399,   403,   404,
-   407,   410,   413,   416,   420,   421,   424,   427,   429,   431,
-   434,   437,   439,   441,   444,   447,   450,   454,   455,   458,
-   460,   462,   464,   469,   474,   476,   478,   480,   482,   486,
-   488,   492,   493,   498,   499,   506,   510,   511,   518,   522,
-   523,   525,   527,   530,   537,   539,   543,   544,   546,   551,
-   558,   563,   565,   567,   569,   571,   573,   574,   579,   581,
-   582,   585,   587,   591,   593,   594,   599,   601,   602,   611,
-   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,   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
+   142,   147,   150,   155,   158,   161,   168,   170,   172,   174,
+   179,   180,   188,   190,   194,   198,   202,   206,   210,   214,
+   218,   222,   226,   230,   234,   238,   239,   244,   245,   250,
+   251,   252,   260,   261,   267,   271,   275,   277,   279,   281,
+   285,   289,   293,   297,   302,   307,   311,   315,   318,   321,
+   323,   326,   327,   329,   332,   336,   338,   340,   343,   346,
+   351,   356,   359,   362,   366,   368,   370,   373,   376,   377,
+   378,   383,   388,   392,   396,   399,   402,   405,   408,   412,
+   413,   416,   419,   422,   425,   429,   430,   433,   436,   438,
+   440,   443,   446,   448,   450,   453,   456,   459,   463,   464,
+   467,   469,   471,   473,   478,   483,   485,   487,   489,   491,
+   495,   497,   501,   502,   507,   508,   515,   519,   520,   527,
+   531,   532,   534,   536,   539,   546,   548,   552,   553,   555,
+   560,   567,   572,   574,   576,   578,   580,   582,   583,   588,
+   590,   591,   594,   596,   600,   604,   607,   608,   613,   615,
+   616,   621,   623,   625,   627,   630,   633,   639,   643,   644,
+   645,   651,   652,   653,   659,   661,   663,   667,   671,   676,
+   680,   684,   688,   690,   694,   699,   704,   708,   712,   716,
+   718,   722,   726,   730,   735,   740,   744,   748,   750,   752,
+   755,   757,   760,   762,   765,   766,   774,   780,   783,   784,
+   792,   798,   801,   802,   811,   812,   820,   823,   824,   826,
+   827,   829,   831,   834,   835,   839,   842,   846,   852,   856,
+   858,   860,   863,   865,   869,   874,   881,   887,   889,   893,
+   895,   897,   901,   904,   907,   908,   910,   912,   915,   916,
+   919,   923,   927,   930,   934,   939,   943,   946,   950,   953,
+   957,   959,   961,   964,   967,   968,   970,   973,   974,   975,
+   977,   979,   982,   986,   988,   991,   993,   995,  1001,  1006,
+  1011,  1014,  1017,  1020,  1023,  1028,  1029,  1034,  1035,  1036,
+  1040,  1045,  1049,  1051,  1053,  1055,  1057,  1060,  1061,  1066,
+  1068,  1072,  1073,  1074,  1082,  1088,  1091,  1092,  1093,  1094,
+  1107,  1108,  1115,  1118,  1121,  1124,  1128,  1135,  1144,  1155,
+  1168,  1172,  1177,  1179,  1181,  1182,  1189,  1193,  1199,  1202,
+  1206,  1207,  1209,  1210,  1212,  1213,  1215,  1217,  1221,  1226,
+  1228,  1232,  1233,  1236,  1239,  1240,  1245,  1248,  1249,  1251,
+  1253,  1257,  1259,  1263,  1268,  1273,  1278,  1283,  1288,  1289,
+  1292,  1294,  1297,  1299,  1303,  1305,  1309
 };
 
 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,   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,
-   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,   241,
-   105,     0,    98,   105,     0,    40,    97,     0,   103,   102,
-     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,
-   107,    45,   107,     0,   107,    44,   107,     0,   107,    43,
-   107,     0,   107,    41,   107,     0,   107,    42,   107,     0,
-     0,   107,    40,   108,   107,     0,     0,   107,    39,   109,
-   107,     0,     0,     0,   107,    37,   110,    99,    38,   111,
-   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,   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,   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,   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,   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,   188,
-   133,   132,     0,     0,   132,   134,     0,     6,     0,   172,
-     0,     4,     0,    28,    59,    99,    76,     0,    28,    59,
-   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,
-   168,   137,   142,    36,   141,   148,     0,   168,   137,   142,
-     0,     0,   143,     0,   144,     0,   143,   144,     0,    30,
-    59,    59,   145,    76,    76,     0,   146,     0,   145,    81,
-   146,     0,     0,   147,     0,   147,    59,     3,    76,     0,
-   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,   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,   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,
-   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,    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
+    90,     0,     0,    91,    93,     0,     0,    90,    92,    93,
+     0,    95,     0,    94,     0,    27,    64,   104,    81,    82,
+     0,   246,    93,     0,   126,   140,    82,     0,   133,   126,
+   140,    82,     0,   129,   126,   139,    82,     0,   133,    82,
+     0,   129,    82,     0,     1,    82,     0,     1,    83,     0,
+    82,     0,     0,     0,   129,   126,   168,    96,   120,    97,
+   202,     0,   129,   126,   168,     1,     0,     0,     0,   133,
+   126,   171,    98,   120,    99,   202,     0,   133,   126,   171,
+     1,     0,     0,     0,   126,   171,   100,   120,   101,   202,
+     0,   126,   171,     1,     0,     3,     0,     4,     0,    48,
+     0,    54,     0,    53,     0,    59,     0,    60,     0,    84,
+     0,    85,     0,   106,     0,     0,   106,     0,   112,     0,
+   106,    86,   112,     0,   118,     0,    55,   110,     0,   246,
+   110,     0,   103,   110,     0,    45,   102,     0,   108,   107,
+     0,   108,    64,   189,    81,     0,   109,   107,     0,   109,
+    64,   189,    81,     0,    33,   110,     0,    34,   110,     0,
+    35,    64,   112,    86,   189,    81,     0,    11,     0,    29,
+     0,   107,     0,    64,   189,    81,   110,     0,     0,    64,
+   189,    81,    87,   111,   154,    83,     0,   110,     0,   112,
+    53,   112,     0,   112,    54,   112,     0,   112,    55,   112,
+     0,   112,    56,   112,     0,   112,    57,   112,     0,   112,
+    51,   112,     0,   112,    52,   112,     0,   112,    50,   112,
+     0,   112,    49,   112,     0,   112,    48,   112,     0,   112,
+    46,   112,     0,   112,    47,   112,     0,     0,   112,    45,
+   113,   112,     0,     0,   112,    44,   114,   112,     0,     0,
+     0,   112,    42,   115,   104,    43,   116,   112,     0,     0,
+   112,    42,   117,    43,   112,     0,   112,    41,   112,     0,
+   112,    40,   112,     0,     3,     0,     8,     0,   119,     0,
+    64,   104,    81,     0,    64,     1,    81,     0,   205,   204,
+    81,     0,   205,     1,    81,     0,   118,    64,   105,    81,
+     0,   118,    65,   104,    88,     0,   118,    63,   102,     0,
+   118,    62,   102,     0,   118,    59,     0,   118,    60,     0,
+     9,     0,   119,     9,     0,     0,   122,     0,   122,    10,
+     0,   211,   212,   123,     0,   121,     0,   197,     0,   122,
+   121,     0,   121,   197,     0,   131,   126,   139,    82,     0,
+   134,   126,   140,    82,     0,   131,    82,     0,   134,    82,
+     0,   211,   212,   128,     0,   124,     0,   197,     0,   125,
+   124,     0,   124,   197,     0,     0,     0,   129,   126,   139,
+    82,     0,   133,   126,   140,    82,     0,   129,   126,   162,
+     0,   133,   126,   165,     0,   129,    82,     0,   133,    82,
+     0,   246,   128,     0,   137,   130,     0,   133,   137,   130,
+     0,     0,   130,   138,     0,   130,     5,     0,   130,   147,
+     0,   137,   132,     0,   134,   137,   132,     0,     0,   132,
+   138,     0,   132,     5,     0,   134,     0,   147,     0,   133,
+   134,     0,   133,   147,     0,     7,     0,     5,     0,   134,
+     7,     0,   134,     5,     0,   137,   136,     0,   191,   137,
+   136,     0,     0,   136,   138,     0,     6,     0,   175,     0,
+     4,     0,    28,    64,   104,    81,     0,    28,    64,   189,
+    81,     0,     6,     0,     7,     0,   175,     0,   142,     0,
+   139,    86,   142,     0,   144,     0,   140,    86,   142,     0,
+     0,    27,    64,   119,    81,     0,     0,   168,   141,   146,
+    41,   143,   152,     0,   168,   141,   146,     0,     0,   171,
+   141,   146,    41,   145,   152,     0,   171,   141,   146,     0,
+     0,   147,     0,   148,     0,   147,   148,     0,    30,    64,
+    64,   149,    81,    81,     0,   150,     0,   149,    86,   150,
+     0,     0,   151,     0,   151,    64,     3,    81,     0,   151,
+    64,     3,    86,   106,    81,     0,   151,    64,   105,    81,
+     0,   102,     0,     5,     0,     6,     0,     7,     0,   112,
+     0,     0,    87,   153,   154,    83,     0,     1,     0,     0,
+   155,   180,     0,   156,     0,   155,    86,   156,     0,   160,
+    41,   158,     0,   161,   158,     0,     0,   102,    43,   157,
+   158,     0,   158,     0,     0,    87,   159,   154,    83,     0,
+   112,     0,     1,     0,   161,     0,   160,   161,     0,    63,
+   102,     0,    65,   112,    10,   112,    88,     0,    65,   112,
+    88,     0,     0,     0,   168,   163,   120,   164,   206,     0,
+     0,     0,   171,   166,   120,   167,   206,     0,   169,     0,
+   171,     0,    64,   169,    81,     0,   169,    64,   241,     0,
+   169,    65,   104,    88,     0,   169,    65,    88,     0,    55,
+   192,   169,     0,   147,   127,   169,     0,     4,     0,   170,
+    64,   241,     0,   170,    65,    55,    88,     0,   170,    65,
+   104,    88,     0,   170,    65,    88,     0,    55,   192,   170,
+     0,   147,   127,   170,     0,     4,     0,   171,    64,   241,
+     0,    64,   171,    81,     0,    55,   192,   171,     0,   171,
+    65,    55,    88,     0,   171,    65,   104,    88,     0,   171,
+    65,    88,     0,   147,   127,   171,     0,     3,     0,    13,
+     0,    13,   147,     0,    14,     0,    14,   147,     0,    12,
+     0,    12,   147,     0,     0,   172,   102,    87,   176,   182,
+    83,   146,     0,   172,    87,   182,    83,   146,     0,   172,
+   102,     0,     0,   173,   102,    87,   177,   182,    83,   146,
+     0,   173,    87,   182,    83,   146,     0,   173,   102,     0,
+     0,   174,   102,    87,   178,   187,   181,    83,   146,     0,
+     0,   174,    87,   179,   187,   181,    83,   146,     0,   174,
+   102,     0,     0,    86,     0,     0,    86,     0,   183,     0,
+   183,   184,     0,     0,   183,   184,    82,     0,   183,    82,
+     0,   135,   126,   185,     0,   135,   126,   211,   212,   146,
+     0,   191,   126,   185,     0,   191,     0,     1,     0,   246,
+   184,     0,   186,     0,   185,    86,   186,     0,   211,   212,
+   168,   146,     0,   211,   212,   168,    43,   112,   146,     0,
+   211,   212,    43,   112,   146,     0,   188,     0,   187,    86,
+   188,     0,     1,     0,   102,     0,   102,    41,   112,     0,
+   135,   190,     0,   191,   190,     0,     0,   193,     0,     7,
+     0,   191,     7,     0,     0,   192,     7,     0,    64,   193,
+    81,     0,    55,   192,   193,     0,    55,   192,     0,   193,
+    64,   234,     0,   193,    65,   104,    88,     0,   193,    65,
+    88,     0,    64,   234,     0,    65,   104,    88,     0,    65,
+    88,     0,   147,   127,   193,     0,   195,     0,   214,     0,
+   195,   214,     0,   195,   197,     0,     0,   194,     0,     1,
+    82,     0,     0,     0,   200,     0,   201,     0,   200,   201,
+     0,    32,   245,    82,     0,   206,     0,     1,   206,     0,
+    87,     0,    83,     0,   198,   199,   125,   196,    83,     0,
+   198,   199,     1,    83,     0,   198,   199,   194,    83,     0,
+    64,    87,     0,   203,   204,     0,   208,   213,     0,   208,
+     1,     0,    15,    64,   104,    81,     0,     0,    18,   210,
+   213,    17,     0,     0,     0,   211,   212,   216,     0,   211,
+   212,   227,   213,     0,   211,   212,   215,     0,   216,     0,
+   227,     0,   206,     0,   224,     0,   104,    82,     0,     0,
+   207,    16,   217,   213,     0,   207,     0,   207,    16,     1,
+     0,     0,     0,    17,   218,    64,   104,    81,   219,   213,
+     0,   209,    64,   104,    81,    82,     0,   209,     1,     0,
+     0,     0,     0,    19,    64,   229,    82,   220,   229,    82,
+   221,   229,    81,   222,   213,     0,     0,    20,    64,   104,
+    81,   223,   213,     0,    23,    82,     0,    24,    82,     0,
+    25,    82,     0,    25,   104,    82,     0,    27,   228,    64,
+   104,    81,    82,     0,    27,   228,    64,   104,    43,   230,
+    81,    82,     0,    27,   228,    64,   104,    43,   230,    43,
+   230,    81,    82,     0,    27,   228,    64,   104,    43,   230,
+    43,   230,    43,   233,    81,    82,     0,    26,   102,    82,
+     0,    26,    55,   104,    82,     0,    82,     0,   225,     0,
+     0,    19,    64,   118,    81,   226,   213,     0,    21,   112,
+    43,     0,    21,   112,    10,   112,    43,     0,    22,    43,
+     0,   102,    43,   146,     0,     0,     7,     0,     0,   104,
+     0,     0,   231,     0,   232,     0,   231,    86,   232,     0,
+     9,    64,   104,    81,     0,   119,     0,   233,    86,   119,
+     0,     0,   235,   236,     0,   238,    81,     0,     0,   239,
+    82,   237,   236,     0,     1,    81,     0,     0,    10,     0,
+   239,     0,   239,    86,    10,     0,   240,     0,   239,    86,
+   240,     0,   129,   126,   170,   146,     0,   129,   126,   171,
+   146,     0,   129,   126,   190,   146,     0,   133,   126,   171,
+   146,     0,   133,   126,   190,   146,     0,     0,   242,   243,
+     0,   236,     0,   244,    81,     0,     3,     0,   244,    86,
+     3,     0,   102,     0,   245,    86,   102,     0,    31,     0
 };
 
 #endif
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   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
+   236,   241,   255,   257,   257,   258,   260,   262,   263,   271,
+   275,   285,   289,   293,   295,   297,   298,   299,   304,   311,
+   313,   317,   321,   327,   329,   333,   337,   343,   345,   349,
+   355,   357,   360,   362,   364,   366,   368,   370,   372,   376,
+   380,   383,   386,   389,   393,   395,   398,   401,   405,   433,
+   439,   442,   445,   448,   450,   452,   456,   460,   464,   466,
+   469,   473,   500,   502,   504,   506,   508,   510,   512,   514,
+   516,   518,   520,   522,   524,   526,   530,   532,   536,   538,
+   541,   545,   547,   554,   557,   565,   576,   675,   676,   678,
+   684,   686,   709,   718,   720,   722,   726,   732,   734,   739,
+   741,   749,   751,   752,   762,   767,   769,   770,   771,   778,
+   783,   787,   790,   798,   803,   805,   806,   807,   814,   824,
+   828,   833,   837,   841,   845,   847,   849,   858,   861,   865,
+   867,   869,   874,   878,   881,   885,   888,   890,   902,   905,
+   907,   909,   913,   917,   919,   922,   935,   938,   942,   944,
+   952,   953,   954,   958,   960,   966,   967,   968,   971,   973,
+   976,   978,   981,   984,   990,   997,   999,  1006,  1013,  1016,
+  1023,  1026,  1030,  1033,  1037,  1042,  1045,  1049,  1052,  1054,
+  1056,  1058,  1065,  1067,  1068,  1069,  1074,  1076,  1078,  1080,
+  1085,  1089,  1092,  1094,  1099,  1101,  1102,  1105,  1105,  1108,
+  1111,  1113,  1115,  1118,  1120,  1123,  1129,  1131,  1135,  1149,
+  1157,  1161,  1175,  1183,  1190,  1192,  1197,  1200,  1205,  1207,
+  1209,  1216,  1218,  1226,  1232,  1237,  1239,  1241,  1248,  1250,
+  1256,  1262,  1264,  1266,  1271,  1273,  1280,  1282,  1285,  1288,
+  1292,  1295,  1299,  1302,  1306,  1311,  1313,  1317,  1319,  1321,
+  1323,  1327,  1329,  1331,  1334,  1336,  1339,  1343,  1345,  1348,
+  1350,  1355,  1358,  1363,  1365,  1367,  1381,  1387,  1400,  1405,
+  1410,  1412,  1417,  1419,  1423,  1427,  1431,  1441,  1443,  1448,
+  1453,  1456,  1460,  1463,  1467,  1470,  1473,  1476,  1480,  1483,
+  1487,  1491,  1493,  1495,  1497,  1499,  1501,  1503,  1505,  1509,
+  1517,  1525,  1527,  1529,  1533,  1535,  1538,  1541,  1551,  1553,
+  1558,  1560,  1563,  1577,  1580,  1583,  1585,  1587,  1591,  1595,
+  1601,  1619,  1624,  1629,  1632,  1646,  1655,  1659,  1663,  1667,
+  1673,  1677,  1682,  1685,  1690,  1693,  1694,  1710,  1715,  1718,
+  1730,  1732,  1742,  1752,  1753,  1760,  1762,  1774,  1778,  1792,
+  1798,  1804,  1805,  1810,  1815,  1819,  1823,  1834,  1841,  1848,
+  1855,  1866,  1872,  1875,  1880,  1903,  1933,  1964,  1995,  2010,
+  2024,  2028,  2032,  2035,  2040,  2042,  2045,  2047,  2051,  2056,
+  2059,  2065,  2070,  2075,  2077,  2086,  2087,  2093,  2095,  2105,
+  2107,  2111,  2114,  2120,  2129,  2137,  2145,  2154,  2167,  2172,
+  2177,  2179,  2188,  2191,  2196,  2199,  2203
 };
 #endif
 
@@ -407,81 +434,82 @@ static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER"
 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
-"EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
-"ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
-"'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
-"'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
-"CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
-"OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
-"@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
-"unop","expr","exprlist","nonnull_exprlist","unary_expr","sizeof","alignof",
-"cast_expr","@9","expr_no_commas","@10","@11","@12","@13","@14","primary","@15",
-"string","old_style_parm_decls","lineno_datadecl","datadecls","datadecl","lineno_decl",
-"decls","setspecs","setattrs","decl","typed_declspecs","reserved_declspecs",
-"typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr","declmods",
-"declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals","typespec",
-"typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
-"@16","notype_initdcl","@17","maybe_attribute","attributes","attribute","attribute_list",
-"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",
-"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",
+"EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","PTR_VALUE","PTR_BASE","PTR_EXTENT",
+"END_OF_LINE","ASSIGN","'='","'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE",
+"ARITHCOMPARE","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS",
+"MINUSMINUS","HYPERUNARY","POINTSAT","'.'","'('","'['","INTERFACE","IMPLEMENTATION",
+"END","SELECTOR","DEFS","ENCODE","CLASSNAME","PUBLIC","PRIVATE","PROTECTED",
+"PROTOCOL","OBJECTNAME","CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'",
+"'!'","','","'{'","']'","program","extdefs","@1","@2","extdef","datadef","fndef",
+"@3","@4","@5","@6","@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist",
+"unary_expr","sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11",
+"@12","@13","@14","primary","string","old_style_parm_decls","lineno_datadecl",
+"datadecls","datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
+"reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
+"declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
+"typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
+"initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute",
+"attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1",
+"initelt","@18","initval","@19","designator_list","designator","nested_function",
+"@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator",
+"parm_declarator","notype_declarator","struct_head","union_head","enum_head",
+"structsp","@24","@25","@26","@27","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_nostart",
+"compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start",
+"@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
+"stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt",
+"all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands",
+"nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1",
+"@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1",
 "identifiers","identifiers_or_typenames","extension", NULL
 };
 #endif
 
 static const short yyr1[] = {     0,
-    84,    84,    86,    85,    87,    85,    88,    88,    88,    88,
-    89,    89,    89,    89,    89,    89,    89,    89,    91,    92,
-    90,    90,    93,    94,    90,    90,    95,    96,    90,    90,
-    97,    97,    98,    98,    98,    98,    98,    98,    98,    99,
-   100,   100,   101,   101,   102,   102,   102,   102,   102,   102,
-   102,   102,   102,   102,   102,   103,   104,   105,   105,   106,
-   105,   107,   107,   107,   107,   107,   107,   107,   107,   107,
-   107,   107,   107,   107,   108,   107,   109,   107,   110,   111,
-   107,   112,   107,   107,   107,   113,   113,   113,   113,   113,
-   114,   113,   113,   113,   113,   113,   113,   113,   115,   115,
-   116,   116,   116,   117,   118,   118,   118,   118,   119,   119,
-   119,   119,   120,   121,   121,   121,   121,   122,   123,   124,
-   124,   124,   124,   124,   124,   124,   125,   125,   126,   126,
-   126,   126,   127,   127,   128,   128,   128,   129,   129,   129,
-   129,   130,   130,   130,   130,   131,   131,   132,   132,   133,
-   133,   133,   133,   133,   134,   134,   134,   135,   135,   136,
-   136,   137,   137,   139,   138,   138,   141,   140,   140,   142,
-   142,   143,   143,   144,   145,   145,   146,   146,   146,   146,
-   146,   147,   147,   147,   147,   148,   149,   148,   148,   150,
-   150,   151,   151,   152,   153,   152,   152,   154,   152,   155,
-   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,   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
+    89,    89,    91,    90,    92,    90,    93,    93,    93,    93,
+    94,    94,    94,    94,    94,    94,    94,    94,    96,    97,
+    95,    95,    98,    99,    95,    95,   100,   101,    95,    95,
+   102,   102,   103,   103,   103,   103,   103,   103,   103,   104,
+   105,   105,   106,   106,   107,   107,   107,   107,   107,   107,
+   107,   107,   107,   107,   107,   107,   108,   109,   110,   110,
+   111,   110,   112,   112,   112,   112,   112,   112,   112,   112,
+   112,   112,   112,   112,   112,   113,   112,   114,   112,   115,
+   116,   112,   117,   112,   112,   112,   118,   118,   118,   118,
+   118,   118,   118,   118,   118,   118,   118,   118,   118,   119,
+   119,   120,   120,   120,   121,   122,   122,   122,   122,   123,
+   123,   123,   123,   124,   125,   125,   125,   125,   126,   127,
+   128,   128,   128,   128,   128,   128,   128,   129,   129,   130,
+   130,   130,   130,   131,   131,   132,   132,   132,   133,   133,
+   133,   133,   134,   134,   134,   134,   135,   135,   136,   136,
+   137,   137,   137,   137,   137,   138,   138,   138,   139,   139,
+   140,   140,   141,   141,   143,   142,   142,   145,   144,   144,
+   146,   146,   147,   147,   148,   149,   149,   150,   150,   150,
+   150,   150,   151,   151,   151,   151,   152,   153,   152,   152,
+   154,   154,   155,   155,   156,   156,   157,   156,   156,   159,
+   158,   158,   158,   160,   160,   161,   161,   161,   163,   164,
+   162,   166,   167,   165,   168,   168,   169,   169,   169,   169,
+   169,   169,   169,   170,   170,   170,   170,   170,   170,   170,
+   171,   171,   171,   171,   171,   171,   171,   171,   172,   172,
+   173,   173,   174,   174,   176,   175,   175,   175,   177,   175,
+   175,   175,   178,   175,   179,   175,   175,   180,   180,   181,
+   181,   182,   182,   183,   183,   183,   184,   184,   184,   184,
+   184,   184,   185,   185,   186,   186,   186,   187,   187,   187,
+   188,   188,   189,   189,   190,   190,   191,   191,   192,   192,
+   193,   193,   193,   193,   193,   193,   193,   193,   193,   193,
+   194,   195,   195,   195,   196,   196,   197,   198,   199,   199,
+   200,   200,   201,   202,   202,   203,   204,   204,   204,   204,
+   205,   206,   207,   207,   208,   210,   209,   211,   212,   213,
+   213,   214,   215,   215,   216,   216,   216,   217,   216,   216,
+   216,   218,   219,   216,   216,   216,   220,   221,   222,   216,
+   223,   216,   216,   216,   216,   216,   216,   216,   216,   216,
+   216,   216,   216,   224,   226,   225,   227,   227,   227,   227,
+   228,   228,   229,   229,   230,   230,   231,   231,   232,   233,
+   233,   235,   234,   236,   237,   236,   236,   238,   238,   238,
+   238,   239,   239,   240,   240,   240,   240,   240,   242,   241,
+   243,   243,   244,   244,   245,   245,   246
 };
 
 static const short yyr2[] = {     0,
@@ -490,681 +518,764 @@ static const short yyr2[] = {     0,
      7,     4,     0,     0,     7,     4,     0,     0,     6,     3,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
      0,     1,     1,     3,     1,     2,     2,     2,     2,     2,
-     4,     2,     4,     2,     2,     1,     1,     1,     4,     0,
-     7,     1,     3,     3,     3,     3,     3,     3,     3,     3,
-     3,     3,     3,     3,     0,     4,     0,     4,     0,     0,
-     7,     0,     5,     3,     3,     1,     1,     1,     3,     3,
-     0,     4,     4,     4,     3,     3,     2,     2,     1,     2,
-     0,     1,     2,     3,     1,     1,     2,     2,     4,     4,
-     2,     2,     3,     1,     1,     2,     2,     0,     0,     4,
-     4,     3,     3,     2,     2,     2,     2,     3,     0,     2,
-     2,     2,     2,     3,     0,     2,     2,     1,     1,     2,
-     2,     1,     1,     2,     2,     2,     3,     0,     2,     1,
-     1,     1,     4,     4,     1,     1,     1,     1,     3,     1,
-     3,     0,     4,     0,     6,     3,     0,     6,     3,     0,
-     1,     1,     2,     6,     1,     3,     0,     1,     4,     6,
-     4,     1,     1,     1,     1,     1,     0,     4,     1,     0,
-     2,     1,     3,     1,     0,     4,     1,     0,     8,     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,     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
+     4,     2,     4,     2,     2,     6,     1,     1,     1,     4,
+     0,     7,     1,     3,     3,     3,     3,     3,     3,     3,
+     3,     3,     3,     3,     3,     0,     4,     0,     4,     0,
+     0,     7,     0,     5,     3,     3,     1,     1,     1,     3,
+     3,     3,     3,     4,     4,     3,     3,     2,     2,     1,
+     2,     0,     1,     2,     3,     1,     1,     2,     2,     4,
+     4,     2,     2,     3,     1,     1,     2,     2,     0,     0,
+     4,     4,     3,     3,     2,     2,     2,     2,     3,     0,
+     2,     2,     2,     2,     3,     0,     2,     2,     1,     1,
+     2,     2,     1,     1,     2,     2,     2,     3,     0,     2,
+     1,     1,     1,     4,     4,     1,     1,     1,     1,     3,
+     1,     3,     0,     4,     0,     6,     3,     0,     6,     3,
+     0,     1,     1,     2,     6,     1,     3,     0,     1,     4,
+     6,     4,     1,     1,     1,     1,     1,     0,     4,     1,
+     0,     2,     1,     3,     3,     2,     0,     4,     1,     0,
+     4,     1,     1,     1,     2,     2,     5,     3,     0,     0,
+     5,     0,     0,     5,     1,     1,     3,     3,     4,     3,
+     3,     3,     1,     3,     4,     4,     3,     3,     3,     1,
+     3,     3,     3,     4,     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,     5,     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,     3,
+     1,     1,     2,     2,     0,     1,     2,     0,     0,     1,
+     1,     2,     3,     1,     2,     1,     1,     5,     4,     4,
+     2,     2,     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,     3,
+     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,   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
+     5,     0,     0,     0,   153,   144,   151,   143,   243,   239,
+   241,     0,     0,     0,   407,    18,     4,     8,     7,     0,
+   119,   119,   139,   130,   140,   173,     0,     0,     0,   152,
+     0,     6,    16,    17,   244,   240,   242,     0,     0,     0,
+   238,   289,     0,     0,   161,   120,     0,    15,     0,    14,
+     0,   141,   130,   142,   146,   145,   128,   174,    31,    32,
+   264,   248,   264,   252,   255,   257,    10,    87,    88,   100,
+    57,    58,     0,     0,     0,     0,    33,    35,    34,     0,
+    36,    37,     0,    38,    39,     0,     0,    40,    59,     0,
+     0,    63,    43,    45,    89,     0,     0,   287,     0,   285,
+   149,     0,   285,   178,     0,     0,    11,     0,     0,    30,
+     0,   399,     0,     0,   171,   223,   289,     0,     0,   159,
+   120,     0,   215,   216,     0,     0,   129,   132,   156,   157,
+   131,   133,   158,     0,     0,   245,     0,   249,     0,   253,
+    54,    55,     0,    49,    46,     0,   321,     0,     0,    48,
+     0,     0,     0,    50,     0,    52,     0,     0,    80,    78,
+    76,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    98,    99,     0,     0,    41,     0,   101,
+     0,   317,   309,     0,    47,   154,   289,   382,     0,   120,
+   283,   286,   147,   155,   288,   149,   284,   184,   185,   186,
+   183,     0,   176,   179,   290,   233,   232,   162,   163,   237,
+     0,   231,     0,     0,   236,     0,     0,    28,     0,   328,
+   107,   329,   170,   172,     0,     0,    13,     0,     0,    22,
+     0,   171,   399,     0,    12,    26,     0,   171,   271,   266,
+   119,   263,   119,     0,   264,   171,   264,   280,   281,   260,
+   278,     0,     0,    91,    90,     0,     9,    44,     0,     0,
+    86,    85,     0,     0,     0,     0,    74,    75,    73,    72,
+    71,    69,    70,    64,    65,    66,    67,    68,    97,    96,
+     0,    42,     0,    93,     0,     0,   310,   311,    92,   293,
+     0,   297,     0,   299,     0,     0,   382,     0,   150,   148,
+     0,   178,    41,     0,     0,   403,   389,   119,   119,   401,
+     0,   390,   392,   400,     0,   234,   235,   307,     0,   109,
+   104,   108,     0,   168,   221,   217,   160,   222,    20,   167,
+   218,   220,     0,    24,   247,   328,   265,   328,   272,     0,
+   251,     0,     0,   261,     0,   260,     0,    61,    60,    51,
+    53,     0,     0,    79,    77,    94,    95,   405,     0,     0,
+     0,   328,     0,     0,   116,   329,   302,   312,   292,   291,
+   383,   298,   300,   294,   296,     0,   175,   177,    87,     0,
+   164,   387,   285,   285,   384,   385,     0,   402,     0,     0,
+   316,    29,   308,   314,   105,   119,   119,   136,     0,     0,
+   165,   219,     0,   267,   273,   329,   269,   329,   171,   171,
+   282,   279,   171,     0,     0,     0,    81,    84,   313,     0,
+   319,   118,   117,   306,     0,   320,   304,   329,   303,     0,
+   295,   180,     0,   182,   230,   289,   382,   120,   171,   171,
+   171,   289,   120,   171,   171,     0,   391,   393,   404,   315,
+   322,   112,     0,   113,     0,   136,   134,   190,   188,   187,
+   169,    21,     0,    25,   328,   171,     0,   246,   250,   256,
+   171,    56,   203,    87,     0,     0,   200,     0,   202,     0,
+   258,   193,   199,     0,     0,     0,   406,   318,     0,   153,
+     0,   342,   326,     0,     0,     0,     0,     0,     0,     0,
+     0,   371,   363,     0,     0,   114,   119,   119,   335,   340,
+     0,     0,   332,   333,   336,   364,   334,     0,     0,   293,
+     0,   399,     0,   394,   395,   396,   293,     0,   397,   398,
+   386,     0,     0,   163,   135,   138,   137,     0,   166,   274,
+     0,   268,   120,   171,   254,   206,     0,     0,   197,    62,
+     0,   192,     0,   205,   196,    82,     0,     0,   328,   373,
+     0,     0,   369,   353,   354,   355,     0,     0,     0,   372,
+     0,   171,   337,   125,     0,   126,     0,     0,   324,   329,
+   323,   346,     0,   127,   181,   228,   229,   224,     0,   227,
+     0,   110,   111,     0,   171,     0,   275,     0,   208,     0,
+     0,   194,   195,     0,     0,     0,   374,    45,     0,     0,
+     0,   367,   356,     0,   361,     0,   370,     0,   123,   209,
+     0,   124,   212,   341,   328,     0,     0,   225,   226,   189,
+   277,   171,     0,   201,   198,   325,     0,   327,   365,   347,
+   351,     0,   362,     0,   121,     0,   122,     0,   339,   330,
+   328,     0,   276,   207,   343,   328,   373,   328,   368,   375,
+     0,   210,   213,   331,   345,   328,   366,     0,   352,     0,
+     0,   376,   377,   357,     0,     0,   344,   348,     0,   375,
+     0,     0,   211,   214,   373,     0,     0,   358,   378,     0,
+   379,     0,     0,   349,   380,     0,   359,   328,     0,     0,
+   350,   360,   381,     0,     0,     0
 };
 
-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 yydefgoto[] = {   704,
+     1,     2,     3,    17,    18,    19,   231,   400,   237,   403,
+   114,   319,   478,    86,   148,   281,    88,    89,    90,    91,
+    92,   416,    93,   266,   265,   263,   486,   264,    94,    95,
+   218,   219,   220,   395,   361,   362,    20,   229,   506,   308,
+    57,   396,   457,   309,    23,   100,   193,    24,   131,   119,
+    44,   115,   120,   463,    45,   399,   223,   224,    26,   202,
+   203,   204,   461,   538,   480,   481,   482,   601,   483,   548,
+   484,   485,   619,   646,   675,   622,   648,   676,   209,   123,
+   439,   124,    27,    28,    29,    30,   245,   247,   252,   139,
+   552,   345,   134,   135,   242,   404,   405,   250,   251,   102,
+   191,   103,   105,   192,   363,   364,   425,   221,   183,   286,
+   287,   288,   392,   393,   184,    96,   394,   510,   511,   512,
+   559,   580,   323,   581,   367,   513,   514,   625,   558,   666,
+   657,   685,   698,   658,   515,   516,   656,   517,   571,   609,
+   671,   672,   673,   696,   292,   293,   310,   446,   311,   312,
+   313,   212,   213,   314,   315,   359,    97
 };
 
-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 yypact[] = {    60,
+    74,  2478,  2478,   206,-32768,-32768,-32768,-32768,    53,    53,
+    53,    56,    64,    70,-32768,-32768,-32768,-32768,-32768,    66,
+    21,   483,   244,-32768,    53,-32768,    59,    73,    85,-32768,
+  2478,-32768,-32768,-32768,    53,    53,    53,  2279,  2200,    81,
+-32768,-32768,    66,   215,-32768,    53,   608,-32768,   461,-32768,
+    66,   244,-32768,    53,-32768,-32768,  1057,-32768,-32768,-32768,
+-32768,    27,-32768,    77,-32768,    95,-32768,-32768,-32768,-32768,
+-32768,-32768,  2279,  2279,   127,   392,-32768,-32768,-32768,  2279,
+-32768,-32768,  1222,-32768,-32768,  2279,   116,   120,-32768,  2337,
+  2375,-32768,  2542,   827,   203,   713,  2279,-32768,   139,   238,
+-32768,   193,  1137,   569,   403,   213,-32768,   461,    66,-32768,
+   180,-32768,  1573,   321,    53,-32768,-32768,   461,   222,-32768,
+    53,  1560,   339,   377,   271,  1530,  1057,-32768,-32768,-32768,
+-32768,    53,-32768,   170,   387,-32768,   212,-32768,   410,-32768,
+-32768,-32768,  2279,-32768,-32768,   195,-32768,   225,   228,-32768,
+   247,  2279,  1222,-32768,  1222,-32768,  2279,  2279,   293,-32768,
+-32768,  2279,  2279,  2279,  2279,  2279,  2279,  2279,  2279,  2279,
+  2279,  2279,  2279,-32768,-32768,   392,   392,  2279,  2279,-32768,
+   250,-32768,   319,   278,-32768,-32768,-32768,   238,  1640,    53,
+-32768,   395,   544,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,   129,-32768,   297,-32768,   377,-32768,-32768,   337,   377,
+   358,-32768,   778,  1678,-32768,   284,   303,-32768,   233,    57,
+-32768,-32768,   349,    53,   891,   249,-32768,   461,   461,-32768,
+   321,    53,-32768,  1736,-32768,-32768,   321,    53,-32768,-32768,
+-32768,   305,   172,   857,-32768,    53,-32768,-32768,   379,   336,
+-32768,   410,  2499,-32768,-32768,  2079,-32768,  2542,   369,   382,
+  2542,  2542,  2279,   386,  2279,  2279,  2553,  2167,  1456,  1664,
+  1392,   589,   589,   288,   288,-32768,-32768,-32768,-32768,-32768,
+   390,   120,   398,-32768,   392,   905,   319,-32768,-32768,    72,
+   259,-32768,   967,-32768,   406,   238,-32768,  1774,-32768,   544,
+   419,   569,  2416,    50,   424,-32768,-32768,-32768,  1112,-32768,
+   425,   316,-32768,-32768,   140,-32768,-32768,-32768,    46,-32768,
+-32768,-32768,  1534,-32768,   339,-32768,-32768,   339,-32768,   457,
+-32768,-32768,   426,-32768,-32768,-32768,-32768,-32768,-32768,   429,
+-32768,   435,  2279,   392,   441,   336,  1585,-32768,-32768,-32768,
+-32768,   464,  2279,  1799,  2303,-32768,-32768,-32768,   323,   374,
+   820,   444,   448,   990,-32768,-32768,-32768,-32768,   395,-32768,
+-32768,-32768,   395,-32768,-32768,   465,-32768,-32768,   155,   455,
+-32768,-32768,   282,   158,-32768,-32768,  1027,-32768,   552,   473,
+-32768,-32768,   478,-32768,-32768,   480,  1054,-32768,  1431,    46,
+-32768,-32768,    46,   482,-32768,-32768,   482,-32768,    53,    53,
+  2542,-32768,    53,   486,   496,  1260,-32768,  1704,-32768,   392,
+-32768,-32768,-32768,-32768,   498,-32768,-32768,-32768,-32768,  1956,
+-32768,-32768,  2279,-32768,-32768,-32768,   158,    53,   205,   235,
+    53,-32768,    53,   235,    53,   967,-32768,-32768,-32768,-32768,
+-32768,-32768,   461,-32768,    66,-32768,   698,-32768,-32768,  2542,
+-32768,-32768,  1431,-32768,-32768,   536,   536,-32768,-32768,-32768,
+    53,-32768,-32768,   542,   392,  2279,-32768,   549,  2542,   501,
+   507,-32768,-32768,   167,  1366,  2279,-32768,-32768,  2041,   554,
+   535,-32768,-32768,   537,   538,  2279,   564,   529,   534,  2238,
+   104,   610,-32768,   575,   546,-32768,   550,   672,-32768,   615,
+  1075,    84,-32768,-32768,-32768,-32768,-32768,  2141,   177,   277,
+   282,-32768,  1832,-32768,-32768,-32768,   541,   158,-32768,-32768,
+-32768,   346,   348,   163,   698,-32768,-32768,  1260,-32768,-32768,
+  2279,-32768,    67,   175,-32768,-32768,   613,  1260,-32768,-32768,
+  1325,-32768,  1469,-32768,-32768,  1704,  2279,   570,-32768,  2279,
+  2279,  1896,-32768,-32768,-32768,-32768,   551,  2279,   558,-32768,
+   584,    53,-32768,-32768,   461,-32768,    66,  1160,-32768,-32768,
+-32768,-32768,  2279,-32768,-32768,   417,   417,-32768,  1870,-32768,
+   562,-32768,-32768,   588,  1977,  2279,-32768,  2279,-32768,   592,
+  1469,-32768,-32768,   571,  2279,   663,-32768,  1237,   599,   601,
+  2279,-32768,-32768,   606,-32768,  2279,-32768,   357,-32768,   733,
+   362,-32768,   522,-32768,-32768,  2041,   602,-32768,-32768,-32768,
+-32768,  1977,  2470,-32768,-32768,-32768,   611,-32768,-32768,-32768,
+-32768,  2521,-32768,    37,-32768,   321,-32768,   321,-32768,-32768,
+-32768,   607,-32768,-32768,-32768,-32768,  2279,-32768,-32768,   682,
+   616,-32768,-32768,-32768,-32768,-32768,-32768,   617,-32768,   629,
+    43,   620,-32768,-32768,   473,   473,-32768,-32768,  2279,   682,
+   626,   682,-32768,-32768,  2279,   628,    96,-32768,-32768,   632,
+-32768,   358,   633,-32768,   203,   186,-32768,-32768,   641,   358,
+-32768,-32768,   203,   750,   751,-32768
 };
 
 static const short yypgoto[] = {-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,
-   -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
+-32768,-32768,-32768,    63,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   -23,-32768,   -38,   450,  -137,   384,-32768,-32768,
+   -57,-32768,   211,-32768,-32768,-32768,-32768,-32768,   196,  -199,
+  -193,   545,-32768,-32768,   393,-32768,    30,    -3,   251,    17,
+   717,-32768,   315,    24,    -4,   -89,   579,    39,  -165,  -417,
+   -43,  -100,   -59,-32768,-32768,-32768,   185,    62,   -22,-32768,
+   474,-32768,   324,-32768,  -345,-32768,   227,-32768,  -428,-32768,
+-32768,   302,-32768,-32768,-32768,-32768,-32768,-32768,   -42,   -73,
+   -37,   -18,-32768,-32768,-32768,    11,-32768,-32768,-32768,-32768,
+-32768,   443,   -28,-32768,   555,   456,   328,   553,   458,   -49,
+   -66,   -81,   -86,   -48,   439,-32768,-32768,  -163,-32768,-32768,
+-32768,   516,  -305,-32768,   411,-32768,  -360,-32768,-32768,-32768,
+-32768,  -105,  -316,  -442,   446,-32768,   187,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,   188,-32768,  -510,
+   131,-32768,   134,-32768,   521,-32768,  -251,-32768,-32768,-32768,
+   433,  -212,-32768,-32768,-32768,-32768,     8
 };
 
 
-#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,
+#define        YYLAST          2610
+
+
+static const short yytable[] = {    87,
+    99,    47,    58,    62,    64,    66,   122,   125,   222,    31,
+    31,   304,    58,    58,    58,   141,   142,    52,    21,    21,
+   331,   232,   145,    58,   106,    22,    22,   299,   150,   450,
+   225,    58,   126,   149,   137,   532,   197,   329,    31,   185,
+   282,   371,   109,   334,   226,   241,   390,    21,   208,   430,
+    49,    51,   144,   243,    22,   320,   555,  -103,   180,    -1,
+    53,    59,    60,    25,    25,    32,   321,   133,    41,   509,
+    35,    36,    37,    -2,   216,    59,    60,   101,   205,   660,
+   201,    46,    14,    54,   582,   680,   206,    59,    60,   466,
+   210,   467,    25,    67,   462,    14,    14,   464,    58,   106,
+   290,    14,    48,   259,    46,   260,    59,    60,   232,    58,
+   121,   489,    46,   136,   222,   249,   606,   661,   132,    38,
+    42,   101,   365,   681,   603,   222,   187,    39,   509,    43,
+   381,   222,   391,    40,   299,   188,   189,   133,   692,   291,
+   283,   196,   244,  -103,   104,    61,   668,   583,  -172,  -172,
+   295,   325,   279,   280,   241,   328,   145,   618,   568,    63,
+    41,   190,   243,   138,   190,   282,    46,    58,   327,   121,
+    46,    65,   635,   101,   690,     5,   693,     7,   195,   121,
+   366,   140,   649,     9,    10,    11,   296,    14,   132,   111,
+   143,   101,   594,   101,   531,   333,   151,   422,   349,    13,
+   427,    58,   600,   133,    14,   152,   206,   553,   664,   301,
+   210,   180,   442,   667,   302,   669,   340,   596,   342,   186,
+   388,   437,   189,   677,   352,   389,   112,   113,   249,   475,
+   406,   476,   408,   217,    14,   432,  -106,  -106,  -106,  -106,
+   433,   369,  -106,   211,  -106,  -106,  -106,   373,    55,   190,
+    56,   244,   238,  -270,  -270,   701,   366,   585,   428,   376,
+  -106,   358,   152,   626,    14,   509,   699,    14,   522,   523,
+   336,   700,   338,   194,    25,   254,   112,   113,   201,    41,
+   435,   196,   101,   205,    41,   435,   121,    33,    34,   121,
+   121,   537,   187,   207,   246,   519,   107,   415,   112,   113,
+   108,   188,   189,   227,    52,   255,    14,   228,   256,   588,
+   133,    14,   233,   234,   683,   684,   441,   445,   397,  -106,
+   249,   217,   297,   298,  -328,  -328,  -328,  -328,   257,   326,
+   284,   436,  -328,  -328,  -328,   -83,   436,   383,   384,   370,
+   437,   189,   171,   172,   173,   437,   189,    53,  -328,   520,
+   285,   190,   235,   253,    25,   527,   108,   190,   289,   408,
+   303,   398,   258,   111,   440,   444,    70,   261,   262,   537,
+    54,   317,   267,   268,   269,   270,   271,   272,   273,   274,
+   275,   276,   277,   278,   318,   101,   337,   239,   291,   324,
+     5,   505,     7,    98,    59,    60,   487,   386,     9,    10,
+    11,   387,   233,   234,   419,    41,   504,  -102,   420,   205,
+   248,   533,    59,    60,    13,    58,   330,    15,   106,   343,
+    58,   344,   335,   544,   544,   453,   455,   592,   353,   593,
+   341,   228,    14,   108,   521,   456,   534,   518,   645,   528,
+   112,   113,   228,   647,   438,   443,   507,   108,    25,   350,
+   505,   546,   662,   508,   663,   318,   421,    42,   297,   298,
+   185,   567,   351,    41,   116,   504,    43,   133,   240,  -262,
+   356,   369,   373,   154,   156,   354,   355,   569,   369,   373,
+   522,   523,   586,   587,   591,   357,     5,     6,     7,     8,
+    14,    25,   695,   372,     9,    10,    11,   401,   443,   377,
+   703,   206,   210,    52,   382,   385,   417,    25,   206,   210,
+    13,   409,    14,   402,   121,   117,    46,   410,   604,   232,
+    58,   607,   610,   413,   118,   518,  -305,   543,   121,   614,
+   426,   145,   620,   621,   507,   434,   575,   577,    41,   116,
+   222,   508,   222,    41,   627,   133,    53,   205,   111,   129,
+   130,  -163,   431,   411,   449,     9,    10,    11,   623,   391,
+   182,   452,  -163,   418,    50,    14,   637,   465,   471,    54,
+    14,    59,    60,   198,   199,   200,   472,   644,   541,    25,
+   488,   438,   438,   550,   -31,   112,   113,   505,   443,   443,
+   117,   549,   551,   468,   469,   442,   -32,   470,   557,   118,
+   560,   561,   504,  -163,   437,   189,   563,  -163,   110,   460,
+   564,   -27,   -27,   -27,   -27,   565,   570,   572,   607,   -27,
+   -27,   -27,   598,   524,   525,   526,   479,   573,   529,   530,
+   578,   574,   613,   605,   111,   -27,   121,  -163,    46,   615,
+   686,   169,   170,   171,   172,   173,   607,   616,  -163,   629,
+   542,   636,   157,   158,   159,   545,   160,   161,   162,   163,
+   164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
+   630,   112,   113,   460,   634,     5,     6,     7,     8,   638,
+   640,   641,   652,     9,    10,    11,   547,   643,   665,  -163,
+   670,   655,   679,  -163,   -27,   479,   556,   674,   678,    13,
+   599,    14,   536,   129,   130,   682,   562,   688,   691,     9,
+    10,    11,   694,   181,   697,  -308,  -308,  -308,  -308,  -308,
+  -308,  -308,   702,  -308,  -308,  -308,  -308,  -308,   597,  -308,
+  -308,  -308,  -308,  -308,  -308,  -308,  -308,  -308,  -308,  -308,
+  -308,  -308,  -308,  -308,  -308,  -308,  -308,  -308,   479,   705,
+   706,   595,   380,   576,   423,   608,   617,  -308,   479,   111,
+  -308,   479,  -163,   479,   322,  -308,  -308,  -308,   584,   127,
+   535,  -308,  -308,  -163,   300,   378,  -308,   602,   305,   631,
+   306,     5,     6,     7,     8,   554,   539,   307,   414,     9,
+    10,    11,   540,   407,  -308,   182,  -308,  -308,   339,  -308,
+   424,   412,   368,   451,   346,    13,   632,    14,   633,   429,
+   687,   479,   650,   651,  -163,   689,   653,   374,  -163,   448,
+   217,   642,  -115,  -115,  -115,  -115,  -115,  -115,  -115,     0,
+  -115,  -115,  -115,  -115,  -115,     0,  -115,  -115,  -115,  -115,
+  -115,  -115,  -115,  -115,  -115,  -115,  -115,  -115,  -115,  -115,
+  -115,     0,  -115,  -115,  -115,     0,     0,   239,  -388,     0,
+     5,     0,     7,    98,  -115,     0,     0,  -115,     9,    10,
+    11,     0,  -115,  -115,  -115,     0,     0,     0,  -115,  -115,
+     0,     0,     0,  -115,    13,   174,   175,    15,   176,   177,
+   178,   179,     0,    41,   116,     0,     0,   205,     0,     0,
+     0,  -115,  -115,  -115,  -115,   360,  -115,  -328,  -328,  -328,
+  -328,  -328,  -328,  -328,     0,  -328,  -328,  -328,  -328,  -328,
+    14,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,
+  -328,  -328,  -328,  -328,  -328,  -328,     0,  -328,  -328,  -328,
+     0,     0,     0,     0,     0,   117,     0,     0,     0,  -328,
+     0,     0,  -328,     0,   118,     0,     0,  -328,  -328,  -328,
+     0,     0,     0,  -328,  -328,     0,     0,   305,  -328,     0,
+     5,     6,     7,     8,     0,     0,   307,     0,     9,    10,
+    11,     0,     0,     0,     0,     0,  -328,     0,  -328,  -328,
+   217,  -328,  -328,  -328,    13,     0,    14,  -328,  -328,     0,
+  -328,     0,     0,     0,  -328,     0,  -328,  -328,  -328,  -328,
+  -328,  -328,  -328,  -328,  -328,  -328,  -328,     0,  -328,     0,
+  -328,     0,  -328,  -328,  -328,     0,     0,     0,     0,     0,
+     5,     6,     7,     8,  -328,     0,   447,  -328,     9,    10,
+    11,     0,  -328,  -328,  -328,     0,     0,  -388,  -328,  -328,
+     0,     0,     0,  -328,    13,     0,    14,     5,    55,     7,
+    56,   128,   129,   130,     0,     9,    10,    11,     9,    10,
+    11,  -328,  -301,  -328,  -328,   579,  -328,  -328,  -328,     0,
+     0,    13,  -328,  -328,     0,  -328,    14,     0,     0,  -328,
+     0,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,
+  -328,  -328,     0,  -328,     0,  -328,     0,  -328,  -328,  -328,
+     0,     0,     0,     0,     0,     5,     6,     7,     8,  -328,
+     0,     0,  -328,     9,    10,    11,     0,  -328,  -328,  -328,
+     0,     0,     0,  -328,  -328,   454,     0,     0,  -328,    13,
+     5,    14,     7,   195,     0,     0,     0,     0,     9,    10,
+    11,     0,     0,     0,     0,     0,  -328,     0,  -328,  -328,
+   624,  -328,  -338,  -338,    13,     0,    14,  -338,  -338,     0,
+  -338,     0,     0,     0,  -338,     0,  -338,  -338,  -338,  -338,
+  -338,  -338,  -338,  -338,  -338,  -338,  -338,     0,  -338,     0,
+  -338,   187,  -338,  -338,  -338,     0,     0,     0,     0,     0,
+   188,   189,     0,     0,  -338,     0,     0,  -338,     0,     0,
+     0,     0,  -338,  -338,  -338,     0,     0,     0,  -338,  -338,
+     0,     0,   146,  -338,    68,     5,     0,     7,    98,    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,
+     0,  -338,     0,  -338,  -338,     0,  -338,     0,     0,    13,
+    72,     0,    15,     0,    73,    74,    75,     0,     0,     0,
+   473,     0,   474,    60,     0,     0,    76,    69,    70,    77,
+    71,     0,     0,     0,    78,    79,    80,     0,     0,     0,
+    81,    82,     0,     0,     0,    83,     0,     0,    72,     0,
+    15,     0,    73,    74,    75,   174,   175,     0,   176,   177,
+   178,   179,     0,     0,    76,    84,    85,    77,   147,     0,
+     0,     0,    78,    79,    80,     0,     0,   639,    81,    82,
+     0,     0,   475,    83,   476,   473,     0,   474,    60,     0,
+     0,     0,    69,    70,     0,    71,     0,     0,     0,     0,
+     0,     0,  -191,    84,    85,     0,   477,     0,     0,     0,
+     0,     0,     0,    72,     0,    15,     0,    73,    74,    75,
+     0,     0,     0,     0,     0,     0,   473,     0,    68,    76,
+     0,     0,    77,    69,    70,     0,    71,    78,    79,    80,
+     0,     0,     0,    81,    82,     0,     0,   475,    83,   476,
+     0,     0,     0,     0,    72,     0,    15,     0,    73,    74,
+    75,     0,     0,     0,     0,     0,  -204,  -259,    84,    85,
+    76,   477,     0,    77,     0,     0,     0,     0,    78,    79,
+    80,     0,     0,     0,    81,    82,     0,     0,  -204,    83,
+  -204,   458,     0,    68,     0,     0,     0,     0,    69,    70,
+     0,    71,   167,   168,   169,   170,   171,   172,   173,    84,
+    85,     0,   477,     0,     0,     0,     0,     0,     0,    72,
+     0,    15,     0,    73,    74,    75,     0,     0,     0,   473,
+     0,    68,     0,     0,     0,    76,    69,    70,    77,    71,
+     0,     0,     0,    78,    79,    80,     0,     0,     0,    81,
+    82,     0,     0,     0,    83,     0,     0,    72,     0,    15,
+     0,    73,    74,    75,   165,   166,   167,   168,   169,   170,
+   171,   172,   173,    76,    84,    85,    77,   459,     0,     0,
+     0,    78,    79,    80,     0,     0,     0,    81,    82,     0,
+   236,     0,    83,   -23,   -23,   -23,   -23,     5,     6,     7,
+     8,   -23,   -23,   -23,     0,     9,    10,    11,     0,     0,
+     0,     0,    84,    85,     0,   477,   111,   -23,     0,  -163,
+   230,    13,     0,   -19,   -19,   -19,   -19,     0,     0,     0,
+  -163,   -19,   -19,   -19,     0,    68,     0,     0,     0,     0,
+    69,    70,     0,    71,     0,     0,   111,   -19,     5,  -163,
+     7,    98,     0,   112,   113,     0,     9,    10,    11,     0,
+  -163,    72,     0,    15,     0,    73,    74,    75,     0,     0,
+     0,  -163,    13,     0,     0,  -163,   -23,    76,     0,     0,
+    77,     0,     0,     0,     0,    78,    79,   214,     0,     0,
+     0,    81,    82,     0,     0,     0,    83,     0,     0,     0,
+     0,  -163,    68,     0,     0,  -163,   -19,    69,    70,     0,
+    71,     0,     0,     0,     0,     0,    84,    85,     0,     0,
+   215,     0,     0,     0,     0,     0,     0,     0,    72,     0,
+    15,     0,    73,    74,    75,     0,     0,     0,     0,     0,
+    68,     0,     0,     0,    76,    69,    70,    77,    71,     0,
+     0,     0,    78,    79,    80,     0,     0,     0,    81,    82,
+     0,     0,     0,    83,     0,     0,    72,     0,    15,     0,
+    73,    74,    75,   166,   167,   168,   169,   170,   171,   172,
+   173,     0,    76,    84,    85,    77,     0,   294,     0,     0,
+    78,    79,    80,     0,     0,     0,    81,    82,    68,     0,
+     0,    83,     0,    69,    70,   159,    71,   160,   161,   162,
+   163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+   173,    84,    85,     0,    72,   316,    15,     0,    73,    74,
+    75,     0,     0,     0,     0,     0,    68,     0,     0,     0,
+    76,    69,    70,    77,    71,     0,     0,     0,    78,    79,
+    80,     0,     0,     0,    81,    82,     0,     0,     0,    83,
+     0,     0,    72,     0,    15,     0,    73,    74,    75,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    76,    84,
+    85,    77,     0,   332,     0,     0,    78,    79,    80,     0,
+     0,     0,    81,    82,    68,     0,     0,    83,     0,    69,
+    70,     0,    71,   161,   162,   163,   164,   165,   166,   167,
+   168,   169,   170,   171,   172,   173,     0,    84,    85,     0,
+    72,   375,    15,     0,    73,    74,    75,     0,     0,     0,
+     0,     0,    68,     0,     0,     0,    76,    69,    70,    77,
+    71,     0,     0,     0,    78,    79,   589,     0,     0,     0,
+    81,    82,     0,     0,     0,    83,     0,     0,    72,     0,
+    15,     0,    73,    74,    75,   611,     0,     0,     0,     0,
+     0,     0,     0,     0,    76,    84,    85,    77,     0,   590,
+     0,     0,    78,    79,    80,     0,     0,     0,    81,    82,
+     0,     0,     0,    83,     0,   157,   158,   159,   612,   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,
+   171,   172,   173,    84,    85,     0,     0,   628,   474,   490,
+     6,     7,     8,    69,    70,     0,    71,     9,    10,    11,
+   491,     0,   492,   493,   494,   495,   496,   497,   498,   499,
+   500,   501,   502,    13,    72,    14,    15,     0,    73,    74,
+    75,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    76,     0,     0,    77,     0,     0,    14,     0,    78,    79,
+    80,     0,     0,     0,    81,    82,   157,   158,   159,    83,
    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
+   170,   171,   172,   173,     0,     0,     0,   503,     0,    84,
+    85,     0,   391,   474,    60,     0,     0,     0,    69,    70,
+     0,    71,     0,     0,     0,   491,     0,   492,   493,   494,
+   495,   496,   497,   498,   499,   500,   501,   502,     0,    72,
+     0,    15,     0,    73,    74,    75,     0,     0,     0,     0,
+     0,    68,     0,     0,     0,    76,    69,    70,    77,    71,
+     0,     0,     0,    78,    79,    80,     0,     0,     0,    81,
+    82,     0,     0,     0,    83,     0,     0,    72,     0,    15,
+     0,    73,    74,    75,     0,     0,     0,     0,     0,     0,
+     0,     0,   503,    76,    84,    85,    77,   391,     0,     0,
+     0,    78,    79,    80,     0,     0,     0,    81,    82,     0,
+     0,     0,    83,    68,     5,     6,     7,     8,    69,    70,
+     0,    71,     9,    10,    11,     0,     0,     0,     0,     0,
+     0,     0,    84,    85,     0,   348,     0,     0,    13,    72,
+    14,    15,     0,    73,    74,    75,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    76,     0,     0,    77,     0,
+     0,     0,     0,    78,    79,    80,     0,     0,     0,    81,
+    82,     0,    68,     5,    83,     7,    98,    69,    70,     0,
+    71,     9,    10,    11,   164,   165,   166,   167,   168,   169,
+   170,   171,   172,   173,    84,    85,     0,    13,    72,     0,
+    15,     0,    73,    74,    75,     0,     0,     0,     0,     0,
+    68,     0,     0,     0,    76,    69,    70,    77,    71,     0,
+     0,     0,    78,    79,    80,     0,     0,     0,    81,    82,
+     0,     0,     0,    83,     0,     0,    72,     0,    15,     0,
+    73,    74,    75,     0,     0,     0,     0,     0,     0,     0,
+     0,    68,    76,    84,    85,    77,    69,    70,     0,    71,
+    78,    79,    80,     0,     0,     0,    81,    82,     0,     0,
+     0,    83,     0,     0,     0,     0,     0,    72,     0,    15,
+     0,    73,    74,    75,     0,     0,     0,     0,     0,   566,
+     0,    84,    85,    76,     0,     0,    77,     0,     0,     0,
+     0,    78,    79,    80,     0,     0,     0,    81,    82,    68,
+     0,     0,    83,     0,    69,    70,     0,    71,   162,   163,
+   164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
+     0,     0,    84,    85,     0,    72,     0,    15,     0,    73,
+    74,    75,     0,     0,     0,     0,     0,    68,     0,     0,
+     0,    76,    69,    70,    77,    71,     0,     0,     0,    78,
+    79,    80,     0,     0,     0,    81,    82,     0,     0,     0,
+   153,     0,     0,    72,     0,    15,     0,    73,    74,    75,
+     0,     0,     0,     0,     0,     0,     0,     0,   379,    76,
+    84,    85,    77,    69,    70,     0,    71,    78,    79,    80,
+     0,     0,     0,    81,    82,     0,     0,     0,   155,     0,
+     0,     0,     0,     0,    72,     0,    15,     0,    73,    74,
+    75,     0,     0,     0,     0,     0,     0,     0,    84,    85,
+    76,     0,     0,    77,     0,     0,     0,     0,    78,    79,
+    80,     0,     0,     0,    81,    82,     0,     0,     4,    83,
+  -119,     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,   157,
+   158,   159,     0,   160,   161,   162,   163,   164,   165,   166,
+   167,   168,   169,   170,   171,   172,   173,     0,     0,     0,
+     0,     0,  -119,     0,     0,     0,     0,     0,   157,   158,
+   159,  -119,   160,   161,   162,   163,   164,   165,   166,   167,
+   168,   169,   170,   171,   172,   173,     0,   654,     0,    16,
+   157,   158,   159,   659,   160,   161,   162,   163,   164,   165,
+   166,   167,   168,   169,   170,   171,   172,   173,     0,     0,
+     0,   157,   158,   159,   347,   160,   161,   162,   163,   164,
+   165,   166,   167,   168,   169,   170,   171,   172,   173,   163,
+   164,   165,   166,   167,   168,   169,   170,   171,   172,   173
 };
 
 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,     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,
+    39,    20,    25,    27,    28,    29,    49,    51,   114,     2,
+     3,   211,    35,    36,    37,    73,    74,    22,     2,     3,
+   233,   122,    80,    46,    43,     2,     3,   193,    86,   390,
+   117,    54,    51,    83,    63,   453,   103,   231,    31,    97,
+   178,   293,    46,   237,   118,   135,     1,    31,   108,   366,
+    21,    22,    76,   135,    31,   219,   485,     1,     9,     0,
+    22,     3,     4,     2,     3,     3,    10,    57,     3,   430,
+     9,    10,    11,     0,   113,     3,     4,    39,     7,    43,
+   104,    20,    30,    22,     1,    43,   105,     3,     4,   406,
+   109,   408,    31,    31,   400,    30,    30,   403,   121,   118,
+   187,    30,    82,   153,    43,   155,     3,     4,   209,   132,
+    49,   428,    51,    87,   220,   139,   559,    81,    57,    64,
+    55,    83,   286,    81,   553,   231,    55,    64,   489,    64,
+    81,   237,    87,    64,   300,    64,    65,   127,    43,   188,
+   179,   103,   135,    87,    64,    87,   657,    64,    82,    83,
+   189,   225,   176,   177,   244,   229,   214,   575,    55,    87,
+     3,   100,   244,    87,   103,   303,   105,   190,   228,   108,
+   109,    87,   601,   135,   685,     4,    81,     6,     7,   118,
+   286,    87,   625,    12,    13,    14,   190,    30,   127,    27,
+    64,   153,   538,   155,   446,   234,    81,   361,   256,    28,
+   364,   224,   548,   193,    30,    86,   225,    41,   651,    81,
+   229,     9,    55,   656,    86,   658,   245,    43,   247,    81,
+    81,    64,    65,   666,   263,    86,    64,    65,   252,    63,
+   336,    65,   338,     1,    30,    81,     4,     5,     6,     7,
+    86,   290,    10,    64,    12,    13,    14,   296,     5,   188,
+     7,   244,    83,    82,    83,   698,   362,    81,   364,   298,
+    28,   285,    86,   580,    30,   626,    81,    30,    64,    65,
+   241,    86,   243,    81,   213,    81,    64,    65,   302,     3,
+     4,   243,   244,     7,     3,     4,   225,    82,    83,   228,
+   229,   457,    55,    81,    83,   433,    82,   347,    64,    65,
+    86,    64,    65,    82,   309,    81,    30,    86,    81,   522,
+   300,    30,    64,    65,   675,   676,   383,   384,   323,    87,
+   344,     1,    64,    65,     4,     5,     6,     7,    82,    81,
+    81,    55,    12,    13,    14,    43,    55,   308,   309,    81,
+    64,    65,    55,    56,    57,    64,    65,   309,    28,   436,
+    32,   290,    82,   143,   293,   442,    86,   296,    81,   465,
+    64,   323,   152,    27,   383,   384,     9,   157,   158,   535,
+   309,    88,   162,   163,   164,   165,   166,   167,   168,   169,
+   170,   171,   172,   173,    82,   347,    82,     1,   437,    41,
+     4,   430,     6,     7,     3,     4,   420,    82,    12,    13,
+    14,    86,    64,    65,    82,     3,   430,    87,    86,     7,
+     1,   455,     3,     4,    28,   438,   232,    31,   437,    41,
+   443,    86,   238,   466,   467,   396,   397,    82,    43,    82,
+   246,    86,    30,    86,   438,   397,   455,   430,    82,   443,
+    64,    65,    86,    82,   383,   384,   430,    86,   387,    81,
+   489,   475,   646,   430,   648,    82,    83,    55,    64,    65,
+   518,   500,    81,     3,     4,   489,    64,   457,    82,    83,
+    81,   520,   521,    90,    91,   265,   266,   501,   527,   528,
+    64,    65,   520,   521,   523,    88,     4,     5,     6,     7,
+    30,   430,   692,    88,    12,    13,    14,    41,   437,    81,
+   700,   520,   521,   508,    81,    81,    43,   446,   527,   528,
+    28,    83,    30,    88,   453,    55,   455,    83,   557,   620,
+   543,   560,   561,    83,    64,   518,    83,   466,   467,   568,
+    83,   589,   575,   577,   518,    81,   507,   508,     3,     4,
+   646,   518,   648,     3,   583,   535,   508,     7,    27,     6,
+     7,    30,    88,   343,     3,    12,    13,    14,   577,    87,
+    83,    82,    41,   353,    82,    30,   605,    86,    83,   508,
+    30,     3,     4,     5,     6,     7,    81,   616,    43,   518,
+    83,   520,   521,    83,    43,    64,    65,   626,   527,   528,
+    55,    43,    86,   409,   410,    55,    43,   413,    64,    64,
+    64,    64,   626,    82,    64,    65,    43,    86,     1,   399,
+    82,     4,     5,     6,     7,    82,     7,    43,   657,    12,
+    13,    14,    10,   439,   440,   441,   416,    82,   444,   445,
+    16,    82,    82,    64,    27,    28,   575,    30,   577,    82,
+   679,    53,    54,    55,    56,    57,   685,    64,    41,    88,
+   466,    81,    40,    41,    42,   471,    44,    45,    46,    47,
+    48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+    83,    64,    65,   463,    83,     4,     5,     6,     7,    17,
+    82,    81,    81,    12,    13,    14,   476,    82,    82,    82,
+     9,    81,    64,    86,    87,   485,   486,    82,    82,    28,
+    88,    30,     5,     6,     7,    86,   496,    82,    81,    12,
+    13,    14,    81,     1,    82,     3,     4,     5,     6,     7,
+     8,     9,    82,    11,    12,    13,    14,    15,   544,    17,
+    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+    28,    29,    30,    31,    32,    33,    34,    35,   538,     0,
+     0,   541,   303,    82,   362,   560,   572,    45,   548,    27,
+    48,   551,    30,   553,   220,    53,    54,    55,   518,    53,
+   456,    59,    60,    41,   196,   302,    64,   551,     1,   595,
+     3,     4,     5,     6,     7,   484,   463,    10,   346,    12,
+    13,    14,   465,   338,    82,    83,    84,    85,   244,    87,
+   362,   344,   287,   393,   252,    28,   596,    30,   598,   364,
+   680,   601,   626,   626,    82,   682,   632,   297,    86,   387,
+     1,   611,     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,    -1,    33,    34,    35,    -1,    -1,     1,    81,    -1,
+     4,    -1,     6,     7,    45,    -1,    -1,    48,    12,    13,
+    14,    -1,    53,    54,    55,    -1,    -1,    -1,    59,    60,
+    -1,    -1,    -1,    64,    28,    59,    60,    31,    62,    63,
+    64,    65,    -1,     3,     4,    -1,    -1,     7,    -1,    -1,
+    -1,    82,    83,    84,    85,     1,    87,     3,     4,     5,
+     6,     7,     8,     9,    -1,    11,    12,    13,    14,    15,
+    30,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    28,    29,    30,    31,    -1,    33,    34,    35,
+    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    45,
+    -1,    -1,    48,    -1,    64,    -1,    -1,    53,    54,    55,
+    -1,    -1,    -1,    59,    60,    -1,    -1,     1,    64,    -1,
+     4,     5,     6,     7,    -1,    -1,    10,    -1,    12,    13,
+    14,    -1,    -1,    -1,    -1,    -1,    82,    -1,    84,    85,
+     1,    87,     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,    35,    -1,    -1,    -1,    -1,    -1,
+     4,     5,     6,     7,    45,    -1,    10,    48,    12,    13,
+    14,    -1,    53,    54,    55,    -1,    -1,    81,    59,    60,
+    -1,    -1,    -1,    64,    28,    -1,    30,     4,     5,     6,
+     7,     5,     6,     7,    -1,    12,    13,    14,    12,    13,
+    14,    82,    83,    84,    85,     1,    87,     3,     4,    -1,
+    -1,    28,     8,     9,    -1,    11,    30,    -1,    -1,    15,
+    -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,    35,
+    -1,    -1,    -1,    -1,    -1,     4,     5,     6,     7,    45,
+    -1,    -1,    48,    12,    13,    14,    -1,    53,    54,    55,
+    -1,    -1,    -1,    59,    60,    82,    -1,    -1,    64,    28,
+     4,    30,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
+    14,    -1,    -1,    -1,    -1,    -1,    82,    -1,    84,    85,
+     1,    87,     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,    55,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,
+    64,    65,    -1,    -1,    45,    -1,    -1,    48,    -1,    -1,
+    -1,    -1,    53,    54,    55,    -1,    -1,    -1,    59,    60,
+    -1,    -1,     1,    64,     3,     4,    -1,     6,     7,     8,
+     9,    -1,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
+    -1,    82,    -1,    84,    85,    -1,    87,    -1,    -1,    28,
+    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,    -1,
+     1,    -1,     3,     4,    -1,    -1,    45,     8,     9,    48,
+    11,    -1,    -1,    -1,    53,    54,    55,    -1,    -1,    -1,
+    59,    60,    -1,    -1,    -1,    64,    -1,    -1,    29,    -1,
+    31,    -1,    33,    34,    35,    59,    60,    -1,    62,    63,
+    64,    65,    -1,    -1,    45,    84,    85,    48,    87,    -1,
+    -1,    -1,    53,    54,    55,    -1,    -1,    81,    59,    60,
+    -1,    -1,    63,    64,    65,     1,    -1,     3,     4,    -1,
+    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,
+    -1,    -1,    83,    84,    85,    -1,    87,    -1,    -1,    -1,
+    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,
+    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,    45,
+    -1,    -1,    48,     8,     9,    -1,    11,    53,    54,    55,
+    -1,    -1,    -1,    59,    60,    -1,    -1,    63,    64,    65,
+    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,
+    35,    -1,    -1,    -1,    -1,    -1,    41,    83,    84,    85,
+    45,    87,    -1,    48,    -1,    -1,    -1,    -1,    53,    54,
+    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    63,    64,
+    65,     1,    -1,     3,    -1,    -1,    -1,    -1,     8,     9,
+    -1,    11,    51,    52,    53,    54,    55,    56,    57,    84,
+    85,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    35,    -1,    -1,    -1,     1,
+    -1,     3,    -1,    -1,    -1,    45,     8,     9,    48,    11,
+    -1,    -1,    -1,    53,    54,    55,    -1,    -1,    -1,    59,
+    60,    -1,    -1,    -1,    64,    -1,    -1,    29,    -1,    31,
+    -1,    33,    34,    35,    49,    50,    51,    52,    53,    54,
+    55,    56,    57,    45,    84,    85,    48,    87,    -1,    -1,
+    -1,    53,    54,    55,    -1,    -1,    -1,    59,    60,    -1,
+     1,    -1,    64,     4,     5,     6,     7,     4,     5,     6,
+     7,    12,    13,    14,    -1,    12,    13,    14,    -1,    -1,
+    -1,    -1,    84,    85,    -1,    87,    27,    28,    -1,    30,
+     1,    28,    -1,     4,     5,     6,     7,    -1,    -1,    -1,
+    41,    12,    13,    14,    -1,     3,    -1,    -1,    -1,    -1,
+     8,     9,    -1,    11,    -1,    -1,    27,    28,     4,    30,
+     6,     7,    -1,    64,    65,    -1,    12,    13,    14,    -1,
+    41,    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,
+    -1,    82,    28,    -1,    -1,    86,    87,    45,    -1,    -1,
+    48,    -1,    -1,    -1,    -1,    53,    54,    55,    -1,    -1,
+    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    -1,    -1,
+    -1,    82,     3,    -1,    -1,    86,    87,     8,     9,    -1,
+    11,    -1,    -1,    -1,    -1,    -1,    84,    85,    -1,    -1,
+    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,    -1,
+    31,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,
+     3,    -1,    -1,    -1,    45,     8,     9,    48,    11,    -1,
+    -1,    -1,    53,    54,    55,    -1,    -1,    -1,    59,    60,
+    -1,    -1,    -1,    64,    -1,    -1,    29,    -1,    31,    -1,
+    33,    34,    35,    50,    51,    52,    53,    54,    55,    56,
+    57,    -1,    45,    84,    85,    48,    -1,    88,    -1,    -1,
+    53,    54,    55,    -1,    -1,    -1,    59,    60,     3,    -1,
+    -1,    64,    -1,     8,     9,    42,    11,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+    57,    84,    85,    -1,    29,    88,    31,    -1,    33,    34,
+    35,    -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,
+    45,     8,     9,    48,    11,    -1,    -1,    -1,    53,    54,
+    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,
+    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    84,
+    85,    48,    -1,    88,    -1,    -1,    53,    54,    55,    -1,
+    -1,    -1,    59,    60,     3,    -1,    -1,    64,    -1,     8,
+     9,    -1,    11,    45,    46,    47,    48,    49,    50,    51,
+    52,    53,    54,    55,    56,    57,    -1,    84,    85,    -1,
+    29,    88,    31,    -1,    33,    34,    35,    -1,    -1,    -1,
+    -1,    -1,     3,    -1,    -1,    -1,    45,     8,     9,    48,
+    11,    -1,    -1,    -1,    53,    54,    55,    -1,    -1,    -1,
+    59,    60,    -1,    -1,    -1,    64,    -1,    -1,    29,    -1,
+    31,    -1,    33,    34,    35,    10,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    45,    84,    85,    48,    -1,    88,
+    -1,    -1,    53,    54,    55,    -1,    -1,    -1,    59,    60,
+    -1,    -1,    -1,    64,    -1,    40,    41,    42,    43,    44,
+    45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+    55,    56,    57,    84,    85,    -1,    -1,    88,     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,    -1,    29,    -1,    31,    -1,    33,    34,
-    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,
-    78,    79,    80,    -1,    82,    -1,    -1,    -1,    -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,    -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,
-    78,    79,    80,    -1,    82,    -1,    -1,    -1,    -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,    -1,    -1,    -1,    54,    55,    -1,    -1,
-    58,    59,    60,     1,    -1,     3,    -1,    -1,    -1,    -1,
-     8,     9,    -1,    11,     1,    -1,    -1,     4,     5,     6,
-     7,    79,    80,    -1,    82,    12,    13,    14,    -1,    -1,
-    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
-    27,    28,    40,    30,    -1,    43,    -1,    -1,    -1,    36,
-    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
-    -1,    59,    46,    47,    48,    49,    50,    51,    52,    -1,
-     3,    -1,    59,    60,    -1,     8,     9,    -1,    11,    -1,
-    -1,    79,    80,     3,    82,    -1,    -1,    -1,     8,     9,
-    77,    11,    -1,    -1,    81,    82,    29,    -1,    31,    -1,
-    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    29,
-    43,    31,    -1,    33,    34,    48,    49,    50,    -1,    -1,
-    40,    54,    55,    43,    -1,    -1,    59,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,     3,    -1,    -1,    59,
-    -1,     8,     9,    -1,    11,    -1,    79,    80,    -1,     3,
-    83,    -1,    -1,    -1,     8,     9,    -1,    11,    -1,    79,
-    80,    -1,    29,    83,    31,    -1,    33,    34,    -1,    -1,
-    -1,    -1,    -1,    40,    -1,    29,    43,    31,    -1,    33,
-    34,    48,    49,    50,    -1,    -1,    40,    54,    55,    43,
-    -1,    -1,    59,    -1,    48,    49,    50,    -1,    -1,    -1,
-    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,    -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,
-    28,    11,    12,    13,    14,    15,    -1,    17,    18,    19,
-    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-    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,
+    25,    26,    27,    28,    29,    30,    31,    -1,    33,    34,
+    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    45,    -1,    -1,    48,    -1,    -1,    30,    -1,    53,    54,
+    55,    -1,    -1,    -1,    59,    60,    40,    41,    42,    64,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+    54,    55,    56,    57,    -1,    -1,    -1,    82,    -1,    84,
+    85,    -1,    87,     3,     4,    -1,    -1,    -1,     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,    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,
-    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
-    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-    -1,    -1,    -1,    59,     3,     4,     5,     6,     7,     8,
-     9,    -1,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    79,    80,    -1,    82,    -1,    -1,    28,
-    29,    30,    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,     4,
-    59,     6,     7,     8,     9,    -1,    11,    12,    13,    14,
-    -1,     3,    -1,    -1,    -1,    -1,     8,     9,    -1,    11,
-    79,    80,    -1,    28,    29,    -1,    31,    -1,    33,    34,
-    -1,    -1,    -1,    -1,    -1,    40,    -1,    29,    43,    31,
-    -1,    33,    34,    48,    49,    50,    -1,    -1,    40,    54,
-    55,    43,    -1,    -1,    59,    -1,    48,    49,    50,    -1,
-    -1,    -1,    54,    55,     3,    -1,    -1,    59,    -1,     8,
-     9,    -1,    11,    -1,    79,    80,    44,    45,    46,    47,
-    48,    49,    50,    51,    52,    77,    -1,    79,    80,    -1,
-    29,     3,    31,    -1,    33,    34,     8,     9,    -1,    11,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    29,     3,    31,
-    59,    33,    34,     8,     9,    -1,    11,    -1,    40,    -1,
-    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
-    79,    80,    54,    55,    29,     3,    31,    59,    33,    34,
-     8,     9,    -1,    11,    -1,    40,    -1,    -1,    43,    -1,
-    -1,    -1,    -1,    48,    49,    50,    -1,    79,    80,    54,
-    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,     4,    -1,     6,
-     7,    12,    13,    14,    -1,    12,    13,    14,    -1,    -1,
-    -1,    79,    80,    -1,    -1,    -1,    27,    28,    -1,    30,
-    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,
+    -1,    31,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,
+    -1,     3,    -1,    -1,    -1,    45,     8,     9,    48,    11,
+    -1,    -1,    -1,    53,    54,    55,    -1,    -1,    -1,    59,
+    60,    -1,    -1,    -1,    64,    -1,    -1,    29,    -1,    31,
+    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    82,    45,    84,    85,    48,    87,    -1,    -1,
+    -1,    53,    54,    55,    -1,    -1,    -1,    59,    60,    -1,
+    -1,    -1,    64,     3,     4,     5,     6,     7,     8,     9,
+    -1,    11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    84,    85,    -1,    87,    -1,    -1,    28,    29,
+    30,    31,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    45,    -1,    -1,    48,    -1,
+    -1,    -1,    -1,    53,    54,    55,    -1,    -1,    -1,    59,
+    60,    -1,     3,     4,    64,     6,     7,     8,     9,    -1,
+    11,    12,    13,    14,    48,    49,    50,    51,    52,    53,
+    54,    55,    56,    57,    84,    85,    -1,    28,    29,    -1,
+    31,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,
+     3,    -1,    -1,    -1,    45,     8,     9,    48,    11,    -1,
+    -1,    -1,    53,    54,    55,    -1,    -1,    -1,    59,    60,
+    -1,    -1,    -1,    64,    -1,    -1,    29,    -1,    31,    -1,
+    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,     3,    45,    84,    85,    48,     8,     9,    -1,    11,
+    53,    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,
+    -1,    64,    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,
+    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    82,
+    -1,    84,    85,    45,    -1,    -1,    48,    -1,    -1,    -1,
+    -1,    53,    54,    55,    -1,    -1,    -1,    59,    60,     3,
+    -1,    -1,    64,    -1,     8,     9,    -1,    11,    46,    47,
+    48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+    -1,    -1,    84,    85,    -1,    29,    -1,    31,    -1,    33,
+    34,    35,    -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,
+    -1,    45,     8,     9,    48,    11,    -1,    -1,    -1,    53,
+    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
+    64,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    45,
+    84,    85,    48,     8,     9,    -1,    11,    53,    54,    55,
+    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,
+    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,
+    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    84,    85,
+    45,    -1,    -1,    48,    -1,    -1,    -1,    -1,    53,    54,
+    55,    -1,    -1,    -1,    59,    60,    -1,    -1,     1,    64,
+     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
+    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    84,
+    85,    -1,    -1,    -1,    27,    28,    -1,    30,    31,    40,
+    41,    42,    -1,    44,    45,    46,    47,    48,    49,    50,
+    51,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
+    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    40,    41,
+    42,    64,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    53,    54,    55,    56,    57,    -1,    88,    -1,    82,
     40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-    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
+    50,    51,    52,    53,    54,    55,    56,    57,    -1,    -1,
+    -1,    40,    41,    42,    86,    44,    45,    46,    47,    48,
+    49,    50,    51,    52,    53,    54,    55,    56,    57,    47,
+    48,    49,    50,    51,    52,    53,    54,    55,    56,    57
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/cygnus/progressive-98r1/share/bison.simple"
+#line 3 "/usr/lib/bison.simple"
+/* This file comes from bison-1.28.  */
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -1181,46 +1292,66 @@ static const short yycheck[] = {    38,
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 /* As a special exception, when this file is copied by Bison into a
    Bison output file, you may use that output file without restriction.
    This special exception was added by the Free Software Foundation
    in version 1.24 of Bison.  */
 
-#ifndef alloca
+/* This is the parser code that is written into each bison parser
+  when the %semantic_parser declaration is not specified in the grammar.
+  It was written by Richard Stallman by simplifying the hairy parser
+  used when %semantic_parser is specified.  */
+
+#ifndef YYSTACK_USE_ALLOCA
+#ifdef alloca
+#define YYSTACK_USE_ALLOCA
+#else /* alloca not defined */
 #ifdef __GNUC__
+#define YYSTACK_USE_ALLOCA
 #define alloca __builtin_alloca
 #else /* not GNU C.  */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#define YYSTACK_USE_ALLOCA
 #include <alloca.h>
 #else /* not sparc */
-#if defined (MSDOS) && !defined (__TURBOC__)
+/* We think this test detects Watcom and Microsoft C.  */
+/* This used to test MSDOS, but that is a bad idea
+   since that symbol is in the user namespace.  */
+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+#if 0 /* No need for malloc.h, which pollutes the namespace;
+        instead, just don't use alloca.  */
 #include <malloc.h>
+#endif
 #else /* not MSDOS, or __TURBOC__ */
 #if defined(_AIX)
-#include <malloc.h>
+/* I don't know what this was needed for, but it pollutes the namespace.
+   So I turned it off.   rms, 2 May 1997.  */
+/* #include <malloc.h>  */
  #pragma alloca
-#else /* not MSDOS, __TURBOC__, or _AIX */
-#ifdef __hpux
-#ifdef __cplusplus
-extern "C" {
-void *alloca (unsigned int);
-};
-#else /* not __cplusplus */
-void *alloca ();
-#endif /* not __cplusplus */
+#define YYSTACK_USE_ALLOCA
+#else /* not MSDOS, or __TURBOC__, or _AIX */
+#if 0
+#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+                and on HPUX 10.  Eventually we can turn this on.  */
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
 #endif /* __hpux */
+#endif
 #endif /* not _AIX */
 #endif /* not MSDOS, or __TURBOC__ */
-#endif /* not sparc.  */
-#endif /* not GNU C.  */
-#endif /* alloca not defined.  */
+#endif /* not sparc */
+#endif /* not GNU C */
+#endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
 
-/* This is the parser code that is written into each bison parser
-  when the %semantic_parser declaration is not specified in the grammar.
-  It was written by Richard Stallman by simplifying the hairy parser
-  used when %semantic_parser is specified.  */
+#ifdef YYSTACK_USE_ALLOCA
+#define YYSTACK_ALLOC alloca
+#else
+#define YYSTACK_ALLOC malloc
+#endif
 
 /* Note: there must be only one dollar sign in this file.
    It is replaced by the list of actions, each action
@@ -1230,8 +1361,8 @@ void *alloca ();
 #define yyclearin      (yychar = YYEMPTY)
 #define YYEMPTY                -2
 #define YYEOF          0
-#define YYACCEPT       return(0)
-#define YYABORT        return(1)
+#define YYACCEPT       goto yyacceptlab
+#define YYABORT        goto yyabortlab
 #define YYERROR                goto yyerrlab1
 /* Like YYERROR except do call yyerror.
    This remains here temporarily to ease the
@@ -1312,12 +1443,12 @@ int yydebug;                    /*  nonzero means print parse trace     */
 #ifndef YYMAXDEPTH
 #define YYMAXDEPTH 10000
 #endif
-
-/* Prevent warning if -Wstrict-prototypes.  */
-#ifdef __GNUC__
-int yyparse (void);
-#endif
 \f
+/* Define __yy_memcpy.  Note that the size argument
+   should be passed with type unsigned int, because that is what the non-GCC
+   definitions require.  With GCC, __builtin_memcpy takes an arg
+   of type size_t, but it can handle unsigned int.  */
+
 #if __GNUC__ > 1               /* GNU C and GNU C++ define this.  */
 #define __yy_memcpy(TO,FROM,COUNT)     __builtin_memcpy(TO,FROM,COUNT)
 #else                          /* not GNU C or C++ */
@@ -1329,7 +1460,7 @@ static void
 __yy_memcpy (to, from, count)
      char *to;
      char *from;
-     int count;
+     unsigned int count;
 {
   register char *f = from;
   register char *t = to;
@@ -1344,10 +1475,10 @@ __yy_memcpy (to, from, count)
 /* This is the most reliable way to avoid incompatibilities
    in available built-in functions on various systems.  */
 static void
-__yy_memcpy (char *to, char *from, int count)
+__yy_memcpy (char *to, char *from, unsigned int count)
 {
-  register char *f = from;
   register char *t = to;
+  register char *f = from;
   register int i = count;
 
   while (i-- > 0)
@@ -1357,7 +1488,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/cygnus/progressive-98r1/share/bison.simple"
+#line 217 "/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 *.
@@ -1378,6 +1509,15 @@ __yy_memcpy (char *to, char *from, int count)
 #define YYPARSE_PARAM_DECL
 #endif /* not YYPARSE_PARAM */
 
+/* Prevent warning if -Wstrict-prototypes.  */
+#ifdef __GNUC__
+#ifdef YYPARSE_PARAM
+int yyparse (void *);
+#else
+int yyparse (void);
+#endif
+#endif
+
 int
 yyparse(YYPARSE_PARAM_ARG)
      YYPARSE_PARAM_DECL
@@ -1406,6 +1546,7 @@ yyparse(YYPARSE_PARAM_ARG)
 #endif
 
   int yystacksize = YYINITDEPTH;
+  int yyfree_stacks = 0;
 
 #ifdef YYPURE
   int yychar;
@@ -1490,18 +1631,32 @@ yynewstate:
       if (yystacksize >= YYMAXDEPTH)
        {
          yyerror("parser stack overflow");
+         if (yyfree_stacks)
+           {
+             free (yyss);
+             free (yyvs);
+#ifdef YYLSP_NEEDED
+             free (yyls);
+#endif
+           }
          return 2;
        }
       yystacksize *= 2;
       if (yystacksize > YYMAXDEPTH)
        yystacksize = YYMAXDEPTH;
-      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
-      __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
-      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
-      __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
+#ifndef YYSTACK_USE_ALLOCA
+      yyfree_stacks = 1;
+#endif
+      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+      __yy_memcpy ((char *)yyss, (char *)yyss1,
+                  size * (unsigned int) sizeof (*yyssp));
+      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+                  size * (unsigned int) sizeof (*yyvsp));
 #ifdef YYLSP_NEEDED
-      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
-      __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
+      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+      __yy_memcpy ((char *)yyls, (char *)yyls1,
+                  size * (unsigned int) sizeof (*yylsp));
 #endif
 #endif /* no yyoverflow */
 
@@ -1662,14 +1817,14 @@ yyreduce:
   switch (yyn) {
 
 case 1:
-#line 234 "c-parse.y"
+#line 237 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids an empty source file");
                  finish_file ();
                ;
     break;}
 case 2:
-#line 239 "c-parse.y"
+#line 242 "c-parse.y"
 {
                  /* In case there were missing closebraces,
                     get us back to the global binding level.  */
@@ -1679,15 +1834,15 @@ case 2:
                ;
     break;}
 case 3:
-#line 253 "c-parse.y"
+#line 256 "c-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 5:
-#line 254 "c-parse.y"
+#line 257 "c-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 9:
-#line 261 "c-parse.y"
+#line 264 "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)
@@ -1697,11 +1852,11 @@ case 9:
                    error ("argument of `asm' is not a constant string"); ;
     break;}
 case 10:
-#line 269 "c-parse.y"
-{ pedantic = yyvsp[-1].itype; ;
+#line 272 "c-parse.y"
+{ RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
     break;}
 case 11:
-#line 274 "c-parse.y"
+#line 277 "c-parse.y"
 { if (pedantic)
                    error ("ANSI C forbids data definition with no type or storage class");
                  else if (!flag_traditional)
@@ -1709,22 +1864,19 @@ case 11:
 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
-                 declspec_stack = TREE_CHAIN (declspec_stack);
-                 resume_momentary (yyvsp[-2].itype); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 12:
-#line 284 "c-parse.y"
+#line 286 "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); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 13:
-#line 289 "c-parse.y"
+#line 290 "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);  ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 14:
 #line 294 "c-parse.y"
@@ -1742,7 +1894,7 @@ case 18:
 case 19:
 #line 306 "c-parse.y"
 { if (! start_function (current_declspecs, yyvsp[0].ttype,
-                                       prefix_attributes, NULL_TREE, 0))
+                                       prefix_attributes, NULL_TREE))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
@@ -1755,128 +1907,122 @@ case 21:
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
-                 declspec_stack = TREE_CHAIN (declspec_stack);
-                 resume_momentary (yyvsp[-5].itype); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 22:
-#line 319 "c-parse.y"
+#line 318 "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); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 23:
-#line 324 "c-parse.y"
+#line 322 "c-parse.y"
 { if (! start_function (current_declspecs, yyvsp[0].ttype,
-                                       prefix_attributes, NULL_TREE, 0))
+                                       prefix_attributes, NULL_TREE))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
 case 24:
-#line 329 "c-parse.y"
+#line 327 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 25:
-#line 331 "c-parse.y"
+#line 329 "c-parse.y"
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
-                 declspec_stack = TREE_CHAIN (declspec_stack);
-                 resume_momentary (yyvsp[-5].itype); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 26:
-#line 337 "c-parse.y"
+#line 334 "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); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 27:
-#line 342 "c-parse.y"
+#line 338 "c-parse.y"
 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
-                                       prefix_attributes, NULL_TREE, 0))
+                                       prefix_attributes, NULL_TREE))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
 case 28:
-#line 347 "c-parse.y"
+#line 343 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 29:
-#line 349 "c-parse.y"
+#line 345 "c-parse.y"
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
-                 declspec_stack = TREE_CHAIN (declspec_stack);
-                 resume_momentary (yyvsp[-5].itype); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 30:
-#line 355 "c-parse.y"
+#line 350 "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); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 33:
-#line 367 "c-parse.y"
+#line 361 "c-parse.y"
 { yyval.code = ADDR_EXPR; ;
     break;}
 case 34:
-#line 369 "c-parse.y"
+#line 363 "c-parse.y"
 { yyval.code = NEGATE_EXPR; ;
     break;}
 case 35:
-#line 371 "c-parse.y"
+#line 365 "c-parse.y"
 { yyval.code = CONVERT_EXPR; ;
     break;}
 case 36:
-#line 373 "c-parse.y"
+#line 367 "c-parse.y"
 { yyval.code = PREINCREMENT_EXPR; ;
     break;}
 case 37:
-#line 375 "c-parse.y"
+#line 369 "c-parse.y"
 { yyval.code = PREDECREMENT_EXPR; ;
     break;}
 case 38:
-#line 377 "c-parse.y"
+#line 371 "c-parse.y"
 { yyval.code = BIT_NOT_EXPR; ;
     break;}
 case 39:
-#line 379 "c-parse.y"
+#line 373 "c-parse.y"
 { yyval.code = TRUTH_NOT_EXPR; ;
     break;}
 case 40:
-#line 383 "c-parse.y"
+#line 377 "c-parse.y"
 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
     break;}
 case 41:
-#line 388 "c-parse.y"
+#line 382 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 43:
-#line 394 "c-parse.y"
+#line 388 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 44:
-#line 396 "c-parse.y"
+#line 390 "c-parse.y"
 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 46:
-#line 402 "c-parse.y"
+#line 396 "c-parse.y"
 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
     break;}
 case 47:
-#line 405 "c-parse.y"
+#line 399 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
-                 pedantic = yyvsp[-1].itype; ;
+                 RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
     break;}
 case 48:
-#line 408 "c-parse.y"
+#line 402 "c-parse.y"
 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
                  overflow_warning (yyval.ttype); ;
     break;}
 case 49:
-#line 412 "c-parse.y"
+#line 406 "c-parse.y"
 { tree label = lookup_label (yyvsp[0].ttype);
                  if (pedantic)
                    pedwarn ("ANSI C forbids `&&'");
@@ -1891,7 +2037,7 @@ case 49:
                ;
     break;}
 case 50:
-#line 440 "c-parse.y"
+#line 434 "c-parse.y"
 { skip_evaluation--;
                  if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
                      && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
@@ -1899,55 +2045,59 @@ case 50:
                  yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
     break;}
 case 51:
-#line 446 "c-parse.y"
+#line 440 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 52:
-#line 449 "c-parse.y"
+#line 443 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
     break;}
 case 53:
-#line 452 "c-parse.y"
+#line 446 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 54:
-#line 455 "c-parse.y"
+#line 449 "c-parse.y"
 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
     break;}
 case 55:
-#line 457 "c-parse.y"
+#line 451 "c-parse.y"
 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
     break;}
 case 56:
-#line 461 "c-parse.y"
-{ skip_evaluation++; ;
+#line 453 "c-parse.y"
+{ yyval.ttype = build_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 57:
-#line 465 "c-parse.y"
+#line 457 "c-parse.y"
+{ skip_evaluation++; ;
+    break;}
+case 58:
+#line 461 "c-parse.y"
 { skip_evaluation++; ;
     break;}
-case 59:
-#line 471 "c-parse.y"
+case 60:
+#line 467 "c-parse.y"
 { tree type = groktypename (yyvsp[-2].ttype);
                  yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
     break;}
-case 60:
-#line 474 "c-parse.y"
+case 61:
+#line 470 "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 478 "c-parse.y"
-{ char *name;
+case 62:
+#line 474 "c-parse.y"
+{ const char *name;
                  tree result = pop_init_level (0);
                  tree type = yyvsp[-5].ttype;
                  finish_init ();
 
-                 if (pedantic)
+                 if (pedantic && ! flag_isoc99)
                    pedwarn ("ANSI C forbids constructor expressions");
                  if (TYPE_NAME (type) != 0)
                    {
@@ -1959,7 +2109,7 @@ case 61:
                  else
                    name = "";
                  yyval.ttype = result;
-                 if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
+                 if (TREE_CODE (type) == ARRAY_TYPE && !COMPLETE_TYPE_P (type))
                    {
                      int failure = complete_array_type (type, yyval.ttype, 1);
                      if (failure)
@@ -1967,91 +2117,91 @@ case 61:
                    }
                ;
     break;}
-case 63:
-#line 507 "c-parse.y"
-{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
-    break;}
 case 64:
-#line 509 "c-parse.y"
+#line 503 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 65:
-#line 511 "c-parse.y"
+#line 505 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 66:
-#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 67:
-#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 68:
-#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 69:
-#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 70:
-#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 71:
-#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 72:
-#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 73:
-#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 74:
-#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 75:
-#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 76:
+#line 527 "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 534 "c-parse.y"
+case 77:
+#line 530 "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 537 "c-parse.y"
+case 78:
+#line 533 "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 540 "c-parse.y"
+case 79:
+#line 536 "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 543 "c-parse.y"
+case 80:
+#line 539 "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 546 "c-parse.y"
+case 81:
+#line 542 "c-parse.y"
 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
                                      - (yyvsp[-4].ttype == boolean_false_node)); ;
     break;}
-case 81:
-#line 549 "c-parse.y"
+case 82:
+#line 545 "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 552 "c-parse.y"
+case 83:
+#line 548 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
                  /* Make sure first operand is calculated only once.  */
@@ -2059,24 +2209,34 @@ case 82:
                  yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
                  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
     break;}
-case 83:
-#line 559 "c-parse.y"
+case 84:
+#line 555 "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 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 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); ;
+#line 558 "c-parse.y"
+{ char class;
+                 yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
+                 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
+                 if (class == 'e' || class == '1'
+                     || class == '2' || class == '<')
+                   C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR);
+               ;
     break;}
 case 86:
-#line 572 "c-parse.y"
+#line 566 "c-parse.y"
+{ char class;
+                 yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
+                 /* This inhibits warnings in truthvalue_conversion.  */
+                 class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
+                 if (class == 'e' || class == '1'
+                     || class == '2' || class == '<')
+                   C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK);
+               ;
+    break;}
+case 87:
+#line 578 "c-parse.y"
 {
                  yyval.ttype = lastiddecl;
                  if (!yyval.ttype || yyval.ttype == error_mark_node)
@@ -2175,40 +2335,24 @@ case 86:
                    }
                ;
     break;}
-case 88:
-#line 671 "c-parse.y"
+case 89:
+#line 677 "c-parse.y"
 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
     break;}
-case 89:
-#line 673 "c-parse.y"
+case 90:
+#line 679 "c-parse.y"
 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
                  if (class == 'e' || class == '1'
                      || class == '2' || class == '<')
                    C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
                  yyval.ttype = yyvsp[-1].ttype; ;
     break;}
-case 90:
-#line 679 "c-parse.y"
-{ yyval.ttype = error_mark_node; ;
-    break;}
 case 91:
-#line 681 "c-parse.y"
-{ if (current_function_decl == 0)
-                   {
-                     error ("braced-group within expression allowed only inside a function");
-                     YYERROR;
-                   }
-                 /* We must force a BLOCK for this level
-                    so that, if it is not expanded later,
-                    there is a way to turn off the entire subtree of blocks
-                    that are contained in it.  */
-                 keep_next_level ();
-                 push_iterator_stack ();
-                 push_label_level ();
-                 yyval.ttype = expand_start_stmt_expr (); ;
+#line 685 "c-parse.y"
+{ yyval.ttype = error_mark_node; ;
     break;}
 case 92:
-#line 695 "c-parse.y"
+#line 687 "c-parse.y"
 { tree rtl_exp;
                  if (pedantic)
                    pedwarn ("ANSI C forbids braced-groups within expressions");
@@ -2233,791 +2377,814 @@ case 92:
                ;
     break;}
 case 93:
-#line 718 "c-parse.y"
-{ yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+#line 710 "c-parse.y"
+{
+                 /* Make sure we call expand_end_stmt_expr.  Otherwise
+                    we are likely to lose sequences and crash later.  */
+                 pop_iterator_stack ();
+                 pop_label_level ();
+                 expand_end_stmt_expr (yyvsp[-2].ttype);
+                 yyval.ttype = error_mark_node;
+               ;
     break;}
 case 94:
-#line 720 "c-parse.y"
-{ yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+#line 719 "c-parse.y"
+{ yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 95:
-#line 722 "c-parse.y"
+#line 721 "c-parse.y"
+{ yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 96:
+#line 723 "c-parse.y"
 {
                    yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 96:
-#line 726 "c-parse.y"
+case 97:
+#line 727 "c-parse.y"
 {
                   tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
 
                     yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
                ;
     break;}
-case 97:
-#line 732 "c-parse.y"
+case 98:
+#line 733 "c-parse.y"
 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
-case 98:
-#line 734 "c-parse.y"
+case 99:
+#line 735 "c-parse.y"
 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
-case 100:
-#line 741 "c-parse.y"
-{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+case 101:
+#line 742 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
+                 if (warn_traditional && !in_system_header)
+                   warning ("Use of ANSI string concatenation");
+               ;
     break;}
-case 103:
-#line 750 "c-parse.y"
+case 104:
+#line 754 "c-parse.y"
 { c_mark_varargs ();
                  if (pedantic)
                    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
     break;}
-case 104:
-#line 760 "c-parse.y"
+case 105:
+#line 764 "c-parse.y"
 { ;
     break;}
-case 109:
-#line 776 "c-parse.y"
+case 110:
+#line 780 "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); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
-case 110:
-#line 781 "c-parse.y"
+case 111:
+#line 784 "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); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
-case 111:
-#line 786 "c-parse.y"
+case 112:
+#line 788 "c-parse.y"
 { shadow_tag_warned (yyvsp[-1].ttype, 1);
                  pedwarn ("empty declaration"); ;
     break;}
-case 112:
-#line 789 "c-parse.y"
+case 113:
+#line 791 "c-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
-case 113:
-#line 798 "c-parse.y"
+case 114:
+#line 800 "c-parse.y"
 { ;
     break;}
-case 118:
-#line 813 "c-parse.y"
-{ yyval.itype = suspend_momentary ();
-                 pending_xref_error ();
+case 119:
+#line 815 "c-parse.y"
+{ pending_xref_error ();
                  declspec_stack = tree_cons (prefix_attributes,
                                              current_declspecs,
                                              declspec_stack);
                  split_specs_attrs (yyvsp[0].ttype,
                                     &current_declspecs, &prefix_attributes); ;
     break;}
-case 119:
-#line 824 "c-parse.y"
-{ prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
-    break;}
 case 120:
-#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); ;
+#line 825 "c-parse.y"
+{ prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
     break;}
 case 121:
-#line 834 "c-parse.y"
+#line 830 "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); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 122:
-#line 839 "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[-1].itype); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 123:
-#line 844 "c-parse.y"
+#line 838 "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); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 124:
-#line 849 "c-parse.y"
-{ shadow_tag (yyvsp[-1].ttype); ;
+#line 842 "c-parse.y"
+{ current_declspecs = TREE_VALUE (declspec_stack);
+                 prefix_attributes = TREE_PURPOSE (declspec_stack);
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 125:
-#line 851 "c-parse.y"
-{ pedwarn ("empty declaration"); ;
+#line 846 "c-parse.y"
+{ shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 126:
-#line 853 "c-parse.y"
-{ pedantic = yyvsp[-1].itype; ;
+#line 848 "c-parse.y"
+{ pedwarn ("empty declaration"); ;
     break;}
 case 127:
-#line 863 "c-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
+#line 850 "c-parse.y"
+{ RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
     break;}
 case 128:
-#line 865 "c-parse.y"
-{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
+#line 860 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 129:
-#line 869 "c-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 862 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 130:
-#line 871 "c-parse.y"
-{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+#line 866 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 131:
-#line 873 "c-parse.y"
+#line 868 "c-parse.y"
+{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
+    break;}
+case 132:
+#line 870 "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 878 "c-parse.y"
+case 133:
+#line 875 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 133:
-#line 883 "c-parse.y"
+case 134:
+#line 880 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 134:
-#line 885 "c-parse.y"
+case 135:
+#line 882 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
-case 135:
-#line 890 "c-parse.y"
+case 136:
+#line 887 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 136:
-#line 892 "c-parse.y"
+case 137:
+#line 889 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 137:
-#line 894 "c-parse.y"
+case 138:
+#line 891 "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 907 "c-parse.y"
+case 139:
+#line 904 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 139:
-#line 909 "c-parse.y"
+case 140:
+#line 906 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
     break;}
-case 140:
-#line 911 "c-parse.y"
+case 141:
+#line 908 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 141:
-#line 913 "c-parse.y"
+case 142:
+#line 910 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 142:
-#line 918 "c-parse.y"
+case 143:
+#line 915 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
-case 143:
-#line 921 "c-parse.y"
+case 144:
+#line 918 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 144:
-#line 923 "c-parse.y"
+case 145:
+#line 920 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
-case 145:
-#line 926 "c-parse.y"
+case 146:
+#line 923 "c-parse.y"
 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
                    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);
                  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
     break;}
-case 146:
-#line 940 "c-parse.y"
+case 147:
+#line 937 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 147:
-#line 942 "c-parse.y"
+case 148:
+#line 939 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
-case 148:
-#line 946 "c-parse.y"
+case 149:
+#line 943 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 149:
-#line 948 "c-parse.y"
+case 150:
+#line 945 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 152:
-#line 958 "c-parse.y"
+case 153:
+#line 955 "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 962 "c-parse.y"
+case 154:
+#line 959 "c-parse.y"
 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
     break;}
-case 154:
-#line 964 "c-parse.y"
+case 155:
+#line 961 "c-parse.y"
 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
     break;}
-case 162:
-#line 986 "c-parse.y"
+case 163:
+#line 983 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 163:
-#line 988 "c-parse.y"
+case 164:
+#line 985 "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 995 "c-parse.y"
+case 165:
+#line 992 "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 1000 "c-parse.y"
+case 166:
+#line 997 "c-parse.y"
 { finish_init ();
                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
     break;}
-case 166:
-#line 1003 "c-parse.y"
+case 167:
+#line 1000 "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 1011 "c-parse.y"
+case 168:
+#line 1008 "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 1016 "c-parse.y"
+case 169:
+#line 1013 "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 1020 "c-parse.y"
+case 170:
+#line 1017 "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 1028 "c-parse.y"
-{ yyval.ttype = NULL_TREE; ;
-    break;}
 case 171:
-#line 1030 "c-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+#line 1025 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 172:
-#line 1035 "c-parse.y"
+#line 1027 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 173:
-#line 1037 "c-parse.y"
-{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+#line 1032 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 174:
-#line 1042 "c-parse.y"
-{ yyval.ttype = yyvsp[-2].ttype; ;
+#line 1034 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 175:
-#line 1047 "c-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+#line 1039 "c-parse.y"
+{ yyval.ttype = yyvsp[-2].ttype; ;
     break;}
 case 176:
-#line 1049 "c-parse.y"
-{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+#line 1044 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 177:
-#line 1054 "c-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 1046 "c-parse.y"
+{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 178:
-#line 1056 "c-parse.y"
-{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
+#line 1051 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 179:
-#line 1058 "c-parse.y"
-{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
+#line 1053 "c-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 180:
-#line 1060 "c-parse.y"
-{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
+#line 1055 "c-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
     break;}
 case 181:
-#line 1062 "c-parse.y"
-{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+#line 1057 "c-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
     break;}
-case 187:
-#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 (); ;
+case 182:
+#line 1059 "c-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 188:
-#line 1085 "c-parse.y"
-{ yyval.ttype = pop_init_level (0);
-                 if (yyval.ttype == error_mark_node
-                     && ! (yychar == STRING || yychar == CONSTANT))
-                   pop_momentary ();
-                 else
-                   pop_momentary_nofree (); ;
+#line 1077 "c-parse.y"
+{ really_start_incremental_init (NULL_TREE); ;
     break;}
 case 189:
-#line 1093 "c-parse.y"
-{ yyval.ttype = error_mark_node; ;
+#line 1079 "c-parse.y"
+{ yyval.ttype = pop_init_level (0); ;
     break;}
 case 190:
-#line 1099 "c-parse.y"
+#line 1081 "c-parse.y"
+{ yyval.ttype = error_mark_node; ;
+    break;}
+case 191:
+#line 1087 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids empty initializer braces"); ;
     break;}
-case 194:
-#line 1113 "c-parse.y"
-{ process_init_element (yyvsp[0].ttype); ;
+case 197:
+#line 1103 "c-parse.y"
+{ set_init_label (yyvsp[-1].ttype); ;
     break;}
-case 195:
-#line 1115 "c-parse.y"
+case 200:
+#line 1110 "c-parse.y"
 { push_init_level (0); ;
     break;}
-case 196:
-#line 1117 "c-parse.y"
+case 201:
+#line 1112 "c-parse.y"
 { process_init_element (pop_init_level (0)); ;
     break;}
-case 198:
-#line 1123 "c-parse.y"
-{ set_init_index (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
-    break;}
-case 200:
-#line 1126 "c-parse.y"
-{ set_init_index (yyvsp[-2].ttype, NULL_TREE); ;
-    break;}
 case 202:
-#line 1129 "c-parse.y"
-{ set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
-    break;}
-case 204:
-#line 1132 "c-parse.y"
-{ set_init_label (yyvsp[-1].ttype); ;
+#line 1114 "c-parse.y"
+{ process_init_element (yyvsp[0].ttype); ;
     break;}
 case 206:
-#line 1135 "c-parse.y"
-{ set_init_label (yyvsp[-1].ttype); ;
+#line 1125 "c-parse.y"
+{ set_init_label (yyvsp[0].ttype); ;
+    break;}
+case 207:
+#line 1130 "c-parse.y"
+{ set_init_index (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 208:
-#line 1141 "c-parse.y"
-{ push_c_function_context ();
+#line 1132 "c-parse.y"
+{ set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
+    break;}
+case 209:
+#line 1137 "c-parse.y"
+{ if (pedantic)
+                   pedwarn ("ANSI C forbids nested functions");
+
+                 push_function_context ();
                  if (! start_function (current_declspecs, yyvsp[0].ttype,
-                                       prefix_attributes, NULL_TREE, 1))
+                                       prefix_attributes, NULL_TREE))
                    {
-                     pop_c_function_context ();
+                     pop_function_context ();
                      YYERROR1;
                    }
                  reinit_parse_for_function (); ;
     break;}
-case 209:
-#line 1150 "c-parse.y"
+case 210:
+#line 1149 "c-parse.y"
 { store_parm_decls (); ;
     break;}
-case 210:
-#line 1158 "c-parse.y"
+case 211:
+#line 1157 "c-parse.y"
 { finish_function (1);
-                 pop_c_function_context (); ;
+                 pop_function_context (); ;
     break;}
-case 211:
-#line 1164 "c-parse.y"
-{ push_c_function_context ();
+case 212:
+#line 1163 "c-parse.y"
+{ if (pedantic)
+                   pedwarn ("ANSI C forbids nested functions");
+
+                 push_function_context ();
                  if (! start_function (current_declspecs, yyvsp[0].ttype,
-                                       prefix_attributes, NULL_TREE, 1))
+                                       prefix_attributes, NULL_TREE))
                    {
-                     pop_c_function_context ();
+                     pop_function_context ();
                      YYERROR1;
                    }
                  reinit_parse_for_function (); ;
     break;}
-case 212:
-#line 1173 "c-parse.y"
+case 213:
+#line 1175 "c-parse.y"
 { store_parm_decls (); ;
     break;}
-case 213:
-#line 1181 "c-parse.y"
+case 214:
+#line 1183 "c-parse.y"
 { finish_function (1);
-                 pop_c_function_context (); ;
-    break;}
-case 216:
-#line 1197 "c-parse.y"
-{ yyval.ttype = yyvsp[-1].ttype; ;
+                 pop_function_context (); ;
     break;}
 case 217:
 #line 1199 "c-parse.y"
-{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
+{ yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 218:
-#line 1204 "c-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+#line 1201 "c-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 219:
 #line 1206 "c-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 220:
 #line 1208 "c-parse.y"
-{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 221:
-#line 1215 "c-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+#line 1210 "c-parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 223:
-#line 1226 "c-parse.y"
-{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
+case 222:
+#line 1217 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 224:
-#line 1231 "c-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+#line 1228 "c-parse.y"
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 225:
 #line 1233 "c-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE);
+                 if (! flag_isoc99)
+                   error ("`[*]' in parameter declaration only allowed in ISO C 99");
+               ;
     break;}
 case 226:
-#line 1235 "c-parse.y"
-{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+#line 1238 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 227:
+#line 1240 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+    break;}
+case 228:
 #line 1242 "c-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 229:
-#line 1251 "c-parse.y"
-{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
-    break;}
-case 230:
-#line 1256 "c-parse.y"
-{ yyval.ttype = yyvsp[-1].ttype; ;
+#line 1249 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 231:
 #line 1258 "c-parse.y"
-{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 232:
-#line 1260 "c-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
+#line 1263 "c-parse.y"
+{ yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 233:
-#line 1262 "c-parse.y"
-{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
+#line 1265 "c-parse.y"
+{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 234:
-#line 1269 "c-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+#line 1267 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE);
+                 if (! flag_isoc99)
+                   error ("`[*]' in parameter declaration only allowed in ISO C 99");
+               ;
+    break;}
+case 235:
+#line 1272 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 236:
-#line 1275 "c-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+#line 1274 "c-parse.y"
+{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 237:
-#line 1277 "c-parse.y"
+#line 1281 "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; ;
+#line 1287 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 240:
 #line 1289 "c-parse.y"
-{ yyval.ttype = NULL_TREE; ;
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 241:
-#line 1291 "c-parse.y"
-{ yyval.ttype = yyvsp[0].ttype; ;
+#line 1294 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 242:
 #line 1296 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 243:
+#line 1301 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
+    break;}
+case 244:
+#line 1303 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 245:
+#line 1308 "c-parse.y"
 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
                  /* Start scope of tag before parsing components.  */
                ;
     break;}
-case 243:
-#line 1300 "c-parse.y"
+case 246:
+#line 1312 "c-parse.y"
 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
     break;}
-case 244:
-#line 1302 "c-parse.y"
+case 247:
+#line 1314 "c-parse.y"
 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
                                      yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
                ;
     break;}
-case 245:
-#line 1306 "c-parse.y"
+case 248:
+#line 1318 "c-parse.y"
 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
     break;}
-case 246:
-#line 1308 "c-parse.y"
+case 249:
+#line 1320 "c-parse.y"
 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
     break;}
-case 247:
-#line 1310 "c-parse.y"
+case 250:
+#line 1322 "c-parse.y"
 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
     break;}
-case 248:
-#line 1312 "c-parse.y"
+case 251:
+#line 1324 "c-parse.y"
 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
                                      yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
                ;
     break;}
-case 249:
-#line 1316 "c-parse.y"
+case 252:
+#line 1328 "c-parse.y"
 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
     break;}
-case 250:
-#line 1318 "c-parse.y"
-{ yyvsp[0].itype = suspend_momentary ();
-                 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
+case 253:
+#line 1330 "c-parse.y"
+{ yyval.ttype = start_enum (yyvsp[-1].ttype); ;
     break;}
-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); ;
+case 254:
+#line 1332 "c-parse.y"
+{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype),
+                                   chainon (yyvsp[-7].ttype, yyvsp[0].ttype)); ;
     break;}
-case 252:
-#line 1324 "c-parse.y"
-{ yyvsp[0].itype = suspend_momentary ();
-                 yyval.ttype = start_enum (NULL_TREE); ;
+case 255:
+#line 1335 "c-parse.y"
+{ yyval.ttype = start_enum (NULL_TREE); ;
     break;}
-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); ;
+case 256:
+#line 1337 "c-parse.y"
+{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype),
+                                   chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
     break;}
-case 254:
-#line 1330 "c-parse.y"
+case 257:
+#line 1340 "c-parse.y"
 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
     break;}
-case 258:
-#line 1341 "c-parse.y"
-{ if (pedantic) pedwarn ("comma at end of enumerator list"); ;
+case 261:
+#line 1351 "c-parse.y"
+{ if (pedantic && ! flag_isoc99)
+                   pedwarn ("comma at end of enumerator list"); ;
     break;}
-case 259:
-#line 1346 "c-parse.y"
+case 262:
+#line 1357 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 260:
-#line 1348 "c-parse.y"
+case 263:
+#line 1359 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                  pedwarn ("no semicolon at end of struct or union"); ;
     break;}
-case 261:
-#line 1353 "c-parse.y"
+case 264:
+#line 1364 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 262:
-#line 1355 "c-parse.y"
+case 265:
+#line 1366 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
     break;}
-case 263:
-#line 1357 "c-parse.y"
+case 266:
+#line 1368 "c-parse.y"
 { if (pedantic)
                    pedwarn ("extra semicolon in struct or union specified"); ;
     break;}
-case 264:
-#line 1372 "c-parse.y"
+case 267:
+#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); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
-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; ;
+case 268:
+#line 1388 "c-parse.y"
+{
+                 /* Support for unnamed structs or unions as members of 
+                    structs or unions (which is [a] useful and [b] supports 
+                    MS P-SDK).  */
+                 if (pedantic)
+                   pedwarn ("ANSI C doesn't support unnamed structs/unions");
+
+                 yyval.ttype = grokfield(yyvsp[-2].filename, yyvsp[-1].lineno, NULL, current_declspecs, NULL_TREE);
+                 current_declspecs = TREE_VALUE (declspec_stack);
+                 prefix_attributes = TREE_PURPOSE (declspec_stack);
+                 declspec_stack = TREE_CHAIN (declspec_stack);
+               ;
     break;}
-case 266:
-#line 1383 "c-parse.y"
+case 269:
+#line 1401 "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); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
-case 267:
-#line 1389 "c-parse.y"
+case 270:
+#line 1406 "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 268:
-#line 1394 "c-parse.y"
+case 271:
+#line 1411 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 269:
-#line 1396 "c-parse.y"
+case 272:
+#line 1413 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
-                 pedantic = yyvsp[-1].itype; ;
+                 RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
     break;}
-case 271:
-#line 1403 "c-parse.y"
+case 274:
+#line 1420 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 272:
-#line 1408 "c-parse.y"
+case 275:
+#line 1425 "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 273:
-#line 1412 "c-parse.y"
+case 276:
+#line 1429 "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 274:
-#line 1415 "c-parse.y"
+case 277:
+#line 1432 "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 276:
-#line 1427 "c-parse.y"
+case 279:
+#line 1444 "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 277:
-#line 1432 "c-parse.y"
+case 280:
+#line 1449 "c-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
-case 278:
-#line 1438 "c-parse.y"
+case 281:
+#line 1455 "c-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 279:
-#line 1440 "c-parse.y"
+case 282:
+#line 1457 "c-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 280:
-#line 1445 "c-parse.y"
+case 283:
+#line 1462 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 281:
-#line 1447 "c-parse.y"
+case 284:
+#line 1464 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 282:
-#line 1452 "c-parse.y"
+case 285:
+#line 1469 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 284:
-#line 1458 "c-parse.y"
+case 287:
+#line 1475 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 285:
-#line 1460 "c-parse.y"
+case 288:
+#line 1477 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 286:
-#line 1465 "c-parse.y"
+case 289:
+#line 1482 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 287:
-#line 1467 "c-parse.y"
+case 290:
+#line 1484 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 288:
-#line 1472 "c-parse.y"
+case 291:
+#line 1489 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
-case 289:
-#line 1475 "c-parse.y"
+case 292:
+#line 1492 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 290:
-#line 1477 "c-parse.y"
+case 293:
+#line 1494 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 291:
-#line 1479 "c-parse.y"
+case 294:
+#line 1496 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 292:
-#line 1481 "c-parse.y"
+case 295:
+#line 1498 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 293:
-#line 1483 "c-parse.y"
+case 296:
+#line 1500 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
-case 294:
-#line 1485 "c-parse.y"
+case 297:
+#line 1502 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 295:
-#line 1487 "c-parse.y"
+case 298:
+#line 1504 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 296:
-#line 1489 "c-parse.y"
+case 299:
+#line 1506 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
     break;}
-case 297:
-#line 1500 "c-parse.y"
+case 300:
+#line 1510 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 301:
+#line 1519 "c-parse.y"
 {
                  if (pedantic && yyvsp[0].ends_in_label)
                    pedwarn ("ANSI C forbids label at end of compound statement");
                ;
     break;}
-case 299:
-#line 1509 "c-parse.y"
+case 303:
+#line 1528 "c-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
-case 300:
-#line 1511 "c-parse.y"
+case 304:
+#line 1530 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 304:
-#line 1523 "c-parse.y"
+case 308:
+#line 1542 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  pushlevel (0);
                  clear_last_expr ();
-                 push_momentary ();
                  expand_start_bindings (0);
                ;
     break;}
-case 306:
-#line 1536 "c-parse.y"
+case 310:
+#line 1554 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids label declarations"); ;
     break;}
-case 309:
-#line 1547 "c-parse.y"
+case 313:
+#line 1565 "c-parse.y"
 { tree link;
                  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
                    {
@@ -3027,50 +3194,60 @@ case 309:
                    }
                ;
     break;}
-case 310:
-#line 1561 "c-parse.y"
+case 314:
+#line 1579 "c-parse.y"
 {;
     break;}
-case 312:
-#line 1565 "c-parse.y"
+case 316:
+#line 1583 "c-parse.y"
 { compstmt_count++; ;
     break;}
-case 313:
-#line 1568 "c-parse.y"
+case 317:
+#line 1586 "c-parse.y"
 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
     break;}
-case 314:
-#line 1570 "c-parse.y"
+case 318:
+#line 1588 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), 1, 0);
-                 yyval.ttype = poplevel (1, 1, 0);
-                 if (yychar == CONSTANT || yychar == STRING)
-                   pop_momentary_nofree ();
-                 else
-                   pop_momentary (); ;
+                 yyval.ttype = poplevel (1, 1, 0); ;
     break;}
-case 315:
-#line 1578 "c-parse.y"
+case 319:
+#line 1592 "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);
-                 if (yychar == CONSTANT || yychar == STRING)
-                   pop_momentary_nofree ();
-                 else
-                   pop_momentary (); ;
+                 yyval.ttype = poplevel (kept_level_p (), 0, 0); ;
     break;}
-case 316:
-#line 1586 "c-parse.y"
+case 320:
+#line 1596 "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);
-                 if (yychar == CONSTANT || yychar == STRING)
-                   pop_momentary_nofree ();
-                 else
-                   pop_momentary (); ;
+                 yyval.ttype = poplevel (kept_level_p (), 0, 0); ;
     break;}
-case 319:
-#line 1606 "c-parse.y"
+case 321:
+#line 1603 "c-parse.y"
+{ if (current_function_decl == 0)
+                   {
+                     error ("braced-group within expression allowed only inside a function");
+                     YYERROR;
+                   }
+                 /* We must force a BLOCK for this level
+                    so that, if it is not expanded later,
+                    there is a way to turn off the entire subtree of blocks
+                    that are contained in it.  */
+                 keep_next_level ();
+                 push_iterator_stack ();
+                 push_label_level ();
+                 yyval.ttype = expand_start_stmt_expr ();
+                 compstmt_count++;
+               ;
+    break;}
+case 322:
+#line 1620 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 325:
+#line 1634 "c-parse.y"
 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, 
                                       compstmt_count);
@@ -3079,8 +3256,8 @@ case 319:
                  if_stmt_line = yyvsp[-4].lineno;
                  position_after_white_space (); ;
     break;}
-case 320:
-#line 1620 "c-parse.y"
+case 326:
+#line 1648 "c-parse.y"
 { stmt_count++;
                  compstmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
@@ -3089,44 +3266,44 @@ case 320:
                  expand_start_loop_continue_elsewhere (1);
                  position_after_white_space (); ;
     break;}
-case 321:
-#line 1628 "c-parse.y"
+case 327:
+#line 1656 "c-parse.y"
 { expand_loop_continue_here (); ;
     break;}
-case 322:
-#line 1632 "c-parse.y"
+case 328:
+#line 1660 "c-parse.y"
 { yyval.filename = input_filename; ;
     break;}
-case 323:
-#line 1636 "c-parse.y"
+case 329:
+#line 1664 "c-parse.y"
 { yyval.lineno = lineno; ;
     break;}
-case 324:
-#line 1641 "c-parse.y"
+case 330:
+#line 1669 "c-parse.y"
 { ;
     break;}
-case 325:
-#line 1646 "c-parse.y"
+case 331:
+#line 1674 "c-parse.y"
 { ;
     break;}
-case 326:
-#line 1651 "c-parse.y"
+case 332:
+#line 1679 "c-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
-case 327:
-#line 1656 "c-parse.y"
+case 333:
+#line 1684 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 328:
-#line 1658 "c-parse.y"
+case 334:
+#line 1686 "c-parse.y"
 { yyval.ends_in_label = 1; ;
     break;}
-case 329:
-#line 1664 "c-parse.y"
+case 335:
+#line 1692 "c-parse.y"
 { stmt_count++; ;
     break;}
-case 331:
-#line 1667 "c-parse.y"
+case 337:
+#line 1695 "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
@@ -3141,23 +3318,22 @@ case 331:
                      || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
                    yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
 #endif
-                 iterator_expand (yyvsp[-1].ttype);
-                 clear_momentary (); ;
+                 iterator_expand (yyvsp[-1].ttype); ;
     break;}
-case 332:
-#line 1684 "c-parse.y"
+case 338:
+#line 1711 "c-parse.y"
 { c_expand_start_else ();
                  yyvsp[-1].itype = stmt_count;
                  position_after_white_space (); ;
     break;}
-case 333:
-#line 1688 "c-parse.y"
+case 339:
+#line 1715 "c-parse.y"
 { c_expand_end_cond ();
                  if (extra_warnings && stmt_count == yyvsp[-3].itype)
                    warning ("empty body in an else-statement"); ;
     break;}
-case 334:
-#line 1692 "c-parse.y"
+case 340:
+#line 1719 "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
@@ -3167,12 +3343,12 @@ case 334:
                    warning_with_file_and_line (if_stmt_file, if_stmt_line,
                                                "empty body in an if-statement"); ;
     break;}
-case 335:
-#line 1704 "c-parse.y"
+case 341:
+#line 1731 "c-parse.y"
 { c_expand_end_cond (); ;
     break;}
-case 336:
-#line 1706 "c-parse.y"
+case 342:
+#line 1733 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
                  /* The emit_nop used to come before emit_line_note,
@@ -3183,8 +3359,8 @@ case 336:
                     We will see.  --rms, July 15, 1991.  */
                  emit_nop (); ;
     break;}
-case 337:
-#line 1716 "c-parse.y"
+case 343:
+#line 1743 "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.  */
@@ -3194,25 +3370,23 @@ case 337:
                                             truthvalue_conversion (yyvsp[-1].ttype));
                  position_after_white_space (); ;
     break;}
-case 338:
-#line 1725 "c-parse.y"
+case 344:
+#line 1752 "c-parse.y"
 { expand_end_loop (); ;
     break;}
-case 339:
-#line 1728 "c-parse.y"
+case 345:
+#line 1755 "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 (); ;
+                 expand_end_loop (); ;
     break;}
-case 340:
-#line 1735 "c-parse.y"
-{ expand_end_loop ();
-                 clear_momentary (); ;
+case 346:
+#line 1761 "c-parse.y"
+{ expand_end_loop (); ;
     break;}
-case 341:
-#line 1739 "c-parse.y"
+case 347:
+#line 1764 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  /* See comment in `while' alternative, above.  */
@@ -3224,13 +3398,13 @@ case 341:
                     fn without calling expand_end_loop.  */
                ;
     break;}
-case 342:
-#line 1751 "c-parse.y"
+case 348:
+#line 1776 "c-parse.y"
 { yyvsp[0].lineno = lineno;
                  yyval.filename = input_filename; ;
     break;}
-case 343:
-#line 1754 "c-parse.y"
+case 349:
+#line 1779 "c-parse.y"
 { 
                  /* Start the loop.  Doing this after parsing
                     all the expressions ensures we will end the loop.  */
@@ -3240,72 +3414,58 @@ case 343:
                  if (yyvsp[-4].ttype)
                    expand_exit_loop_if_false (NULL_PTR,
                                               truthvalue_conversion (yyvsp[-4].ttype));
-                 /* Don't let the tree nodes for $9 be discarded by
-                    clear_momentary during the parsing of the next stmt.  */
-                 push_momentary ();
                  yyvsp[-3].lineno = lineno;
                  yyvsp[-2].filename = input_filename;
                  position_after_white_space (); ;
     break;}
-case 344:
-#line 1770 "c-parse.y"
+case 350:
+#line 1792 "c-parse.y"
 { /* Emit the increment expression, with a line number.  */
                  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
                  expand_loop_continue_here ();
                  if (yyvsp[-3].ttype)
                    c_expand_expr_stmt (yyvsp[-3].ttype);
-                 if (yychar == CONSTANT || yychar == STRING)
-                   pop_momentary_nofree ();
-                 else
-                   pop_momentary ();
                  expand_end_loop (); ;
     break;}
-case 345:
-#line 1781 "c-parse.y"
+case 351:
+#line 1799 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_case (yyvsp[-1].ttype);
-                 /* Don't let the tree nodes for $3 be discarded by
-                    clear_momentary during the parsing of the next stmt.  */
-                 push_momentary ();
                  position_after_white_space (); ;
     break;}
-case 346:
-#line 1789 "c-parse.y"
-{ expand_end_case (yyvsp[-3].ttype);
-                 if (yychar == CONSTANT || yychar == STRING)
-                   pop_momentary_nofree ();
-                 else
-                   pop_momentary (); ;
+case 352:
+#line 1804 "c-parse.y"
+{ expand_end_case (yyvsp[-3].ttype); ;
     break;}
-case 347:
-#line 1795 "c-parse.y"
+case 353:
+#line 1806 "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 348:
-#line 1800 "c-parse.y"
+case 354:
+#line 1811 "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 349:
-#line 1805 "c-parse.y"
+case 355:
+#line 1816 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  c_expand_return (NULL_TREE); ;
     break;}
-case 350:
-#line 1809 "c-parse.y"
+case 356:
+#line 1820 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
                  c_expand_return (yyvsp[-1].ttype); ;
     break;}
-case 351:
-#line 1813 "c-parse.y"
+case 357:
+#line 1824 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
                  STRIP_NOPS (yyvsp[-2].ttype);
@@ -3316,32 +3476,32 @@ case 351:
                  else
                    error ("argument of `asm' is not a constant string"); ;
     break;}
-case 352:
-#line 1824 "c-parse.y"
+case 358:
+#line 1835 "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 353:
-#line 1831 "c-parse.y"
+case 359:
+#line 1842 "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 354:
-#line 1839 "c-parse.y"
+case 360:
+#line 1850 "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 355:
-#line 1845 "c-parse.y"
+case 361:
+#line 1856 "c-parse.y"
 { tree decl;
                  stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -3353,16 +3513,16 @@ case 355:
                    }
                ;
     break;}
-case 356:
-#line 1856 "c-parse.y"
+case 362:
+#line 1867 "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 359:
-#line 1871 "c-parse.y"
+case 365:
+#line 1882 "c-parse.y"
 {
            /* The value returned by this action is  */
            /*      1 if everything is OK */ 
@@ -3384,15 +3544,15 @@ case 359:
              }
          ;
     break;}
-case 360:
-#line 1892 "c-parse.y"
+case 366:
+#line 1903 "c-parse.y"
 {
            if (yyvsp[-1].itype)
              iterator_for_loop_end (yyvsp[-3].ttype);
          ;
     break;}
-case 361:
-#line 1927 "c-parse.y"
+case 367:
+#line 1934 "c-parse.y"
 { register tree value = check_case_value (yyvsp[-1].ttype);
                  register tree label
                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
@@ -3424,8 +3584,8 @@ case 361:
                    }
                  position_after_white_space (); ;
     break;}
-case 362:
-#line 1958 "c-parse.y"
+case 368:
+#line 1965 "c-parse.y"
 { register tree value1 = check_case_value (yyvsp[-3].ttype);
                  register tree value2 = check_case_value (yyvsp[-1].ttype);
                  register tree label
@@ -3457,8 +3617,8 @@ case 362:
                    }
                  position_after_white_space (); ;
     break;}
-case 363:
-#line 1989 "c-parse.y"
+case 369:
+#line 1996 "c-parse.y"
 {
                  tree duplicate;
                  register tree label
@@ -3474,62 +3634,65 @@ case 363:
                    }
                  position_after_white_space (); ;
     break;}
-case 364:
-#line 2004 "c-parse.y"
-{ tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
+case 370:
+#line 2011 "c-parse.y"
+{ tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
                  stmt_count++;
                  emit_nop ();
                  if (label)
-                   expand_label (label);
+                   {
+                     expand_label (label);
+                     decl_attributes (label, yyvsp[0].ttype, NULL_TREE);
+                   }
                  position_after_white_space (); ;
     break;}
-case 365:
-#line 2016 "c-parse.y"
+case 371:
+#line 2026 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 366:
-#line 2019 "c-parse.y"
+case 372:
+#line 2029 "c-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
-case 367:
-#line 2024 "c-parse.y"
+case 373:
+#line 2034 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 369:
-#line 2031 "c-parse.y"
+case 375:
+#line 2041 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 372:
-#line 2038 "c-parse.y"
+case 378:
+#line 2048 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 373:
-#line 2043 "c-parse.y"
+case 379:
+#line 2053 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 374:
-#line 2048 "c-parse.y"
+case 380:
+#line 2058 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
-case 375:
-#line 2050 "c-parse.y"
+case 381:
+#line 2060 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
     break;}
-case 376:
-#line 2056 "c-parse.y"
+case 382:
+#line 2066 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (0); ;
     break;}
-case 377:
-#line 2060 "c-parse.y"
+case 383:
+#line 2070 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 379:
-#line 2068 "c-parse.y"
+case 385:
+#line 2078 "c-parse.y"
 { tree parm;
                  if (pedantic)
                    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -3538,20 +3701,20 @@ case 379:
                    TREE_ASM_WRITTEN (parm) = 1;
                  clear_parm_order (); ;
     break;}
-case 380:
-#line 2076 "c-parse.y"
+case 386:
+#line 2086 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 381:
-#line 2078 "c-parse.y"
+case 387:
+#line 2088 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
-case 382:
-#line 2084 "c-parse.y"
+case 388:
+#line 2094 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
-case 383:
-#line 2086 "c-parse.y"
+case 389:
+#line 2096 "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.
@@ -3562,121 +3725,117 @@ case 383:
                  error ("ANSI C requires a named argument before `...'");
                ;
     break;}
-case 384:
-#line 2096 "c-parse.y"
+case 390:
+#line 2106 "c-parse.y"
 { yyval.ttype = get_parm_info (1); ;
     break;}
-case 385:
-#line 2098 "c-parse.y"
+case 391:
+#line 2108 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
-case 386:
-#line 2103 "c-parse.y"
+case 392:
+#line 2113 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 387:
-#line 2105 "c-parse.y"
+case 393:
+#line 2115 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 388:
-#line 2112 "c-parse.y"
+case 394:
+#line 2122 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
                                                         yyvsp[0].ttype));
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
-                 declspec_stack = TREE_CHAIN (declspec_stack);
-                 resume_momentary (yyvsp[-2].itype); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
-case 389:
-#line 2121 "c-parse.y"
+case 395:
+#line 2130 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
                                                         yyvsp[0].ttype)); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
-                 declspec_stack = TREE_CHAIN (declspec_stack);
-                 resume_momentary (yyvsp[-2].itype); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
-case 390:
-#line 2130 "c-parse.y"
+case 396:
+#line 2138 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
                                                         yyvsp[0].ttype));
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
-                 declspec_stack = TREE_CHAIN (declspec_stack);
-                 resume_momentary (yyvsp[-2].itype); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
-case 391:
-#line 2139 "c-parse.y"
+case 397:
+#line 2146 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
                                                         yyvsp[0].ttype));
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
-                 declspec_stack = TREE_CHAIN (declspec_stack);
-                 resume_momentary (yyvsp[-2].itype);  ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
-case 392:
-#line 2149 "c-parse.y"
+case 398:
+#line 2155 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
                                                         yyvsp[0].ttype));
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
-                 declspec_stack = TREE_CHAIN (declspec_stack);
-                 resume_momentary (yyvsp[-2].itype);  ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
-case 393:
-#line 2163 "c-parse.y"
+case 399:
+#line 2168 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (1); ;
     break;}
-case 394:
-#line 2167 "c-parse.y"
+case 400:
+#line 2172 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 396:
-#line 2175 "c-parse.y"
+case 402:
+#line 2180 "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 397:
-#line 2185 "c-parse.y"
+case 403:
+#line 2190 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 398:
-#line 2187 "c-parse.y"
+case 404:
+#line 2192 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
-case 399:
-#line 2193 "c-parse.y"
+case 405:
+#line 2198 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 400:
-#line 2195 "c-parse.y"
+case 406:
+#line 2200 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
-case 401:
-#line 2200 "c-parse.y"
-{ yyval.itype = pedantic;
-                 pedantic = 0; ;
+case 407:
+#line 2205 "c-parse.y"
+{ yyval.ttype = SAVE_WARN_FLAGS();
+                 pedantic = 0;
+                 warn_pointer_arith = 0; ;
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/cygnus/progressive-98r1/share/bison.simple"
+#line 543 "/usr/lib/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -3871,6 +4030,30 @@ yyerrhandle:
 
   yystate = yyn;
   goto yynewstate;
+
+ yyacceptlab:
+  /* YYACCEPT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
+#endif
+    }
+  return 0;
+
+ yyabortlab:
+  /* YYABORT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
+#endif
+    }
+  return 1;
 }
-#line 2204 "c-parse.y"
+#line 2210 "c-parse.y"