OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / gcc / c-parse.c
index 005496c..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         689
+#define        YYFINAL         706
 #define        YYFLAG          -32768
-#define        YYNTBASE        84
+#define        YYNTBASE        89
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 241)
+#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,222 +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,   595,   598,   599,   604,   606,   607,
-   612,   614,   616,   618,   621,   624,   630,   634,   635,   636,
-   642,   643,   644,   650,   652,   654,   658,   662,   667,   671,
-   675,   679,   681,   685,   690,   695,   699,   703,   707,   709,
-   713,   717,   721,   726,   731,   735,   739,   741,   743,   746,
-   748,   751,   753,   756,   757,   765,   771,   774,   775,   783,
-   789,   792,   793,   802,   803,   811,   814,   815,   817,   818,
-   820,   822,   825,   826,   830,   833,   837,   839,   843,   845,
-   847,   850,   852,   856,   861,   868,   874,   876,   880,   882,
-   884,   888,   891,   894,   895,   897,   899,   902,   903,   906,
-   910,   914,   917,   921,   926,   930,   933,   937,   940,   942,
-   944,   947,   950,   951,   953,   956,   957,   958,   960,   962,
-   965,   969,   971,   974,   976,   979,   986,   992,   998,  1001,
-  1004,  1009,  1010,  1015,  1016,  1017,  1021,  1026,  1030,  1032,
-  1034,  1036,  1038,  1041,  1042,  1047,  1049,  1053,  1054,  1055,
-  1063,  1069,  1072,  1073,  1074,  1075,  1088,  1089,  1096,  1099,
-  1102,  1105,  1109,  1116,  1125,  1136,  1149,  1153,  1158,  1160,
-  1162,  1163,  1170,  1174,  1180,  1183,  1187,  1188,  1190,  1191,
-  1193,  1194,  1196,  1198,  1202,  1207,  1209,  1213,  1214,  1217,
-  1220,  1221,  1226,  1229,  1230,  1232,  1234,  1238,  1240,  1244,
-  1249,  1254,  1259,  1264,  1269,  1270,  1273,  1275,  1278,  1280,
-  1284,  1286,  1290
+   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,   240,    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,   164,    91,   116,    92,
-   198,     0,   125,   122,   164,     1,     0,     0,     0,   129,
-   122,   167,    93,   116,    94,   198,     0,   129,   122,   167,
-     1,     0,     0,     0,   122,   167,    95,   116,    96,   198,
-     0,   122,   167,     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,   240,
-   105,     0,    98,   105,     0,    40,    97,     0,   103,   102,
-     0,   103,    59,   185,    76,     0,   104,   102,     0,   104,
-    59,   185,    76,     0,    33,   105,     0,    34,   105,     0,
-    11,     0,    29,     0,   102,     0,    59,   185,    76,   105,
-     0,     0,    59,   185,    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,   200,    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,   205,   206,   119,     0,   117,     0,   193,     0,
-   118,   117,     0,   117,   193,     0,   127,   122,   135,    77,
-     0,   130,   122,   136,    77,     0,   127,    77,     0,   130,
-    77,     0,   205,   206,   124,     0,   120,     0,   193,     0,
-   121,   120,     0,   120,   193,     0,     0,     0,   125,   122,
-   135,    77,     0,   129,   122,   136,    77,     0,   125,   122,
-   158,     0,   129,   122,   161,     0,   125,    77,     0,   129,
-    77,     0,   240,   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,   187,
-   133,   132,     0,     0,   132,   134,     0,     6,     0,   171,
-     0,     4,     0,    28,    59,    99,    76,     0,    28,    59,
-   185,    76,     0,     6,     0,     7,     0,   171,     0,   138,
-     0,   135,    81,   138,     0,   140,     0,   136,    81,   138,
-     0,     0,    27,    59,   115,    76,     0,     0,   164,   137,
-   142,    36,   139,   148,     0,   164,   137,   142,     0,     0,
-   167,   137,   142,    36,   141,   148,     0,   167,   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,   176,     0,   152,     0,   151,    81,   152,     0,
-   156,    36,   154,     0,   157,   154,     0,     0,    97,    38,
-   153,   154,     0,   154,     0,     0,    82,   155,   150,    78,
-     0,   107,     0,     1,     0,   157,     0,   156,   157,     0,
-    58,    97,     0,    60,   107,    10,   107,    83,     0,    60,
-   107,    83,     0,     0,     0,   164,   159,   116,   160,   200,
-     0,     0,     0,   167,   162,   116,   163,   200,     0,   165,
-     0,   167,     0,    59,   165,    76,     0,   165,    59,   235,
-     0,   165,    60,    99,    83,     0,   165,    60,    83,     0,
-    50,   188,   165,     0,   143,   123,   165,     0,     4,     0,
-   166,    59,   235,     0,   166,    60,    50,    83,     0,   166,
-    60,    99,    83,     0,   166,    60,    83,     0,    50,   188,
-   166,     0,   143,   123,   166,     0,     4,     0,   167,    59,
-   235,     0,    59,   167,    76,     0,    50,   188,   167,     0,
-   167,    60,    50,    83,     0,   167,    60,    99,    83,     0,
-   167,    60,    83,     0,   143,   123,   167,     0,     3,     0,
-    13,     0,    13,   143,     0,    14,     0,    14,   143,     0,
-    12,     0,    12,   143,     0,     0,   168,    97,    82,   172,
-   178,    78,   142,     0,   168,    82,   178,    78,   142,     0,
-   168,    97,     0,     0,   169,    97,    82,   173,   178,    78,
-   142,     0,   169,    82,   178,    78,   142,     0,   169,    97,
-     0,     0,   170,    97,    82,   174,   183,   177,    78,   142,
-     0,     0,   170,    82,   175,   183,   177,    78,   142,     0,
-   170,    97,     0,     0,    81,     0,     0,    81,     0,   179,
-     0,   179,   180,     0,     0,   179,   180,    77,     0,   179,
-    77,     0,   131,   122,   181,     0,   131,     0,   187,   122,
-   181,     0,   187,     0,     1,     0,   240,   180,     0,   182,
-     0,   181,    81,   182,     0,   205,   206,   164,   142,     0,
-   205,   206,   164,    38,   107,   142,     0,   205,   206,    38,
-   107,   142,     0,   184,     0,   183,    81,   184,     0,     1,
-     0,    97,     0,    97,    36,   107,     0,   131,   186,     0,
-   187,   186,     0,     0,   189,     0,     7,     0,   187,     7,
-     0,     0,   188,     7,     0,    59,   189,    76,     0,    50,
-   188,   189,     0,    50,   188,     0,   189,    59,   228,     0,
-   189,    60,    99,    83,     0,   189,    60,    83,     0,    59,
-   228,     0,    60,    99,    83,     0,    60,    83,     0,   191,
-     0,   208,     0,   191,   208,     0,   191,   193,     0,     0,
-   190,     0,     1,    77,     0,     0,     0,   196,     0,   197,
-     0,   196,   197,     0,    32,   239,    77,     0,   200,     0,
-     1,   200,     0,    82,     0,   199,    78,     0,   199,   194,
-   195,   121,   192,    78,     0,   199,   194,   195,     1,    78,
-     0,   199,   194,   195,   190,    78,     0,   202,   207,     0,
-   202,     1,     0,    15,    59,    99,    76,     0,     0,    18,
-   204,   207,    17,     0,     0,     0,   205,   206,   210,     0,
-   205,   206,   221,   207,     0,   205,   206,   209,     0,   210,
-     0,   221,     0,   200,     0,   218,     0,    99,    77,     0,
-     0,   201,    16,   211,   207,     0,   201,     0,   201,    16,
-     1,     0,     0,     0,    17,   212,    59,    99,    76,   213,
-   207,     0,   203,    59,    99,    76,    77,     0,   203,     1,
-     0,     0,     0,     0,    19,    59,   223,    77,   214,   223,
-    77,   215,   223,    76,   216,   207,     0,     0,    20,    59,
-    99,    76,   217,   207,     0,    23,    77,     0,    24,    77,
-     0,    25,    77,     0,    25,    99,    77,     0,    27,   222,
-    59,    99,    76,    77,     0,    27,   222,    59,    99,    38,
-   224,    76,    77,     0,    27,   222,    59,    99,    38,   224,
-    38,   224,    76,    77,     0,    27,   222,    59,    99,    38,
-   224,    38,   224,    38,   227,    76,    77,     0,    26,    97,
-    77,     0,    26,    50,    99,    77,     0,    77,     0,   219,
-     0,     0,    19,    59,   113,    76,   220,   207,     0,    21,
-   107,    38,     0,    21,   107,    10,   107,    38,     0,    22,
-    38,     0,    97,    38,   142,     0,     0,     7,     0,     0,
-    99,     0,     0,   225,     0,   226,     0,   225,    81,   226,
-     0,     9,    59,    99,    76,     0,   115,     0,   227,    81,
-   115,     0,     0,   229,   230,     0,   232,    76,     0,     0,
-   233,    77,   231,   230,     0,     1,    76,     0,     0,    10,
-     0,   233,     0,   233,    81,    10,     0,   234,     0,   233,
-    81,   234,     0,   125,   122,   166,   142,     0,   125,   122,
-   167,   142,     0,   125,   122,   186,   142,     0,   129,   122,
-   167,   142,     0,   129,   122,   186,   142,     0,     0,   236,
-   237,     0,   230,     0,   238,    76,     0,     3,     0,   238,
-    81,     3,     0,    97,     0,   239,    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,  1113,  1114,  1117,  1117,  1120,  1123,
-  1125,  1127,  1130,  1132,  1135,  1141,  1143,  1147,  1158,  1166,
-  1170,  1181,  1189,  1196,  1198,  1203,  1206,  1211,  1213,  1215,
-  1222,  1224,  1232,  1238,  1243,  1245,  1247,  1254,  1256,  1262,
-  1268,  1270,  1272,  1277,  1279,  1286,  1288,  1291,  1294,  1298,
-  1301,  1305,  1308,  1312,  1317,  1319,  1323,  1325,  1327,  1329,
-  1333,  1335,  1338,  1341,  1344,  1347,  1351,  1353,  1356,  1358,
-  1363,  1366,  1371,  1373,  1375,  1389,  1396,  1401,  1407,  1412,
-  1414,  1419,  1421,  1425,  1429,  1433,  1443,  1445,  1450,  1455,
-  1458,  1462,  1465,  1469,  1472,  1475,  1478,  1482,  1485,  1489,
-  1493,  1495,  1497,  1499,  1501,  1503,  1505,  1507,  1517,  1525,
-  1527,  1529,  1533,  1535,  1538,  1541,  1552,  1554,  1559,  1561,
-  1564,  1578,  1581,  1584,  1586,  1588,  1596,  1604,  1615,  1620,
-  1623,  1637,  1646,  1650,  1654,  1658,  1664,  1668,  1673,  1676,
-  1681,  1684,  1685,  1702,  1707,  1710,  1722,  1724,  1734,  1744,
-  1745,  1753,  1756,  1768,  1772,  1789,  1799,  1808,  1813,  1818,
-  1823,  1827,  1831,  1842,  1849,  1856,  1863,  1874,  1880,  1883,
-  1888,  1911,  1945,  1976,  2007,  2022,  2036,  2040,  2044,  2047,
-  2052,  2054,  2057,  2059,  2063,  2068,  2071,  2077,  2082,  2087,
-  2089,  2098,  2099,  2105,  2107,  2117,  2119,  2123,  2126,  2132,
-  2142,  2151,  2160,  2170,  2184,  2189,  2194,  2196,  2205,  2208,
-  2213,  2216,  2220
+   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
 
