OSDN Git Service

Word wrap comment
[pf3gnuchains/gcc-fork.git] / gcc / c-parse.c
index 9c98db2..9c71df9 100644 (file)
@@ -1,78 +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        VA_ARG  290
-#define        END_OF_LINE     291
-#define        ASSIGN  292
-#define        OROR    293
-#define        ANDAND  294
-#define        EQCOMPARE       295
-#define        ARITHCOMPARE    296
-#define        LSHIFT  297
-#define        RSHIFT  298
-#define        UNARY   299
-#define        PLUSPLUS        300
-#define        MINUSMINUS      301
-#define        HYPERUNARY      302
-#define        POINTSAT        303
-#define        INTERFACE       304
-#define        IMPLEMENTATION  305
-#define        END     306
-#define        SELECTOR        307
-#define        DEFS    308
-#define        ENCODE  309
-#define        CLASSNAME       310
-#define        PUBLIC  311
-#define        PRIVATE 312
-#define        PROTECTED       313
-#define        PROTOCOL        314
-#define        OBJECTNAME      315
-#define        CLASS   316
-#define        ALIAS   317
-#define        OBJC_STRING     318
-
-#line 33 "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"
@@ -100,7 +101,7 @@ const char * const language_string = "GNU C";
 #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 185 "c-parse.y"
+#line 186 "c-parse.y"
 
 /* Number of statements (loosely speaking) and compound statements 
    seen so far.  */
@@ -122,11 +123,22 @@ 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
@@ -147,26 +159,26 @@ c_parse_init ()
 
 
 
-#define        YYFINAL         702
+#define        YYFINAL         706
 #define        YYFLAG          -32768