@@ -408,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","initval","@20","designator_list","designator","nested_function","@21",
-"@22","notype_nested_function","@23","@24","declarator","after_type_declarator",
+"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","@25","@26","@27","@28","maybecomma","maybecomma_warn","component_decl_list",
+"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","simple_if",
-"if_prefix","do_stmt_start","@29","save_filename","save_lineno","lineno_labeled_stmt",
-"lineno_stmt_or_label","stmt_or_label","stmt","@30","@31","@32","@33","@34",
-"@35","@36","all_iter_stmt","all_iter_stmt_simple","@37","label","maybe_type_qual",
-"xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
-"@38","parmlist_1","@39","parmlist_2","parms","parm","parmlist_or_identifiers",
-"@40","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension", NULL
+"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,   152,   153,   152,   152,   155,   154,
-   154,   154,   156,   156,   157,   157,   157,   159,   160,   158,
-   162,   163,   161,   164,   164,   165,   165,   165,   165,   165,
-   165,   165,   166,   166,   166,   166,   166,   166,   166,   167,
-   167,   167,   167,   167,   167,   167,   167,   168,   168,   169,
-   169,   170,   170,   172,   171,   171,   171,   173,   171,   171,
-   171,   174,   171,   175,   171,   171,   176,   176,   177,   177,
-   178,   178,   179,   179,   179,   180,   180,   180,   180,   180,
-   180,   181,   181,   182,   182,   182,   183,   183,   183,   184,
-   184,   185,   185,   186,   186,   187,   187,   188,   188,   189,
-   189,   189,   189,   189,   189,   189,   189,   189,   190,   191,
-   191,   191,   192,   192,   193,   194,   195,   195,   196,   196,
-   197,   198,   198,   199,   200,   200,   200,   200,   201,   201,
-   202,   204,   203,   205,   206,   207,   207,   208,   209,   209,
-   210,   210,   210,   211,   210,   210,   210,   212,   213,   210,
-   210,   210,   214,   215,   216,   210,   217,   210,   210,   210,
-   210,   210,   210,   210,   210,   210,   210,   210,   210,   218,
-   220,   219,   221,   221,   221,   221,   222,   222,   223,   223,
-   224,   224,   225,   225,   226,   227,   227,   229,   228,   230,
-   231,   230,   230,   232,   232,   232,   232,   233,   233,   234,
-   234,   234,   234,   234,   236,   235,   237,   237,   238,   238,
-   239,   239,   240
+    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,
@@ -491,713 +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,     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,     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,     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
+     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,   242,   238,
-   240,     0,     0,     0,   403,    18,     4,     8,     7,     0,
-   118,   118,   138,   129,   139,   172,     0,     0,     0,   151,
-     0,     6,    16,    17,   243,   239,   241,     0,     0,     0,
-   237,   288,     0,     0,   160,   119,     0,    15,     0,    14,
-     0,   140,   129,   141,   145,   144,   127,   173,    31,    32,
-   263,   247,   263,   251,   254,   256,    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,   286,     0,   284,   148,     0,
-   284,   177,     0,     0,    11,     0,     0,    30,     0,   395,
-     0,     0,   170,   222,   288,     0,     0,   158,   119,     0,
-   214,   215,     0,     0,   128,   131,   155,   156,   130,   132,
-   157,     0,     0,   244,     0,   248,     0,   252,    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,   288,
-   378,     0,   282,   285,   146,   154,   287,   148,   283,   183,
-   184,   185,   182,     0,   175,   178,   289,   232,   231,   161,
-   162,   236,     0,   230,     0,     0,   235,     0,     0,    28,
-     0,   324,   106,   325,   169,   171,     0,     0,    13,     0,
-     0,    22,     0,   170,   395,     0,    12,    26,     0,   170,
-   270,   265,   118,   262,   118,     0,   263,   170,   263,   279,
-   280,   259,   277,     0,    90,    89,   314,   306,     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,   292,     0,   296,
-     0,   298,     0,   378,     0,   149,   147,     0,   177,    41,
-     0,     0,   399,   385,   118,   118,   397,     0,   386,   388,
-   396,     0,   233,   234,   305,     0,   108,   103,   107,     0,
-   167,   220,   216,   159,   221,    20,   166,   217,   219,     0,
-    24,   246,   324,   264,   324,   271,     0,   250,     0,     0,
-   260,     0,   259,   315,   307,    92,    60,    59,    51,    53,
-     0,     0,    78,    76,    93,    94,   291,   290,   379,   297,
-   293,   295,     0,   174,   176,    86,     0,   163,   383,   284,
-   284,   380,   381,     0,   398,     0,     0,    29,   312,   104,
-   118,   118,   135,     0,     0,   164,   218,     0,   266,   272,
-   325,   268,   170,   170,   281,   278,   170,     0,     0,     0,
-   308,   309,     0,    80,    83,   294,   179,     0,   181,   229,
-   288,   378,   119,   170,   170,   170,   288,   170,   170,     0,
-   387,   389,   400,   313,   111,     0,   112,     0,   135,   133,
-   189,   187,   186,   168,    21,     0,    25,   324,     0,   245,
-   249,   255,   170,   401,     0,     0,     0,   324,     0,     0,
-   115,   325,   300,   310,   202,    86,     0,     0,   199,     0,
-   201,     0,   257,   192,   198,     0,     0,     0,     0,   292,
-     0,   395,     0,   390,   391,   392,   292,   393,   394,   382,
-     0,     0,   162,   134,   137,   136,     0,   165,   273,     0,
-   170,   253,   311,     0,   317,   117,   116,   304,     0,   318,
-   302,   325,   301,     0,   205,     0,     0,   196,    61,     0,
-   191,     0,   204,   195,    81,   180,   227,   288,   228,   223,
-     0,   226,     0,   109,   110,     0,   170,     0,   274,   402,
-   316,     0,   152,     0,   338,   322,     0,     0,     0,     0,
-     0,     0,     0,     0,   367,   359,     0,     0,   113,   118,
-   118,   331,   336,     0,     0,   328,   329,   332,   360,   330,
-     0,     0,   207,     0,     0,   193,   194,     0,   224,   225,
-   188,   276,   170,     0,     0,   324,   369,     0,     0,   365,
-   349,   350,   351,     0,     0,     0,   368,     0,   170,   333,
-   124,     0,   125,     0,     0,   320,   325,   319,   342,     0,
-   126,     0,   200,   197,   275,     0,     0,     0,   370,    45,
-     0,     0,     0,   363,   352,     0,   357,     0,   366,     0,
-   122,   208,     0,   123,   211,   337,   324,     0,     0,   206,
-   321,     0,   323,   361,   343,   347,     0,   358,     0,   120,
-     0,   121,     0,   335,   326,   324,     0,   339,   324,   369,
-   324,   364,   371,     0,   209,   212,   327,   341,   324,   362,
-     0,   348,     0,     0,   372,   373,   353,     0,     0,   340,
-   344,     0,   371,     0,     0,   210,   213,   369,     0,     0,
-   354,   374,     0,   375,     0,     0,   345,   376,     0,   355,
-   324,     0,     0,   346,   356,   377,     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[] = {   687,
-     1,     2,     3,    17,    18,    19,   223,   375,   229,   378,
-   112,   306,   450,    85,   144,   275,    87,    88,    89,    90,
-    91,   393,    92,   260,   259,   257,   458,   258,    93,   145,
-    94,   210,   211,   212,   370,   437,   438,    20,   107,   539,
-   295,    57,   371,   420,   296,    23,    98,   185,    24,   129,
-   117,    44,   113,   118,   426,    45,   374,   215,   216,    26,
-   194,   195,   196,   424,   477,   452,   453,   454,   555,   455,
-   497,   456,   457,   611,   631,   658,   614,   633,   659,   201,
-   121,   507,   122,    27,    28,    29,    30,   237,   239,   244,
-   137,   501,   332,   132,   133,   234,   379,   380,   242,   243,
-   100,   183,   101,   103,   184,   439,   440,   489,   213,   335,
-   390,   391,   392,   368,   248,   369,   543,   544,   545,   566,
-   587,   310,   588,   443,   546,   547,   617,   565,   649,   640,
-   668,   681,   641,   548,   549,   639,   550,   578,   601,   654,
-   655,   656,   679,   280,   281,   297,   410,   298,   299,   300,
-   204,   205,   301,   302,   435,    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[] = {    74,
-    97,  2227,  2227,    54,-32768,-32768,-32768,-32768,    17,    17,
-    17,    87,    94,   134,-32768,-32768,-32768,-32768,-32768,   369,
-     5,   476,   261,-32768,    17,-32768,    59,    61,    90,-32768,
-  2227,-32768,-32768,-32768,    17,    17,    17,  2089,  2023,   189,
--32768,-32768,   369,   129,-32768,    17,   320,-32768,   519,-32768,
-   369,   261,-32768,    17,-32768,-32768,   793,-32768,-32768,-32768,
--32768,   114,-32768,   181,-32768,   191,-32768,-32768,-32768,-32768,
--32768,-32768,  2089,  2089,   241,-32768,-32768,-32768,  2089,-32768,
--32768,   708,-32768,-32768,  2089,    40,   211,-32768,  2116,  2143,
--32768,  2293,  1062,   286,  2089,-32768,   247,   210,-32768,   254,
-  1674,   639,   272,   276,-32768,   519,   369,-32768,   238,-32768,
-  1451,   357,    17,-32768,-32768,   519,   137,-32768,    17,  1438,
-   378,   395,   232,  1376,   793,-32768,-32768,-32768,-32768,    17,
--32768,   259,   870,-32768,   282,-32768,   228,-32768,-32768,-32768,
--32768,-32768,   305,   307,   328,   337,-32768,   277,  2089,   708,
--32768,   708,-32768,  2089,  2089,   355,-32768,-32768,  2089,  2089,
-  2089,  2089,  2089,  2089,  2089,  2089,  2089,  2089,  2089,  2089,
--32768,-32768,   241,   241,  2089,  2089,-32768,-32768,-32768,-32768,
-   210,  1478,-32768,   398,   438,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,    14,-32768,   361,-32768,   395,-32768,-32768,
-   400,   395,   426,-32768,   402,  1533,-32768,   363,   371,-32768,
-   767,    48,-32768,-32768,   430,    17,   461,   281,-32768,   519,
-   519,-32768,   357,    17,-32768,  1560,-32768,-32768,   357,    17,
--32768,-32768,   385,   392,   209,  1323,-32768,    17,-32768,-32768,
-   457,   393,-32768,   228,-32768,-32768,-32768,   416,   420,  1912,
--32768,  2293,   421,   423,  2293,  2293,  2089,   463,  2089,  2089,
-  1667,  1881,  2060,   936,  1098,   760,   760,   294,   294,-32768,
--32768,-32768,-32768,-32768,   432,   211,   419,   246,   315,-32768,
-  1052,-32768,   431,-32768,  1615,-32768,   438,   433,   639,  2170,
-    44,   437,-32768,-32768,-32768,  1542,-32768,   439,   239,-32768,
--32768,    66,-32768,-32768,-32768,    47,-32768,-32768,-32768,  1027,
--32768,   378,-32768,-32768,   378,-32768,   480,-32768,-32768,   436,
--32768,-32768,-32768,-32768,-32768,-32768,   443,-32768,   447,  2089,
-   241,   449,   393,-32768,   496,-32768,-32768,-32768,-32768,-32768,
-   493,  2089,  2328,  1586,-32768,-32768,   398,-32768,-32768,-32768,
--32768,-32768,   455,-32768,-32768,    99,   465,-32768,-32768,   221,
-   374,-32768,-32768,  1465,-32768,   543,   328,-32768,-32768,-32768,
-   471,   172,-32768,  1312,    47,-32768,-32768,    47,   469,-32768,
--32768,   469,    17,    17,  2293,-32768,    17,   477,   241,   813,
-   496,-32768,  1132,-32768,  2222,-32768,-32768,  2089,-32768,-32768,
--32768,   374,    17,   135,   258,    17,-32768,   258,    17,  1052,
--32768,-32768,-32768,-32768,-32768,   519,-32768,   369,-32768,   845,
--32768,-32768,  2293,-32768,-32768,  1312,-32768,-32768,   205,-32768,
--32768,-32768,    17,-32768,   278,   394,   646,   478,   483,   912,
--32768,-32768,-32768,-32768,-32768,   516,   241,  2089,-32768,   520,
-  2293,   485,   484,-32768,-32768,   123,  1252,  2089,   111,   167,
-   688,-32768,  1642,-32768,-32768,-32768,   269,-32768,-32768,-32768,
-   301,   311,   225,   845,-32768,-32768,  1132,-32768,-32768,  2089,
-   160,-32768,-32768,   241,-32768,-32768,-32768,-32768,   486,-32768,
--32768,-32768,-32768,  1778,-32768,  2266,  1132,-32768,-32768,  1192,
--32768,  1367,-32768,-32768,  2222,-32768,   417,-32768,   417,-32768,
-  1697,-32768,   489,-32768,-32768,   490,  1799,  2089,-32768,-32768,
--32768,  1858,   529,   514,-32768,-32768,   515,   534,  2089,   537,
-   502,   518,  2036,    52,   589,-32768,   559,   522,-32768,   523,
-   607,-32768,   585,   995,    45,-32768,-32768,-32768,-32768,-32768,
-  1969,  2089,-32768,   525,  1367,-32768,-32768,   950,-32768,-32768,
--32768,-32768,  1799,  2089,   545,-32768,  2089,  2089,  1722,-32768,
--32768,-32768,-32768,   528,  2089,   532,-32768,   557,    17,-32768,
--32768,   519,-32768,   369,  1075,-32768,-32768,-32768,-32768,  2089,
--32768,  2248,-32768,-32768,-32768,   541,  2089,   601,-32768,   849,
-   546,   549,  2089,-32768,-32768,   556,-32768,  2089,-32768,   317,
--32768,   359,   345,-32768,   672,-32768,-32768,  1858,   550,-32768,
--32768,   558,-32768,-32768,-32768,-32768,  2315,-32768,    23,-32768,
-   357,-32768,   357,-32768,-32768,-32768,   561,-32768,-32768,  2089,
--32768,-32768,   613,   563,-32768,-32768,-32768,-32768,-32768,-32768,
-   571,-32768,   577,    33,   581,-32768,-32768,   328,   328,-32768,
--32768,  2089,   613,   606,   613,-32768,-32768,  2089,   602,    34,
--32768,-32768,   609,-32768,   426,   610,-32768,   286,   157,-32768,
--32768,   611,   426,-32768,-32768,   286,   690,   693,-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,    81,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   -24,-32768,   -38,   407,  -139,   193,-32768,-32768,
-    -4,-32768,   422,-32768,-32768,-32768,-32768,-32768,   131,-32768,
-  -196,  -202,   491,-32768,-32768,   268,-32768,    -5,   -91,   156,
-     9,   657,-32768,   308,    11,    -7,   -88,   542,     4,  -163,
-  -378,   -45,  -100,   -65,-32768,-32768,-32768,   223,    57,    82,
--32768,   424,-32768,   303,-32768,  -401,-32768,   233,-32768,  -422,
--32768,-32768,   279,-32768,-32768,-32768,-32768,-32768,-32768,   -39,
-   -59,  -316,   -18,-32768,-32768,-32768,   -33,-32768,-32768,-32768,
--32768,-32768,   401,   -32,-32768,   507,   425,   316,   501,   415,
-    39,   -67,   -79,   -97,  -152,   321,-32768,-32768,  -179,-32768,
--32768,-32768,   364,  -209,-32768,  -126,-32768,-32768,-32768,-32768,
-   -89,  -331,  -514,   314,-32768,   142,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,   143,-32768,  -553,   102,
--32768,   101,-32768,   492,-32768,  -242,-32768,-32768,-32768,   405,
-  -195,-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          2380
-
-
-static const short yytable[] = {    86,
-    97,    47,    62,    64,    66,   123,   291,    31,    31,   120,
-    21,    21,    22,    22,    52,    49,    51,   217,   249,   224,
-   316,   286,   214,   131,   104,    53,   321,   221,   279,   318,
-   135,   307,   124,   189,   504,   276,    31,   471,   349,    21,
-   200,    22,    99,   404,   233,   589,    14,   367,  -102,   429,
-   141,   598,   177,   235,    59,    60,   218,   308,    25,    25,
-   643,    59,    60,    59,    60,    35,    36,    37,   139,   140,
-   663,   675,   208,    -1,   142,   516,    46,   193,    54,   557,
-   147,    48,   278,    32,   198,    99,   651,    25,   202,   288,
-   178,   131,    59,    60,   289,   554,    -2,   104,   644,    46,
-   224,   575,   634,   590,   188,   119,    58,    46,   664,   676,
-   494,    67,   241,   130,   673,   148,    58,    58,    58,   358,
-   146,   647,   214,   286,   650,   347,   652,    58,   247,  -102,
-    33,    34,   594,   214,   660,    58,    99,   277,   236,   214,
-    61,   365,    63,   283,   509,    38,   366,   233,   273,   274,
-   276,   131,    39,    99,   314,    99,   235,   312,   502,    46,
-   522,   315,   119,    46,    14,   425,   684,   470,   427,    41,
-   400,    65,   119,   197,   397,     5,    55,     7,    56,   398,
-   447,   130,   448,     9,    10,    11,   506,   320,   253,    14,
-   254,   149,    40,   462,   463,   134,    14,   518,   198,    13,
-    58,   142,   202,   610,   327,   105,   329,    41,   114,   106,
-   441,    58,     5,   219,     7,   187,   401,   220,   341,   241,
-     9,    10,    11,    41,   400,   402,   182,   323,   240,   325,
-    59,    60,   682,   381,    14,   381,    13,   683,   188,    99,
-   414,   236,   480,    59,    60,   338,   353,   102,   417,   279,
-    14,   109,   197,   131,   115,   618,   476,   486,   459,   180,
-   491,    25,   136,   116,   193,    55,   510,    56,   181,   182,
-   401,    41,   138,   119,    41,   197,   119,   119,   197,   402,
-   182,   151,   153,   110,   111,  -269,  -269,    14,    52,   360,
-   361,   149,   406,   409,   177,   180,   203,    58,    14,    53,
-   442,    14,   372,   460,   181,   182,   241,   347,   227,   467,
-   476,   461,   106,   373,   347,   363,   110,   111,   407,   364,
-   108,    42,   179,   -27,   -27,   -27,   -27,   402,   182,   186,
-    43,   -27,   -27,   -27,   110,   111,   230,    25,   381,   225,
-   226,   405,   408,   168,   169,   170,   109,   -27,   442,  -162,
-   492,   199,    54,   251,   483,  -162,   313,   209,   484,   238,
-  -324,  -324,  -324,  -324,   434,   416,   418,   542,  -324,  -324,
-  -324,    41,   472,   284,   285,   419,    41,   514,   110,   111,
-   245,   220,   246,   104,  -324,   109,   131,   515,  -162,   481,
-   348,   106,   -82,   630,  -162,   542,  -162,   220,    14,   473,
-  -162,   -27,   292,    14,   293,     5,     6,     7,     8,   247,
-   558,   294,   250,     9,    10,    11,   403,    46,    42,   290,
-    25,   632,   495,   407,   513,   106,   109,    43,   645,    13,
-   646,    14,   402,   182,    70,  -162,   225,   226,  -101,  -162,
-   131,   198,   202,   127,   128,   304,   317,   305,   198,     9,
-    10,    11,   322,   110,   111,   538,   284,   285,    46,   520,
-   328,  -267,  -267,    41,   114,   311,    25,   197,   324,   537,
-   305,   485,   119,   331,    46,   462,   463,  -384,   678,     5,
-     6,     7,     8,   538,    58,   119,   686,     9,    10,    11,
-    14,   542,   330,   334,   574,   336,   339,   537,   340,   551,
-   342,   346,   540,    13,   541,    14,   142,   345,   354,   576,
-   115,   224,   359,   350,   362,   376,   403,   403,   377,   116,
-   383,    41,   114,    46,   384,   596,   387,   389,   599,   602,
-   394,   666,   667,    52,   582,   584,   606,   396,   613,   198,
-   399,   214,   612,   214,    53,   413,   178,   415,    14,   428,
-    25,   619,    50,   -31,   433,  -303,   551,   498,   622,   540,
-   490,   541,   499,   521,   500,   615,   -32,   561,   115,   629,
-   252,   560,   564,   567,   570,   255,   256,   116,   571,   538,
-   261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-   271,   272,   568,   537,   572,   577,   579,    54,   580,   581,
-   585,   599,   593,   597,   605,   430,   431,    25,   607,   432,
-     5,     6,     7,     8,   403,   608,   621,   623,     9,    10,
-    11,   653,   625,   669,   626,   637,   464,   465,   466,   599,
-   468,   469,   628,   638,    13,   662,    14,   648,   119,   657,
-    46,    59,    60,   190,   191,   192,   209,   661,  -114,  -114,
-  -114,  -114,  -114,  -114,  -114,   482,  -114,  -114,  -114,  -114,
-  -114,   665,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
-  -114,  -114,  -114,  -114,  -114,  -114,  -114,   674,  -114,  -114,
-   343,   344,   671,   583,   677,  -114,   680,   685,  -114,   688,
-    41,   400,   689,  -114,  -114,  -114,   357,   600,   109,  -114,
-  -114,  -162,   309,   519,  -114,   487,   591,  -162,   143,   125,
-    68,     5,   355,     7,    96,    69,    70,    14,    71,     9,
-    10,    11,  -114,  -114,  -114,  -114,   474,  -114,   478,   287,
-   110,   111,   556,   388,   503,    13,    72,   508,    15,   562,
-    73,    74,   326,   479,   333,   386,    43,    75,  -162,   382,
-    76,   385,  -162,   493,   444,    77,    78,    79,   488,   635,
-   636,    80,    81,   395,   670,   672,    82,   209,   412,     0,
-  -105,  -105,  -105,  -105,     0,   351,  -105,     0,  -105,  -105,
-  -105,     0,     0,     0,     0,   595,    83,    84,     0,   -91,
-     0,     0,     0,     0,  -105,   423,     0,   126,   127,   128,
-     0,   609,     0,     0,     9,    10,    11,   166,   167,   168,
-   169,   170,     0,   436,   451,  -324,  -324,  -324,  -324,  -324,
-  -324,  -324,    14,  -324,  -324,  -324,  -324,  -324,     0,  -324,
-  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,
-  -324,  -324,  -324,  -324,     0,  -324,  -324,   423,  -105,   475,
-   127,   128,  -324,     0,     0,  -324,     9,    10,    11,     0,
-  -324,  -324,  -324,     0,     0,     0,  -324,  -324,     0,   496,
-   231,  -324,     0,     5,     0,     7,    96,     0,   451,   505,
-     0,     9,    10,    11,     0,     0,     0,     0,     0,  -324,
-     0,  -324,  -324,     0,  -324,     0,     0,    13,   451,     0,
-    15,   517,   171,   172,     0,   173,   174,   175,   176,     0,
-     0,     0,   209,     0,  -324,  -324,     0,     0,   451,  -324,
-  -324,   451,  -324,   451,   624,     0,  -324,     0,  -324,  -324,
-  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,   563,
-  -324,     0,  -324,     0,  -324,  -324,   232,  -261,     0,     0,
-   569,  -324,    41,   400,  -324,     0,   197,     0,     0,  -324,
-  -324,  -324,     0,     0,     0,  -324,  -324,     0,     0,     0,
-  -324,     0,     0,   592,     0,     0,   451,     0,     0,    14,
-   163,   164,   165,   166,   167,   168,   169,   170,  -324,  -299,
-  -324,  -324,     0,  -324,     0,   586,     0,  -324,  -324,   508,
-     0,     0,  -324,  -324,     0,  -324,     0,     0,    43,  -324,
-     0,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,  -324,
-  -324,  -324,     0,  -324,   627,  -324,     0,  -324,  -324,     0,
-     5,     6,     7,     8,  -324,     0,     0,  -324,     9,    10,
-    11,     0,  -324,  -324,  -324,     0,     0,     0,  -324,  -324,
-     0,     0,   292,  -324,    13,     5,     6,     7,     8,     0,
-     0,   294,     0,     9,    10,    11,     0,     0,     0,     0,
-     0,  -324,     0,  -324,  -324,   616,  -324,  -334,  -334,    13,
-     0,    14,  -334,  -334,     0,  -334,     0,     0,     0,  -334,
-     0,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,  -334,
-  -334,  -334,     0,  -334,     0,  -334,     0,  -334,  -334,     0,
-     0,     0,     0,     0,  -334,   171,   172,  -334,   173,   174,
-   175,   176,  -334,  -334,  -334,     0,     0,  -384,  -334,  -334,
-     0,     0,   445,  -334,   446,    60,     0,     0,     0,    69,
-    70,     0,    71,   164,   165,   166,   167,   168,   169,   170,
-     0,  -334,     0,  -334,  -334,     0,  -334,     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,   447,
-    82,   448,   445,     0,   446,    60,     0,     0,     0,    69,
-    70,     0,    71,     0,     0,     0,     0,     0,     0,  -190,
-    83,    84,     0,   449,     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,   447,
-    82,   448,   445,     0,    68,     0,     0,     0,     0,    69,
-    70,     0,    71,     0,     0,     0,     0,     0,     0,  -258,
-    83,    84,     0,   449,     0,     0,     0,     0,     0,     0,
-    72,     0,    15,     0,    73,    74,     0,  -203,     0,     0,
-     0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
-    78,    79,     0,     0,     0,    80,    81,     0,     0,  -203,
-    82,  -203,   421,     0,    68,     0,     0,     0,     0,    69,
-    70,     0,    71,   231,     0,     0,     5,     0,     7,    96,
-    83,    84,     0,   449,     9,    10,    11,     0,     0,     0,
-    72,     0,    15,     0,    73,    74,     0,     0,     0,     0,
-    13,    75,     0,    15,    76,     0,     0,     0,     0,    77,
-    78,    79,     0,     0,     0,    80,    81,   445,     0,    68,
-    82,     0,     0,     0,    69,    70,   228,    71,     0,   -23,
-   -23,   -23,   -23,     0,     0,     0,     0,   -23,   -23,   -23,
-    83,    84,     0,   422,     0,    72,     0,    15,     0,    73,
-    74,     0,   109,   -23,     0,  -162,    75,     0,     0,    76,
-     0,  -162,     0,     0,    77,    78,    79,     0,     0,     0,
-    80,    81,     0,     0,     0,    82,     0,     0,     0,     0,
-     0,     0,     0,     0,   110,   111,     0,     0,   222,     0,
-     0,   -19,   -19,   -19,   -19,    83,    84,     0,   449,   -19,
-   -19,   -19,  -162,    68,     0,     0,  -162,   -23,    69,    70,
-     0,    71,     0,     0,   109,   -19,     0,  -162,     5,     6,
-     7,     8,     0,  -162,   411,     0,     9,    10,    11,    72,
-    68,    15,     0,    73,    74,    69,    70,     0,    71,     0,
-    75,     0,    13,    76,    14,     0,     0,     0,    77,    78,
-   206,     0,     0,     0,    80,    81,    72,     0,    15,    82,
-    73,    74,     0,     0,  -162,     0,     0,    75,  -162,   -19,
-    76,     0,     0,     0,     0,    77,    78,    79,     0,    83,
-    84,    80,    81,   207,     0,    68,    82,     0,     0,     0,
-    69,    70,     0,    71,     0,     5,     6,     7,     8,     0,
-     0,     0,     0,     9,    10,    11,    83,    84,     0,     0,
-   282,    72,    68,    15,     0,    73,    74,    69,    70,    13,
-    71,    14,    75,     0,     0,    76,     0,     0,     0,     0,
-    77,    78,    79,     0,     0,     0,    80,    81,    72,     0,
-    15,    82,    73,    74,     0,     0,     0,     0,     0,    75,
-     0,     0,    76,     0,     0,     0,     0,    77,    78,    79,
-     0,    83,    84,    80,    81,   303,     0,    68,    82,     0,
-     0,     0,    69,    70,     0,    71,   159,   160,   161,   162,
-   163,   164,   165,   166,   167,   168,   169,   170,    83,    84,
-     0,     0,   319,    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,     0,    15,    82,    73,    74,     0,     5,     0,     7,
-   187,    75,     0,     0,    76,     9,    10,    11,     0,    77,
-    78,   511,     0,    83,    84,    80,    81,   352,     0,    68,
-    82,    13,     0,     0,    69,    70,     0,    71,   160,   161,
-   162,   163,   164,   165,   166,   167,   168,   169,   170,     0,
-    83,    84,     0,   180,   512,    72,     0,    15,     0,    73,
-    74,   603,   181,   182,     0,     0,    75,     0,     0,    76,
-     0,     0,     0,     0,    77,    78,    79,     0,     0,     0,
-    80,    81,     0,     0,     0,    82,   154,   155,   156,   604,
-   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-   167,   168,   169,   170,     0,    83,    84,     0,     0,   559,
-   446,   523,     6,     7,     8,    69,    70,     0,    71,     9,
-    10,    11,   524,     0,   525,   526,   527,   528,   529,   530,
-   531,   532,   533,   534,   535,    13,    72,    14,    15,     0,
-    73,    74,     0,     0,     0,     0,     0,    75,     0,     0,
-    76,     0,     0,     0,     0,    77,    78,    79,    14,     0,
-     0,    80,    81,   154,   155,   156,    82,   157,   158,   159,
-   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
-   170,     0,     0,     0,   536,     0,    83,    84,     0,   247,
-   446,    60,     0,     0,     0,    69,    70,     0,    71,     0,
-     0,     0,   524,     0,   525,   526,   527,   528,   529,   530,
-   531,   532,   533,   534,   535,     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,    68,     0,    82,     0,     0,    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,  -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,     0,   536,     0,    83,    84,     0,   247,
-    72,     0,    15,     0,    73,    74,     0,     0,     0,     0,
-     0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
-    78,    79,     0,     0,     0,    80,    81,     0,     0,     0,
-    82,    68,     5,     6,     7,     8,    69,    70,     0,    71,
-     9,    10,    11,     0,     0,     0,     0,     0,     0,     0,
-    83,    84,     0,   337,     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,   573,     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,   356,    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,     0,     0,     0,     0,     9,    10,
-    11,     0,     0,     0,     0,     0,     0,     0,    83,    84,
-     0,     0,     0,    12,    13,     0,    14,    15,   156,     0,
-   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-   167,   168,   169,   170,     0,   552,  -118,     0,     0,     0,
-     0,     0,   154,   155,   156,  -118,   157,   158,   159,   160,
+   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,
-   154,   155,   156,    16,   157,   158,   159,   160,   161,   162,
-   163,   164,   165,   166,   167,   168,   169,   170,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   154,   155,   156,
-   620,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-   166,   167,   168,   169,   170,     0,     0,     0,   553,   154,
-   155,   156,   642,   157,   158,   159,   160,   161,   162,   163,
-   164,   165,   166,   167,   168,   169,   170,   158,   159,   160,
-   161,   162,   163,   164,   165,   166,   167,   168,   169,   170
+   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,   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,    20,    27,    28,    29,    51,   203,     2,     3,    49,
-     2,     3,     2,     3,    22,    21,    22,   115,   145,   120,
-   223,   185,   112,    57,    43,    22,   229,   119,   181,   225,
-    63,   211,    51,   101,   457,   175,    31,   416,   281,    31,
-   106,    31,    39,   360,   133,     1,    30,     1,     1,   381,
-    75,   566,     9,   133,     3,     4,   116,    10,     2,     3,
-    38,     3,     4,     3,     4,     9,    10,    11,    73,    74,
-    38,    38,   111,     0,    79,   477,    20,   102,    22,   502,
-    85,    77,   180,     3,   103,    82,   640,    31,   107,    76,
-    95,   125,     3,     4,    81,   497,     0,   116,    76,    43,
-   201,    50,   617,    59,   101,    49,    25,    51,    76,    76,
-   442,    31,   137,    57,   668,    76,    35,    36,    37,    76,
-    82,   636,   212,   287,   639,   278,   641,    46,    82,    82,
-    77,    78,   555,   223,   649,    54,   133,   176,   133,   229,
-    82,    76,    82,   182,   461,    59,    81,   236,   173,   174,
-   290,   185,    59,   150,   220,   152,   236,   217,    36,   103,
-   492,   221,   106,   107,    30,   375,   681,   410,   378,     3,
-     4,    82,   116,     7,    76,     4,     5,     6,     7,    81,
-    58,   125,    60,    12,    13,    14,    76,   226,   150,    30,
-   152,    81,    59,    59,    60,    82,    30,    38,   217,    28,
-   119,   206,   221,   582,   237,    77,   239,     3,     4,    81,
-   390,   130,     4,    77,     6,     7,    50,    81,   257,   244,
-    12,    13,    14,     3,     4,    59,    60,   233,     1,   235,
-     3,     4,    76,   323,    30,   325,    28,    81,   235,   236,
-   367,   236,    38,     3,     4,   250,   285,    59,    77,   402,
-    30,    27,     7,   287,    50,   587,   420,   437,   398,    50,
-   440,   205,    82,    59,   289,     5,   462,     7,    59,    60,
-    50,     3,    82,   217,     3,     7,   220,   221,     7,    59,
-    60,    89,    90,    59,    60,    77,    78,    30,   296,   295,
-   296,    81,   360,   361,     9,    50,    59,   216,    30,   296,
-   390,    30,   310,   401,    59,    60,   331,   460,    77,   407,
-   474,   403,    81,   310,   467,    77,    59,    60,    50,    81,
-     1,    50,    76,     4,     5,     6,     7,    59,    60,    76,
-    59,    12,    13,    14,    59,    60,    78,   281,   428,    59,
-    60,   360,   361,    50,    51,    52,    27,    28,   438,    30,
-   440,    76,   296,    77,    77,    36,    76,     1,    81,    78,
-     4,     5,     6,     7,   389,   371,   372,   494,    12,    13,
-    14,     3,   418,    59,    60,   372,     3,    77,    59,    60,
-    76,    81,    76,   402,    28,    27,   420,    77,    30,   429,
-    76,    81,    38,    77,    36,   522,    77,    81,    30,   418,
-    81,    82,     1,    30,     3,     4,     5,     6,     7,    82,
-   508,    10,    76,    12,    13,    14,   360,   361,    50,    59,
-   364,    77,   447,    50,   463,    81,    27,    59,   631,    28,
-   633,    30,    59,    60,     9,    77,    59,    60,    82,    81,
-   474,   460,   461,     6,     7,    83,   224,    77,   467,    12,
-    13,    14,   230,    59,    60,   494,    59,    60,   402,   484,
-   238,    77,    78,     3,     4,    36,   410,     7,    77,   494,
-    77,    78,   416,    81,   418,    59,    60,    76,   675,     4,
-     5,     6,     7,   522,   403,   429,   683,    12,    13,    14,
-    30,   618,    36,    78,   533,    76,    76,   522,    76,   494,
-    38,    83,   494,    28,   494,    30,   511,    76,    76,   534,
-    50,   612,    76,    83,    76,    36,   460,   461,    83,    59,
-    78,     3,     4,   467,    78,   564,    78,    32,   567,   568,
-    38,   658,   659,   541,   540,   541,   575,    83,   584,   558,
-    76,   631,   582,   633,   541,     3,   551,    77,    30,    81,
-   494,   590,    77,    38,    78,    78,   551,    38,   597,   551,
-    78,   551,    78,    78,    81,   584,    38,    78,    50,   608,
-   149,    83,    59,    59,    38,   154,   155,    59,    77,   618,
-   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-   169,   170,    59,   618,    77,     7,    38,   541,    77,    77,
-    16,   640,    78,    59,    77,   383,   384,   551,    77,   387,
-     4,     5,     6,     7,   558,    59,    76,    17,    12,    13,
-    14,     9,    77,   662,    76,    76,   404,   405,   406,   668,
-   408,   409,    77,    76,    28,    59,    30,    77,   582,    77,
-   584,     3,     4,     5,     6,     7,     1,    77,     3,     4,
-     5,     6,     7,     8,     9,   433,    11,    12,    13,    14,
-    15,    81,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    27,    28,    29,    30,    31,    76,    33,    34,
-   259,   260,    77,    77,    76,    40,    77,    77,    43,     0,
-     3,     4,     0,    48,    49,    50,   290,   567,    27,    54,
-    55,    30,   212,   481,    59,   438,   551,    36,     1,    53,
-     3,     4,   289,     6,     7,     8,     9,    30,    11,    12,
-    13,    14,    77,    78,    79,    80,   419,    82,   426,   188,
-    59,    60,   500,   333,   456,    28,    29,    50,    31,   517,
-    33,    34,   236,   428,   244,   331,    59,    40,    77,   325,
-    43,   330,    81,   440,   391,    48,    49,    50,   438,   618,
-   618,    54,    55,   342,   663,   665,    59,     1,   364,    -1,
-     4,     5,     6,     7,    -1,   284,    10,    -1,    12,    13,
-    14,    -1,    -1,    -1,    -1,   563,    79,    80,    -1,    82,
-    -1,    -1,    -1,    -1,    28,   374,    -1,     5,     6,     7,
-    -1,   579,    -1,    -1,    12,    13,    14,    48,    49,    50,
-    51,    52,    -1,     1,   393,     3,     4,     5,     6,     7,
-     8,     9,    30,    11,    12,    13,    14,    15,    -1,    17,
+    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,    -1,    33,    34,   426,    82,     5,
-     6,     7,    40,    -1,    -1,    43,    12,    13,    14,    -1,
-    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,   448,
-     1,    59,    -1,     4,    -1,     6,     7,    -1,   457,   458,
-    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    77,
-    -1,    79,    80,    -1,    82,    -1,    -1,    28,   477,    -1,
-    31,   480,    54,    55,    -1,    57,    58,    59,    60,    -1,
-    -1,    -1,     1,    -1,     3,     4,    -1,    -1,   497,     8,
-     9,   500,    11,   502,    76,    -1,    15,    -1,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,   518,
-    29,    -1,    31,    -1,    33,    34,    77,    78,    -1,    -1,
-   529,    40,     3,     4,    43,    -1,     7,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
-    59,    -1,    -1,   552,    -1,    -1,   555,    -1,    -1,    30,
-    45,    46,    47,    48,    49,    50,    51,    52,    77,    78,
-    79,    80,    -1,    82,    -1,     1,    -1,     3,     4,    50,
-    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    59,    15,
+    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,   603,    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,     4,     5,     6,     7,    -1,
-    -1,    10,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,
-    -1,    77,    -1,    79,    80,     1,    82,     3,     4,    28,
-    -1,    30,     8,     9,    -1,    11,    -1,    -1,    -1,    15,
-    -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
-    -1,    -1,    -1,    -1,    40,    54,    55,    43,    57,    58,
-    59,    60,    48,    49,    50,    -1,    -1,    76,    54,    55,
-    -1,    -1,     1,    59,     3,     4,    -1,    -1,    -1,     8,
-     9,    -1,    11,    46,    47,    48,    49,    50,    51,    52,
-    -1,    77,    -1,    79,    80,    -1,    82,    -1,    -1,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -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,    -1,    -1,    -1,    78,
-    79,    80,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    36,    -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,    -1,     6,     7,
-    79,    80,    -1,    82,    12,    13,    14,    -1,    -1,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    28,    40,    -1,    31,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,     1,    -1,     3,
-    59,    -1,    -1,    -1,     8,     9,     1,    11,    -1,     4,
-     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
-    79,    80,    -1,    82,    -1,    29,    -1,    31,    -1,    33,
-    34,    -1,    27,    28,    -1,    30,    40,    -1,    -1,    43,
-    -1,    36,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
-    54,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,     1,    -1,
-    -1,     4,     5,     6,     7,    79,    80,    -1,    82,    12,
-    13,    14,    77,     3,    -1,    -1,    81,    82,     8,     9,
-    -1,    11,    -1,    -1,    27,    28,    -1,    30,     4,     5,
-     6,     7,    -1,    36,    10,    -1,    12,    13,    14,    29,
-     3,    31,    -1,    33,    34,     8,     9,    -1,    11,    -1,
-    40,    -1,    28,    43,    30,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    29,    -1,    31,    59,
-    33,    34,    -1,    -1,    77,    -1,    -1,    40,    81,    82,
-    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    79,
-    80,    54,    55,    83,    -1,     3,    59,    -1,    -1,    -1,
-     8,     9,    -1,    11,    -1,     4,     5,     6,     7,    -1,
-    -1,    -1,    -1,    12,    13,    14,    79,    80,    -1,    -1,
-    83,    29,     3,    31,    -1,    33,    34,     8,     9,    28,
-    11,    30,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
-    48,    49,    50,    -1,    -1,    -1,    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,    83,    -1,     3,    59,    -1,
-    -1,    -1,     8,     9,    -1,    11,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    79,    80,
-    -1,    -1,    83,    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,    -1,    31,    59,    33,    34,    -1,     4,    -1,     6,
-     7,    40,    -1,    -1,    43,    12,    13,    14,    -1,    48,
-    49,    50,    -1,    79,    80,    54,    55,    83,    -1,     3,
-    59,    28,    -1,    -1,     8,     9,    -1,    11,    42,    43,
-    44,    45,    46,    47,    48,    49,    50,    51,    52,    -1,
-    79,    80,    -1,    50,    83,    29,    -1,    31,    -1,    33,
-    34,    10,    59,    60,    -1,    -1,    40,    -1,    -1,    43,
-    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
-    54,    55,    -1,    -1,    -1,    59,    35,    36,    37,    38,
-    39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-    49,    50,    51,    52,    -1,    79,    80,    -1,    -1,    83,
-     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,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    48,    49,    50,    30,    -1,
-    -1,    54,    55,    35,    36,    37,    59,    39,    40,    41,
-    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-    52,    -1,    -1,    -1,    77,    -1,    79,    80,    -1,    82,
-     3,     4,    -1,    -1,    -1,     8,     9,    -1,    11,    -1,
-    -1,    -1,    15,    -1,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,
-    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
-    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
-    -1,    54,    55,    -1,     3,    -1,    59,    -1,    -1,     8,
-     9,    -1,    11,    43,    44,    45,    46,    47,    48,    49,
-    50,    51,    52,    -1,    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,    -1,    -1,    -1,    -1,    12,    13,
-    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,
-    -1,    -1,    -1,    27,    28,    -1,    30,    31,    37,    -1,
-    39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-    49,    50,    51,    52,    -1,    10,    50,    -1,    -1,    -1,
-    -1,    -1,    35,    36,    37,    59,    39,    40,    41,    42,
-    43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-    35,    36,    37,    77,    39,    40,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,    36,    37,
-    83,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-    48,    49,    50,    51,    52,    -1,    -1,    -1,    83,    35,
-    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    40,    41,    42,
-    43,    44,    45,    46,    47,    48,    49,    50,    51,    52
+    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,    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,    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,    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/local/gnu/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.
@@ -1214,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
@@ -1263,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
@@ -1345,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++ */
@@ -1362,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;
@@ -1377,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)
@@ -1390,7 +1488,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/local/gnu/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 *.
@@ -1411,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
@@ -1439,6 +1546,7 @@ yyparse(YYPARSE_PARAM_ARG)
 #endif
 
   int yystacksize = YYINITDEPTH;
+  int yyfree_stacks = 0;
 
 #ifdef YYPURE
   int yychar;
@@ -1523,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 */
 
@@ -1695,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.  */
@@ -1712,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)
@@ -1730,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)
@@ -1742,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"
@@ -1775,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;}
@@ -1788,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 `&&'");
@@ -1924,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)))
@@ -1932,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 && ! flag_isoc9x)
+                 if (pedantic && ! flag_isoc99)
                    pedwarn ("ANSI C forbids constructor expressions");
                  if (TYPE_NAME (type) != 0)
                    {
@@ -1992,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)
@@ -2000,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.  */
@@ -2092,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)
@@ -2208,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");
@@ -2266,802 +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 196:
-#line 1115 "c-parse.y"
+case 197:
+#line 1103 "c-parse.y"
 { set_init_label (yyvsp[-1].ttype); ;
     break;}
-case 199:
-#line 1122 "c-parse.y"
+case 200:
+#line 1110 "c-parse.y"
 { push_init_level (0); ;
     break;}
-case 200:
-#line 1124 "c-parse.y"
+case 201:
+#line 1112 "c-parse.y"
 { process_init_element (pop_init_level (0)); ;
     break;}
-case 201:
-#line 1126 "c-parse.y"
+case 202:
+#line 1114 "c-parse.y"
 { process_init_element (yyvsp[0].ttype); ;
     break;}
-case 205:
-#line 1137 "c-parse.y"
+case 206:
+#line 1125 "c-parse.y"
 { set_init_label (yyvsp[0].ttype); ;
     break;}
-case 206:
-#line 1142 "c-parse.y"
+case 207:
+#line 1130 "c-parse.y"
 { set_init_index (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 207:
-#line 1144 "c-parse.y"
+case 208:
+#line 1132 "c-parse.y"
 { set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
     break;}
-case 208:
-#line 1149 "c-parse.y"
-{ push_c_function_context ();
+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 1158 "c-parse.y"
+case 210:
+#line 1149 "c-parse.y"
 { store_parm_decls (); ;
     break;}
-case 210:
-#line 1166 "c-parse.y"
+case 211:
+#line 1157 "c-parse.y"
 { finish_function (1);
-                 pop_c_function_context (); ;
+                 pop_function_context (); ;
     break;}
-case 211:
-#line 1172 "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 1181 "c-parse.y"
+case 213:
+#line 1175 "c-parse.y"
 { store_parm_decls (); ;
     break;}
-case 213:
-#line 1189 "c-parse.y"
+case 214:
+#line 1183 "c-parse.y"
 { finish_function (1);
-                 pop_c_function_context (); ;
+                 pop_function_context (); ;
     break;}
-case 216:
-#line 1205 "c-parse.y"
+case 217:
+#line 1199 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
-case 217:
-#line 1207 "c-parse.y"
+case 218:
+#line 1201 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 218:
-#line 1212 "c-parse.y"
+case 219:
+#line 1206 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 219:
-#line 1214 "c-parse.y"
+case 220:
+#line 1208 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
-case 220:
-#line 1216 "c-parse.y"
+case 221:
+#line 1210 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 221:
-#line 1223 "c-parse.y"
+case 222:
+#line 1217 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 223:
-#line 1234 "c-parse.y"
+case 224:
+#line 1228 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 224:
-#line 1239 "c-parse.y"
+case 225:
+#line 1233 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE);
-                 if (! flag_isoc9x)
-                   error ("`[*]' in parameter declaration only allowed in ISO C 9x");
+                 if (! flag_isoc99)
+                   error ("`[*]' in parameter declaration only allowed in ISO C 99");
                ;
     break;}
-case 225:
-#line 1244 "c-parse.y"
+case 226:
+#line 1238 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 226:
-#line 1246 "c-parse.y"
+case 227:
+#line 1240 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
-case 227:
-#line 1248 "c-parse.y"
+case 228:
+#line 1242 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 228:
-#line 1255 "c-parse.y"
+case 229:
+#line 1249 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 230:
-#line 1264 "c-parse.y"
+case 231:
+#line 1258 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 231:
-#line 1269 "c-parse.y"
+case 232:
+#line 1263 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
-case 232:
-#line 1271 "c-parse.y"
+case 233:
+#line 1265 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 233:
-#line 1273 "c-parse.y"
+case 234:
+#line 1267 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, NULL_TREE);
-                 if (! flag_isoc9x)
-                   error ("`[*]' in parameter declaration only allowed in ISO C 9x");
+                 if (! flag_isoc99)
+                   error ("`[*]' in parameter declaration only allowed in ISO C 99");
                ;
     break;}
-case 234:
-#line 1278 "c-parse.y"
+case 235:
+#line 1272 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 235:
-#line 1280 "c-parse.y"
+case 236:
+#line 1274 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
-case 236:
-#line 1287 "c-parse.y"
+case 237:
+#line 1281 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 238:
-#line 1293 "c-parse.y"
+case 239:
+#line 1287 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 239:
-#line 1295 "c-parse.y"
+case 240:
+#line 1289 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 240:
-#line 1300 "c-parse.y"
+case 241:
+#line 1294 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 241:
-#line 1302 "c-parse.y"
+case 242:
+#line 1296 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 242:
-#line 1307 "c-parse.y"
+case 243:
+#line 1301 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 243:
-#line 1309 "c-parse.y"
+case 244:
+#line 1303 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 244:
-#line 1314 "c-parse.y"
+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 245:
-#line 1318 "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 246:
-#line 1320 "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 247:
-#line 1324 "c-parse.y"
+case 248:
+#line 1318 "c-parse.y"
 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
     break;}