-#define        YYNTBASE        86
+#define        YYNTBASE        89
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 318 ? yytranslate[x] : 244)
+#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,    82,     2,     2,     2,    54,    45,     2,    61,
-    78,    52,    50,    83,    51,    60,    53,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,    40,    79,     2,
-    38,     2,    39,     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,
-    62,     2,    85,    44,     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,    84,    43,    80,    81,     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,
@@ -179,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,
-    36,    37,    41,    42,    46,    47,    48,    49,    55,    56,
-    57,    58,    59,    63,    64,    65,    66,    67,    68,    69,
-    70,    71,    72,    73,    74,    75,    76,    77
+     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
@@ -216,202 +228,202 @@ static const short yyprhs[] = {     0,
    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,   848,   852,
-   854,   856,   859,   861,   865,   870,   877,   883,   885,   889,
-   891,   893,   897,   900,   903,   904,   906,   908,   911,   912,
-   915,   919,   923,   926,   930,   935,   939,   942,   946,   949,
-   953,   955,   957,   960,   963,   964,   966,   969,   970,   971,
-   973,   975,   978,   982,   984,   987,   989,   991,   997,  1002,
-  1007,  1010,  1013,  1016,  1019,  1024,  1025,  1030,  1031,  1032,
-  1036,  1041,  1045,  1047,  1049,  1051,  1053,  1056,  1057,  1062,
-  1064,  1068,  1069,  1070,  1078,  1084,  1087,  1088,  1089,  1090,
-  1103,  1104,  1111,  1114,  1117,  1120,  1124,  1131,  1140,  1151,
-  1164,  1168,  1173,  1175,  1177,  1178,  1185,  1189,  1195,  1198,
-  1202,  1203,  1205,  1206,  1208,  1209,  1211,  1213,  1217,  1222,
-  1224,  1228,  1229,  1232,  1235,  1236,  1241,  1244,  1245,  1247,
-  1249,  1253,  1255,  1259,  1264,  1269,  1274,  1279,  1284,  1285,
-  1288,  1290,  1293,  1295,  1299,  1301,  1305
+   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,
-    87,     0,     0,    88,    90,     0,     0,    87,    89,    90,
-     0,    92,     0,    91,     0,    27,    61,   101,    78,    79,
-     0,   243,    90,     0,   123,   137,    79,     0,   130,   123,
-   137,    79,     0,   126,   123,   136,    79,     0,   130,    79,
-     0,   126,    79,     0,     1,    79,     0,     1,    80,     0,
-    79,     0,     0,     0,   126,   123,   165,    93,   117,    94,
-   199,     0,   126,   123,   165,     1,     0,     0,     0,   130,
-   123,   168,    95,   117,    96,   199,     0,   130,   123,   168,
-     1,     0,     0,     0,   123,   168,    97,   117,    98,   199,
-     0,   123,   168,     1,     0,     3,     0,     4,     0,    45,
-     0,    51,     0,    50,     0,    56,     0,    57,     0,    81,
-     0,    82,     0,   103,     0,     0,   103,     0,   109,     0,
-   103,    83,   109,     0,   115,     0,    52,   107,     0,   243,
-   107,     0,   100,   107,     0,    42,    99,     0,   105,   104,
-     0,   105,    61,   186,    78,     0,   106,   104,     0,   106,
-    61,   186,    78,     0,    33,   107,     0,    34,   107,     0,
-    35,    61,   109,    83,   186,    78,     0,    11,     0,    29,
-     0,   104,     0,    61,   186,    78,   107,     0,     0,    61,
-   186,    78,    84,   108,   151,    80,     0,   107,     0,   109,
-    50,   109,     0,   109,    51,   109,     0,   109,    52,   109,
-     0,   109,    53,   109,     0,   109,    54,   109,     0,   109,
-    48,   109,     0,   109,    49,   109,     0,   109,    47,   109,
-     0,   109,    46,   109,     0,   109,    45,   109,     0,   109,
-    43,   109,     0,   109,    44,   109,     0,     0,   109,    42,
-   110,   109,     0,     0,   109,    41,   111,   109,     0,     0,
-     0,   109,    39,   112,   101,    40,   113,   109,     0,     0,
-   109,    39,   114,    40,   109,     0,   109,    38,   109,     0,
-   109,    37,   109,     0,     3,     0,     8,     0,   116,     0,
-    61,   101,    78,     0,    61,     1,    78,     0,   202,   201,
-    78,     0,   202,     1,    78,     0,   115,    61,   102,    78,
-     0,   115,    62,   101,    85,     0,   115,    60,    99,     0,
-   115,    59,    99,     0,   115,    56,     0,   115,    57,     0,
-     9,     0,   116,     9,     0,     0,   119,     0,   119,    10,
-     0,   208,   209,   120,     0,   118,     0,   194,     0,   119,
-   118,     0,   118,   194,     0,   128,   123,   136,    79,     0,
-   131,   123,   137,    79,     0,   128,    79,     0,   131,    79,
-     0,   208,   209,   125,     0,   121,     0,   194,     0,   122,
-   121,     0,   121,   194,     0,     0,     0,   126,   123,   136,
-    79,     0,   130,   123,   137,    79,     0,   126,   123,   159,
-     0,   130,   123,   162,     0,   126,    79,     0,   130,    79,
-     0,   243,   125,     0,   134,   127,     0,   130,   134,   127,
-     0,     0,   127,   135,     0,   127,     5,     0,   127,   144,
-     0,   134,   129,     0,   131,   134,   129,     0,     0,   129,
-   135,     0,   129,     5,     0,   131,     0,   144,     0,   130,
-   131,     0,   130,   144,     0,     7,     0,     5,     0,   131,
-     7,     0,   131,     5,     0,   134,   133,     0,   188,   134,
-   133,     0,     0,   133,   135,     0,     6,     0,   172,     0,
-     4,     0,    28,    61,   101,    78,     0,    28,    61,   186,
-    78,     0,     6,     0,     7,     0,   172,     0,   139,     0,
-   136,    83,   139,     0,   141,     0,   137,    83,   139,     0,
-     0,    27,    61,   116,    78,     0,     0,   165,   138,   143,
-    38,   140,   149,     0,   165,   138,   143,     0,     0,   168,
-   138,   143,    38,   142,   149,     0,   168,   138,   143,     0,
-     0,   144,     0,   145,     0,   144,   145,     0,    30,    61,
-    61,   146,    78,    78,     0,   147,     0,   146,    83,   147,
-     0,     0,   148,     0,   148,    61,     3,    78,     0,   148,
-    61,     3,    83,   103,    78,     0,   148,    61,   102,    78,
-     0,    99,     0,     5,     0,     6,     0,     7,     0,   109,
-     0,     0,    84,   150,   151,    80,     0,     1,     0,     0,
-   152,   177,     0,   153,     0,   152,    83,   153,     0,   157,
-    38,   155,     0,   158,   155,     0,     0,    99,    40,   154,
-   155,     0,   155,     0,     0,    84,   156,   151,    80,     0,
-   109,     0,     1,     0,   158,     0,   157,   158,     0,    60,
-    99,     0,    62,   109,    10,   109,    85,     0,    62,   109,
-    85,     0,     0,     0,   165,   160,   117,   161,   203,     0,
-     0,     0,   168,   163,   117,   164,   203,     0,   166,     0,
-   168,     0,    61,   166,    78,     0,   166,    61,   238,     0,
-   166,    62,   101,    85,     0,   166,    62,    85,     0,    52,
-   189,   166,     0,   144,   124,   166,     0,     4,     0,   167,
-    61,   238,     0,   167,    62,    52,    85,     0,   167,    62,
-   101,    85,     0,   167,    62,    85,     0,    52,   189,   167,
-     0,   144,   124,   167,     0,     4,     0,   168,    61,   238,
-     0,    61,   168,    78,     0,    52,   189,   168,     0,   168,
-    62,    52,    85,     0,   168,    62,   101,    85,     0,   168,
-    62,    85,     0,   144,   124,   168,     0,     3,     0,    13,
-     0,    13,   144,     0,    14,     0,    14,   144,     0,    12,
-     0,    12,   144,     0,     0,   169,    99,    84,   173,   179,
-    80,   143,     0,   169,    84,   179,    80,   143,     0,   169,
-    99,     0,     0,   170,    99,    84,   174,   179,    80,   143,
-     0,   170,    84,   179,    80,   143,     0,   170,    99,     0,
-     0,   171,    99,    84,   175,   184,   178,    80,   143,     0,
-     0,   171,    84,   176,   184,   178,    80,   143,     0,   171,
-    99,     0,     0,    83,     0,     0,    83,     0,   180,     0,
-   180,   181,     0,     0,   180,   181,    79,     0,   180,    79,
-     0,   132,   123,   182,     0,   132,     0,   188,   123,   182,
-     0,   188,     0,     1,     0,   243,   181,     0,   183,     0,
-   182,    83,   183,     0,   208,   209,   165,   143,     0,   208,
-   209,   165,    40,   109,   143,     0,   208,   209,    40,   109,
-   143,     0,   185,     0,   184,    83,   185,     0,     1,     0,
-    99,     0,    99,    38,   109,     0,   132,   187,     0,   188,
-   187,     0,     0,   190,     0,     7,     0,   188,     7,     0,
-     0,   189,     7,     0,    61,   190,    78,     0,    52,   189,
-   190,     0,    52,   189,     0,   190,    61,   231,     0,   190,
-    62,   101,    85,     0,   190,    62,    85,     0,    61,   231,
-     0,    62,   101,    85,     0,    62,    85,     0,   144,   124,
-   190,     0,   192,     0,   211,     0,   192,   211,     0,   192,
-   194,     0,     0,   191,     0,     1,    79,     0,     0,     0,
-   197,     0,   198,     0,   197,   198,     0,    32,   242,    79,
-     0,   203,     0,     1,   203,     0,    84,     0,    80,     0,
-   195,   196,   122,   193,    80,     0,   195,   196,     1,    80,
-     0,   195,   196,   191,    80,     0,    61,    84,     0,   200,
-   201,     0,   205,   210,     0,   205,     1,     0,    15,    61,
-   101,    78,     0,     0,    18,   207,   210,    17,     0,     0,
-     0,   208,   209,   213,     0,   208,   209,   224,   210,     0,
-   208,   209,   212,     0,   213,     0,   224,     0,   203,     0,
-   221,     0,   101,    79,     0,     0,   204,    16,   214,   210,
-     0,   204,     0,   204,    16,     1,     0,     0,     0,    17,
-   215,    61,   101,    78,   216,   210,     0,   206,    61,   101,
-    78,    79,     0,   206,     1,     0,     0,     0,     0,    19,
-    61,   226,    79,   217,   226,    79,   218,   226,    78,   219,
-   210,     0,     0,    20,    61,   101,    78,   220,   210,     0,
-    23,    79,     0,    24,    79,     0,    25,    79,     0,    25,
-   101,    79,     0,    27,   225,    61,   101,    78,    79,     0,
-    27,   225,    61,   101,    40,   227,    78,    79,     0,    27,
-   225,    61,   101,    40,   227,    40,   227,    78,    79,     0,
-    27,   225,    61,   101,    40,   227,    40,   227,    40,   230,
-    78,    79,     0,    26,    99,    79,     0,    26,    52,   101,
-    79,     0,    79,     0,   222,     0,     0,    19,    61,   115,
-    78,   223,   210,     0,    21,   109,    40,     0,    21,   109,
-    10,   109,    40,     0,    22,    40,     0,    99,    40,   143,
-     0,     0,     7,     0,     0,   101,     0,     0,   228,     0,
-   229,     0,   228,    83,   229,     0,     9,    61,   101,    78,
-     0,   116,     0,   230,    83,   116,     0,     0,   232,   233,
-     0,   235,    78,     0,     0,   236,    79,   234,   233,     0,
-     1,    78,     0,     0,    10,     0,   236,     0,   236,    83,
-    10,     0,   237,     0,   236,    83,   237,     0,   126,   123,
-   167,   143,     0,   126,   123,   168,   143,     0,   126,   123,
-   187,   143,     0,   130,   123,   168,   143,     0,   130,   123,
-   187,   143,     0,     0,   239,   240,     0,   233,     0,   241,
-    78,     0,     3,     0,   241,    83,     3,     0,    99,     0,
-   242,    83,    99,     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,
-   224,   229,   243,   245,   245,   246,   248,   250,   251,   259,
-   263,   274,   279,   284,   286,   288,   289,   290,   295,   302,
-   304,   309,   314,   320,   322,   327,   332,   338,   340,   345,
-   352,   354,   357,   359,   361,   363,   365,   367,   369,   373,
-   377,   380,   383,   386,   390,   392,   395,   398,   402,   430,
-   436,   439,   442,   445,   447,   449,   453,   457,   461,   463,
-   466,   470,   497,   499,   501,   503,   505,   507,   509,   511,
-   513,   515,   517,   519,   521,   523,   527,   529,   533,   535,
-   538,   542,   544,   551,   554,   562,   573,   672,   673,   675,
-   681,   683,   706,   715,   717,   719,   723,   729,   731,   736,
-   738,   743,   745,   746,   756,   761,   763,   764,   765,   772,
-   778,   783,   786,   794,   799,   801,   802,   803,   810,   821,
-   825,   831,   836,   841,   846,   848,   850,   859,   862,   866,
-   868,   870,   875,   879,   882,   886,   889,   891,   903,   906,
-   908,   910,   914,   918,   920,   923,   936,   939,   943,   945,
-   953,   954,   955,   959,   961,   967,   968,   969,   972,   974,
-   977,   979,   982,   985,   991,   998,  1000,  1007,  1014,  1017,
-  1024,  1027,  1031,  1034,  1038,  1043,  1046,  1050,  1053,  1055,
-  1057,  1059,  1066,  1068,  1069,  1070,  1075,  1077,  1082,  1090,
-  1095,  1099,  1102,  1104,  1109,  1111,  1112,  1115,  1115,  1118,
-  1121,  1123,  1125,  1128,  1130,  1133,  1139,  1141,  1145,  1159,
-  1167,  1171,  1185,  1193,  1200,  1202,  1207,  1210,  1215,  1217,
-  1219,  1226,  1228,  1236,  1242,  1247,  1249,  1251,  1258,  1260,
-  1266,  1272,  1274,  1276,  1281,  1283,  1290,  1292,  1295,  1298,
-  1302,  1305,  1309,  1312,  1316,  1321,  1323,  1327,  1329,  1331,
-  1333,  1337,  1339,  1342,  1345,  1348,  1351,  1355,  1357,  1360,
-  1362,  1367,  1370,  1375,  1377,  1379,  1393,  1400,  1405,  1411,
-  1416,  1418,  1423,  1425,  1429,  1433,  1437,  1447,  1449,  1454,
-  1459,  1462,  1466,  1469,  1473,  1476,  1479,  1482,  1486,  1489,
-  1493,  1497,  1499,  1501,  1503,  1505,  1507,  1509,  1511,  1515,
-  1523,  1531,  1533,  1535,  1539,  1541,  1544,  1547,  1558,  1560,
-  1565,  1567,  1570,  1584,  1587,  1590,  1592,  1594,  1602,  1610,
-  1620,  1638,  1643,  1648,  1651,  1665,  1674,  1678,  1682,  1686,
-  1692,  1696,  1701,  1704,  1709,  1712,  1713,  1730,  1735,  1738,
-  1750,  1752,  1762,  1772,  1773,  1781,  1784,  1796,  1800,  1817,
-  1827,  1836,  1841,  1846,  1851,  1855,  1859,  1870,  1877,  1884,
-  1891,  1902,  1908,  1911,  1916,  1939,  1973,  2004,  2035,  2050,
-  2064,  2068,  2072,  2075,  2080,  2082,  2085,  2087,  2091,  2096,
-  2099,  2105,  2110,  2115,  2117,  2126,  2127,  2133,  2135,  2145,
-  2147,  2151,  2154,  2160,  2170,  2179,  2188,  2198,  2212,  2217,
-  2222,  2224,  2233,  2236,  2241,  2244,  2248
+   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
 
@@ -422,17 +434,17 @@ 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","VA_ARG","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",
+"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",
@@ -457,47 +469,47 @@ static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER"
 #endif
 
 static const short yyr1[] = {     0,
-    86,    86,    88,    87,    89,    87,    90,    90,    90,    90,
-    91,    91,    91,    91,    91,    91,    91,    91,    93,    94,
-    92,    92,    95,    96,    92,    92,    97,    98,    92,    92,
-    99,    99,   100,   100,   100,   100,   100,   100,   100,   101,
-   102,   102,   103,   103,   104,   104,   104,   104,   104,   104,
-   104,   104,   104,   104,   104,   104,   105,   106,   107,   107,
-   108,   107,   109,   109,   109,   109,   109,   109,   109,   109,
-   109,   109,   109,   109,   109,   110,   109,   111,   109,   112,
-   113,   109,   114,   109,   109,   109,   115,   115,   115,   115,
-   115,   115,   115,   115,   115,   115,   115,   115,   115,   116,
-   116,   117,   117,   117,   118,   119,   119,   119,   119,   120,
-   120,   120,   120,   121,   122,   122,   122,   122,   123,   124,
-   125,   125,   125,   125,   125,   125,   125,   126,   126,   127,
-   127,   127,   127,   128,   128,   129,   129,   129,   130,   130,
-   130,   130,   131,   131,   131,   131,   132,   132,   133,   133,
-   134,   134,   134,   134,   134,   135,   135,   135,   136,   136,
-   137,   137,   138,   138,   140,   139,   139,   142,   141,   141,
-   143,   143,   144,   144,   145,   146,   146,   147,   147,   147,
-   147,   147,   148,   148,   148,   148,   149,   150,   149,   149,
-   151,   151,   152,   152,   153,   153,   154,   153,   153,   156,
-   155,   155,   155,   157,   157,   158,   158,   158,   160,   161,
-   159,   163,   164,   162,   165,   165,   166,   166,   166,   166,
-   166,   166,   166,   167,   167,   167,   167,   167,   167,   167,
-   168,   168,   168,   168,   168,   168,   168,   168,   169,   169,
-   170,   170,   171,   171,   173,   172,   172,   172,   174,   172,
-   172,   172,   175,   172,   176,   172,   172,   177,   177,   178,
-   178,   179,   179,   180,   180,   180,   181,   181,   181,   181,
-   181,   181,   182,   182,   183,   183,   183,   184,   184,   184,
-   185,   185,   186,   186,   187,   187,   188,   188,   189,   189,
-   190,   190,   190,   190,   190,   190,   190,   190,   190,   190,
-   191,   192,   192,   192,   193,   193,   194,   195,   196,   196,
-   197,   197,   198,   199,   199,   200,   201,   201,   201,   201,
-   202,   203,   204,   204,   205,   207,   206,   208,   209,   210,
-   210,   211,   212,   212,   213,   213,   213,   214,   213,   213,
-   213,   215,   216,   213,   213,   213,   217,   218,   219,   213,
-   220,   213,   213,   213,   213,   213,   213,   213,   213,   213,
-   213,   213,   213,   221,   223,   222,   224,   224,   224,   224,
-   225,   225,   226,   226,   227,   227,   228,   228,   229,   230,
-   230,   232,   231,   233,   234,   233,   233,   235,   235,   235,
-   235,   236,   236,   237,   237,   237,   237,   237,   239,   238,
-   240,   240,   241,   241,   242,   242,   243
+    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,
@@ -527,7 +539,7 @@ static const short yyr2[] = {     0,
      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,     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,
@@ -585,678 +597,685 @@ static const short yydefact[] = {     3,
    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,   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,     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,   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
+   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[] = {   700,
+static const short yydefgoto[] = {   704,
      1,     2,     3,    17,    18,    19,   231,   400,   237,   403,
-   114,   319,   476,    86,   148,   281,    88,    89,    90,    91,
-    92,   415,    93,   266,   265,   263,   484,   264,    94,    95,
-   218,   219,   220,   395,   361,   362,    20,   109,   504,   308,
-    57,   396,   456,   309,    23,   100,   193,    24,   131,   119,
-    44,   115,   120,   462,    45,   399,   223,   224,    26,   202,
-   203,   204,   460,   536,   478,   479,   480,   597,   481,   544,
-   482,   483,   615,   642,   671,   618,   644,   672,   209,   123,
-   438,   124,    27,    28,    29,    30,   245,   247,   252,   139,
-   548,   345,   134,   135,   242,   404,   405,   250,   251,   102,
-   191,   103,   105,   192,   363,   364,   424,   221,   183,   286,
-   287,   288,   392,   393,   184,    96,   394,   508,   509,   510,
-   555,   576,   323,   577,   367,   511,   512,   621,   554,   662,
-   653,   681,   694,   654,   513,   514,   652,   515,   567,   605,
-   667,   668,   669,   692,   292,   293,   310,   445,   311,   312,
+   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[] = {   130,
-   136,  2364,  2364,   105,-32768,-32768,-32768,-32768,   117,   117,
-   117,    22,   103,   137,-32768,-32768,-32768,-32768,-32768,   288,
-   134,   461,   168,-32768,   117,-32768,    48,    86,    95,-32768,
-  2364,-32768,-32768,-32768,   117,   117,   117,  2180,  2090,   139,
--32768,-32768,   288,   127,-32768,   117,  1396,-32768,   245,-32768,
-   288,   168,-32768,   117,-32768,-32768,   559,-32768,-32768,-32768,
--32768,   135,-32768,   144,-32768,   169,-32768,-32768,-32768,-32768,
--32768,-32768,  2180,  2180,   179,   328,-32768,-32768,-32768,  2180,
--32768,-32768,  1133,-32768,-32768,  2180,   185,   188,-32768,  2215,
-  2270,-32768,  2495,  1061,   265,   627,  2180,-32768,   206,   228,
--32768,   209,   978,   689,   350,   215,-32768,   245,   288,-32768,
-   196,-32768,  1496,   855,   117,-32768,-32768,   245,   237,-32768,
-   117,  1488,   367,   386,   273,  1460,   559,-32768,-32768,-32768,
--32768,   117,-32768,   222,   949,-32768,   270,-32768,   438,-32768,
--32768,-32768,  2180,-32768,-32768,   230,-32768,   239,   267,-32768,
-   313,  2180,  1133,-32768,  1133,-32768,  2180,  2180,   321,-32768,
--32768,  2180,  2180,  2180,  2180,  2180,  2180,  2180,  2180,  2180,
-  2180,  2180,  2180,-32768,-32768,   328,   328,  2180,  2180,-32768,
-   286,-32768,   363,   320,-32768,-32768,-32768,   228,  1551,   117,
--32768,   416,   376,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,    35,-32768,   347,-32768,   386,-32768,-32768,   387,   386,
-   443,-32768,  1051,  1589,-32768,   370,   379,-32768,   323,    55,
--32768,-32768,   425,   117,   240,   285,-32768,   245,   245,-32768,
-   855,   117,-32768,  1644,-32768,-32768,   855,   117,-32768,-32768,
-   305,   393,   431,  1919,-32768,   117,-32768,-32768,   452,   410,
--32768,   438,  2430,-32768,-32768,  1975,-32768,  2495,   421,   444,
-  2495,  2495,  2180,   463,  2180,  2180,  2518,   571,  2059,   727,
-  1401,   733,   733,   104,   104,-32768,-32768,-32768,-32768,-32768,
-   446,   188,   432,-32768,   328,   794,   363,-32768,-32768,   351,
-   316,-32768,  1653,-32768,   445,   228,-32768,  1682,-32768,   376,
-   450,   689,  2305,    94,   454,-32768,-32768,-32768,   743,-32768,
-   456,   276,-32768,-32768,   110,-32768,-32768,-32768,    71,-32768,
--32768,-32768,  2188,-32768,   367,-32768,-32768,   367,-32768,   471,
--32768,-32768,   453,-32768,-32768,-32768,-32768,-32768,-32768,   436,
--32768,   457,  2180,   328,   459,   410,   945,-32768,-32768,-32768,
--32768,   509,  2180,  2354,  2507,-32768,-32768,-32768,   296,   401,
-   709,   476,   477,   885,-32768,-32768,-32768,-32768,   416,-32768,
--32768,-32768,   416,-32768,-32768,   482,-32768,-32768,   131,   484,
--32768,-32768,   234,   156,-32768,-32768,   661,-32768,   565,   485,
--32768,-32768,   490,-32768,-32768,   497,  1745,-32768,  1330,    71,
--32768,-32768,    71,   495,-32768,-32768,   495,   117,   117,  2495,
--32768,   117,   499,   502,  1168,-32768,  2241,-32768,   328,-32768,
--32768,-32768,-32768,   501,-32768,-32768,-32768,-32768,  1858,-32768,
--32768,  2180,-32768,-32768,-32768,   156,   117,   253,   282,   117,
--32768,   117,   282,   117,  1653,-32768,-32768,-32768,-32768,-32768,
--32768,   245,-32768,   288,-32768,   420,-32768,-32768,  2495,-32768,
--32768,  1330,-32768,-32768,   248,-32768,-32768,-32768,   117,-32768,
--32768,   543,   328,  2180,-32768,   545,  2495,   506,   504,-32768,
--32768,    83,  1292,  2180,-32768,-32768,  1940,   552,   532,-32768,
--32768,   533,   534,  2180,   558,   521,   535,  2125,    98,   606,
--32768,   587,   550,-32768,   584,   547,-32768,   648,   992,    53,
--32768,-32768,-32768,-32768,-32768,  2034,   138,   220,   234,-32768,
-  1737,-32768,-32768,-32768,   174,   156,-32768,-32768,-32768,   314,
-   326,   121,   420,-32768,-32768,  1168,-32768,-32768,  2180,    64,
--32768,-32768,  2403,  1168,-32768,-32768,  1230,-32768,  1387,-32768,
--32768,  2241,  2180,   609,-32768,  2180,  2180,  1801,-32768,-32768,
--32768,-32768,   597,  2180,   601,-32768,   620,   117,-32768,-32768,
-   245,-32768,   288,  1074,-32768,-32768,-32768,-32768,  2180,-32768,
--32768,   424,   424,-32768,  1775,-32768,   600,-32768,-32768,   602,
-  2455,  2180,-32768,  2180,-32768,   607,  1387,-32768,-32768,   608,
-  2180,   673,-32768,   641,   646,   621,  2180,-32768,-32768,   662,
--32768,  2180,-32768,   337,-32768,   467,   338,-32768,  1143,-32768,
--32768,  1940,   667,-32768,-32768,-32768,-32768,  2455,  2385,-32768,
--32768,-32768,   668,-32768,-32768,-32768,-32768,  2477,-32768,    29,
--32768,   855,-32768,   855,-32768,-32768,-32768,   674,-32768,-32768,
--32768,-32768,  2180,-32768,-32768,   749,   683,-32768,-32768,-32768,
--32768,-32768,-32768,   684,-32768,   691,    31,   681,-32768,-32768,
-   485,   485,-32768,-32768,  2180,   749,   688,   749,-32768,-32768,
-  2180,   690,    33,-32768,-32768,   694,-32768,   443,   715,-32768,
-   265,   178,-32768,-32768,   717,   443,-32768,-32768,   265,   769,
-   804,-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,    54,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   -23,-32768,   -38,   507,  -138,   397,-32768,-32768,
-   -65,-32768,   439,-32768,-32768,-32768,-32768,-32768,   274,  -182,
-  -188,   611,-32768,-32768,   464,-32768,   -10,   -66,   317,    28,
-   779,-32768,   380,    32,    -4,   -77,   638,    25,  -171,  -402,
-   -44,  -112,   -62,-32768,-32768,-32768,   -70,    17,    42,-32768,
-   538,-32768,   375,-32768,  -417,-32768,   294,-32768,  -407,-32768,
--32768,   360,-32768,-32768,-32768,-32768,-32768,-32768,   -46,   -26,
-    -6,   -18,-32768,-32768,-32768,   -41,-32768,-32768,-32768,-32768,
--32768,   503,   -25,-32768,   599,   510,   383,   605,   508,   -22,
-   -80,   -73,   -81,   -95,   491,-32768,-32768,  -149,-32768,-32768,
--32768,   576,  -288,-32768,   465,-32768,  -349,-32768,-32768,-32768,
--32768,   -97,  -322,  -460,   500,-32768,   243,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,   244,-32768,  -571,
-   194,-32768,   193,-32768,   575,-32768,  -248,-32768,-32768,-32768,
-   487,  -209,-32768,-32768,-32768,-32768,    11
+-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          2572
+#define        YYLAST          2610
 
 
 static const short yytable[] = {    87,
-    99,    47,   122,    62,    64,    66,   125,   141,   142,   232,
-    49,    51,    31,    31,   145,   133,   222,    52,    25,    25,
-   150,   299,   197,   331,   106,    35,    36,    37,   304,    21,
-    21,   185,   126,    22,    22,   225,    46,   137,    54,   282,
-   449,    31,   329,   429,   371,   208,    53,    25,   334,   530,
-    59,    60,   144,   578,   229,  -103,    32,   241,    21,    46,
-   149,   243,    22,   101,   321,   121,    58,    46,   656,   320,
-   676,   390,   688,   132,   216,   551,    58,    58,    58,   507,
-   201,   664,    38,   465,    67,   133,   206,    58,    59,    60,
-   210,   226,   291,    14,   602,    58,   232,    59,    60,   106,
-    59,    60,   180,   592,   487,   290,   657,   101,   677,   686,
-   689,   461,   301,   579,   463,   249,   190,   302,   590,   190,
-   549,    46,   222,   296,   121,    46,   596,   196,   299,    -1,
-   259,    61,   260,   222,   121,    -2,   365,   507,  -103,   222,
-   283,   599,   473,   132,   474,   244,    14,   111,   145,   564,
-   295,   133,   279,   280,   391,   171,   172,   173,    41,   101,
-   645,   330,    58,    39,   282,   327,   241,   335,   614,    63,
-   243,   381,    55,    58,    56,   341,    41,   101,    65,   101,
-   205,   112,   113,    33,    34,    14,   660,   388,   366,   631,
-   349,   663,   389,   665,   369,   333,   529,    40,   325,   104,
-   373,   673,   328,    14,   190,   107,   206,   441,   431,   108,
-   210,   421,    48,   432,   426,   581,   436,   189,   136,   340,
-   152,   342,    41,   434,   352,   441,   205,   138,   249,    25,
-   336,    58,   338,   697,   436,   189,    41,   434,   406,   143,
-   406,   121,    41,   116,   121,   121,   205,    41,   116,    14,
-    41,   116,   140,   622,   244,   695,   211,    14,   133,   376,
-   696,   358,   151,    14,   366,    58,   427,   196,   101,    14,
-   152,   435,   507,   180,    14,   112,   113,    14,   201,   187,
-   436,   189,    14,   186,   535,   435,   194,   539,   188,   189,
-    41,   117,   207,   517,   436,   189,   117,   383,   384,   117,
-   118,   238,   440,   444,    52,   118,   190,   254,   118,    25,
-   584,    14,   190,   520,   521,   227,   255,    14,   397,   228,
-   249,   679,   680,   217,   414,    54,  -106,  -106,  -106,  -106,
-    59,    60,  -106,    53,  -106,  -106,  -106,   466,   467,    42,
-   291,   468,   112,   113,   256,   233,   234,   398,    43,   246,
-  -106,   235,    41,   518,   386,   108,   205,   205,   387,   525,
-   -83,   535,   326,   284,   439,   443,   406,   522,   523,   524,
-   519,   101,   527,   528,   418,   526,   297,   298,   419,    14,
-    14,   129,   130,  -268,  -268,   452,   454,     9,    10,    11,
-   503,   257,   588,   370,   285,   485,   228,   289,   541,   437,
-   442,    42,   187,    25,   589,   502,  -106,   303,   108,   531,
-    43,   188,   189,   111,   133,   641,   643,   106,   540,   228,
-   108,   455,   369,   373,   534,   129,   130,   233,   234,   369,
-   373,     9,    10,    11,     5,   532,     7,   195,   248,   516,
-    59,    60,     9,    10,    11,    25,   112,   113,   503,   542,
-   185,    70,   442,   658,   317,   659,   505,   318,    13,   563,
-   506,    25,   324,   502,     5,     6,     7,     8,   121,   593,
-    46,   337,     9,    10,    11,   565,   297,   298,    58,   318,
-   420,   121,   587,    58,   520,   521,   154,   156,    13,   343,
-    14,   133,   344,   111,   571,   573,  -163,   613,   350,   206,
-   210,    52,   353,   232,  -163,   691,   206,   210,   401,  -270,
-  -270,   582,   583,   699,   600,   408,   357,   603,   606,   145,
-   627,   351,    54,   356,   616,   610,   516,   377,   617,   372,
-    53,   382,    25,   385,   437,   437,   409,   402,   412,    50,
-   623,   442,   442,   505,   222,  -163,   222,   506,   416,  -163,
-     5,     6,     7,     8,   619,  -305,   425,   649,     9,    10,
-    11,   433,   633,   128,   129,   130,   430,   448,   391,   182,
-     9,    10,    11,   640,    13,   451,    14,   464,   469,   470,
-   486,   253,   -31,   503,   545,   546,   547,   121,    14,    46,
-   258,   -32,   553,   556,   557,   261,   262,   559,   502,   560,
-   267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-   277,   278,   566,   561,   603,   164,   165,   166,   167,   168,
-   169,   170,   171,   172,   173,   572,   568,   181,   569,  -308,
-  -308,  -308,  -308,  -308,  -308,  -308,   682,  -308,  -308,  -308,
-  -308,  -308,   603,  -308,  -308,  -308,  -308,  -308,  -308,  -308,
+    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,   570,   574,     5,     6,     7,     8,  -308,   601,
-   446,  -308,     9,    10,    11,   609,  -308,  -308,  -308,   611,
-   612,   626,  -308,  -308,   625,   632,   630,  -308,    13,   634,
-    14,    59,    60,   198,   199,   200,   174,   175,   637,   176,
-   177,   178,   179,   354,   355,  -308,   182,  -308,  -308,   217,
-  -308,  -115,  -115,  -115,  -115,  -115,  -115,  -115,   635,  -115,
-  -115,  -115,  -115,  -115,   636,  -115,  -115,  -115,  -115,  -115,
+  -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,
-   639,  -115,  -115,  -115,   648,   651,     5,     6,     7,     8,
-  -115,   675,   661,  -115,     9,    10,    11,   666,  -115,  -115,
-  -115,   670,   674,   678,  -115,  -115,   684,   687,   701,  -115,
-    13,   690,    14,   166,   167,   168,   169,   170,   171,   172,
-   173,   410,   169,   170,   171,   172,   173,  -115,  -115,  -115,
-  -115,   417,  -115,   693,   360,   698,  -328,  -328,  -328,  -328,
-  -328,  -328,  -328,   702,  -328,  -328,  -328,  -328,  -328,   380,
-  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,
-  -328,  -328,  -328,  -328,  -328,   422,  -328,  -328,  -328,   604,
-   322,   127,   580,   300,   533,  -328,   537,   459,  -328,   378,
-   598,   550,   339,  -328,  -328,  -328,   538,   407,   413,  -328,
-  -328,   411,   423,   477,  -328,   217,   346,   450,  -328,  -328,
-  -328,  -328,   368,   428,   646,   647,  -328,  -328,  -328,   683,
-   685,   374,  -328,   447,  -328,  -328,     0,  -328,     0,     0,
-     0,     0,  -328,     0,     0,   217,     0,  -328,  -328,     0,
-     0,     0,  -328,  -328,     0,  -328,     0,     0,     0,  -328,
-   459,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,
-  -328,  -328,   543,  -328,     0,  -328,     0,  -328,  -328,  -328,
-     0,   477,   552,     0,     0,     0,  -328,     0,     0,  -328,
-     0,     0,   558,     0,  -328,  -328,  -328,     0,  -102,     0,
-  -328,  -328,     0,     0,     0,  -328,     0,     0,     5,   239,
-     7,    98,     5,     0,     7,    98,     9,    10,    11,     0,
-     9,    10,    11,  -328,  -301,  -328,  -328,     0,  -328,     0,
-     0,     0,    13,     0,   477,     0,    13,   591,     0,    15,
-     0,     5,   477,     7,   195,   477,     0,   477,     0,     9,
-    10,    11,   575,     0,  -328,  -328,     0,     0,     0,  -328,
-  -328,     0,  -328,     0,     0,    13,  -328,    14,  -328,  -328,
-  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,  -328,     0,
-  -328,     0,  -328,     0,  -328,  -328,  -328,   240,  -262,   187,
-   628,     0,   629,  -328,     0,   477,  -328,     0,   188,   189,
-     0,  -328,  -328,  -328,     0,   638,     0,  -328,  -328,     0,
-     0,   305,  -328,   306,     5,     6,     7,     8,     0,     0,
-   307,     0,     9,    10,    11,     0,     0,     0,     0,     0,
-  -328,     0,  -328,  -328,   620,  -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,     0,  -338,  -338,  -338,     0,
-     0,     0,     0,     0,     0,  -338,   174,   175,  -338,   176,
-   177,   178,   179,  -338,  -338,  -338,     0,     0,  -388,  -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,   471,   111,
-   472,    60,  -163,     0,    76,    69,    70,    77,    71,     0,
-  -163,     0,    78,    79,    80,     0,     0,     0,    81,    82,
-     0,     0,     0,    83,     0,     0,    72,     0,    15,     0,
-    73,    74,    75,   112,   113,     0,     0,     0,     0,    76,
-     0,     0,    77,    84,    85,     0,   147,    78,    79,    80,
-     0,  -163,     0,    81,    82,  -163,     0,   473,    83,   474,
-   471,     0,   472,    60,     0,     0,     0,    69,    70,     0,
-    71,     0,     0,     0,     0,     0,     0,  -191,    84,    85,
-     0,   475,     0,     0,     0,     0,     0,     0,    72,     0,
-    15,     0,    73,    74,    75,     0,     0,     0,     0,     0,
-     0,    76,     0,     0,    77,     0,     0,     0,     0,    78,
-    79,    80,     0,     0,     0,    81,    82,     0,     0,   473,
-    83,   474,   471,     0,    68,     0,     0,     0,     0,    69,
-    70,     0,    71,     0,     0,     0,     0,     0,     0,  -259,
-    84,    85,     0,   475,     0,     0,     0,     0,     0,     0,
-    72,     0,    15,     0,    73,    74,    75,     0,     0,  -204,
-   457,     0,    68,    76,     0,     0,    77,    69,    70,     0,
-    71,    78,    79,    80,     0,     0,     0,    81,    82,     0,
-     0,  -204,    83,  -204,     0,     0,     0,     0,    72,     0,
-    15,     0,    73,    74,    75,     0,     0,     0,     0,     0,
-     0,    76,    84,    85,    77,   475,     0,     0,     0,    78,
-    79,    80,     0,     0,     0,    81,    82,   471,     0,    68,
-    83,     0,     0,     0,    69,    70,   110,    71,     0,   -27,
-   -27,   -27,   -27,     0,     0,     0,     0,   -27,   -27,   -27,
-    84,    85,     0,   458,     0,    72,     0,    15,     0,    73,
-    74,    75,   111,   -27,     0,  -163,     0,     0,    76,     0,
-     0,    77,     0,  -163,     0,     0,    78,    79,    80,     0,
-     0,     0,    81,    82,     0,     0,     0,    83,   167,   168,
-   169,   170,   171,   172,   173,     0,   112,   113,     0,     0,
-   236,     0,     0,   -23,   -23,   -23,   -23,    84,    85,     0,
-   475,   -23,   -23,   -23,  -163,     0,     0,     0,  -163,   -27,
-     0,     0,     0,     0,     0,     0,   111,   -23,   230,  -163,
-     0,   -19,   -19,   -19,   -19,     0,     0,  -163,    68,   -19,
-   -19,   -19,     0,    69,    70,     0,    71,     0,     0,     0,
-     0,     0,     0,     0,   111,   -19,     0,  -163,     0,     0,
-   112,   113,     0,     0,    72,  -163,    15,     0,    73,    74,
-    75,     0,     0,     0,     0,     0,     0,    76,  -163,     0,
-    77,     0,  -163,   -23,     0,    78,    79,   214,     0,     0,
-     0,    81,    82,    68,     0,     0,    83,     0,    69,    70,
-     0,    71,     0,     0,     0,     0,  -163,     0,     0,     0,
-  -163,   -19,     0,     0,     0,     0,    84,    85,     0,    72,
-   215,    15,     0,    73,    74,    75,     0,     0,     0,     0,
-     0,    68,    76,     0,     0,    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,     0,
-    76,    84,    85,    77,     0,   294,     0,     0,    78,    79,
-    80,     0,     0,     0,    81,    82,    68,     0,     0,    83,
-     0,    69,    70,   305,    71,     0,     5,     6,     7,     8,
-     0,     0,   307,     0,     9,    10,    11,     0,     0,    84,
-    85,     0,    72,   316,    15,     0,    73,    74,    75,     0,
-    13,     0,    14,     0,    68,    76,     0,     0,    77,    69,
-    70,     0,    71,    78,    79,    80,     0,     0,     0,    81,
-    82,     0,     0,     0,    83,     0,     0,     0,     0,     0,
+  -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,
-     0,     0,     0,    76,    84,    85,    77,     0,   332,     0,
-  -388,    78,    79,    80,     0,     0,     0,    81,    82,    68,
-     0,     0,    83,     0,    69,    70,     0,    71,     5,    55,
-     7,    56,     0,     0,     0,     0,     9,    10,    11,     0,
-     0,     0,    84,    85,     0,    72,   375,    15,     0,    73,
-    74,    75,    13,     0,     0,     0,     0,    68,    76,     0,
-     0,    77,    69,    70,     0,    71,    78,    79,   585,     0,
-     0,     0,    81,    82,     0,     0,     0,    83,     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,
-   607,     0,     0,     0,     0,     0,    76,    84,    85,    77,
-     0,   586,     0,   453,    78,    79,    80,     0,     0,     0,
-    81,    82,     0,     0,     0,    83,     0,   157,   158,   159,
-   608,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-   169,   170,   171,   172,   173,    84,    85,     0,     0,   624,
-   472,   488,     6,     7,     8,    69,    70,     0,    71,     9,
-    10,    11,   489,     0,   490,   491,   492,   493,   494,   495,
-   496,   497,   498,   499,   500,    13,    72,    14,    15,     0,
-    73,    74,    75,     0,     0,     0,     0,     0,     0,    76,
-     0,     0,    77,     0,     0,     0,     0,    78,    79,    80,
-     0,     0,     0,    81,    82,     0,     0,     0,    83,   239,
-     0,     0,     5,     0,     7,    98,     0,     0,     0,     0,
-     9,    10,    11,     0,     0,     0,   501,     0,    84,    85,
-     0,   391,   472,    60,     0,     0,    13,    69,    70,    15,
-    71,     0,     0,     0,   489,     0,   490,   491,   492,   493,
-   494,   495,   496,   497,   498,   499,   500,     0,    72,     0,
-    15,     0,    73,    74,    75,     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,    76,     0,   501,    77,
-    84,    85,     0,   391,    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,   473,     0,    68,    76,
+     0,     0,    77,    69,    70,     0,    71,    78,    79,    80,
+     0,     0,     0,    81,    82,     0,     0,   475,    83,   476,
+     0,     0,     0,     0,    72,     0,    15,     0,    73,    74,
+    75,     0,     0,     0,     0,     0,  -204,  -259,    84,    85,
+    76,   477,     0,    77,     0,     0,     0,     0,    78,    79,
+    80,     0,     0,     0,    81,    82,     0,     0,  -204,    83,
+  -204,   458,     0,    68,     0,     0,     0,     0,    69,    70,
+     0,    71,   167,   168,   169,   170,   171,   172,   173,    84,
+    85,     0,   477,     0,     0,     0,     0,     0,     0,    72,
+     0,    15,     0,    73,    74,    75,     0,     0,     0,   473,
+     0,    68,     0,     0,     0,    76,    69,    70,    77,    71,
+     0,     0,     0,    78,    79,    80,     0,     0,     0,    81,
+    82,     0,     0,     0,    83,     0,     0,    72,     0,    15,
+     0,    73,    74,    75,   165,   166,   167,   168,   169,   170,
+   171,   172,   173,    76,    84,    85,    77,   459,     0,     0,
+     0,    78,    79,    80,     0,     0,     0,    81,    82,     0,
+   236,     0,    83,   -23,   -23,   -23,   -23,     5,     6,     7,
+     8,   -23,   -23,   -23,     0,     9,    10,    11,     0,     0,
+     0,     0,    84,    85,     0,   477,   111,   -23,     0,  -163,
+   230,    13,     0,   -19,   -19,   -19,   -19,     0,     0,     0,
+  -163,   -19,   -19,   -19,     0,    68,     0,     0,     0,     0,
+    69,    70,     0,    71,     0,     0,   111,   -19,     5,  -163,
+     7,    98,     0,   112,   113,     0,     9,    10,    11,     0,
+  -163,    72,     0,    15,     0,    73,    74,    75,     0,     0,
+     0,  -163,    13,     0,     0,  -163,   -23,    76,     0,     0,
+    77,     0,     0,     0,     0,    78,    79,   214,     0,     0,
+     0,    81,    82,     0,     0,     0,    83,     0,     0,     0,
+     0,  -163,    68,     0,     0,  -163,   -19,    69,    70,     0,
+    71,     0,     0,     0,     0,     0,    84,    85,     0,     0,
+   215,     0,     0,     0,     0,     0,     0,     0,    72,     0,
+    15,     0,    73,    74,    75,     0,     0,     0,     0,     0,
+    68,     0,     0,     0,    76,    69,    70,    77,    71,     0,
+     0,     0,    78,    79,    80,     0,     0,     0,    81,    82,
+     0,     0,     0,    83,     0,     0,    72,     0,    15,     0,
+    73,    74,    75,   166,   167,   168,   169,   170,   171,   172,
+   173,     0,    76,    84,    85,    77,     0,   294,     0,     0,
+    78,    79,    80,     0,     0,     0,    81,    82,    68,     0,
+     0,    83,     0,    69,    70,   159,    71,   160,   161,   162,
+   163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+   173,    84,    85,     0,    72,   316,    15,     0,    73,    74,
+    75,     0,     0,     0,     0,     0,    68,     0,     0,     0,
+    76,    69,    70,    77,    71,     0,     0,     0,    78,    79,
+    80,     0,     0,     0,    81,    82,     0,     0,     0,    83,
+     0,     0,    72,     0,    15,     0,    73,    74,    75,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    76,    84,
+    85,    77,     0,   332,     0,     0,    78,    79,    80,     0,
+     0,     0,    81,    82,    68,     0,     0,    83,     0,    69,
+    70,     0,    71,   161,   162,   163,   164,   165,   166,   167,
+   168,   169,   170,   171,   172,   173,     0,    84,    85,     0,
+    72,   375,    15,     0,    73,    74,    75,     0,     0,     0,
+     0,     0,    68,     0,     0,     0,    76,    69,    70,    77,
+    71,     0,     0,     0,    78,    79,   589,     0,     0,     0,
+    81,    82,     0,     0,     0,    83,     0,     0,    72,     0,
+    15,     0,    73,    74,    75,   611,     0,     0,     0,     0,
+     0,     0,     0,     0,    76,    84,    85,    77,     0,   590,
+     0,     0,    78,    79,    80,     0,     0,     0,    81,    82,
+     0,     0,     0,    83,     0,   157,   158,   159,   612,   160,
+   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
+   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,   165,   166,   167,   168,   169,   170,
-   171,   172,   173,     0,    84,    85,     0,    13,    72,     0,
-    15,     0,    73,    74,    75,     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,    76,     0,     0,    77,
-    84,    85,     0,     0,    78,    79,    80,     0,     0,     0,
-    81,    82,    68,     0,     0,    83,     0,    69,    70,     0,
-    71,     5,     6,     7,     8,     0,     0,     0,     0,     9,
-    10,    11,     0,   562,     0,    84,    85,     0,    72,     0,
-    15,     0,    73,    74,    75,    13,     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,    76,     0,     0,    77,
-    84,    85,     0,     0,    78,    79,    80,     0,     0,     0,
-    81,    82,    68,     0,     0,   153,     0,    69,    70,   159,
-    71,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-   169,   170,   171,   172,   173,    84,    85,     0,    72,     0,
-    15,     0,    73,    74,    75,     0,     0,   379,     0,     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,
-   155,     0,     0,    72,     0,    15,     0,    73,    74,    75,
-     0,     0,     0,     0,     0,     0,    76,     0,     0,    77,
-    84,    85,     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,   161,   162,   163,   164,   165,
-   166,   167,   168,   169,   170,   171,   172,   173,     0,     0,
-     0,     0,   594,     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,   157,
-   158,   159,    16,   160,   161,   162,   163,   164,   165,   166,
+   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,     0,     0,     0,     0,   157,   158,   159,   650,
-   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
-   170,   171,   172,   173,    14,     0,     0,   595,     0,     0,
-     0,   157,   158,   159,     0,   160,   161,   162,   163,   164,
-   165,   166,   167,   168,   169,   170,   171,   172,   173,     0,
-     0,     0,   347,   157,   158,   159,   655,   160,   161,   162,
-   163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
-   173,   157,   158,   159,     0,   160,   161,   162,   163,   164,
-   165,   166,   167,   168,   169,   170,   171,   172,   173,   162,
-   163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
-   173,   163,   164,   165,   166,   167,   168,   169,   170,   171,
-   172,   173
+     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,    49,    27,    28,    29,    51,    73,    74,   122,
-    21,    22,     2,     3,    80,    57,   114,    22,     2,     3,
-    86,   193,   103,   233,    43,     9,    10,    11,   211,     2,
-     3,    97,    51,     2,     3,   117,    20,    63,    22,   178,
-   390,    31,   231,   366,   293,   108,    22,    31,   237,   452,
-     3,     4,    76,     1,   121,     1,     3,   135,    31,    43,
-    83,   135,    31,    39,    10,    49,    25,    51,    40,   219,
-    40,     1,    40,    57,   113,   483,    35,    36,    37,   429,
-   104,   653,    61,   406,    31,   127,   105,    46,     3,     4,
-   109,   118,   188,    30,   555,    54,   209,     3,     4,   118,
-     3,     4,     9,    40,   427,   187,    78,    83,    78,   681,
-    78,   400,    78,    61,   403,   139,   100,    83,   536,   103,
-    38,   105,   220,   190,   108,   109,   544,   103,   300,     0,
-   153,    84,   155,   231,   118,     0,   286,   487,    84,   237,
-   179,   549,    60,   127,    62,   135,    30,    27,   214,    52,
-   189,   193,   176,   177,    84,    52,    53,    54,     3,   135,
-   621,   232,   121,    61,   303,   228,   244,   238,   571,    84,
-   244,    78,     5,   132,     7,   246,     3,   153,    84,   155,
-     7,    61,    62,    79,    80,    30,   647,    78,   286,   597,
-   256,   652,    83,   654,   290,   234,   445,    61,   225,    61,
-   296,   662,   229,    30,   188,    79,   225,    52,    78,    83,
-   229,   361,    79,    83,   364,    78,    61,    62,    84,   245,
-    83,   247,     3,     4,   263,    52,     7,    84,   252,   213,
-   241,   190,   243,   694,    61,    62,     3,     4,   336,    61,
-   338,   225,     3,     4,   228,   229,     7,     3,     4,    30,
-     3,     4,    84,   576,   244,    78,    61,    30,   300,   298,
-    83,   285,    78,    30,   362,   224,   364,   243,   244,    30,
-    83,    52,   622,     9,    30,    61,    62,    30,   302,    52,
-    61,    62,    30,    78,   456,    52,    78,    40,    61,    62,
-     3,    52,    78,   432,    61,    62,    52,   308,   309,    52,
-    61,    80,   383,   384,   309,    61,   290,    78,    61,   293,
-   520,    30,   296,    61,    62,    79,    78,    30,   323,    83,
-   344,   671,   672,     1,   347,   309,     4,     5,     6,     7,
-     3,     4,    10,   309,    12,    13,    14,   408,   409,    52,
-   436,   412,    61,    62,    78,    61,    62,   323,    61,    80,
-    28,    79,     3,   435,    79,    83,     7,     7,    83,   441,
-    40,   533,    78,    78,   383,   384,   464,   438,   439,   440,
-   437,   347,   443,   444,    79,   442,    61,    62,    83,    30,
-    30,     6,     7,    79,    80,   396,   397,    12,    13,    14,
-   429,    79,    79,    78,    32,   419,    83,    78,   469,   383,
-   384,    52,    52,   387,    79,   429,    84,    61,    83,   454,
-    61,    61,    62,    27,   456,    79,    79,   436,   465,    83,
-    83,   397,   518,   519,     5,     6,     7,    61,    62,   525,
-   526,    12,    13,    14,     4,   454,     6,     7,     1,   429,
-     3,     4,    12,    13,    14,   429,    61,    62,   487,   473,
-   516,     9,   436,   642,    85,   644,   429,    79,    28,   498,
-   429,   445,    38,   487,     4,     5,     6,     7,   452,   540,
-   454,    79,    12,    13,    14,   499,    61,    62,   437,    79,
-    80,   465,   521,   442,    61,    62,    90,    91,    28,    38,
-    30,   533,    83,    27,   505,   506,    30,   568,    78,   518,
-   519,   506,    40,   616,    38,   688,   525,   526,    38,    79,
-    80,   518,   519,   696,   553,    80,    85,   556,   557,   585,
-   591,    78,   506,    78,   571,   564,   516,    78,   573,    85,
-   506,    78,   516,    78,   518,   519,    80,    85,    80,    79,
-   579,   525,   526,   516,   642,    79,   644,   516,    40,    83,
-     4,     5,     6,     7,   573,    80,    80,   628,    12,    13,
-    14,    78,   601,     5,     6,     7,    85,     3,    84,    80,
-    12,    13,    14,   612,    28,    79,    30,    83,    80,    78,
-    80,   143,    40,   622,    40,    80,    83,   571,    30,   573,
-   152,    40,    61,    61,    61,   157,   158,    40,   622,    79,
-   162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
-   172,   173,     7,    79,   653,    45,    46,    47,    48,    49,
-    50,    51,    52,    53,    54,    79,    40,     1,    79,     3,
-     4,     5,     6,     7,     8,     9,   675,    11,    12,    13,
-    14,    15,   681,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
-    34,    35,    79,    16,     4,     5,     6,     7,    42,    61,
-    10,    45,    12,    13,    14,    79,    50,    51,    52,    79,
-    61,    80,    56,    57,    85,    78,    80,    61,    28,    17,
-    30,     3,     4,     5,     6,     7,    56,    57,    78,    59,
-    60,    61,    62,   265,   266,    79,    80,    81,    82,     1,
-    84,     3,     4,     5,     6,     7,     8,     9,    78,    11,
-    12,    13,    14,    15,    79,    17,    18,    19,    20,    21,
-    22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-    79,    33,    34,    35,    78,    78,     4,     5,     6,     7,
-    42,    61,    79,    45,    12,    13,    14,     9,    50,    51,
-    52,    79,    79,    83,    56,    57,    79,    78,     0,    61,
-    28,    78,    30,    47,    48,    49,    50,    51,    52,    53,
-    54,   343,    50,    51,    52,    53,    54,    79,    80,    81,
-    82,   353,    84,    79,     1,    79,     3,     4,     5,     6,
-     7,     8,     9,     0,    11,    12,    13,    14,    15,   303,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,    30,    31,   362,    33,    34,    35,   556,
-   220,    53,   516,   196,   455,    42,   462,   399,    45,   302,
-   547,   482,   244,    50,    51,    52,   464,   338,   346,    56,
-    57,   344,   362,   415,    61,     1,   252,   393,     4,     5,
-     6,     7,   287,   364,   622,   622,    12,    13,    14,   676,
-   678,   297,    79,   387,    81,    82,    -1,    84,    -1,    -1,
-    -1,    -1,    28,    -1,    -1,     1,    -1,     3,     4,    -1,
-    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    15,
-   462,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,   474,    29,    -1,    31,    -1,    33,    34,    35,
-    -1,   483,   484,    -1,    -1,    -1,    42,    -1,    -1,    45,
-    -1,    -1,   494,    -1,    50,    51,    52,    -1,    84,    -1,
-    56,    57,    -1,    -1,    -1,    61,    -1,    -1,     4,     1,
-     6,     7,     4,    -1,     6,     7,    12,    13,    14,    -1,
-    12,    13,    14,    79,    80,    81,    82,    -1,    84,    -1,
-    -1,    -1,    28,    -1,   536,    -1,    28,   539,    -1,    31,
-    -1,     4,   544,     6,     7,   547,    -1,   549,    -1,    12,
-    13,    14,     1,    -1,     3,     4,    -1,    -1,    -1,     8,
-     9,    -1,    11,    -1,    -1,    28,    15,    30,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
-    29,    -1,    31,    -1,    33,    34,    35,    79,    80,    52,
-   592,    -1,   594,    42,    -1,   597,    45,    -1,    61,    62,
-    -1,    50,    51,    52,    -1,   607,    -1,    56,    57,    -1,
-    -1,     1,    61,     3,     4,     5,     6,     7,    -1,    -1,
-    10,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,
-    79,    -1,    81,    82,     1,    84,     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,    -1,    42,    56,    57,    45,    59,
-    60,    61,    62,    50,    51,    52,    -1,    -1,    78,    56,
-    57,    -1,    -1,     1,    61,     3,     4,    -1,     6,     7,
-     8,     9,    -1,    11,    12,    13,    14,    -1,    -1,    -1,
-    -1,    -1,    79,    -1,    81,    82,    -1,    84,    -1,    -1,
-    28,    29,    -1,    31,    -1,    33,    34,    35,     1,    27,
-     3,     4,    30,    -1,    42,     8,     9,    45,    11,    -1,
-    38,    -1,    50,    51,    52,    -1,    -1,    -1,    56,    57,
-    -1,    -1,    -1,    61,    -1,    -1,    29,    -1,    31,    -1,
-    33,    34,    35,    61,    62,    -1,    -1,    -1,    -1,    42,
-    -1,    -1,    45,    81,    82,    -1,    84,    50,    51,    52,
-    -1,    79,    -1,    56,    57,    83,    -1,    60,    61,    62,
-     1,    -1,     3,     4,    -1,    -1,    -1,     8,     9,    -1,
-    11,    -1,    -1,    -1,    -1,    -1,    -1,    80,    81,    82,
-    -1,    84,    -1,    -1,    -1,    -1,    -1,    -1,    29,    -1,
-    31,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,
-    -1,    42,    -1,    -1,    45,    -1,    -1,    -1,    -1,    50,
-    51,    52,    -1,    -1,    -1,    56,    57,    -1,    -1,    60,
-    61,    62,     1,    -1,     3,    -1,    -1,    -1,    -1,     8,
-     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    80,
-    81,    82,    -1,    84,    -1,    -1,    -1,    -1,    -1,    -1,
-    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,    38,
-     1,    -1,     3,    42,    -1,    -1,    45,     8,     9,    -1,
-    11,    50,    51,    52,    -1,    -1,    -1,    56,    57,    -1,
-    -1,    60,    61,    62,    -1,    -1,    -1,    -1,    29,    -1,
+    39,    20,    25,    27,    28,    29,    49,    51,   114,     2,
+     3,   211,    35,    36,    37,    73,    74,    22,     2,     3,
+   233,   122,    80,    46,    43,     2,     3,   193,    86,   390,
+   117,    54,    51,    83,    63,   453,   103,   231,    31,    97,
+   178,   293,    46,   237,   118,   135,     1,    31,   108,   366,
+    21,    22,    76,   135,    31,   219,   485,     1,     9,     0,
+    22,     3,     4,     2,     3,     3,    10,    57,     3,   430,
+     9,    10,    11,     0,   113,     3,     4,    39,     7,    43,
+   104,    20,    30,    22,     1,    43,   105,     3,     4,   406,
+   109,   408,    31,    31,   400,    30,    30,   403,   121,   118,
+   187,    30,    82,   153,    43,   155,     3,     4,   209,   132,
+    49,   428,    51,    87,   220,   139,   559,    81,    57,    64,
+    55,    83,   286,    81,   553,   231,    55,    64,   489,    64,
+    81,   237,    87,    64,   300,    64,    65,   127,    43,   188,
+   179,   103,   135,    87,    64,    87,   657,    64,    82,    83,
+   189,   225,   176,   177,   244,   229,   214,   575,    55,    87,
+     3,   100,   244,    87,   103,   303,   105,   190,   228,   108,
+   109,    87,   601,   135,   685,     4,    81,     6,     7,   118,
+   286,    87,   625,    12,    13,    14,   190,    30,   127,    27,
+    64,   153,   538,   155,   446,   234,    81,   361,   256,    28,
+   364,   224,   548,   193,    30,    86,   225,    41,   651,    81,
+   229,     9,    55,   656,    86,   658,   245,    43,   247,    81,
+    81,    64,    65,   666,   263,    86,    64,    65,   252,    63,
+   336,    65,   338,     1,    30,    81,     4,     5,     6,     7,
+    86,   290,    10,    64,    12,    13,    14,   296,     5,   188,
+     7,   244,    83,    82,    83,   698,   362,    81,   364,   298,
+    28,   285,    86,   580,    30,   626,    81,    30,    64,    65,
+   241,    86,   243,    81,   213,    81,    64,    65,   302,     3,
+     4,   243,   244,     7,     3,     4,   225,    82,    83,   228,
+   229,   457,    55,    81,    83,   433,    82,   347,    64,    65,
+    86,    64,    65,    82,   309,    81,    30,    86,    81,   522,
+   300,    30,    64,    65,   675,   676,   383,   384,   323,    87,
+   344,     1,    64,    65,     4,     5,     6,     7,    82,    81,
+    81,    55,    12,    13,    14,    43,    55,   308,   309,    81,
+    64,    65,    55,    56,    57,    64,    65,   309,    28,   436,
+    32,   290,    82,   143,   293,   442,    86,   296,    81,   465,
+    64,   323,   152,    27,   383,   384,     9,   157,   158,   535,
+   309,    88,   162,   163,   164,   165,   166,   167,   168,   169,
+   170,   171,   172,   173,    82,   347,    82,     1,   437,    41,
+     4,   430,     6,     7,     3,     4,   420,    82,    12,    13,
+    14,    86,    64,    65,    82,     3,   430,    87,    86,     7,
+     1,   455,     3,     4,    28,   438,   232,    31,   437,    41,
+   443,    86,   238,   466,   467,   396,   397,    82,    43,    82,
+   246,    86,    30,    86,   438,   397,   455,   430,    82,   443,
+    64,    65,    86,    82,   383,   384,   430,    86,   387,    81,
+   489,   475,   646,   430,   648,    82,    83,    55,    64,    65,
+   518,   500,    81,     3,     4,   489,    64,   457,    82,    83,
+    81,   520,   521,    90,    91,   265,   266,   501,   527,   528,
+    64,    65,   520,   521,   523,    88,     4,     5,     6,     7,
+    30,   430,   692,    88,    12,    13,    14,    41,   437,    81,
+   700,   520,   521,   508,    81,    81,    43,   446,   527,   528,
+    28,    83,    30,    88,   453,    55,   455,    83,   557,   620,
+   543,   560,   561,    83,    64,   518,    83,   466,   467,   568,
+    83,   589,   575,   577,   518,    81,   507,   508,     3,     4,
+   646,   518,   648,     3,   583,   535,   508,     7,    27,     6,
+     7,    30,    88,   343,     3,    12,    13,    14,   577,    87,
+    83,    82,    41,   353,    82,    30,   605,    86,    83,   508,
+    30,     3,     4,     5,     6,     7,    81,   616,    43,   518,
+    83,   520,   521,    83,    43,    64,    65,   626,   527,   528,
+    55,    43,    86,   409,   410,    55,    43,   413,    64,    64,
+    64,    64,   626,    82,    64,    65,    43,    86,     1,   399,
+    82,     4,     5,     6,     7,    82,     7,    43,   657,    12,
+    13,    14,    10,   439,   440,   441,   416,    82,   444,   445,
+    16,    82,    82,    64,    27,    28,   575,    30,   577,    82,
+   679,    53,    54,    55,    56,    57,   685,    64,    41,    88,
+   466,    81,    40,    41,    42,   471,    44,    45,    46,    47,
+    48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+    83,    64,    65,   463,    83,     4,     5,     6,     7,    17,
+    82,    81,    81,    12,    13,    14,   476,    82,    82,    82,
+     9,    81,    64,    86,    87,   485,   486,    82,    82,    28,
+    88,    30,     5,     6,     7,    86,   496,    82,    81,    12,
+    13,    14,    81,     1,    82,     3,     4,     5,     6,     7,
+     8,     9,    82,    11,    12,    13,    14,    15,   544,    17,
+    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+    28,    29,    30,    31,    32,    33,    34,    35,   538,     0,
+     0,   541,   303,    82,   362,   560,   572,    45,   548,    27,
+    48,   551,    30,   553,   220,    53,    54,    55,   518,    53,
+   456,    59,    60,    41,   196,   302,    64,   551,     1,   595,
+     3,     4,     5,     6,     7,   484,   463,    10,   346,    12,
+    13,    14,   465,   338,    82,    83,    84,    85,   244,    87,
+   362,   344,   287,   393,   252,    28,   596,    30,   598,   364,
+   680,   601,   626,   626,    82,   682,   632,   297,    86,   387,
+     1,   611,     3,     4,     5,     6,     7,     8,     9,    -1,
+    11,    12,    13,    14,    15,    -1,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+    31,    -1,    33,    34,    35,    -1,    -1,     1,    81,    -1,
+     4,    -1,     6,     7,    45,    -1,    -1,    48,    12,    13,
+    14,    -1,    53,    54,    55,    -1,    -1,    -1,    59,    60,
+    -1,    -1,    -1,    64,    28,    59,    60,    31,    62,    63,
+    64,    65,    -1,     3,     4,    -1,    -1,     7,    -1,    -1,
+    -1,    82,    83,    84,    85,     1,    87,     3,     4,     5,
+     6,     7,     8,     9,    -1,    11,    12,    13,    14,    15,
+    30,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    28,    29,    30,    31,    -1,    33,    34,    35,
+    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    45,
+    -1,    -1,    48,    -1,    64,    -1,    -1,    53,    54,    55,
+    -1,    -1,    -1,    59,    60,    -1,    -1,     1,    64,    -1,
+     4,     5,     6,     7,    -1,    -1,    10,    -1,    12,    13,
+    14,    -1,    -1,    -1,    -1,    -1,    82,    -1,    84,    85,
+     1,    87,     3,     4,    28,    -1,    30,     8,     9,    -1,
+    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    -1,    29,    -1,
     31,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,
-    -1,    42,    81,    82,    45,    84,    -1,    -1,    -1,    50,
-    51,    52,    -1,    -1,    -1,    56,    57,     1,    -1,     3,
-    61,    -1,    -1,    -1,     8,     9,     1,    11,    -1,     4,
-     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
-    81,    82,    -1,    84,    -1,    29,    -1,    31,    -1,    33,
-    34,    35,    27,    28,    -1,    30,    -1,    -1,    42,    -1,
-    -1,    45,    -1,    38,    -1,    -1,    50,    51,    52,    -1,
-    -1,    -1,    56,    57,    -1,    -1,    -1,    61,    48,    49,
-    50,    51,    52,    53,    54,    -1,    61,    62,    -1,    -1,
-     1,    -1,    -1,     4,     5,     6,     7,    81,    82,    -1,
-    84,    12,    13,    14,    79,    -1,    -1,    -1,    83,    84,
-    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,     1,    30,
-    -1,     4,     5,     6,     7,    -1,    -1,    38,     3,    12,
-    13,    14,    -1,     8,     9,    -1,    11,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    27,    28,    -1,    30,    -1,    -1,
-    61,    62,    -1,    -1,    29,    38,    31,    -1,    33,    34,
-    35,    -1,    -1,    -1,    -1,    -1,    -1,    42,    79,    -1,
-    45,    -1,    83,    84,    -1,    50,    51,    52,    -1,    -1,
-    -1,    56,    57,     3,    -1,    -1,    61,    -1,     8,     9,
-    -1,    11,    -1,    -1,    -1,    -1,    79,    -1,    -1,    -1,
-    83,    84,    -1,    -1,    -1,    -1,    81,    82,    -1,    29,
-    85,    31,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,
-    -1,     3,    42,    -1,    -1,    45,     8,     9,    -1,    11,
-    50,    51,    52,    -1,    -1,    -1,    56,    57,    -1,    -1,
-    -1,    61,    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,
-    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    -1,
-    42,    81,    82,    45,    -1,    85,    -1,    -1,    50,    51,
-    52,    -1,    -1,    -1,    56,    57,     3,    -1,    -1,    61,
-    -1,     8,     9,     1,    11,    -1,     4,     5,     6,     7,
-    -1,    -1,    10,    -1,    12,    13,    14,    -1,    -1,    81,
-    82,    -1,    29,    85,    31,    -1,    33,    34,    35,    -1,
-    28,    -1,    30,    -1,     3,    42,    -1,    -1,    45,     8,
-     9,    -1,    11,    50,    51,    52,    -1,    -1,    -1,    56,
-    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
-    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,    -1,
-    -1,    -1,    -1,    42,    81,    82,    45,    -1,    85,    -1,
-    78,    50,    51,    52,    -1,    -1,    -1,    56,    57,     3,
-    -1,    -1,    61,    -1,     8,     9,    -1,    11,     4,     5,
-     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,    -1,
-    -1,    -1,    81,    82,    -1,    29,    85,    31,    -1,    33,
-    34,    35,    28,    -1,    -1,    -1,    -1,     3,    42,    -1,
-    -1,    45,     8,     9,    -1,    11,    50,    51,    52,    -1,
-    -1,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,
-    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,
-    10,    -1,    -1,    -1,    -1,    -1,    42,    81,    82,    45,
-    -1,    85,    -1,    79,    50,    51,    52,    -1,    -1,    -1,
-    56,    57,    -1,    -1,    -1,    61,    -1,    37,    38,    39,
-    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-    50,    51,    52,    53,    54,    81,    82,    -1,    -1,    85,
-     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,    42,
-    -1,    -1,    45,    -1,    -1,    -1,    -1,    50,    51,    52,
-    -1,    -1,    -1,    56,    57,    -1,    -1,    -1,    61,     1,
-    -1,    -1,     4,    -1,     6,     7,    -1,    -1,    -1,    -1,
-    12,    13,    14,    -1,    -1,    -1,    79,    -1,    81,    82,
-    -1,    84,     3,     4,    -1,    -1,    28,     8,     9,    31,
+     4,     5,     6,     7,    45,    -1,    10,    48,    12,    13,
+    14,    -1,    53,    54,    55,    -1,    -1,    81,    59,    60,
+    -1,    -1,    -1,    64,    28,    -1,    30,     4,     5,     6,
+     7,     5,     6,     7,    -1,    12,    13,    14,    12,    13,
+    14,    82,    83,    84,    85,     1,    87,     3,     4,    -1,
+    -1,    28,     8,     9,    -1,    11,    30,    -1,    -1,    15,
+    -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,    35,
+    -1,    -1,    -1,    -1,    -1,     4,     5,     6,     7,    45,
+    -1,    -1,    48,    12,    13,    14,    -1,    53,    54,    55,
+    -1,    -1,    -1,    59,    60,    82,    -1,    -1,    64,    28,
+     4,    30,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
+    14,    -1,    -1,    -1,    -1,    -1,    82,    -1,    84,    85,
+     1,    87,     3,     4,    28,    -1,    30,     8,     9,    -1,
     11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,
     21,    22,    23,    24,    25,    26,    27,    -1,    29,    -1,
-    31,    -1,    33,    34,    35,    -1,    -1,     3,    -1,    -1,
-    -1,    42,     8,     9,    45,    11,    -1,    -1,    -1,    50,
-    51,    52,    -1,    -1,    -1,    56,    57,    -1,    -1,    -1,
-    61,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,
-    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    79,    45,
-    81,    82,    -1,    84,    50,    51,    52,    -1,    -1,    -1,
-    56,    57,    -1,    -1,    -1,    61,     3,     4,     5,     6,
-     7,     8,     9,    -1,    11,    12,    13,    14,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    84,    -1,
-    -1,    28,    29,    30,    31,    -1,    33,    34,    35,    -1,
-    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,    45,    -1,
-    -1,    -1,    -1,    50,    51,    52,    -1,    -1,    -1,    56,
-    57,    -1,     3,     4,    61,     6,     7,     8,     9,    -1,
-    11,    12,    13,    14,    46,    47,    48,    49,    50,    51,
-    52,    53,    54,    -1,    81,    82,    -1,    28,    29,    -1,
-    31,    -1,    33,    34,    35,    -1,    -1,     3,    -1,    -1,
-    -1,    42,     8,     9,    45,    11,    -1,    -1,    -1,    50,
-    51,    52,    -1,    -1,    -1,    56,    57,    -1,    -1,    -1,
-    61,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,
-    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,    45,
-    81,    82,    -1,    -1,    50,    51,    52,    -1,    -1,    -1,
-    56,    57,     3,    -1,    -1,    61,    -1,     8,     9,    -1,
-    11,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
-    13,    14,    -1,    79,    -1,    81,    82,    -1,    29,    -1,
-    31,    -1,    33,    34,    35,    28,    -1,     3,    -1,    -1,
-    -1,    42,     8,     9,    45,    11,    -1,    -1,    -1,    50,
-    51,    52,    -1,    -1,    -1,    56,    57,    -1,    -1,    -1,
-    61,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,
-    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,    45,
-    81,    82,    -1,    -1,    50,    51,    52,    -1,    -1,    -1,
-    56,    57,     3,    -1,    -1,    61,    -1,     8,     9,    39,
-    11,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-    50,    51,    52,    53,    54,    81,    82,    -1,    29,    -1,
-    31,    -1,    33,    34,    35,    -1,    -1,     3,    -1,    -1,
-    -1,    42,     8,     9,    45,    11,    -1,    -1,    -1,    50,
-    51,    52,    -1,    -1,    -1,    56,    57,    -1,    -1,    -1,
-    61,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,
-    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,    45,
-    81,    82,    -1,    -1,    50,    51,    52,    -1,    -1,    -1,
-    56,    57,    -1,    -1,     1,    61,     3,     4,     5,     6,
-     7,    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    -1,
-    27,    28,    -1,    30,    31,    42,    43,    44,    45,    46,
-    47,    48,    49,    50,    51,    52,    53,    54,    -1,    -1,
-    -1,    -1,    10,    -1,    -1,    52,    -1,    -1,    -1,    -1,
-    -1,    37,    38,    39,    61,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    53,    54,    37,
-    38,    39,    79,    41,    42,    43,    44,    45,    46,    47,
-    48,    49,    50,    51,    52,    53,    54,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    39,    85,
-    41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-    51,    52,    53,    54,    30,    -1,    -1,    85,    -1,    -1,
-    -1,    37,    38,    39,    -1,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    53,    54,    -1,
-    -1,    -1,    83,    37,    38,    39,    40,    41,    42,    43,
-    44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-    54,    37,    38,    39,    -1,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    53,    54,    43,
+    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,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-    53,    54
+    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/cygnus/TBD-TBD/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.
@@ -1273,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
@@ -1322,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
@@ -1404,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++ */
@@ -1421,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;
@@ -1436,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)
@@ -1449,7 +1488,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/cygnus/TBD-TBD/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 *.
@@ -1470,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
@@ -1498,6 +1546,7 @@ yyparse(YYPARSE_PARAM_ARG)
 #endif
 
   int yystacksize = YYINITDEPTH;
+  int yyfree_stacks = 0;
 
 #ifdef YYPURE
   int yychar;
@@ -1582,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 */
 
@@ -1754,14 +1817,14 @@ yyreduce:
   switch (yyn) {
 
 case 1:
-#line 225 "c-parse.y"
+#line 237 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids an empty source file");
                  finish_file ();
                ;
     break;}
 case 2:
-#line 230 "c-parse.y"
+#line 242 "c-parse.y"
 {
                  /* In case there were missing closebraces,
                     get us back to the global binding level.  */
@@ -1771,15 +1834,15 @@ case 2:
                ;
     break;}
 case 3:
-#line 244 "c-parse.y"
+#line 256 "c-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 5:
-#line 245 "c-parse.y"
+#line 257 "c-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 9:
-#line 252 "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)
@@ -1789,11 +1852,11 @@ case 9:
                    error ("argument of `asm' is not a constant string"); ;
     break;}
 case 10:
-#line 260 "c-parse.y"
-{ pedantic = yyvsp[-1].itype; ;
+#line 272 "c-parse.y"
+{ RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
     break;}
 case 11:
-#line 265 "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)
@@ -1801,174 +1864,165 @@ 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 275 "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 280 "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 285 "c-parse.y"
+#line 294 "c-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 15:
-#line 287 "c-parse.y"
+#line 296 "c-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 18:
-#line 291 "c-parse.y"
+#line 300 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
     break;}
 case 19:
-#line 297 "c-parse.y"
+#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;}
 case 20:
-#line 302 "c-parse.y"
+#line 311 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 21:
-#line 304 "c-parse.y"
+#line 313 "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 22:
-#line 310 "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 315 "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 320 "c-parse.y"
+#line 327 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 25:
-#line 322 "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 328 "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 333 "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 338 "c-parse.y"
+#line 343 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 29:
-#line 340 "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 346 "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 358 "c-parse.y"
+#line 361 "c-parse.y"
 { yyval.code = ADDR_EXPR; ;
     break;}
 case 34:
-#line 360 "c-parse.y"
+#line 363 "c-parse.y"
 { yyval.code = NEGATE_EXPR; ;
     break;}
 case 35:
-#line 362 "c-parse.y"
+#line 365 "c-parse.y"
 { yyval.code = CONVERT_EXPR; ;
     break;}
 case 36:
-#line 364 "c-parse.y"
+#line 367 "c-parse.y"
 { yyval.code = PREINCREMENT_EXPR; ;
     break;}
 case 37:
-#line 366 "c-parse.y"
+#line 369 "c-parse.y"
 { yyval.code = PREDECREMENT_EXPR; ;
     break;}
 case 38:
-#line 368 "c-parse.y"
+#line 371 "c-parse.y"
 { yyval.code = BIT_NOT_EXPR; ;
     break;}
 case 39:
-#line 370 "c-parse.y"
+#line 373 "c-parse.y"
 { yyval.code = TRUTH_NOT_EXPR; ;
     break;}
 case 40:
-#line 374 "c-parse.y"
+#line 377 "c-parse.y"
 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
     break;}
 case 41:
-#line 379 "c-parse.y"
+#line 382 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 43:
-#line 385 "c-parse.y"
+#line 388 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 44:
-#line 387 "c-parse.y"
+#line 390 "c-parse.y"
 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 46:
-#line 393 "c-parse.y"
+#line 396 "c-parse.y"
 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
     break;}
 case 47:
-#line 396 "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 399 "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 403 "c-parse.y"
+#line 406 "c-parse.y"
 { tree label = lookup_label (yyvsp[0].ttype);
                  if (pedantic)
                    pedwarn ("ANSI C forbids `&&'");
@@ -1983,7 +2037,7 @@ case 49:
                ;
     break;}
 case 50:
-#line 431 "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)))
@@ -1991,59 +2045,59 @@ case 50:
                  yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
     break;}
 case 51:
-#line 437 "c-parse.y"
+#line 440 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 52:
-#line 440 "c-parse.y"
+#line 443 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
     break;}
 case 53:
-#line 443 "c-parse.y"
+#line 446 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 54:
-#line 446 "c-parse.y"
+#line 449 "c-parse.y"
 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
     break;}
 case 55:
-#line 448 "c-parse.y"
+#line 451 "c-parse.y"
 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
     break;}
 case 56:
-#line 450 "c-parse.y"
+#line 453 "c-parse.y"
 { yyval.ttype = build_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 57:
-#line 454 "c-parse.y"
+#line 457 "c-parse.y"
 { skip_evaluation++; ;
     break;}
 case 58:
-#line 458 "c-parse.y"
+#line 461 "c-parse.y"
 { skip_evaluation++; ;
     break;}
 case 60:
-#line 464 "c-parse.y"
+#line 467 "c-parse.y"
 { tree type = groktypename (yyvsp[-2].ttype);
                  yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
     break;}
 case 61:
-#line 467 "c-parse.y"
+#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 62:
-#line 471 "c-parse.y"
-{ char *name;
+#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)
                    {
@@ -2055,7 +2109,7 @@ case 62:
                  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)
@@ -2064,90 +2118,90 @@ case 62:
                ;
     break;}
 case 64:
-#line 500 "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 502 "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 504 "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 506 "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 508 "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 510 "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 512 "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 514 "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 516 "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 518 "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 520 "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 522 "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 524 "c-parse.y"
+#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 77:
-#line 527 "c-parse.y"
+#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 78:
-#line 530 "c-parse.y"
+#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 79:
-#line 533 "c-parse.y"
+#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 80:
-#line 536 "c-parse.y"
+#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 81:
-#line 539 "c-parse.y"
+#line 542 "c-parse.y"
 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
                                      - (yyvsp[-4].ttype == boolean_false_node)); ;
     break;}
 case 82:
-#line 542 "c-parse.y"
+#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 83:
-#line 545 "c-parse.y"
+#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.  */
@@ -2156,12 +2210,12 @@ case 83:
                  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
     break;}
 case 84:
-#line 552 "c-parse.y"
+#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 85:
-#line 555 "c-parse.y"
+#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));
@@ -2171,7 +2225,7 @@ case 85:
                ;
     break;}
 case 86:
-#line 563 "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.  */
@@ -2182,7 +2236,7 @@ case 86:
                ;
     break;}
 case 87:
-#line 575 "c-parse.y"
+#line 578 "c-parse.y"
 {
                  yyval.ttype = lastiddecl;
                  if (!yyval.ttype || yyval.ttype == error_mark_node)
@@ -2282,11 +2336,11 @@ case 87:
                ;
     break;}
 case 89:
-#line 674 "c-parse.y"
+#line 677 "c-parse.y"
 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
     break;}
 case 90:
-#line 676 "c-parse.y"
+#line 679 "c-parse.y"
 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
                  if (class == 'e' || class == '1'
                      || class == '2' || class == '<')
@@ -2294,11 +2348,11 @@ case 90:
                  yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 91:
-#line 682 "c-parse.y"
+#line 685 "c-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 92:
-#line 684 "c-parse.y"
+#line 687 "c-parse.y"
 { tree rtl_exp;
                  if (pedantic)
                    pedwarn ("ANSI C forbids braced-groups within expressions");
@@ -2323,7 +2377,7 @@ case 92:
                ;
     break;}
 case 93:
-#line 707 "c-parse.y"
+#line 710 "c-parse.y"
 {
                  /* Make sure we call expand_end_stmt_expr.  Otherwise
                     we are likely to lose sequences and crash later.  */
@@ -2334,21 +2388,21 @@ case 93:
                ;
     break;}
 case 94:
-#line 716 "c-parse.y"
+#line 719 "c-parse.y"
 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 95:
-#line 718 "c-parse.y"
+#line 721 "c-parse.y"
 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 96:
-#line 720 "c-parse.y"
+#line 723 "c-parse.y"
 {
                    yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
 case 97:
-#line 724 "c-parse.y"
+#line 727 "c-parse.y"
 {
                   tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
 
@@ -2356,58 +2410,58 @@ case 97:
                ;
     break;}
 case 98:
-#line 730 "c-parse.y"
+#line 733 "c-parse.y"
 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
 case 99:
-#line 732 "c-parse.y"
+#line 735 "c-parse.y"
 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
 case 101:
-#line 739 "c-parse.y"
-{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
+#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 104:
-#line 748 "c-parse.y"
+#line 754 "c-parse.y"
 { c_mark_varargs ();
                  if (pedantic)
                    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
     break;}
 case 105:
-#line 758 "c-parse.y"
+#line 764 "c-parse.y"
 { ;
     break;}
 case 110:
-#line 774 "c-parse.y"
+#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 111:
-#line 779 "c-parse.y"
+#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 112:
-#line 784 "c-parse.y"
+#line 788 "c-parse.y"
 { shadow_tag_warned (yyvsp[-1].ttype, 1);
                  pedwarn ("empty declaration"); ;
     break;}
 case 113:
-#line 787 "c-parse.y"
+#line 791 "c-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 114:
-#line 796 "c-parse.y"
+#line 800 "c-parse.y"
 { ;
     break;}
 case 119:
-#line 811 "c-parse.y"
-{ yyval.itype = suspend_momentary ();
-                 pending_xref_error ();
+#line 815 "c-parse.y"
+{ pending_xref_error ();
                  declspec_stack = tree_cons (prefix_attributes,
                                              current_declspecs,
                                              declspec_stack);
@@ -2415,131 +2469,127 @@ case 119:
                                     &current_declspecs, &prefix_attributes); ;
     break;}
 case 120:
-#line 822 "c-parse.y"
+#line 825 "c-parse.y"
 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
     break;}
 case 121:
-#line 827 "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 832 "c-parse.y"
+#line 834 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
-                 declspec_stack = TREE_CHAIN (declspec_stack);
-                 resume_momentary (yyvsp[-2].itype); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 123:
-#line 837 "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 842 "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 125:
-#line 847 "c-parse.y"
+#line 846 "c-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 126:
-#line 849 "c-parse.y"
+#line 848 "c-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 127:
-#line 851 "c-parse.y"
-{ pedantic = yyvsp[-1].itype; ;
+#line 850 "c-parse.y"
+{ RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
     break;}
 case 128:
-#line 861 "c-parse.y"
+#line 860 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 129:
-#line 863 "c-parse.y"
+#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 867 "c-parse.y"
+#line 866 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 131:
-#line 869 "c-parse.y"
+#line 868 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 132:
-#line 871 "c-parse.y"
+#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 133:
-#line 876 "c-parse.y"
+#line 875 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 134:
-#line 881 "c-parse.y"
+#line 880 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 135:
-#line 883 "c-parse.y"
+#line 882 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 136:
-#line 888 "c-parse.y"
+#line 887 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 137:
-#line 890 "c-parse.y"
+#line 889 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 138:
-#line 892 "c-parse.y"
+#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 139:
-#line 905 "c-parse.y"
+#line 904 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 140:
-#line 907 "c-parse.y"
+#line 906 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
     break;}
 case 141:
-#line 909 "c-parse.y"
+#line 908 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 142:
-#line 911 "c-parse.y"
+#line 910 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 143:
-#line 916 "c-parse.y"
+#line 915 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
 case 144:
-#line 919 "c-parse.y"
+#line 918 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 145:
-#line 921 "c-parse.y"
+#line 920 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
 case 146:
-#line 924 "c-parse.y"
+#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));
@@ -2547,190 +2597,182 @@ case 146:
                  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
     break;}
 case 147:
-#line 938 "c-parse.y"
+#line 937 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 148:
-#line 940 "c-parse.y"
+#line 939 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 149:
-#line 944 "c-parse.y"
+#line 943 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 150:
-#line 946 "c-parse.y"
+#line 945 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 153:
-#line 956 "c-parse.y"
+#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 154:
-#line 960 "c-parse.y"
+#line 959 "c-parse.y"
 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
     break;}
 case 155:
-#line 962 "c-parse.y"
+#line 961 "c-parse.y"
 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
     break;}
 case 163:
-#line 984 "c-parse.y"
+#line 983 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 164:
-#line 986 "c-parse.y"
+#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 165:
-#line 993 "c-parse.y"
+#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 166:
-#line 998 "c-parse.y"
+#line 997 "c-parse.y"
 { finish_init ();
                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
     break;}
 case 167:
-#line 1001 "c-parse.y"
+#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 168:
-#line 1009 "c-parse.y"
+#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 169:
-#line 1014 "c-parse.y"
+#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 170:
-#line 1018 "c-parse.y"
+#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 171:
-#line 1026 "c-parse.y"
+#line 1025 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 172:
-#line 1028 "c-parse.y"
+#line 1027 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 173:
-#line 1033 "c-parse.y"
+#line 1032 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 174:
-#line 1035 "c-parse.y"
+#line 1034 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 175:
-#line 1040 "c-parse.y"
+#line 1039 "c-parse.y"
 { yyval.ttype = yyvsp[-2].ttype; ;
     break;}
 case 176:
-#line 1045 "c-parse.y"
+#line 1044 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 177:
-#line 1047 "c-parse.y"
+#line 1046 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 178:
-#line 1052 "c-parse.y"
+#line 1051 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 179:
-#line 1054 "c-parse.y"
+#line 1053 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 180:
-#line 1056 "c-parse.y"
+#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 1058 "c-parse.y"
+#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 182:
-#line 1060 "c-parse.y"
+#line 1059 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 188:
-#line 1078 "c-parse.y"
-{ really_start_incremental_init (NULL_TREE);
-                 /* Note that the call to clear_momentary
-                    is in process_init_element.  */
-                 push_momentary (); ;
+#line 1077 "c-parse.y"
+{ really_start_incremental_init (NULL_TREE); ;
     break;}
 case 189:
-#line 1083 "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 1079 "c-parse.y"
+{ yyval.ttype = pop_init_level (0); ;
     break;}
 case 190:
-#line 1091 "c-parse.y"
+#line 1081 "c-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 191:
-#line 1097 "c-parse.y"
+#line 1087 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids empty initializer braces"); ;
     break;}
 case 197:
-#line 1113 "c-parse.y"
+#line 1103 "c-parse.y"
 { set_init_label (yyvsp[-1].ttype); ;
     break;}
 case 200:
-#line 1120 "c-parse.y"
+#line 1110 "c-parse.y"
 { push_init_level (0); ;
     break;}
 case 201:
-#line 1122 "c-parse.y"
+#line 1112 "c-parse.y"
 { process_init_element (pop_init_level (0)); ;
     break;}
 case 202:
-#line 1124 "c-parse.y"
+#line 1114 "c-parse.y"
 { process_init_element (yyvsp[0].ttype); ;
     break;}
 case 206:
-#line 1135 "c-parse.y"
+#line 1125 "c-parse.y"
 { set_init_label (yyvsp[0].ttype); ;
     break;}
 case 207:
-#line 1140 "c-parse.y"
+#line 1130 "c-parse.y"
 { set_init_index (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 208:
-#line 1142 "c-parse.y"
+#line 1132 "c-parse.y"
 { set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
     break;}
 case 209:
-#line 1147 "c-parse.y"
+#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_function_context ();
                      YYERROR1;
@@ -2738,22 +2780,22 @@ case 209:
                  reinit_parse_for_function (); ;
     break;}
 case 210:
-#line 1159 "c-parse.y"
+#line 1149 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 211:
-#line 1167 "c-parse.y"
+#line 1157 "c-parse.y"
 { finish_function (1);
                  pop_function_context (); ;
     break;}
 case 212:
-#line 1173 "c-parse.y"
+#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_function_context ();
                      YYERROR1;
@@ -2761,385 +2803,388 @@ case 212:
                  reinit_parse_for_function (); ;
     break;}
 case 213:
-#line 1185 "c-parse.y"
+#line 1175 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 214:
-#line 1193 "c-parse.y"
+#line 1183 "c-parse.y"
 { finish_function (1);
                  pop_function_context (); ;
     break;}
 case 217:
-#line 1209 "c-parse.y"
+#line 1199 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 218:
-#line 1211 "c-parse.y"
+#line 1201 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 219:
-#line 1216 "c-parse.y"
+#line 1206 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 220:
-#line 1218 "c-parse.y"
+#line 1208 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 221:
-#line 1220 "c-parse.y"
+#line 1210 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 222:
-#line 1227 "c-parse.y"
+#line 1217 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 224:
-#line 1238 "c-parse.y"
+#line 1228 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 225:
-#line 1243 "c-parse.y"
+#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 226:
-#line 1248 "c-parse.y"
+#line 1238 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 227:
-#line 1250 "c-parse.y"
+#line 1240 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 228:
-#line 1252 "c-parse.y"
+#line 1242 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 229:
-#line 1259 "c-parse.y"
+#line 1249 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 231:
-#line 1268 "c-parse.y"
+#line 1258 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 232:
-#line 1273 "c-parse.y"
+#line 1263 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 233:
-#line 1275 "c-parse.y"
+#line 1265 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 234:
-#line 1277 "c-parse.y"
+#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 235:
-#line 1282 "c-parse.y"
+#line 1272 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 236:
-#line 1284 "c-parse.y"
+#line 1274 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 237:
-#line 1291 "c-parse.y"
+#line 1281 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 239:
-#line 1297 "c-parse.y"
+#line 1287 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 240:
-#line 1299 "c-parse.y"
+#line 1289 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 241:
-#line 1304 "c-parse.y"
+#line 1294 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 242:
-#line 1306 "c-parse.y"
+#line 1296 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 243:
-#line 1311 "c-parse.y"
+#line 1301 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 244:
-#line 1313 "c-parse.y"
+#line 1303 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 245:
-#line 1318 "c-parse.y"
+#line 1308 "c-parse.y"
 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
                  /* Start scope of tag before parsing components.  */
                ;
     break;}
 case 246:
-#line 1322 "c-parse.y"
+#line 1312 "c-parse.y"
 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
     break;}
 case 247:
-#line 1324 "c-parse.y"
+#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 248:
-#line 1328 "c-parse.y"
+#line 1318 "c-parse.y"
 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
     break;}
 case 249:
-#line 1330 "c-parse.y"
+#line 1320 "c-parse.y"
 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
     break;}
 case 250:
-#line 1332 "c-parse.y"
+#line 1322 "c-parse.y"
 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
     break;}
 case 251:
-#line 1334 "c-parse.y"
+#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 252:
-#line 1338 "c-parse.y"
+#line 1328 "c-parse.y"
 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
     break;}
 case 253:
-#line 1340 "c-parse.y"
-{ yyvsp[0].itype = suspend_momentary ();
-                 yyval.ttype = start_enum (yyvsp[-1].ttype); ;
+#line 1330 "c-parse.y"
+{ yyval.ttype = start_enum (yyvsp[-1].ttype); ;
     break;}
 case 254:
-#line 1343 "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 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 1346 "c-parse.y"
-{ yyvsp[0].itype = suspend_momentary ();
-                 yyval.ttype = start_enum (NULL_TREE); ;
+#line 1335 "c-parse.y"
+{ yyval.ttype = start_enum (NULL_TREE); ;
     break;}
 case 256:
-#line 1349 "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 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 1352 "c-parse.y"
+#line 1340 "c-parse.y"
 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
     break;}
 case 261:
-#line 1363 "c-parse.y"
-{ if (pedantic && ! flag_isoc9x)
+#line 1351 "c-parse.y"
+{ if (pedantic && ! flag_isoc99)
                    pedwarn ("comma at end of enumerator list"); ;
     break;}
 case 262:
-#line 1369 "c-parse.y"
+#line 1357 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 263:
-#line 1371 "c-parse.y"
+#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 264:
-#line 1376 "c-parse.y"
+#line 1364 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 265:
-#line 1378 "c-parse.y"
+#line 1366 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
     break;}
 case 266:
-#line 1380 "c-parse.y"
+#line 1368 "c-parse.y"
 { if (pedantic)
                    pedwarn ("extra semicolon in struct or union specified"); ;
     break;}
 case 267:
-#line 1395 "c-parse.y"
+#line 1383 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
-                 declspec_stack = TREE_CHAIN (declspec_stack);
-                 resume_momentary (yyvsp[-1].itype); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 268:
-#line 1401 "c-parse.y"
-{ if (pedantic)
-                   pedwarn ("ANSI C forbids member declarations with no members");
-                 shadow_tag(yyvsp[0].ttype);
-                 yyval.ttype = NULL_TREE; ;
+#line 1388 "c-parse.y"
+{
+                 /* Support for unnamed structs or unions as members of 
+                    structs or unions (which is [a] useful and [b] supports 
+                    MS P-SDK).  */
+                 if (pedantic)
+                   pedwarn ("ANSI C doesn't support unnamed structs/unions");
+
+                 yyval.ttype = grokfield(yyvsp[-2].filename, yyvsp[-1].lineno, NULL, current_declspecs, NULL_TREE);
+                 current_declspecs = TREE_VALUE (declspec_stack);
+                 prefix_attributes = TREE_PURPOSE (declspec_stack);
+                 declspec_stack = TREE_CHAIN (declspec_stack);
+               ;
     break;}
 case 269:
-#line 1406 "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);
-                 resume_momentary (yyvsp[-1].itype); ;
+                 declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 270:
-#line 1412 "c-parse.y"
+#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 271:
-#line 1417 "c-parse.y"
+#line 1411 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 272:
-#line 1419 "c-parse.y"
+#line 1413 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
-                 pedantic = yyvsp[-1].itype; ;
+                 RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
     break;}
 case 274:
-#line 1426 "c-parse.y"
+#line 1420 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 275:
-#line 1431 "c-parse.y"
+#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 276:
-#line 1435 "c-parse.y"
+#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 277:
-#line 1438 "c-parse.y"
+#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 279:
-#line 1450 "c-parse.y"
+#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 280:
-#line 1455 "c-parse.y"
+#line 1449 "c-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 281:
-#line 1461 "c-parse.y"
+#line 1455 "c-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 282:
-#line 1463 "c-parse.y"
+#line 1457 "c-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 283:
-#line 1468 "c-parse.y"
+#line 1462 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 284:
-#line 1470 "c-parse.y"
+#line 1464 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 285:
-#line 1475 "c-parse.y"
+#line 1469 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 287:
-#line 1481 "c-parse.y"
+#line 1475 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 288:
-#line 1483 "c-parse.y"
+#line 1477 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 289:
-#line 1488 "c-parse.y"
+#line 1482 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 290:
-#line 1490 "c-parse.y"
+#line 1484 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 291:
-#line 1495 "c-parse.y"
+#line 1489 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 292:
-#line 1498 "c-parse.y"
+#line 1492 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 293:
-#line 1500 "c-parse.y"
+#line 1494 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 294:
-#line 1502 "c-parse.y"
+#line 1496 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 295:
-#line 1504 "c-parse.y"
+#line 1498 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 296:
-#line 1506 "c-parse.y"
+#line 1500 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 297:
-#line 1508 "c-parse.y"
+#line 1502 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 298:
-#line 1510 "c-parse.y"
+#line 1504 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 299:
-#line 1512 "c-parse.y"
+#line 1506 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
     break;}
 case 300:
-#line 1516 "c-parse.y"
+#line 1510 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 301:
-#line 1525 "c-parse.y"
+#line 1519 "c-parse.y"
 {
                  if (pedantic && yyvsp[0].ends_in_label)
                    pedwarn ("ANSI C forbids label at end of compound statement");
                ;
     break;}
 case 303:
-#line 1534 "c-parse.y"
+#line 1528 "c-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
 case 304:
-#line 1536 "c-parse.y"
+#line 1530 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
 case 308:
-#line 1548 "c-parse.y"
+#line 1542 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  pushlevel (0);
                  clear_last_expr ();
-                 push_momentary ();
                  expand_start_bindings (0);
                ;
     break;}
 case 310:
-#line 1561 "c-parse.y"
+#line 1554 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids label declarations"); ;
     break;}
 case 313:
-#line 1572 "c-parse.y"
+#line 1565 "c-parse.y"
 { tree link;
                  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
                    {
@@ -3150,49 +3195,37 @@ case 313:
                ;
     break;}
 case 314:
-#line 1586 "c-parse.y"
+#line 1579 "c-parse.y"
 {;
     break;}
 case 316:
-#line 1590 "c-parse.y"
+#line 1583 "c-parse.y"
 { compstmt_count++; ;
     break;}
 case 317:
-#line 1593 "c-parse.y"
+#line 1586 "c-parse.y"
 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
     break;}
 case 318:
-#line 1595 "c-parse.y"
+#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 319:
-#line 1603 "c-parse.y"
+#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 320:
-#line 1611 "c-parse.y"
+#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 1622 "c-parse.y"
+#line 1603 "c-parse.y"
 { if (current_function_decl == 0)
                    {
                      error ("braced-group within expression allowed only inside a function");
@@ -3210,11 +3243,11 @@ case 321:
                ;
     break;}
 case 322:
-#line 1639 "c-parse.y"
+#line 1620 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 325:
-#line 1653 "c-parse.y"
+#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);
@@ -3224,7 +3257,7 @@ case 325:
                  position_after_white_space (); ;
     break;}
 case 326:
-#line 1667 "c-parse.y"
+#line 1648 "c-parse.y"
 { stmt_count++;
                  compstmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
@@ -3234,43 +3267,43 @@ case 326:
                  position_after_white_space (); ;
     break;}
 case 327:
-#line 1675 "c-parse.y"
+#line 1656 "c-parse.y"
 { expand_loop_continue_here (); ;
     break;}
 case 328:
-#line 1679 "c-parse.y"
+#line 1660 "c-parse.y"
 { yyval.filename = input_filename; ;
     break;}
 case 329:
-#line 1683 "c-parse.y"
+#line 1664 "c-parse.y"
 { yyval.lineno = lineno; ;
     break;}
 case 330:
-#line 1688 "c-parse.y"
+#line 1669 "c-parse.y"
 { ;
     break;}
 case 331:
-#line 1693 "c-parse.y"
+#line 1674 "c-parse.y"
 { ;
     break;}
 case 332:
-#line 1698 "c-parse.y"
+#line 1679 "c-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
 case 333:
-#line 1703 "c-parse.y"
+#line 1684 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
 case 334:
-#line 1705 "c-parse.y"
+#line 1686 "c-parse.y"
 { yyval.ends_in_label = 1; ;
     break;}
 case 335:
-#line 1711 "c-parse.y"
+#line 1692 "c-parse.y"
 { stmt_count++; ;
     break;}
 case 337:
-#line 1714 "c-parse.y"
+#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
@@ -3285,23 +3318,22 @@ case 337:
                      || 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 338:
-#line 1731 "c-parse.y"
+#line 1711 "c-parse.y"
 { c_expand_start_else ();
                  yyvsp[-1].itype = stmt_count;
                  position_after_white_space (); ;
     break;}
 case 339:
-#line 1735 "c-parse.y"
+#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 340:
-#line 1739 "c-parse.y"
+#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
@@ -3312,11 +3344,11 @@ case 340:
                                                "empty body in an if-statement"); ;
     break;}
 case 341:
-#line 1751 "c-parse.y"
+#line 1731 "c-parse.y"
 { c_expand_end_cond (); ;
     break;}
 case 342:
-#line 1753 "c-parse.y"
+#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,
@@ -3328,7 +3360,7 @@ case 342:
                  emit_nop (); ;
     break;}
 case 343:
-#line 1763 "c-parse.y"
+#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.  */
@@ -3339,24 +3371,22 @@ case 343:
                  position_after_white_space (); ;
     break;}
 case 344:
-#line 1772 "c-parse.y"
+#line 1752 "c-parse.y"
 { expand_end_loop (); ;
     break;}
 case 345:
-#line 1775 "c-parse.y"
+#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 346:
-#line 1782 "c-parse.y"
-{ expand_end_loop ();
-                 clear_momentary (); ;
+#line 1761 "c-parse.y"
+{ expand_end_loop (); ;
     break;}
 case 347:
-#line 1786 "c-parse.y"
+#line 1764 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  /* See comment in `while' alternative, above.  */
@@ -3369,12 +3399,12 @@ case 347:
                ;
     break;}
 case 348:
-#line 1798 "c-parse.y"
+#line 1776 "c-parse.y"
 { yyvsp[0].lineno = lineno;
                  yyval.filename = input_filename; ;
     break;}
 case 349:
-#line 1801 "c-parse.y"
+#line 1779 "c-parse.y"
 { 
                  /* Start the loop.  Doing this after parsing
                     all the expressions ensures we will end the loop.  */
@@ -3384,72 +3414,58 @@ case 349:
                  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 350:
-#line 1817 "c-parse.y"
+#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 351:
-#line 1828 "c-parse.y"
+#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 352:
-#line 1836 "c-parse.y"
-{ expand_end_case (yyvsp[-3].ttype);
-                 if (yychar == CONSTANT || yychar == STRING)
-                   pop_momentary_nofree ();
-                 else
-                   pop_momentary (); ;
+#line 1804 "c-parse.y"
+{ expand_end_case (yyvsp[-3].ttype); ;
     break;}
 case 353:
-#line 1842 "c-parse.y"
+#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 354:
-#line 1847 "c-parse.y"
+#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 355:
-#line 1852 "c-parse.y"
+#line 1816 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  c_expand_return (NULL_TREE); ;
     break;}
 case 356:
-#line 1856 "c-parse.y"
+#line 1820 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
                  c_expand_return (yyvsp[-1].ttype); ;
     break;}
 case 357:
-#line 1860 "c-parse.y"
+#line 1824 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
                  STRIP_NOPS (yyvsp[-2].ttype);
@@ -3461,7 +3477,7 @@ case 357:
                    error ("argument of `asm' is not a constant string"); ;
     break;}
 case 358:
-#line 1871 "c-parse.y"
+#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,
@@ -3469,7 +3485,7 @@ case 358:
                                         input_filename, lineno); ;
     break;}
 case 359:
-#line 1878 "c-parse.y"
+#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,
@@ -3477,7 +3493,7 @@ case 359:
                                         input_filename, lineno); ;
     break;}
 case 360:
-#line 1886 "c-parse.y"
+#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,
@@ -3485,7 +3501,7 @@ case 360:
                                         input_filename, lineno); ;
     break;}
 case 361:
-#line 1892 "c-parse.y"
+#line 1856 "c-parse.y"
 { tree decl;
                  stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -3498,7 +3514,7 @@ case 361:
                ;
     break;}
 case 362:
-#line 1903 "c-parse.y"
+#line 1867 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids `goto *expr;'");
                  stmt_count++;
@@ -3506,7 +3522,7 @@ case 362:
                  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
     break;}
 case 365:
-#line 1918 "c-parse.y"
+#line 1882 "c-parse.y"
 {
            /* The value returned by this action is  */
            /*      1 if everything is OK */ 
@@ -3529,14 +3545,14 @@ case 365:
          ;
     break;}
 case 366:
-#line 1939 "c-parse.y"
+#line 1903 "c-parse.y"
 {
            if (yyvsp[-1].itype)
              iterator_for_loop_end (yyvsp[-3].ttype);
          ;
     break;}
 case 367:
-#line 1974 "c-parse.y"
+#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);
@@ -3569,7 +3585,7 @@ case 367:
                  position_after_white_space (); ;
     break;}
 case 368:
-#line 2005 "c-parse.y"
+#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
@@ -3602,7 +3618,7 @@ case 368:
                  position_after_white_space (); ;
     break;}
 case 369:
-#line 2036 "c-parse.y"
+#line 1996 "c-parse.y"
 {
                  tree duplicate;
                  register tree label
@@ -3619,7 +3635,7 @@ case 369:
                  position_after_white_space (); ;
     break;}
 case 370:
-#line 2051 "c-parse.y"
+#line 2011 "c-parse.y"
 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
                  stmt_count++;
                  emit_nop ();
@@ -3631,52 +3647,52 @@ case 370:
                  position_after_white_space (); ;
     break;}
 case 371:
-#line 2066 "c-parse.y"
+#line 2026 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  yyval.ttype = NULL_TREE; ;
     break;}
 case 372:
-#line 2069 "c-parse.y"
+#line 2029 "c-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
 case 373:
-#line 2074 "c-parse.y"
+#line 2034 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 375:
-#line 2081 "c-parse.y"
+#line 2041 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 378:
-#line 2088 "c-parse.y"
+#line 2048 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 379:
-#line 2093 "c-parse.y"
+#line 2053 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 380:
-#line 2098 "c-parse.y"
+#line 2058 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
 case 381:
-#line 2100 "c-parse.y"
+#line 2060 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
     break;}
 case 382:
-#line 2106 "c-parse.y"
+#line 2066 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (0); ;
     break;}
 case 383:
-#line 2110 "c-parse.y"
+#line 2070 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
 case 385:
-#line 2118 "c-parse.y"
+#line 2078 "c-parse.y"
 { tree parm;
                  if (pedantic)
                    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -3686,19 +3702,19 @@ case 385:
                  clear_parm_order (); ;
     break;}
 case 386:
-#line 2126 "c-parse.y"
+#line 2086 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 387:
-#line 2128 "c-parse.y"
+#line 2088 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
 case 388:
-#line 2134 "c-parse.y"
+#line 2094 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
 case 389:
-#line 2136 "c-parse.y"
+#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.
@@ -3710,90 +3726,85 @@ case 389:
                ;
     break;}
 case 390:
-#line 2146 "c-parse.y"
+#line 2106 "c-parse.y"
 { yyval.ttype = get_parm_info (1); ;
     break;}
 case 391:
-#line 2148 "c-parse.y"
+#line 2108 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
 case 392:
-#line 2153 "c-parse.y"
+#line 2113 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 393:
-#line 2155 "c-parse.y"
+#line 2115 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 394:
-#line 2162 "c-parse.y"
+#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 395:
-#line 2171 "c-parse.y"
+#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 396:
-#line 2180 "c-parse.y"
+#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 397:
-#line 2189 "c-parse.y"
+#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 398:
-#line 2199 "c-parse.y"
+#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 399:
-#line 2213 "c-parse.y"
+#line 2168 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (1); ;
     break;}
 case 400:
-#line 2217 "c-parse.y"
+#line 2172 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
 case 402:
-#line 2225 "c-parse.y"
+#line 2180 "c-parse.y"
 { tree t;
                  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
                    if (TREE_VALUE (t) == NULL_TREE)
@@ -3801,29 +3812,30 @@ case 402:
                  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 403:
-#line 2235 "c-parse.y"
+#line 2190 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 404:
-#line 2237 "c-parse.y"
+#line 2192 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 405:
-#line 2243 "c-parse.y"
+#line 2198 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 406:
-#line 2245 "c-parse.y"
+#line 2200 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 407:
-#line 2250 "c-parse.y"
-{ yyval.itype = pedantic;
-                 pedantic = 0; ;
+#line 2205 "c-parse.y"
+{ yyval.ttype = SAVE_WARN_FLAGS();
+                 pedantic = 0;
+                 warn_pointer_arith = 0; ;
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/cygnus/TBD-TBD/share/bison.simple"
+#line 543 "/usr/lib/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -4018,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 2254 "c-parse.y"
+#line 2210 "c-parse.y"