-case 248:
-#line 1326 "c-parse.y"
+case 249:
+#line 1320 "c-parse.y"
 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
     break;}
-case 249:
-#line 1328 "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 250:
-#line 1330 "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 251:
-#line 1334 "c-parse.y"
-{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
-    break;}
 case 252:
-#line 1336 "c-parse.y"
-{ yyvsp[0].itype = suspend_momentary ();
-                 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
+#line 1328 "c-parse.y"
+{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
     break;}
 case 253:
-#line 1339 "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); ;
+#line 1330 "c-parse.y"
+{ yyval.ttype = start_enum (yyvsp[-1].ttype); ;
     break;}
 case 254:
-#line 1342 "c-parse.y"
-{ yyvsp[0].itype = suspend_momentary ();
-                 yyval.ttype = start_enum (NULL_TREE); ;
+#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 255:
-#line 1345 "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); ;
+#line 1335 "c-parse.y"
+{ yyval.ttype = start_enum (NULL_TREE); ;
     break;}
 case 256:
-#line 1348 "c-parse.y"
+#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 257:
+#line 1340 "c-parse.y"
 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
     break;}
-case 260:
-#line 1359 "c-parse.y"
-{ if (pedantic && ! flag_isoc9x)
+case 261:
+#line 1351 "c-parse.y"
+{ if (pedantic && ! flag_isoc99)
                    pedwarn ("comma at end of enumerator list"); ;
     break;}
-case 261:
-#line 1365 "c-parse.y"
+case 262:
+#line 1357 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 262:
-#line 1367 "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 263:
-#line 1372 "c-parse.y"
+case 264:
+#line 1364 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 264:
-#line 1374 "c-parse.y"
+case 265:
+#line 1366 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
     break;}
-case 265:
-#line 1376 "c-parse.y"
+case 266:
+#line 1368 "c-parse.y"
 { if (pedantic)
                    pedwarn ("extra semicolon in struct or union specified"); ;
     break;}
-case 266:
-#line 1391 "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); ;
-    break;}
-case 267:
-#line 1397 "c-parse.y"
-{ if (pedantic)
-                   pedwarn ("ANSI C forbids member declarations with no members");
-                 shadow_tag(yyvsp[0].ttype);
-                 yyval.ttype = NULL_TREE; ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 268:
-#line 1402 "c-parse.y"
-{ yyval.ttype = yyvsp[0].ttype;
+#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);
-                 resume_momentary (yyvsp[-1].itype); ;
+               ;
     break;}
 case 269:
-#line 1408 "c-parse.y"
+#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); ;
+    break;}
+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 270:
-#line 1413 "c-parse.y"
+case 271:
+#line 1411 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 271:
-#line 1415 "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 273:
-#line 1422 "c-parse.y"
+case 274:
+#line 1420 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 274:
-#line 1427 "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 275:
-#line 1431 "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 276:
-#line 1434 "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 278:
-#line 1446 "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 279:
-#line 1451 "c-parse.y"
-{ yyval.ttype = error_mark_node; ;
-    break;}
 case 280:
-#line 1457 "c-parse.y"
-{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
+#line 1449 "c-parse.y"
+{ yyval.ttype = error_mark_node; ;
     break;}
 case 281:
-#line 1459 "c-parse.y"
-{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
+#line 1455 "c-parse.y"
+{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 282:
-#line 1464 "c-parse.y"
-{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+#line 1457 "c-parse.y"
+{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 283:
-#line 1466 "c-parse.y"
+#line 1462 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 284:
-#line 1471 "c-parse.y"
+#line 1464 "c-parse.y"
+{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+    break;}
+case 285:
+#line 1469 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 286:
-#line 1477 "c-parse.y"
+case 287:
+#line 1475 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 287:
-#line 1479 "c-parse.y"
+case 288:
+#line 1477 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 288:
-#line 1484 "c-parse.y"
+case 289:
+#line 1482 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 289:
-#line 1486 "c-parse.y"
+case 290:
+#line 1484 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 290:
-#line 1491 "c-parse.y"
+case 291:
+#line 1489 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
-case 291:
-#line 1494 "c-parse.y"
+case 292:
+#line 1492 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 292:
-#line 1496 "c-parse.y"
+case 293:
+#line 1494 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 293:
-#line 1498 "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 294:
-#line 1500 "c-parse.y"
+case 295:
+#line 1498 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 295:
-#line 1502 "c-parse.y"
+case 296:
+#line 1500 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
-case 296:
-#line 1504 "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 297:
-#line 1506 "c-parse.y"
+case 298:
+#line 1504 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 298:
-#line 1508 "c-parse.y"
+case 299:
+#line 1506 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
     break;}
-case 299:
+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 301:
+case 303:
 #line 1528 "c-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
-case 302:
+case 304:
 #line 1530 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 306:
+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 308:
-#line 1555 "c-parse.y"
+case 310:
+#line 1554 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids label declarations"); ;
     break;}
-case 311:
-#line 1566 "c-parse.y"
+case 313:
+#line 1565 "c-parse.y"
 { tree link;
                  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
                    {
@@ -3071,50 +3194,60 @@ case 311:
                    }
                ;
     break;}
-case 312:
-#line 1580 "c-parse.y"
+case 314:
+#line 1579 "c-parse.y"
 {;
     break;}
-case 314:
-#line 1584 "c-parse.y"
+case 316:
+#line 1583 "c-parse.y"
 { compstmt_count++; ;
     break;}
-case 315:
-#line 1587 "c-parse.y"
+case 317:
+#line 1586 "c-parse.y"
 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
     break;}
-case 316:
-#line 1589 "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 317:
-#line 1597 "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 318:
-#line 1605 "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 321:
-#line 1625 "c-parse.y"
+#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);
@@ -3123,8 +3256,8 @@ case 321:
                  if_stmt_line = yyvsp[-4].lineno;
                  position_after_white_space (); ;
     break;}
-case 322:
-#line 1639 "c-parse.y"
+case 326:
+#line 1648 "c-parse.y"
 { stmt_count++;
                  compstmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
@@ -3133,44 +3266,44 @@ case 322:
                  expand_start_loop_continue_elsewhere (1);
                  position_after_white_space (); ;
     break;}
-case 323:
-#line 1647 "c-parse.y"
+case 327:
+#line 1656 "c-parse.y"
 { expand_loop_continue_here (); ;
     break;}
-case 324:
-#line 1651 "c-parse.y"
+case 328:
+#line 1660 "c-parse.y"
 { yyval.filename = input_filename; ;
     break;}
-case 325:
-#line 1655 "c-parse.y"
+case 329:
+#line 1664 "c-parse.y"
 { yyval.lineno = lineno; ;
     break;}
-case 326:
-#line 1660 "c-parse.y"
+case 330:
+#line 1669 "c-parse.y"
 { ;
     break;}
-case 327:
-#line 1665 "c-parse.y"
+case 331:
+#line 1674 "c-parse.y"
 { ;
     break;}
-case 328:
-#line 1670 "c-parse.y"
+case 332:
+#line 1679 "c-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
-case 329:
-#line 1675 "c-parse.y"
+case 333:
+#line 1684 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 330:
-#line 1677 "c-parse.y"
+case 334:
+#line 1686 "c-parse.y"
 { yyval.ends_in_label = 1; ;
     break;}
-case 331:
-#line 1683 "c-parse.y"
+case 335:
+#line 1692 "c-parse.y"
 { stmt_count++; ;
     break;}
-case 333:
-#line 1686 "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
@@ -3185,23 +3318,22 @@ case 333:
                      || 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 334:
-#line 1703 "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 335:
-#line 1707 "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 336:
-#line 1711 "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
@@ -3211,12 +3343,12 @@ case 336:
                    warning_with_file_and_line (if_stmt_file, if_stmt_line,
                                                "empty body in an if-statement"); ;
     break;}
-case 337:
-#line 1723 "c-parse.y"
+case 341:
+#line 1731 "c-parse.y"
 { c_expand_end_cond (); ;
     break;}
-case 338:
-#line 1725 "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,
@@ -3227,8 +3359,8 @@ case 338:
                     We will see.  --rms, July 15, 1991.  */
                  emit_nop (); ;
     break;}
-case 339:
-#line 1735 "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.  */
@@ -3238,25 +3370,23 @@ case 339:
                                             truthvalue_conversion (yyvsp[-1].ttype));
                  position_after_white_space (); ;
     break;}
-case 340:
-#line 1744 "c-parse.y"
+case 344:
+#line 1752 "c-parse.y"
 { expand_end_loop (); ;
     break;}
-case 341:
-#line 1747 "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 342:
-#line 1754 "c-parse.y"
-{ expand_end_loop ();
-                 clear_momentary (); ;
+case 346:
+#line 1761 "c-parse.y"
+{ expand_end_loop (); ;
     break;}
-case 343:
-#line 1758 "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.  */
@@ -3268,13 +3398,13 @@ case 343:
                     fn without calling expand_end_loop.  */
                ;
     break;}
-case 344:
-#line 1770 "c-parse.y"
+case 348:
+#line 1776 "c-parse.y"
 { yyvsp[0].lineno = lineno;
                  yyval.filename = input_filename; ;
     break;}
-case 345:
-#line 1773 "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.  */
@@ -3284,72 +3414,58 @@ case 345:
                  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 346:
-#line 1789 "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 347:
-#line 1800 "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 348:
-#line 1808 "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 349:
-#line 1814 "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 350:
-#line 1819 "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 351:
-#line 1824 "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 352:
-#line 1828 "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 353:
-#line 1832 "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);
@@ -3360,32 +3476,32 @@ case 353:
                  else
                    error ("argument of `asm' is not a constant string"); ;
     break;}
-case 354:
-#line 1843 "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 355:
-#line 1850 "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 356:
-#line 1858 "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 357:
-#line 1864 "c-parse.y"
+case 361:
+#line 1856 "c-parse.y"
 { tree decl;
                  stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -3397,16 +3513,16 @@ case 357:
                    }
                ;
     break;}
-case 358:
-#line 1875 "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 361:
-#line 1890 "c-parse.y"
+case 365:
+#line 1882 "c-parse.y"
 {
            /* The value returned by this action is  */
            /*      1 if everything is OK */ 
@@ -3428,15 +3544,15 @@ case 361:
              }
          ;
     break;}
-case 362:
-#line 1911 "c-parse.y"
+case 366:
+#line 1903 "c-parse.y"
 {
            if (yyvsp[-1].itype)
              iterator_for_loop_end (yyvsp[-3].ttype);
          ;
     break;}
-case 363:
-#line 1946 "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);
@@ -3468,8 +3584,8 @@ case 363:
                    }
                  position_after_white_space (); ;
     break;}
-case 364:
-#line 1977 "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
@@ -3501,8 +3617,8 @@ case 364:
                    }
                  position_after_white_space (); ;
     break;}
-case 365:
-#line 2008 "c-parse.y"
+case 369:
+#line 1996 "c-parse.y"
 {
                  tree duplicate;
                  register tree label
@@ -3518,8 +3634,8 @@ case 365:
                    }
                  position_after_white_space (); ;
     break;}
-case 366:
-#line 2023 "c-parse.y"
+case 370:
+#line 2011 "c-parse.y"
 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
                  stmt_count++;
                  emit_nop ();
@@ -3530,53 +3646,53 @@ case 366:
                    }
                  position_after_white_space (); ;
     break;}
-case 367:
-#line 2038 "c-parse.y"
+case 371:
+#line 2026 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 368:
-#line 2041 "c-parse.y"
+case 372:
+#line 2029 "c-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
-case 369:
-#line 2046 "c-parse.y"
+case 373:
+#line 2034 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 371:
-#line 2053 "c-parse.y"
+case 375:
+#line 2041 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 374:
-#line 2060 "c-parse.y"
+case 378:
+#line 2048 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 375:
-#line 2065 "c-parse.y"
+case 379:
+#line 2053 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 376:
-#line 2070 "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 377:
-#line 2072 "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 378:
-#line 2078 "c-parse.y"
+case 382:
+#line 2066 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (0); ;
     break;}
-case 379:
-#line 2082 "c-parse.y"
+case 383:
+#line 2070 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 381:
-#line 2090 "c-parse.y"
+case 385:
+#line 2078 "c-parse.y"
 { tree parm;
                  if (pedantic)
                    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -3585,20 +3701,20 @@ case 381:
                    TREE_ASM_WRITTEN (parm) = 1;
                  clear_parm_order (); ;
     break;}
-case 382:
-#line 2098 "c-parse.y"
+case 386:
+#line 2086 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 383:
-#line 2100 "c-parse.y"
+case 387:
+#line 2088 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
-case 384:
-#line 2106 "c-parse.y"
+case 388:
+#line 2094 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
-case 385:
-#line 2108 "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.
@@ -3609,121 +3725,117 @@ case 385:
                  error ("ANSI C requires a named argument before `...'");
                ;
     break;}
-case 386:
-#line 2118 "c-parse.y"
+case 390:
+#line 2106 "c-parse.y"
 { yyval.ttype = get_parm_info (1); ;
     break;}
-case 387:
-#line 2120 "c-parse.y"
+case 391:
+#line 2108 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
-case 388:
-#line 2125 "c-parse.y"
+case 392:
+#line 2113 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 389:
-#line 2127 "c-parse.y"
+case 393:
+#line 2115 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 390:
-#line 2134 "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 391:
-#line 2143 "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 392:
-#line 2152 "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 393:
-#line 2161 "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 394:
-#line 2171 "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 395:
-#line 2185 "c-parse.y"
+case 399:
+#line 2168 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (1); ;
     break;}
-case 396:
-#line 2189 "c-parse.y"
+case 400:
+#line 2172 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 398:
-#line 2197 "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 399:
-#line 2207 "c-parse.y"
+case 403:
+#line 2190 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 400:
-#line 2209 "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 401:
-#line 2215 "c-parse.y"
+case 405:
+#line 2198 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 402:
-#line 2217 "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 403:
-#line 2222 "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/local/gnu/share/bison.simple"
+#line 543 "/usr/lib/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -3918,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 2226 "c-parse.y"
+#line 2210 "c-parse.y"