]> gcc.gnu.org Git - gcc.git/commitdiff
c-parse.in (compstmt_primary_start): New, broken out of first part of compstmt handli...
authorRichard Henderson <rth@cygnus.com>
Thu, 2 Sep 1999 17:20:19 +0000 (10:20 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 2 Sep 1999 17:20:19 +0000 (10:20 -0700)
        * c-parse.in (compstmt_primary_start): New, broken out of first
        part of compstmt handling in primary.
        (primary): Use it.  Add an error clause.
        (compstmt_nostart): Renamed from compstmt; remove all
        initial invocations of compstmt_start.
        (compstmt): New.

From-SVN: r29059

gcc/ChangeLog
gcc/c-parse.c
gcc/c-parse.h
gcc/c-parse.in
gcc/c-parse.y
gcc/objc/objc-parse.c
gcc/objc/objc-parse.y

index a40330ddf5620bccad74ea4eb248cd1cb182e6a8..6a4fbea092cf19ea2944f58ccac60754b5abaf74 100644 (file)
@@ -1,3 +1,12 @@
+Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
+
+       * c-parse.in (compstmt_primary_start): New, broken out of first
+       part of compstmt handling in primary.
+       (primary): Use it.  Add an error clause.
+       (compstmt_nostart): Renamed from compstmt; remove all
+       initial invocations of compstmt_start.
+       (compstmt): New.
+
 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
 
        * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
index 063d3db006ef017cba495f33a0c092f31ac58851..9f2e7aff2cbd903b1be27af7924ac54a874934f7 100644 (file)
@@ -1,73 +1,73 @@
 
 /*  A Bison parser, made from c-parse.y
- by  GNU Bison version 1.25
+ by  GNU Bison version 1.27
   */
 
 #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 56 "c-parse.y"
+#define        IDENTIFIER      257
+#define        TYPENAME        258
+#define        SCSPEC  259
+#define        TYPESPEC        260
+#define        TYPE_QUAL       261
+#define        CONSTANT        262
+#define        STRING  263
+#define        ELLIPSIS        264
+#define        SIZEOF  265
+#define        ENUM    266
+#define        STRUCT  267
+#define        UNION   268
+#define        IF      269
+#define        ELSE    270
+#define        WHILE   271
+#define        DO      272
+#define        FOR     273
+#define        SWITCH  274
+#define        CASE    275
+#define        DEFAULT 276
+#define        BREAK   277
+#define        CONTINUE        278
+#define        RETURN  279
+#define        GOTO    280
+#define        ASM_KEYWORD     281
+#define        TYPEOF  282
+#define        ALIGNOF 283
+#define        ATTRIBUTE       284
+#define        EXTENSION       285
+#define        LABEL   286
+#define        REALPART        287
+#define        IMAGPART        288
+#define        VA_ARG  289
+#define        END_OF_LINE     290
+#define        ASSIGN  291
+#define        OROR    292
+#define        ANDAND  293
+#define        EQCOMPARE       294
+#define        ARITHCOMPARE    295
+#define        LSHIFT  296
+#define        RSHIFT  297
+#define        UNARY   298
+#define        PLUSPLUS        299
+#define        MINUSMINUS      300
+#define        HYPERUNARY      301
+#define        POINTSAT        302
+#define        INTERFACE       303
+#define        IMPLEMENTATION  304
+#define        END     305
+#define        SELECTOR        306
+#define        DEFS    307
+#define        ENCODE  308
+#define        CLASSNAME       309
+#define        PUBLIC  310
+#define        PRIVATE 311
+#define        PROTECTED       312
+#define        PROTOCOL        313
+#define        OBJECTNAME      314
+#define        CLASS   315
+#define        ALIAS   316
+#define        OBJC_STRING     317
+
+#line 33 "c-parse.y"
 
 #include "config.h"
 #include "system.h"
@@ -96,10 +96,10 @@ const char * const language_string = "GNU C";
 /* Cause the `yydebug' variable to be defined.  */
 #define YYDEBUG 1
 
-#line 87 "c-parse.y"
+#line 64 "c-parse.y"
 typedef union {long itype; tree ttype; enum tree_code code;
        char *filename; int lineno; int ends_in_label; } YYSTYPE;
-#line 207 "c-parse.y"
+#line 184 "c-parse.y"
 
 /* Number of statements (loosely speaking) and compound statements 
    seen so far.  */
@@ -136,11 +136,11 @@ extern void yyprint                       PROTO ((FILE *, int, YYSTYPE));
 
 
 
-#define        YYFINAL         698
+#define        YYFINAL         702
 #define        YYFLAG          -32768
 #define        YYNTBASE        86
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 318 ? yytranslate[x] : 243)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 317 ? yytranslate[x] : 244)
 
 static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -168,13 +168,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,    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
 };
 
 #if YYDEBUG != 0
@@ -188,60 +188,60 @@ static const short yyprhs[] = {     0,
    179,   180,   188,   190,   194,   198,   202,   206,   210,   214,
    218,   222,   226,   230,   234,   238,   239,   244,   245,   250,
    251,   252,   260,   261,   267,   271,   275,   277,   279,   281,
-   285,   289,   290,   295,   300,   305,   309,   313,   316,   319,
-   321,   324,   325,   327,   330,   334,   336,   338,   341,   344,
-   349,   354,   357,   360,   364,   366,   368,   371,   374,   375,
-   376,   381,   386,   390,   394,   397,   400,   403,   406,   410,
-   411,   414,   417,   420,   423,   427,   428,   431,   434,   436,
-   438,   441,   444,   446,   448,   451,   454,   457,   461,   462,
-   465,   467,   469,   471,   476,   481,   483,   485,   487,   489,
-   493,   495,   499,   500,   505,   506,   513,   517,   518,   525,
-   529,   530,   532,   534,   537,   544,   546,   550,   551,   553,
-   558,   565,   570,   572,   574,   576,   578,   580,   581,   586,
-   588,   589,   592,   594,   598,   602,   605,   606,   611,   613,
-   614,   619,   621,   623,   625,   628,   631,   637,   641,   642,
-   643,   649,   650,   651,   657,   659,   661,   665,   669,   674,
-   678,   682,   686,   688,   692,   697,   702,   706,   710,   714,
-   716,   720,   724,   728,   733,   738,   742,   746,   748,   750,
-   753,   755,   758,   760,   763,   764,   772,   778,   781,   782,
-   790,   796,   799,   800,   809,   810,   818,   821,   822,   824,
-   825,   827,   829,   832,   833,   837,   840,   844,   846,   850,
-   852,   854,   857,   859,   863,   868,   875,   881,   883,   887,
-   889,   891,   895,   898,   901,   902,   904,   906,   909,   910,
-   913,   917,   921,   924,   928,   933,   937,   940,   944,   947,
-   951,   953,   955,   958,   961,   962,   964,   967,   968,   969,
-   971,   973,   976,   980,   982,   985,   987,   990,   997,  1003,
-  1009,  1012,  1015,  1020,  1021,  1026,  1027,  1028,  1032,  1037,
-  1041,  1043,  1045,  1047,  1049,  1052,  1053,  1058,  1060,  1064,
-  1065,  1066,  1074,  1080,  1083,  1084,  1085,  1086,  1099,  1100,
-  1107,  1110,  1113,  1116,  1120,  1127,  1136,  1147,  1160,  1164,
-  1169,  1171,  1173,  1174,  1181,  1185,  1191,  1194,  1198,  1199,
-  1201,  1202,  1204,  1205,  1207,  1209,  1213,  1218,  1220,  1224,
-  1225,  1228,  1231,  1232,  1237,  1240,  1241,  1243,  1245,  1249,
-  1251,  1255,  1260,  1265,  1270,  1275,  1280,  1281,  1284,  1286,
-  1289,  1291,  1295,  1297,  1301
+   285,   289,   293,   297,   302,   307,   311,   315,   318,   321,
+   323,   326,   327,   329,   332,   336,   338,   340,   343,   346,
+   351,   356,   359,   362,   366,   368,   370,   373,   376,   377,
+   378,   383,   388,   392,   396,   399,   402,   405,   408,   412,
+   413,   416,   419,   422,   425,   429,   430,   433,   436,   438,
+   440,   443,   446,   448,   450,   453,   456,   459,   463,   464,
+   467,   469,   471,   473,   478,   483,   485,   487,   489,   491,
+   495,   497,   501,   502,   507,   508,   515,   519,   520,   527,
+   531,   532,   534,   536,   539,   546,   548,   552,   553,   555,
+   560,   567,   572,   574,   576,   578,   580,   582,   583,   588,
+   590,   591,   594,   596,   600,   604,   607,   608,   613,   615,
+   616,   621,   623,   625,   627,   630,   633,   639,   643,   644,
+   645,   651,   652,   653,   659,   661,   663,   667,   671,   676,
+   680,   684,   688,   690,   694,   699,   704,   708,   712,   716,
+   718,   722,   726,   730,   735,   740,   744,   748,   750,   752,
+   755,   757,   760,   762,   765,   766,   774,   780,   783,   784,
+   792,   798,   801,   802,   811,   812,   820,   823,   824,   826,
+   827,   829,   831,   834,   835,   839,   842,   846,   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
 };
 
 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,   242,    90,     0,   124,   138,    79,     0,   131,   124,
-   138,    79,     0,   127,   124,   137,    79,     0,   131,    79,
-     0,   127,    79,     0,     1,    79,     0,     1,    80,     0,
-    79,     0,     0,     0,   127,   124,   166,    93,   118,    94,
-   200,     0,   127,   124,   166,     1,     0,     0,     0,   131,
-   124,   169,    95,   118,    96,   200,     0,   131,   124,   169,
-     1,     0,     0,     0,   124,   169,    97,   118,    98,   200,
-     0,   124,   169,     1,     0,     3,     0,     4,     0,    45,
+     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,   242,
+   103,    83,   109,     0,   115,     0,    52,   107,     0,   243,
    107,     0,   100,   107,     0,    42,    99,     0,   105,   104,
-     0,   105,    61,   187,    78,     0,   106,   104,     0,   106,
-    61,   187,    78,     0,    33,   107,     0,    34,   107,     0,
-    35,    61,   109,    83,   187,    78,     0,    11,     0,    29,
-     0,   104,     0,    61,   187,    78,   107,     0,     0,    61,
-   187,    78,    84,   108,   152,    80,     0,   107,     0,   109,
+     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,
@@ -250,157 +250,157 @@ static const short yyrhs[] = {    -1,
    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,   117,     0,
-    61,   101,    78,     0,    61,     1,    78,     0,     0,    61,
-   116,   202,    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,
-   117,     9,     0,     0,   120,     0,   120,    10,     0,   207,
-   208,   121,     0,   119,     0,   195,     0,   120,   119,     0,
-   119,   195,     0,   129,   124,   137,    79,     0,   132,   124,
-   138,    79,     0,   129,    79,     0,   132,    79,     0,   207,
-   208,   126,     0,   122,     0,   195,     0,   123,   122,     0,
-   122,   195,     0,     0,     0,   127,   124,   137,    79,     0,
-   131,   124,   138,    79,     0,   127,   124,   160,     0,   131,
-   124,   163,     0,   127,    79,     0,   131,    79,     0,   242,
-   126,     0,   135,   128,     0,   131,   135,   128,     0,     0,
-   128,   136,     0,   128,     5,     0,   128,   145,     0,   135,
-   130,     0,   132,   135,   130,     0,     0,   130,   136,     0,
-   130,     5,     0,   132,     0,   145,     0,   131,   132,     0,
-   131,   145,     0,     7,     0,     5,     0,   132,     7,     0,
-   132,     5,     0,   135,   134,     0,   189,   135,   134,     0,
-     0,   134,   136,     0,     6,     0,   173,     0,     4,     0,
-    28,    61,   101,    78,     0,    28,    61,   187,    78,     0,
-     6,     0,     7,     0,   173,     0,   140,     0,   137,    83,
-   140,     0,   142,     0,   138,    83,   140,     0,     0,    27,
-    61,   117,    78,     0,     0,   166,   139,   144,    38,   141,
-   150,     0,   166,   139,   144,     0,     0,   169,   139,   144,
-    38,   143,   150,     0,   169,   139,   144,     0,     0,   145,
-     0,   146,     0,   145,   146,     0,    30,    61,    61,   147,
-    78,    78,     0,   148,     0,   147,    83,   148,     0,     0,
-   149,     0,   149,    61,     3,    78,     0,   149,    61,     3,
-    83,   103,    78,     0,   149,    61,   102,    78,     0,    99,
-     0,     5,     0,     6,     0,     7,     0,   109,     0,     0,
-    84,   151,   152,    80,     0,     1,     0,     0,   153,   178,
-     0,   154,     0,   153,    83,   154,     0,   158,    38,   156,
-     0,   159,   156,     0,     0,    99,    40,   155,   156,     0,
-   156,     0,     0,    84,   157,   152,    80,     0,   109,     0,
-     1,     0,   159,     0,   158,   159,     0,    60,    99,     0,
-    62,   109,    10,   109,    85,     0,    62,   109,    85,     0,
-     0,     0,   166,   161,   118,   162,   202,     0,     0,     0,
-   169,   164,   118,   165,   202,     0,   167,     0,   169,     0,
-    61,   167,    78,     0,   167,    61,   237,     0,   167,    62,
-   101,    85,     0,   167,    62,    85,     0,    52,   190,   167,
-     0,   145,   125,   167,     0,     4,     0,   168,    61,   237,
-     0,   168,    62,    52,    85,     0,   168,    62,   101,    85,
-     0,   168,    62,    85,     0,    52,   190,   168,     0,   145,
-   125,   168,     0,     4,     0,   169,    61,   237,     0,    61,
-   169,    78,     0,    52,   190,   169,     0,   169,    62,    52,
-    85,     0,   169,    62,   101,    85,     0,   169,    62,    85,
-     0,   145,   125,   169,     0,     3,     0,    13,     0,    13,
-   145,     0,    14,     0,    14,   145,     0,    12,     0,    12,
-   145,     0,     0,   170,    99,    84,   174,   180,    80,   144,
-     0,   170,    84,   180,    80,   144,     0,   170,    99,     0,
-     0,   171,    99,    84,   175,   180,    80,   144,     0,   171,
-    84,   180,    80,   144,     0,   171,    99,     0,     0,   172,
-    99,    84,   176,   185,   179,    80,   144,     0,     0,   172,
-    84,   177,   185,   179,    80,   144,     0,   172,    99,     0,
-     0,    83,     0,     0,    83,     0,   181,     0,   181,   182,
-     0,     0,   181,   182,    79,     0,   181,    79,     0,   133,
-   124,   183,     0,   133,     0,   189,   124,   183,     0,   189,
-     0,     1,     0,   242,   182,     0,   184,     0,   183,    83,
-   184,     0,   207,   208,   166,   144,     0,   207,   208,   166,
-    40,   109,   144,     0,   207,   208,    40,   109,   144,     0,
-   186,     0,   185,    83,   186,     0,     1,     0,    99,     0,
-    99,    38,   109,     0,   133,   188,     0,   189,   188,     0,
-     0,   191,     0,     7,     0,   189,     7,     0,     0,   190,
-     7,     0,    61,   191,    78,     0,    52,   190,   191,     0,
-    52,   190,     0,   191,    61,   230,     0,   191,    62,   101,
-    85,     0,   191,    62,    85,     0,    61,   230,     0,    62,
-   101,    85,     0,    62,    85,     0,   145,   125,   191,     0,
-   193,     0,   210,     0,   193,   210,     0,   193,   195,     0,
-     0,   192,     0,     1,    79,     0,     0,     0,   198,     0,
-   199,     0,   198,   199,     0,    32,   241,    79,     0,   202,
-     0,     1,   202,     0,    84,     0,   201,    80,     0,   201,
-   196,   197,   123,   194,    80,     0,   201,   196,   197,     1,
-    80,     0,   201,   196,   197,   192,    80,     0,   204,   209,
-     0,   204,     1,     0,    15,    61,   101,    78,     0,     0,
-    18,   206,   209,    17,     0,     0,     0,   207,   208,   212,
-     0,   207,   208,   223,   209,     0,   207,   208,   211,     0,
-   212,     0,   223,     0,   202,     0,   220,     0,   101,    79,
-     0,     0,   203,    16,   213,   209,     0,   203,     0,   203,
-    16,     1,     0,     0,     0,    17,   214,    61,   101,    78,
-   215,   209,     0,   205,    61,   101,    78,    79,     0,   205,
-     1,     0,     0,     0,     0,    19,    61,   225,    79,   216,
-   225,    79,   217,   225,    78,   218,   209,     0,     0,    20,
-    61,   101,    78,   219,   209,     0,    23,    79,     0,    24,
-    79,     0,    25,    79,     0,    25,   101,    79,     0,    27,
-   224,    61,   101,    78,    79,     0,    27,   224,    61,   101,
-    40,   226,    78,    79,     0,    27,   224,    61,   101,    40,
-   226,    40,   226,    78,    79,     0,    27,   224,    61,   101,
-    40,   226,    40,   226,    40,   229,    78,    79,     0,    26,
-    99,    79,     0,    26,    52,   101,    79,     0,    79,     0,
-   221,     0,     0,    19,    61,   115,    78,   222,   209,     0,
-    21,   109,    40,     0,    21,   109,    10,   109,    40,     0,
-    22,    40,     0,    99,    40,   144,     0,     0,     7,     0,
-     0,   101,     0,     0,   227,     0,   228,     0,   227,    83,
-   228,     0,     9,    61,   101,    78,     0,   117,     0,   229,
-    83,   117,     0,     0,   231,   232,     0,   234,    78,     0,
-     0,   235,    79,   233,   232,     0,     1,    78,     0,     0,
-    10,     0,   235,     0,   235,    83,    10,     0,   236,     0,
-   235,    83,   236,     0,   127,   124,   168,   144,     0,   127,
-   124,   169,   144,     0,   127,   124,   188,   144,     0,   131,
-   124,   169,   144,     0,   131,   124,   188,   144,     0,     0,
-   238,   239,     0,   232,     0,   240,    78,     0,     3,     0,
-   240,    83,     3,     0,    99,     0,   241,    83,    99,     0,
-    31,     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
 };
 
 #endif
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   236,   241,   255,   257,   257,   258,   260,   262,   263,   271,
-   275,   286,   291,   296,   298,   300,   301,   302,   307,   314,
-   316,   321,   326,   332,   334,   339,   344,   350,   352,   357,
-   364,   366,   369,   371,   373,   375,   377,   379,   381,   385,
-   389,   392,   395,   398,   402,   404,   407,   410,   414,   442,
-   448,   451,   454,   457,   459,   461,   465,   469,   473,   475,
-   478,   482,   509,   511,   513,   515,   517,   519,   521,   523,
-   525,   527,   529,   531,   533,   535,   539,   541,   545,   547,
-   550,   554,   556,   563,   566,   574,   585,   684,   685,   687,
-   693,   695,   709,   732,   734,   736,   740,   746,   748,   753,
-   755,   760,   762,   763,   773,   778,   780,   781,   782,   789,
-   795,   800,   803,   811,   816,   818,   819,   820,   827,   838,
-   842,   848,   853,   858,   863,   865,   867,   876,   879,   883,
-   885,   887,   892,   896,   899,   903,   906,   908,   920,   923,
-   925,   927,   931,   935,   937,   940,   953,   956,   960,   962,
-   970,   971,   972,   976,   978,   984,   985,   986,   989,   991,
-   994,   996,   999,  1002,  1008,  1015,  1017,  1024,  1031,  1034,
-  1041,  1044,  1048,  1051,  1055,  1060,  1063,  1067,  1070,  1072,
-  1074,  1076,  1083,  1085,  1086,  1087,  1092,  1094,  1099,  1107,
-  1112,  1116,  1119,  1121,  1126,  1128,  1129,  1132,  1132,  1135,
-  1138,  1140,  1142,  1145,  1147,  1150,  1156,  1158,  1162,  1173,
-  1181,  1185,  1196,  1204,  1211,  1213,  1218,  1221,  1226,  1228,
-  1230,  1237,  1239,  1247,  1253,  1258,  1260,  1262,  1269,  1271,
-  1277,  1283,  1285,  1287,  1292,  1294,  1301,  1303,  1306,  1309,
-  1313,  1316,  1320,  1323,  1327,  1332,  1334,  1338,  1340,  1342,
-  1344,  1348,  1350,  1353,  1356,  1359,  1362,  1366,  1368,  1371,
-  1373,  1378,  1381,  1386,  1388,  1390,  1404,  1411,  1416,  1422,
-  1427,  1429,  1434,  1436,  1440,  1444,  1448,  1458,  1460,  1465,
-  1470,  1473,  1477,  1480,  1484,  1487,  1490,  1493,  1497,  1500,
-  1504,  1508,  1510,  1512,  1514,  1516,  1518,  1520,  1522,  1526,
-  1534,  1542,  1544,  1546,  1550,  1552,  1555,  1558,  1569,  1571,
-  1576,  1578,  1581,  1595,  1598,  1601,  1603,  1605,  1613,  1621,
-  1632,  1637,  1640,  1654,  1663,  1667,  1671,  1675,  1681,  1685,
-  1690,  1693,  1698,  1701,  1702,  1719,  1724,  1727,  1739,  1741,
-  1751,  1761,  1762,  1770,  1773,  1785,  1789,  1806,  1816,  1825,
-  1830,  1835,  1840,  1844,  1848,  1859,  1866,  1873,  1880,  1891,
-  1897,  1900,  1905,  1928,  1962,  1993,  2024,  2039,  2053,  2057,
-  2061,  2064,  2069,  2071,  2074,  2076,  2080,  2085,  2088,  2094,
-  2099,  2104,  2106,  2115,  2116,  2122,  2124,  2134,  2136,  2140,
-  2143,  2149,  2159,  2168,  2177,  2187,  2201,  2206,  2211,  2213,
-  2222,  2225,  2230,  2233,  2237
+   213,   218,   232,   234,   234,   235,   237,   239,   240,   248,
+   252,   263,   268,   273,   275,   277,   278,   279,   284,   291,
+   293,   298,   303,   309,   311,   316,   321,   327,   329,   334,
+   341,   343,   346,   348,   350,   352,   354,   356,   358,   362,
+   366,   369,   372,   375,   379,   381,   384,   387,   391,   419,
+   425,   428,   431,   434,   436,   438,   442,   446,   450,   452,
+   455,   459,   486,   488,   490,   492,   494,   496,   498,   500,
+   502,   504,   506,   508,   510,   512,   516,   518,   522,   524,
+   527,   531,   533,   540,   543,   551,   562,   661,   662,   664,
+   670,   672,   695,   704,   706,   708,   712,   718,   720,   725,
+   727,   732,   734,   735,   745,   750,   752,   753,   754,   761,
+   767,   772,   775,   783,   788,   790,   791,   792,   799,   810,
+   814,   820,   825,   830,   835,   837,   839,   848,   851,   855,
+   857,   859,   864,   868,   871,   875,   878,   880,   892,   895,
+   897,   899,   903,   907,   909,   912,   925,   928,   932,   934,
+   942,   943,   944,   948,   950,   956,   957,   958,   961,   963,
+   966,   968,   971,   974,   980,   987,   989,   996,  1003,  1006,
+  1013,  1016,  1020,  1023,  1027,  1032,  1035,  1039,  1042,  1044,
+  1046,  1048,  1055,  1057,  1058,  1059,  1064,  1066,  1071,  1079,
+  1084,  1088,  1091,  1093,  1098,  1100,  1101,  1104,  1104,  1107,
+  1110,  1112,  1114,  1117,  1119,  1122,  1128,  1130,  1134,  1145,
+  1153,  1157,  1168,  1176,  1183,  1185,  1190,  1193,  1198,  1200,
+  1202,  1209,  1211,  1219,  1225,  1230,  1232,  1234,  1241,  1243,
+  1249,  1255,  1257,  1259,  1264,  1266,  1273,  1275,  1278,  1281,
+  1285,  1288,  1292,  1295,  1299,  1304,  1306,  1310,  1312,  1314,
+  1316,  1320,  1322,  1325,  1328,  1331,  1334,  1338,  1340,  1343,
+  1345,  1350,  1353,  1358,  1360,  1362,  1376,  1383,  1388,  1394,
+  1399,  1401,  1406,  1408,  1412,  1416,  1420,  1430,  1432,  1437,
+  1442,  1445,  1449,  1452,  1456,  1459,  1462,  1465,  1469,  1472,
+  1476,  1480,  1482,  1484,  1486,  1488,  1490,  1492,  1494,  1498,
+  1506,  1514,  1516,  1518,  1522,  1524,  1527,  1530,  1541,  1543,
+  1548,  1550,  1553,  1567,  1570,  1573,  1575,  1577,  1585,  1593,
+  1603,  1621,  1626,  1631,  1634,  1648,  1657,  1661,  1665,  1669,
+  1675,  1679,  1684,  1687,  1692,  1695,  1696,  1713,  1718,  1721,
+  1733,  1735,  1745,  1755,  1756,  1764,  1767,  1779,  1783,  1800,
+  1810,  1819,  1824,  1829,  1834,  1838,  1842,  1853,  1860,  1867,
+  1874,  1885,  1891,  1894,  1899,  1922,  1956,  1987,  2018,  2033,
+  2047,  2051,  2055,  2058,  2063,  2065,  2068,  2070,  2074,  2079,
+  2082,  2088,  2093,  2098,  2100,  2109,  2110,  2116,  2118,  2128,
+  2130,  2134,  2137,  2143,  2153,  2162,  2171,  2181,  2195,  2200,
+  2205,  2207,  2216,  2219,  2224,  2227,  2231
 };
 #endif
 
@@ -420,27 +420,28 @@ static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER"
 "program","extdefs","@1","@2","extdef","datadef","fndef","@3","@4","@5","@6",
 "@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist","unary_expr",
 "sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11","@12","@13",
-"@14","primary","@15","string","old_style_parm_decls","lineno_datadecl","datadecls",
+"@14","primary","string","old_style_parm_decls","lineno_datadecl","datadecls",
 "datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
-"initdcl","@16","notype_initdcl","@17","maybe_attribute","attributes","attribute",
-"attribute_list","attrib","any_word","init","@18","initlist_maybe_comma","initlist1",
-"initelt","@19","initval","@20","designator_list","designator","nested_function",
-"@21","@22","notype_nested_function","@23","@24","declarator","after_type_declarator",
+"initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute",
+"attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1",
+"initelt","@18","initval","@19","designator_list","designator","nested_function",
+"@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator",
 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
-"structsp","@25","@26","@27","@28","maybecomma","maybecomma_warn","component_decl_list",
+"structsp","@24","@25","@26","@27","maybecomma","maybecomma_warn","component_decl_list",
 "component_decl_list2","component_decl","components","component_declarator",
 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
-"label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
-"if_prefix","do_stmt_start","@29","save_filename","save_lineno","lineno_labeled_stmt",
-"lineno_stmt_or_label","stmt_or_label","stmt","@30","@31","@32","@33","@34",
-"@35","@36","all_iter_stmt","all_iter_stmt_simple","@37","label","maybe_type_qual",
-"xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
-"@38","parmlist_1","@39","parmlist_2","parms","parm","parmlist_or_identifiers",
-"@40","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension", NULL
+"label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt_nostart",
+"compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start",
+"@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
+"stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt",
+"all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands",
+"nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1",
+"@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1",
+"identifiers","identifiers_or_typenames","extension", NULL
 };
 #endif
 
@@ -454,38 +455,38 @@ static const short yyr1[] = {     0,
    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,   116,   115,   115,   115,   115,   115,   115,   115,   117,
-   117,   118,   118,   118,   119,   120,   120,   120,   120,   121,
-   121,   121,   121,   122,   123,   123,   123,   123,   124,   125,
-   126,   126,   126,   126,   126,   126,   126,   127,   127,   128,
-   128,   128,   128,   129,   129,   130,   130,   130,   131,   131,
-   131,   131,   132,   132,   132,   132,   133,   133,   134,   134,
-   135,   135,   135,   135,   135,   136,   136,   136,   137,   137,
-   138,   138,   139,   139,   141,   140,   140,   143,   142,   142,
-   144,   144,   145,   145,   146,   147,   147,   148,   148,   148,
-   148,   148,   149,   149,   149,   149,   150,   151,   150,   150,
-   152,   152,   153,   153,   154,   154,   155,   154,   154,   157,
-   156,   156,   156,   158,   158,   159,   159,   159,   161,   162,
-   160,   164,   165,   163,   166,   166,   167,   167,   167,   167,
-   167,   167,   167,   168,   168,   168,   168,   168,   168,   168,
-   169,   169,   169,   169,   169,   169,   169,   169,   170,   170,
-   171,   171,   172,   172,   174,   173,   173,   173,   175,   173,
-   173,   173,   176,   173,   177,   173,   173,   178,   178,   179,
-   179,   180,   180,   181,   181,   181,   182,   182,   182,   182,
-   182,   182,   183,   183,   184,   184,   184,   185,   185,   185,
-   186,   186,   187,   187,   188,   188,   189,   189,   190,   190,
-   191,   191,   191,   191,   191,   191,   191,   191,   191,   191,
-   192,   193,   193,   193,   194,   194,   195,   196,   197,   197,
-   198,   198,   199,   200,   200,   201,   202,   202,   202,   202,
-   203,   203,   204,   206,   205,   207,   208,   209,   209,   210,
-   211,   211,   212,   212,   212,   213,   212,   212,   212,   214,
-   215,   212,   212,   212,   216,   217,   218,   212,   219,   212,
-   212,   212,   212,   212,   212,   212,   212,   212,   212,   212,
-   212,   220,   222,   221,   223,   223,   223,   223,   224,   224,
-   225,   225,   226,   226,   227,   227,   228,   229,   229,   231,
-   230,   232,   233,   232,   232,   234,   234,   234,   234,   235,
-   235,   236,   236,   236,   236,   236,   238,   237,   239,   239,
-   240,   240,   241,   241,   242
+   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
 };
 
 static const short yyr2[] = {     0,
@@ -498,7 +499,7 @@ static const short yyr2[] = {     0,
      0,     7,     1,     3,     3,     3,     3,     3,     3,     3,
      3,     3,     3,     3,     3,     0,     4,     0,     4,     0,
      0,     7,     0,     5,     3,     3,     1,     1,     1,     3,
-     3,     0,     4,     4,     4,     3,     3,     2,     2,     1,
+     3,     3,     3,     4,     4,     3,     3,     2,     2,     1,
      2,     0,     1,     2,     3,     1,     1,     2,     2,     4,
      4,     2,     2,     3,     1,     1,     2,     2,     0,     0,
      4,     4,     3,     3,     2,     2,     2,     2,     3,     0,
@@ -520,21 +521,21 @@ static const short yyr2[] = {     0,
      1,     3,     2,     2,     0,     1,     1,     2,     0,     2,
      3,     3,     2,     3,     4,     3,     2,     3,     2,     3,
      1,     1,     2,     2,     0,     1,     2,     0,     0,     1,
-     1,     2,     3,     1,     2,     1,     2,     6,     5,     5,
-     2,     2,     4,     0,     4,     0,     0,     3,     4,     3,
-     1,     1,     1,     1,     2,     0,     4,     1,     3,     0,
-     0,     7,     5,     2,     0,     0,     0,    12,     0,     6,
-     2,     2,     2,     3,     6,     8,    10,    12,     3,     4,
-     1,     1,     0,     6,     3,     5,     2,     3,     0,     1,
-     0,     1,     0,     1,     1,     3,     4,     1,     3,     0,
-     2,     2,     0,     4,     2,     0,     1,     1,     3,     1,
-     3,     4,     4,     4,     4,     4,     0,     2,     1,     2,
-     1,     3,     1,     3,     1
+     1,     2,     3,     1,     2,     1,     1,     5,     4,     4,
+     2,     2,     2,     2,     4,     0,     4,     0,     0,     3,
+     4,     3,     1,     1,     1,     1,     2,     0,     4,     1,
+     3,     0,     0,     7,     5,     2,     0,     0,     0,    12,
+     0,     6,     2,     2,     2,     3,     6,     8,    10,    12,
+     3,     4,     1,     1,     0,     6,     3,     5,     2,     3,
+     0,     1,     0,     1,     0,     1,     1,     3,     4,     1,
+     3,     0,     2,     2,     0,     4,     2,     0,     1,     1,
+     3,     1,     3,     4,     4,     4,     4,     4,     0,     2,
+     1,     2,     1,     3,     1,     3,     1
 };
 
 static const short yydefact[] = {     3,
      5,     0,     0,     0,   153,   144,   151,   143,   243,   239,
-   241,     0,     0,     0,   405,    18,     4,     8,     7,     0,
+   241,     0,     0,     0,   407,    18,     4,     8,     7,     0,
    119,   119,   139,   130,   140,   173,     0,     0,     0,   152,
      0,     6,    16,    17,   244,   240,   242,     0,     0,     0,
    238,   289,     0,     0,   161,   120,     0,    15,     0,    14,
@@ -542,697 +543,710 @@ static const short yydefact[] = {     3,
    264,   248,   264,   252,   255,   257,    10,    87,    88,   100,
     57,    58,     0,     0,     0,     0,    33,    35,    34,     0,
     36,    37,     0,    38,    39,     0,     0,    40,    59,     0,
-     0,    63,    43,    45,    89,     0,   287,     0,   285,   149,
-     0,   285,   178,     0,     0,    11,     0,     0,    30,     0,
-   397,     0,     0,   171,   223,   289,     0,     0,   159,   120,
-     0,   215,   216,     0,     0,   129,   132,   156,   157,   131,
-   133,   158,     0,     0,   245,     0,   249,     0,   253,    54,
-    55,     0,    49,    46,     0,     0,     0,     0,    48,     0,
-     0,     0,    50,     0,    52,     0,     0,    80,    78,    76,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    98,    99,     0,     0,    41,     0,   101,    47,
-   154,   289,   380,     0,   120,   283,   286,   147,   155,   288,
-   149,   284,   184,   185,   186,   183,     0,   176,   179,   290,
-   233,   232,   162,   163,   237,     0,   231,     0,     0,   236,
-     0,     0,    28,     0,   326,   107,   327,   170,   172,     0,
-     0,    13,     0,     0,    22,     0,   171,   397,     0,    12,
-    26,     0,   171,   271,   266,   119,   263,   119,     0,   264,
-   171,   264,   280,   281,   260,   278,     0,     0,    91,    90,
-   316,   308,     0,     0,     9,    44,     0,     0,    86,    85,
-     0,     0,     0,     0,    74,    75,    73,    72,    71,    69,
-    70,    64,    65,    66,    67,    68,    97,    96,     0,    42,
-     0,   293,     0,   297,     0,   299,     0,     0,   380,     0,
-   150,   148,     0,   178,    41,     0,     0,   401,   387,   119,
-   119,   399,     0,   388,   390,   398,     0,   234,   235,   307,
-     0,   109,   104,   108,     0,   168,   221,   217,   160,   222,
-    20,   167,   218,   220,     0,    24,   247,   326,   265,   326,
-   272,     0,   251,     0,     0,   261,     0,   260,     0,   317,
-   309,    93,    61,    60,    51,    53,     0,     0,    79,    77,
-    94,    95,   292,   291,   381,   298,   300,   294,   296,     0,
-   175,   177,    87,     0,   164,   385,   285,   285,   382,   383,
-     0,   400,     0,     0,    29,   314,   105,   119,   119,   136,
-     0,     0,   165,   219,     0,   267,   273,   327,   269,   171,
-   171,   282,   279,   171,     0,     0,     0,     0,   310,   311,
-     0,    81,    84,   295,   180,     0,   182,   230,   289,   380,
-   120,   171,   171,   171,   289,   120,   171,   171,     0,   389,
-   391,   402,   315,   112,     0,   113,     0,   136,   134,   190,
-   188,   187,   169,    21,     0,    25,   326,     0,   246,   250,
-   256,   171,    56,   403,     0,     0,     0,   326,     0,     0,
-   116,   327,   302,   312,   203,    87,     0,     0,   200,     0,
-   202,     0,   258,   193,   199,     0,     0,     0,     0,   293,
-     0,   397,     0,   392,   393,   394,   293,     0,   395,   396,
-   384,     0,     0,   163,   135,   138,   137,     0,   166,   274,
-     0,   171,   254,   313,     0,   319,   118,   117,   306,     0,
-   320,   304,   327,   303,     0,   206,     0,     0,   197,    62,
-     0,   192,     0,   205,   196,    82,   181,   228,   229,   224,
-     0,   227,     0,   110,   111,     0,   171,     0,   275,   404,
-   318,     0,   153,     0,   340,   324,     0,     0,     0,     0,
-     0,     0,     0,     0,   369,   361,     0,     0,   114,   119,
-   119,   333,   338,     0,     0,   330,   331,   334,   362,   332,
-     0,     0,   208,     0,     0,   194,   195,   225,   226,   189,
-   277,   171,     0,     0,   326,   371,     0,     0,   367,   351,
-   352,   353,     0,     0,     0,   370,     0,   171,   335,   125,
-     0,   126,     0,     0,   322,   327,   321,   344,     0,   127,
-     0,   201,   198,   276,     0,     0,     0,   372,    45,     0,
-     0,     0,   365,   354,     0,   359,     0,   368,     0,   123,
-   209,     0,   124,   212,   339,   326,     0,     0,   207,   323,
-     0,   325,   363,   345,   349,     0,   360,     0,   121,     0,
-   122,     0,   337,   328,   326,     0,   341,   326,   371,   326,
-   366,   373,     0,   210,   213,   329,   343,   326,   364,     0,
-   350,     0,     0,   374,   375,   355,     0,     0,   342,   346,
-     0,   373,     0,     0,   211,   214,   371,     0,     0,   356,
-   376,     0,   377,     0,     0,   347,   378,     0,   357,   326,
-     0,     0,   348,   358,   379,     0,     0,     0
+     0,    63,    43,    45,    89,     0,     0,   287,     0,   285,
+   149,     0,   285,   178,     0,     0,    11,     0,     0,    30,
+     0,   399,     0,     0,   171,   223,   289,     0,     0,   159,
+   120,     0,   215,   216,     0,     0,   129,   132,   156,   157,
+   131,   133,   158,     0,     0,   245,     0,   249,     0,   253,
+    54,    55,     0,    49,    46,     0,   321,     0,     0,    48,
+     0,     0,     0,    50,     0,    52,     0,     0,    80,    78,
+    76,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    98,    99,     0,     0,    41,     0,   101,
+     0,   317,   309,     0,    47,   154,   289,   382,     0,   120,
+   283,   286,   147,   155,   288,   149,   284,   184,   185,   186,
+   183,     0,   176,   179,   290,   233,   232,   162,   163,   237,
+     0,   231,     0,     0,   236,     0,     0,    28,     0,   328,
+   107,   329,   170,   172,     0,     0,    13,     0,     0,    22,
+     0,   171,   399,     0,    12,    26,     0,   171,   271,   266,
+   119,   263,   119,     0,   264,   171,   264,   280,   281,   260,
+   278,     0,     0,    91,    90,     0,     9,    44,     0,     0,
+    86,    85,     0,     0,     0,     0,    74,    75,    73,    72,
+    71,    69,    70,    64,    65,    66,    67,    68,    97,    96,
+     0,    42,     0,    93,     0,     0,   310,   311,    92,   293,
+     0,   297,     0,   299,     0,     0,   382,     0,   150,   148,
+     0,   178,    41,     0,     0,   403,   389,   119,   119,   401,
+     0,   390,   392,   400,     0,   234,   235,   307,     0,   109,
+   104,   108,     0,   168,   221,   217,   160,   222,    20,   167,
+   218,   220,     0,    24,   247,   328,   265,   328,   272,     0,
+   251,     0,     0,   261,     0,   260,     0,    61,    60,    51,
+    53,     0,     0,    79,    77,    94,    95,   405,     0,     0,
+     0,   328,     0,     0,   116,   329,   302,   312,   292,   291,
+   383,   298,   300,   294,   296,     0,   175,   177,    87,     0,
+   164,   387,   285,   285,   384,   385,     0,   402,     0,     0,
+   316,    29,   308,   314,   105,   119,   119,   136,     0,     0,
+   165,   219,     0,   267,   273,   329,   269,   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
 };
 
-static const short yydefgoto[] = {   696,
-     1,     2,     3,    17,    18,    19,   226,   382,   232,   385,
-   113,   311,   460,    86,   146,   279,    88,    89,    90,    91,
-    92,   401,    93,   264,   263,   261,   468,   262,    94,   147,
-    95,   213,   214,   215,   377,   447,   448,    20,   108,   549,
-   300,    57,   378,   429,   301,    23,    99,   188,    24,   130,
-   118,    44,   114,   119,   435,    45,   381,   218,   219,    26,
-   197,   198,   199,   433,   488,   462,   463,   464,   565,   465,
-   508,   466,   467,   620,   640,   667,   623,   642,   668,   204,
-   122,   412,   123,    27,    28,    29,    30,   240,   242,   247,
-   138,   512,   337,   133,   134,   237,   386,   387,   245,   246,
-   101,   186,   102,   104,   187,   449,   450,   500,   216,   341,
-   398,   399,   400,   375,   252,   376,   553,   554,   555,   575,
-   596,   315,   597,   453,   556,   557,   626,   574,   658,   649,
-   677,   690,   650,   558,   559,   648,   560,   587,   610,   663,
-   664,   665,   688,   284,   285,   302,   419,   303,   304,   305,
-   207,   208,   306,   307,   445,    96
+static const short yydefgoto[] = {   700,
+     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,
+   313,   212,   213,   314,   315,   359,    97
 };
 
-static const short yypact[] = {    85,
-   122,  2341,  2341,    19,-32768,-32768,-32768,-32768,   138,   138,
-   138,    91,    94,   126,-32768,-32768,-32768,-32768,-32768,   210,
-   132,   570,   214,-32768,   138,-32768,    64,    73,    80,-32768,
-  2341,-32768,-32768,-32768,   138,   138,   138,  2157,  2067,   129,
--32768,-32768,   210,   125,-32768,   138,  1373,-32768,   821,-32768,
-   210,   214,-32768,   138,-32768,-32768,   831,-32768,-32768,-32768,
--32768,   143,-32768,   150,-32768,   158,-32768,-32768,-32768,-32768,
--32768,-32768,  2157,  2157,   190,    88,-32768,-32768,-32768,  2157,
--32768,-32768,  1110,-32768,-32768,  2157,   183,   181,-32768,  2192,
-  2247,-32768,  2472,   669,   270,  2157,-32768,   203,   332,-32768,
-   215,   871,   603,   196,   192,-32768,   821,   210,-32768,   235,
--32768,  1473,   402,   138,-32768,-32768,   821,   180,-32768,   138,
-  1465,   113,   225,   193,  1437,   831,-32768,-32768,-32768,-32768,
-   138,-32768,   234,   735,-32768,   237,-32768,   298,-32768,-32768,
--32768,  2157,-32768,-32768,   229,   241,   249,   261,-32768,   246,
-  2157,  1110,-32768,  1110,-32768,  2157,  2157,   314,-32768,-32768,
-  2157,  2157,  2157,  2157,  2157,  2157,  2157,  2157,  2157,  2157,
-  2157,  2157,-32768,-32768,    88,    88,  2157,  2157,-32768,-32768,
--32768,-32768,   332,  1528,   138,-32768,   328,   331,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,   111,-32768,   281,-32768,
-   225,-32768,-32768,   333,   225,   354,-32768,   946,  1566,-32768,
-   286,   287,-32768,   363,    69,-32768,-32768,   340,   138,   416,
-   227,-32768,   821,   821,-32768,   402,   138,-32768,  1621,-32768,
--32768,   402,   138,-32768,-32768,   346,   308,   278,  1630,-32768,
-   138,-32768,-32768,   367,   355,-32768,   298,  2407,-32768,-32768,
--32768,   360,   351,  1952,-32768,  2472,   370,   376,  2472,  2472,
-  2157,   405,  2157,  2157,  2329,  2037,  2389,  1379,  1978,   593,
-   593,   439,   439,-32768,-32768,-32768,-32768,-32768,   391,   181,
-   386,   288,   254,-32768,  1028,-32768,   387,   332,-32768,  1659,
--32768,   331,   396,   603,  2282,    49,   400,-32768,-32768,-32768,
-  1869,-32768,   401,   195,-32768,-32768,   118,-32768,-32768,-32768,
-    65,-32768,-32768,-32768,  1003,-32768,   113,-32768,-32768,   113,
--32768,   443,-32768,-32768,   399,-32768,-32768,-32768,-32768,-32768,
--32768,   407,-32768,   408,  2157,    88,   417,   355,   445,-32768,
-   453,-32768,-32768,-32768,-32768,-32768,   458,  2157,  2217,  2126,
--32768,-32768,   328,-32768,-32768,-32768,   328,-32768,-32768,   419,
--32768,-32768,   119,   421,-32768,-32768,   176,   155,-32768,-32768,
-  1722,-32768,   499,   249,-32768,-32768,-32768,   427,   739,-32768,
-  1307,    65,-32768,-32768,    65,   425,-32768,-32768,   425,   138,
-   138,  2472,-32768,   138,   432,   436,    88,   778,   453,-32768,
-  1145,-32768,  1859,-32768,-32768,  2157,-32768,-32768,-32768,   155,
-   138,    26,   168,   138,-32768,   138,   168,   138,  1028,-32768,
--32768,-32768,-32768,-32768,   821,-32768,   210,-32768,   763,-32768,
--32768,  2472,-32768,-32768,  1307,-32768,-32768,   352,-32768,-32768,
--32768,   138,-32768,-32768,   247,   381,   653,   452,   454,   885,
--32768,-32768,-32768,-32768,-32768,   493,    88,  2157,-32768,   502,
-  2472,   463,   462,-32768,-32768,    74,  1269,  2157,   166,   414,
-   176,-32768,  1714,-32768,-32768,-32768,   163,   155,-32768,-32768,
--32768,   268,   302,    44,   763,-32768,-32768,  1145,-32768,-32768,
-  2157,    77,-32768,-32768,    88,-32768,-32768,-32768,-32768,   467,
--32768,-32768,-32768,-32768,  1835,-32768,  2380,  1145,-32768,-32768,
-  1207,-32768,  1364,-32768,-32768,  1859,-32768,   349,   349,-32768,
-  1752,-32768,   464,-32768,-32768,   470,  2432,  2157,-32768,-32768,
--32768,  1917,   516,   498,-32768,-32768,   503,   505,  2157,   520,
-   501,   507,  2102,    78,   565,-32768,   541,   508,-32768,   513,
-   622,-32768,   579,   969,    72,-32768,-32768,-32768,-32768,-32768,
-  2011,  2157,-32768,   519,  1364,-32768,-32768,-32768,-32768,-32768,
--32768,  2432,  2157,   540,-32768,  2157,  2157,  1778,-32768,-32768,
--32768,-32768,   525,  2157,   536,-32768,   555,   138,-32768,-32768,
-   821,-32768,   210,  1051,-32768,-32768,-32768,-32768,  2157,-32768,
-  2362,-32768,-32768,-32768,   543,  2157,   607,-32768,   660,   546,
-   552,  2157,-32768,-32768,   553,-32768,  2157,-32768,   317,-32768,
-   514,   345,-32768,   558,-32768,-32768,  1917,   560,-32768,-32768,
-   562,-32768,-32768,-32768,-32768,  2454,-32768,    40,-32768,   402,
--32768,   402,-32768,-32768,-32768,   569,-32768,-32768,  2157,-32768,
--32768,   642,   574,-32768,-32768,-32768,-32768,-32768,-32768,   576,
--32768,   602,    46,   548,-32768,-32768,   249,   249,-32768,-32768,
-  2157,   642,   590,   642,-32768,-32768,  2157,   611,    57,-32768,
--32768,   612,-32768,   354,   606,-32768,   270,   172,-32768,-32768,
-   614,   354,-32768,-32768,   270,   691,   696,-32768
+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 yypgoto[] = {-32768,
--32768,-32768,-32768,    97,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   -25,-32768,   -38,   404,  -133,   374,-32768,-32768,
-   -21,-32768,   359,-32768,-32768,-32768,-32768,-32768,   121,-32768,
-  -189,  -206,   485,-32768,-32768,   258,-32768,    20,   -75,   141,
-     4,   655,-32768,   283,     6,    -3,   -70,   521,     7,  -161,
-  -377,   -39,  -103,   -58,-32768,-32768,-32768,   200,    12,   146,
--32768,   424,-32768,   280,-32768,  -393,-32768,   202,-32768,  -405,
--32768,-32768,   257,-32768,-32768,-32768,-32768,-32768,-32768,   -36,
-   -57,   -28,   -15,-32768,-32768,-32768,   -32,-32768,-32768,-32768,
--32768,-32768,   412,   -30,-32768,   515,   394,   318,   509,   422,
-   -29,   -64,   -62,   -86,  -143,   309,-32768,-32768,  -167,-32768,
--32768,-32768,   362,  -238,-32768,  -131,-32768,-32768,-32768,-32768,
-   -89,  -331,  -472,   312,-32768,   137,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,   144,-32768,  -545,    87,
--32768,    99,-32768,   476,-32768,  -235,-32768,-32768,-32768,   403,
-  -197,-32768,-32768,-32768,-32768,     8
+-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
 };
 
 
-#define        YYLAST          2526
+#define        YYLAST          2572
 
 
 static const short yytable[] = {    87,
-    98,    62,    64,    66,    47,    21,    21,    22,    22,    31,
-    31,   124,   121,    25,    25,   253,   296,   227,    52,   321,
-    35,    36,    37,   217,   132,   326,   291,   105,    53,   220,
-   323,    46,   136,    54,    21,   125,    22,   192,    31,   283,
-    49,    51,    25,   280,   224,   100,   312,   482,   203,   355,
-   143,   140,   141,   148,    46,    14,   438,   179,   144,   221,
-   120,   515,    46,   236,   149,   374,    59,    60,   131,  -103,
-   110,   238,   598,   211,   180,    59,    60,   196,   313,   652,
-    59,    60,    59,    60,    -1,   672,   472,   473,   201,   100,
-    59,    60,   205,   132,   526,   282,   684,    33,    34,    32,
-   227,   105,   607,   660,   111,   112,    14,   567,   191,   288,
-   185,   513,   244,   185,   564,    46,   528,   653,   120,    46,
-   505,    -2,   257,   673,   258,   217,   365,    67,   120,   584,
-   291,   682,   599,   457,   685,   458,   217,   131,   353,   281,
-   100,   239,   217,   434,   357,   287,   436,    61,   251,   277,
-   278,    38,  -103,   643,    39,   132,    63,    41,   100,   603,
-   100,   280,   317,    65,   319,    41,   320,    14,   236,   200,
-    58,   532,   656,   228,   229,   659,   238,   661,    41,   408,
-    58,    58,    58,   481,    14,   669,    40,   144,   293,   103,
-   325,    58,    14,   294,   185,   372,   405,    14,    41,    58,
-   373,   406,   200,   106,   201,    14,   415,   107,   205,   332,
-    48,   334,    41,   619,   415,   410,   184,   693,    55,    25,
-    56,   244,   347,   410,   184,    14,   135,   409,   111,   112,
-   451,   120,   344,   137,   120,   120,   410,   184,   388,    14,
-   388,   139,   423,   517,   191,   100,   239,    42,   151,   691,
-   142,   360,   111,   112,   692,   328,    43,   330,   222,   132,
-   150,    42,   223,   151,   627,    58,   283,   487,   196,   202,
-    43,   230,   469,   370,   520,   107,    58,   371,   179,   497,
-   181,     5,   502,     7,   190,   111,   112,   228,   229,     9,
-    10,    11,   189,   185,   200,   206,    25,    52,   243,   185,
-    59,    60,   414,   418,   318,    13,   249,    53,   452,   396,
-   244,   379,    54,   233,   289,   290,   241,    14,   250,   367,
-   368,   380,   470,   487,   255,   494,   353,   357,   477,   495,
-    58,   354,   251,   353,   357,   471,   128,   129,   254,   182,
-   478,   295,     9,    10,    11,   100,   524,   388,   183,   184,
-   223,   413,   417,   -83,    41,   115,  -270,  -270,   452,   110,
-   503,    14,    70,   212,    58,   310,  -106,  -106,  -106,  -106,
-   309,   444,  -106,   552,  -106,  -106,  -106,   316,   411,   416,
-   525,    14,    25,   182,   107,   428,   329,   483,   289,   290,
-  -106,   491,   183,   184,   105,   639,   132,   425,   427,   223,
-   552,   492,   212,   116,   335,  -326,  -326,  -326,  -326,   472,
-   473,   484,   117,  -326,  -326,  -326,    41,   408,    41,   115,
-   200,   416,   200,   641,  -268,  -268,   322,   107,   342,  -326,
-    25,   506,   327,   654,   523,   655,   120,   336,    46,   340,
-   333,   518,   519,    14,   348,    14,  -106,   345,     5,   120,
-     7,    97,   132,   346,   201,   205,     9,    10,    11,   310,
-   496,   201,   205,   153,   155,   409,   548,   116,   351,   530,
-   352,   356,    13,   361,   410,   184,   117,   366,   369,   547,
-   383,   411,   411,   384,   397,  -102,   390,   391,   416,   416,
-   170,   171,   172,   548,   687,   552,   394,   402,   407,   144,
-   248,   422,   695,   404,   583,   424,   547,   437,   550,   256,
-   551,   442,   561,   443,   259,   260,    25,   227,   585,   265,
-   266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
-   276,  -305,   -31,   501,   605,   675,   676,   608,   611,   180,
-   110,   509,   510,  -163,   511,   615,   531,    52,   569,   570,
-   217,  -163,   217,   622,   621,   -32,    58,    53,   573,   579,
-   628,    58,    54,   576,   550,   577,   551,   631,   561,   591,
-   593,   586,    25,     5,     6,     7,     8,   624,   638,   580,
-   588,     9,    10,    11,   110,   581,   589,  -163,   548,   439,
-   440,   590,  -163,   441,   594,  -163,  -163,    13,   602,    14,
-   606,   547,   120,   614,    46,    59,    60,   193,   194,   195,
-   608,   474,   475,   476,   616,   617,   479,   480,   111,   112,
-   630,   349,   350,   632,   634,     5,     6,     7,     8,   635,
-   674,   637,   678,     9,    10,    11,  -163,   646,   608,   647,
-  -163,   493,   168,   169,   170,   171,   172,   657,    50,    13,
-   662,    14,   666,   212,   670,  -115,  -115,  -115,  -115,  -115,
-  -115,  -115,   671,  -115,  -115,  -115,  -115,  -115,   680,  -115,
+    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,
+  -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,
   -115,  -115,  -115,  -115,  -115,  -115,  -115,  -115,  -115,  -115,
-  -115,  -115,  -115,  -115,   689,  -115,  -115,  -115,   683,   686,
-   697,   529,   694,   392,  -115,   698,   609,  -115,   364,   314,
-   592,   600,  -115,  -115,  -115,   498,   403,   126,  -115,  -115,
-   485,   292,   566,  -115,   489,   173,   174,   362,   175,   176,
-   177,   178,   514,   389,   173,   174,   571,   175,   176,   177,
-   178,  -115,  -115,  -115,  -115,   234,  -115,   633,     5,   432,
-     7,    97,     5,    55,     7,    56,     9,    10,    11,   395,
-     9,    10,    11,   331,   490,   338,   499,   393,   679,   461,
-   454,   504,    13,   644,   358,    15,    13,   486,   128,   129,
-   645,   604,   681,   421,     9,    10,    11,     0,   446,     0,
-  -326,  -326,  -326,  -326,  -326,  -326,  -326,   618,  -326,  -326,
-  -326,  -326,  -326,   432,  -326,  -326,  -326,  -326,  -326,  -326,
-  -326,  -326,  -326,  -326,  -326,  -326,  -326,  -326,  -326,     0,
-  -326,  -326,  -326,   235,  -262,     0,   507,   426,     0,  -326,
-     0,     0,  -326,    41,   115,   461,   516,  -326,  -326,  -326,
-     0,     0,     0,  -326,  -326,   127,   128,   129,  -326,     0,
-     0,     0,     9,    10,    11,     0,   461,     0,     0,   527,
-    14,     0,     0,     0,     0,     0,  -326,     0,  -326,  -326,
-    14,  -326,     0,     0,     0,     0,   461,     0,     0,   461,
-     0,   461,   116,     0,     5,     0,     7,   190,     0,     0,
-     0,   117,     9,    10,    11,   212,   572,  -326,  -326,     0,
-     0,     0,  -326,  -326,     0,  -326,     0,   578,    13,  -326,
-    14,  -326,  -326,  -326,  -326,  -326,  -326,  -326,  -326,  -326,
-  -326,  -326,     0,  -326,     0,  -326,     0,  -326,  -326,  -326,
-   601,     0,   182,   461,     0,     0,  -326,     0,     0,  -326,
-     0,   183,   184,     0,  -326,  -326,  -326,     0,     0,     0,
-  -326,  -326,     0,     0,     0,  -326,   297,     0,   298,     5,
-     6,     7,     8,     0,     0,   299,     0,     9,    10,    11,
-     0,     0,     0,  -326,  -301,  -326,  -326,     0,  -326,   595,
-   636,  -326,  -326,    13,     0,    14,  -326,  -326,     0,  -326,
-     0,     0,     0,  -326,     0,  -326,  -326,  -326,  -326,  -326,
-  -326,  -326,  -326,  -326,  -326,  -326,     0,  -326,     0,  -326,
-     0,  -326,  -326,  -326,     0,     0,     5,     6,     7,     8,
-  -326,     0,     0,  -326,     9,    10,    11,     0,  -326,  -326,
-  -326,     0,     0,  -386,  -326,  -326,     0,     0,   297,  -326,
-    13,     5,     6,     7,     8,     0,     0,   299,     0,     9,
-    10,    11,     0,     0,     0,     0,     0,  -326,     0,  -326,
-  -326,   625,  -326,  -336,  -336,    13,     0,    14,  -336,  -336,
-     0,  -336,     0,     0,     0,  -336,     0,  -336,  -336,  -336,
-  -336,  -336,  -336,  -336,  -336,  -336,  -336,  -336,     0,  -336,
-     0,  -336,     0,  -336,  -336,  -336,     0,     0,     0,     0,
-     0,     0,  -336,     0,     0,  -336,     0,     0,     0,     0,
-  -336,  -336,  -336,     0,     0,  -386,  -336,  -336,     0,     0,
-   145,  -336,    68,     5,     0,     7,    97,    69,    70,     0,
-    71,     9,    10,    11,     0,     0,     0,     0,     0,  -336,
-     0,  -336,  -336,     0,  -336,     0,     0,    13,    72,     0,
-    15,     0,    73,    74,    75,   455,     0,   456,    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,
-     0,     0,     0,     0,     0,     0,    76,     0,     0,    77,
-    84,    85,     0,   -92,    78,    79,    80,     0,     0,     0,
-    81,    82,     0,     0,   457,    83,   458,   455,     0,   456,
-    60,     0,     0,     0,    69,    70,     0,    71,     0,     0,
-     0,     0,     0,     0,  -191,    84,    85,     0,   459,     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,   457,    83,   458,   455,
-     0,    68,     0,     0,     0,     0,    69,    70,     0,    71,
-     0,     0,     0,     0,     0,     0,  -259,    84,    85,     0,
-   459,     0,     0,     0,     0,     0,     0,    72,     0,    15,
-     0,    73,    74,    75,     0,     0,  -204,   430,     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,   459,     0,     0,     0,    78,    79,    80,     0,
-     0,     0,    81,    82,   455,     0,    68,    83,     0,     0,
-     0,    69,    70,   109,    71,     0,   -27,   -27,   -27,   -27,
-     0,     0,     0,     0,   -27,   -27,   -27,    84,    85,     0,
-   431,     0,    72,     0,    15,     0,    73,    74,    75,   110,
-   -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,   165,   166,   167,   168,   169,
-   170,   171,   172,   111,   112,     0,     0,   231,     0,     0,
-   -23,   -23,   -23,   -23,    84,    85,     0,   459,   -23,   -23,
-   -23,  -163,     0,     0,     0,  -163,   -27,     0,     0,     0,
-     0,     0,     0,   110,   -23,   225,  -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,   110,   -19,     0,  -163,     0,     0,   111,   112,     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,   209,     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,   210,    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,   286,     0,     0,    78,    79,    80,     0,     0,
+   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,
-   234,    71,     0,     5,     0,     7,    97,     0,     0,     0,
-     0,     9,    10,    11,     0,     0,    84,    85,     0,    72,
-   308,    15,     0,    73,    74,    75,     0,    13,     0,     0,
-    15,    68,    76,     0,     0,    77,    69,    70,     0,    71,
+     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,   324,     0,     0,    78,    79,
+    76,    84,    85,    77,     0,   294,     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,   420,     0,     9,    10,    11,     0,     0,     0,    84,
-    85,     0,    72,   359,    15,     0,    73,    74,    75,    13,
-     0,    14,     0,     0,    68,    76,     0,     0,    77,    69,
-    70,     0,    71,    78,    79,   521,     0,     0,     0,    81,
+     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,
-    72,     0,    15,     0,    73,    74,    75,   612,     0,     0,
-     0,     0,     0,    76,    84,    85,    77,     0,   522,     0,
-     0,    78,    79,    80,     0,     0,     0,    81,    82,     0,
-     0,     0,    83,     0,   156,   157,   158,   613,   159,   160,
-   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-   171,   172,    84,    85,     0,     0,   568,   456,   533,     6,
-     7,     8,    69,    70,     0,    71,     9,    10,    11,   534,
-     0,   535,   536,   537,   538,   539,   540,   541,   542,   543,
-   544,   545,    13,    72,    14,    15,     0,    73,    74,    75,
-     0,     0,     5,     6,     7,     8,    76,     0,     0,    77,
-     9,    10,    11,     0,    78,    79,    80,     0,     0,     0,
-    81,    82,     0,     0,     0,    83,    13,   158,    14,   159,
-   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
-   170,   171,   172,   546,     0,    84,    85,     0,   251,   456,
-    60,     0,     0,     0,    69,    70,     0,    71,     0,     0,
-     0,   534,     0,   535,   536,   537,   538,   539,   540,   541,
-   542,   543,   544,   545,     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,   546,    77,    84,    85,     0,
-   251,    78,    79,    80,     0,     0,     0,    81,    82,     0,
-     0,     0,    83,    68,     5,     6,     7,     8,    69,    70,
-     0,    71,     9,    10,    11,   166,   167,   168,   169,   170,
-   171,   172,    84,    85,     0,   343,     0,     0,    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,    68,
-     5,    83,     7,    97,    69,    70,     0,    71,     9,    10,
-    11,   163,   164,   165,   166,   167,   168,   169,   170,   171,
-   172,    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,     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,
-    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,   161,   162,
+     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,    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,
+     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,
+   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,
-   582,     0,    84,    85,     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,     0,    77,    84,    85,     0,
-     0,    78,    79,    80,     0,     0,     0,    81,    82,    68,
-     0,     0,   152,     0,    69,    70,     0,    71,   160,   161,
-   162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
-   172,     0,    84,    85,     0,    72,     0,    15,     0,    73,
-    74,    75,     0,     0,   363,     0,     0,     0,    76,    69,
-    70,    77,    71,     0,     0,     0,    78,    79,    80,     0,
-     0,     0,    81,    82,     0,     0,     0,   154,     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,   162,   163,   164,   165,   166,   167,   168,   169,
-   170,   171,   172,     0,     0,     0,     0,     0,     0,   562,
-     0,     0,  -119,     0,     0,     0,     0,     0,   156,   157,
-   158,  -119,   159,   160,   161,   162,   163,   164,   165,   166,
-   167,   168,   169,   170,   171,   172,   156,   157,   158,    16,
-   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-   169,   170,   171,   172,   164,   165,   166,   167,   168,   169,
-   170,   171,   172,   156,   157,   158,   629,   159,   160,   161,
-   162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
-   172,    14,     0,     0,   563,     0,     0,     0,   156,   157,
-   158,     0,   159,   160,   161,   162,   163,   164,   165,   166,
-   167,   168,   169,   170,   171,   172,     0,     0,     0,   339,
-   156,   157,   158,   651,   159,   160,   161,   162,   163,   164,
-   165,   166,   167,   168,   169,   170,   171,   172,   156,   157,
-   158,     0,   159,   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
 };
 
 static const short yycheck[] = {    38,
-    39,    27,    28,    29,    20,     2,     3,     2,     3,     2,
-     3,    51,    49,     2,     3,   147,   206,   121,    22,   226,
-     9,    10,    11,   113,    57,   232,   188,    43,    22,   116,
-   228,    20,    63,    22,    31,    51,    31,   102,    31,   183,
-    21,    22,    31,   177,   120,    39,   214,   425,   107,   285,
-    76,    73,    74,    83,    43,    30,   388,     9,    80,   117,
-    49,   467,    51,   134,    86,     1,     3,     4,    57,     1,
-    27,   134,     1,   112,    96,     3,     4,   103,    10,    40,
-     3,     4,     3,     4,     0,    40,    61,    62,   104,    83,
-     3,     4,   108,   126,   488,   182,    40,    79,    80,     3,
-   204,   117,   575,   649,    61,    62,    30,   513,   102,   185,
-    99,    38,   138,   102,   508,   104,    40,    78,   107,   108,
-   452,     0,   152,    78,   154,   215,    78,    31,   117,    52,
-   292,   677,    61,    60,    78,    62,   226,   126,   282,   178,
-   134,   134,   232,   382,   288,   184,   385,    84,    84,   175,
-   176,    61,    84,   626,    61,   188,    84,     3,   152,   565,
-   154,   295,   220,    84,   223,     3,   224,    30,   239,     7,
-    25,   503,   645,    61,    62,   648,   239,   650,     3,     4,
-    35,    36,    37,   419,    30,   658,    61,   209,    78,    61,
-   229,    46,    30,    83,   183,    78,    78,    30,     3,    54,
-    83,    83,     7,    79,   220,    30,    52,    83,   224,   240,
-    79,   242,     3,   591,    52,    61,    62,   690,     5,   208,
-     7,   247,   261,    61,    62,    30,    84,    52,    61,    62,
-   398,   220,   254,    84,   223,   224,    61,    62,   328,    30,
-   330,    84,   374,    78,   238,   239,   239,    52,    83,    78,
-    61,   290,    61,    62,    83,   236,    61,   238,    79,   292,
-    78,    52,    83,    83,   596,   120,   410,   429,   294,    78,
-    61,    79,   406,    79,   472,    83,   131,    83,     9,   447,
-    78,     4,   450,     6,     7,    61,    62,    61,    62,    12,
-    13,    14,    78,   282,     7,    61,   285,   301,     1,   288,
-     3,     4,   367,   368,    78,    28,    78,   301,   398,   339,
-   336,   315,   301,    80,    61,    62,    80,    30,    78,   300,
-   301,   315,   409,   485,    79,    79,   470,   471,   415,    83,
-   185,    78,    84,   477,   478,   411,     6,     7,    78,    52,
-   416,    61,    12,    13,    14,   339,    79,   437,    61,    62,
-    83,   367,   368,    40,     3,     4,    79,    80,   448,    27,
-   450,    30,     9,     1,   219,    79,     4,     5,     6,     7,
-    85,   397,    10,   505,    12,    13,    14,    38,   367,   368,
-    79,    30,   371,    52,    83,   379,    79,   427,    61,    62,
-    28,    40,    61,    62,   410,    79,   429,   378,   379,    83,
-   532,   438,     1,    52,    38,     4,     5,     6,     7,    61,
-    62,   427,    61,    12,    13,    14,     3,     4,     3,     4,
-     7,   410,     7,    79,    79,    80,   227,    83,    78,    28,
-   419,   457,   233,   640,   473,   642,   425,    83,   427,    80,
-   241,   470,   471,    30,    40,    30,    84,    78,     4,   438,
-     6,     7,   485,    78,   470,   471,    12,    13,    14,    79,
-    80,   477,   478,    90,    91,    52,   505,    52,    78,   495,
-    85,    85,    28,    78,    61,    62,    61,    78,    78,   505,
-    38,   470,   471,    85,    32,    84,    80,    80,   477,   478,
-    52,    53,    54,   532,   684,   627,    80,    40,    78,   521,
-   142,     3,   692,    85,   543,    79,   532,    83,   505,   151,
-   505,    80,   505,    78,   156,   157,   505,   621,   544,   161,
+    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,    80,    40,    80,   573,   667,   668,   576,   577,   561,
-    27,    40,    80,    30,    83,   584,    80,   551,    85,    80,
-   640,    38,   642,   593,   591,    40,   411,   551,    61,    40,
-   599,   416,   551,    61,   561,    61,   561,   606,   561,   550,
-   551,     7,   561,     4,     5,     6,     7,   593,   617,    79,
-    40,    12,    13,    14,    27,    79,    79,    30,   627,   390,
-   391,    79,    79,   394,    16,    38,    83,    28,    80,    30,
-    61,   627,   591,    79,   593,     3,     4,     5,     6,     7,
-   649,   412,   413,   414,    79,    61,   417,   418,    61,    62,
-    78,   263,   264,    17,    79,     4,     5,     6,     7,    78,
-    83,    79,   671,    12,    13,    14,    79,    78,   677,    78,
-    83,   442,    50,    51,    52,    53,    54,    79,    79,    28,
-     9,    30,    79,     1,    79,     3,     4,     5,     6,     7,
-     8,     9,    61,    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,
-     0,   492,    79,   335,    42,     0,   576,    45,   295,   215,
-    79,   561,    50,    51,    52,   448,   348,    53,    56,    57,
-   428,   191,   511,    61,   435,    56,    57,   294,    59,    60,
-    61,    62,   466,   330,    56,    57,   527,    59,    60,    61,
-    62,    79,    80,    81,    82,     1,    84,    78,     4,   381,
-     6,     7,     4,     5,     6,     7,    12,    13,    14,   338,
-    12,    13,    14,   239,   437,   247,   448,   336,   672,   401,
-   399,   450,    28,   627,   289,    31,    28,     5,     6,     7,
-   627,   572,   674,   371,    12,    13,    14,    -1,     1,    -1,
-     3,     4,     5,     6,     7,     8,     9,   588,    11,    12,
-    13,    14,    15,   435,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
-    33,    34,    35,    79,    80,    -1,   458,    79,    -1,    42,
-    -1,    -1,    45,     3,     4,   467,   468,    50,    51,    52,
-    -1,    -1,    -1,    56,    57,     5,     6,     7,    61,    -1,
-    -1,    -1,    12,    13,    14,    -1,   488,    -1,    -1,   491,
-    30,    -1,    -1,    -1,    -1,    -1,    79,    -1,    81,    82,
-    30,    84,    -1,    -1,    -1,    -1,   508,    -1,    -1,   511,
-    -1,   513,    52,    -1,     4,    -1,     6,     7,    -1,    -1,
-    -1,    61,    12,    13,    14,     1,   528,     3,     4,    -1,
-    -1,    -1,     8,     9,    -1,    11,    -1,   539,    28,    15,
-    30,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,    35,
-   562,    -1,    52,   565,    -1,    -1,    42,    -1,    -1,    45,
-    -1,    61,    62,    -1,    50,    51,    52,    -1,    -1,    -1,
-    56,    57,    -1,    -1,    -1,    61,     1,    -1,     3,     4,
-     5,     6,     7,    -1,    -1,    10,    -1,    12,    13,    14,
-    -1,    -1,    -1,    79,    80,    81,    82,    -1,    84,     1,
-   612,     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,     4,     5,     6,     7,
-    42,    -1,    -1,    45,    12,    13,    14,    -1,    50,    51,
-    52,    -1,    -1,    78,    56,    57,    -1,    -1,     1,    61,
-    28,     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,    -1,    -1,    45,    -1,    -1,    -1,    -1,
-    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,    -1,     3,     4,    -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,    84,    50,    51,    52,    -1,    -1,    -1,
-    56,    57,    -1,    -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,    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,    47,    48,    49,    50,    51,
-    52,    53,    54,    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,
+   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,
+    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,     4,    -1,     6,     7,    -1,    -1,    -1,
-    -1,    12,    13,    14,    -1,    -1,    81,    82,    -1,    29,
-    85,    31,    -1,    33,    34,    35,    -1,    28,    -1,    -1,
-    31,     3,    42,    -1,    -1,    45,     8,     9,    -1,    11,
+    -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,     4,     5,     6,     7,    -1,
-    -1,    10,    -1,    12,    13,    14,    -1,    -1,    -1,    81,
-    82,    -1,    29,    85,    31,    -1,    33,    34,    35,    28,
-    -1,    30,    -1,    -1,     3,    42,    -1,    -1,    45,     8,
+    -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,    10,    -1,    -1,
-    -1,    -1,    -1,    42,    81,    82,    45,    -1,    85,    -1,
-    -1,    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,     4,     5,     6,     7,    42,    -1,    -1,    45,
-    12,    13,    14,    -1,    50,    51,    52,    -1,    -1,    -1,
-    56,    57,    -1,    -1,    -1,    61,    28,    39,    30,    41,
-    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-    52,    53,    54,    79,    -1,    81,    82,    -1,    84,     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,     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,    48,    49,    50,    51,    52,
-    53,    54,    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,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-    54,    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,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-    79,    -1,    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,     3,
-    -1,    -1,    61,    -1,     8,     9,    -1,    11,    42,    43,
-    44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-    54,    -1,    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,    -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,
-    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,    44,    45,    46,    47,    48,    49,    50,    51,
-    52,    53,    54,    -1,    -1,    -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,
+    -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,
+    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,    46,    47,    48,    49,    50,    51,
-    52,    53,    54,    37,    38,    39,    85,    41,    42,    43,
+    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,
     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
+    54,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+    53,    54
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/cygnus/gnupro-98r2/share/bison.simple"
+#line 3 "/usr/lib/bison.simple"
+/* This file comes from bison-1.27.  */
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -1249,46 +1263,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
@@ -1298,8 +1332,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
@@ -1380,12 +1414,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++ */
@@ -1397,7 +1431,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;
@@ -1412,10 +1446,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)
@@ -1425,7 +1459,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/cygnus/gnupro-98r2/share/bison.simple"
+#line 216 "/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 *.
@@ -1446,6 +1480,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
@@ -1474,6 +1517,7 @@ yyparse(YYPARSE_PARAM_ARG)
 #endif
 
   int yystacksize = YYINITDEPTH;
+  int yyfree_stacks = 0;
 
 #ifdef YYPURE
   int yychar;
@@ -1558,18 +1602,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 */
 
@@ -1730,14 +1788,14 @@ yyreduce:
   switch (yyn) {
 
 case 1:
-#line 237 "c-parse.y"
+#line 214 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids an empty source file");
                  finish_file ();
                ;
     break;}
 case 2:
-#line 242 "c-parse.y"
+#line 219 "c-parse.y"
 {
                  /* In case there were missing closebraces,
                     get us back to the global binding level.  */
@@ -1747,15 +1805,15 @@ case 2:
                ;
     break;}
 case 3:
-#line 256 "c-parse.y"
+#line 233 "c-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 5:
-#line 257 "c-parse.y"
+#line 234 "c-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 9:
-#line 264 "c-parse.y"
+#line 241 "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)
@@ -1765,11 +1823,11 @@ case 9:
                    error ("argument of `asm' is not a constant string"); ;
     break;}
 case 10:
-#line 272 "c-parse.y"
+#line 249 "c-parse.y"
 { pedantic = yyvsp[-1].itype; ;
     break;}
 case 11:
-#line 277 "c-parse.y"
+#line 254 "c-parse.y"
 { if (pedantic)
                    error ("ANSI C forbids data definition with no type or storage class");
                  else if (!flag_traditional)
@@ -1781,45 +1839,45 @@ case 11:
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 12:
-#line 287 "c-parse.y"
+#line 264 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 13:
-#line 292 "c-parse.y"
+#line 269 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
 case 14:
-#line 297 "c-parse.y"
+#line 274 "c-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 15:
-#line 299 "c-parse.y"
+#line 276 "c-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 18:
-#line 303 "c-parse.y"
+#line 280 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
     break;}
 case 19:
-#line 309 "c-parse.y"
+#line 286 "c-parse.y"
 { if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 0))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
 case 20:
-#line 314 "c-parse.y"
+#line 291 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 21:
-#line 316 "c-parse.y"
+#line 293 "c-parse.y"
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -1827,25 +1885,25 @@ case 21:
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 22:
-#line 322 "c-parse.y"
+#line 299 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 23:
-#line 327 "c-parse.y"
+#line 304 "c-parse.y"
 { if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 0))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
 case 24:
-#line 332 "c-parse.y"
+#line 309 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 25:
-#line 334 "c-parse.y"
+#line 311 "c-parse.y"
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -1853,25 +1911,25 @@ case 25:
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 26:
-#line 340 "c-parse.y"
+#line 317 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 27:
-#line 345 "c-parse.y"
+#line 322 "c-parse.y"
 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 0))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
 case 28:
-#line 350 "c-parse.y"
+#line 327 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 29:
-#line 352 "c-parse.y"
+#line 329 "c-parse.y"
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -1879,72 +1937,72 @@ case 29:
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 30:
-#line 358 "c-parse.y"
+#line 335 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 33:
-#line 370 "c-parse.y"
+#line 347 "c-parse.y"
 { yyval.code = ADDR_EXPR; ;
     break;}
 case 34:
-#line 372 "c-parse.y"
+#line 349 "c-parse.y"
 { yyval.code = NEGATE_EXPR; ;
     break;}
 case 35:
-#line 374 "c-parse.y"
+#line 351 "c-parse.y"
 { yyval.code = CONVERT_EXPR; ;
     break;}
 case 36:
-#line 376 "c-parse.y"
+#line 353 "c-parse.y"
 { yyval.code = PREINCREMENT_EXPR; ;
     break;}
 case 37:
-#line 378 "c-parse.y"
+#line 355 "c-parse.y"
 { yyval.code = PREDECREMENT_EXPR; ;
     break;}
 case 38:
-#line 380 "c-parse.y"
+#line 357 "c-parse.y"
 { yyval.code = BIT_NOT_EXPR; ;
     break;}
 case 39:
-#line 382 "c-parse.y"
+#line 359 "c-parse.y"
 { yyval.code = TRUTH_NOT_EXPR; ;
     break;}
 case 40:
-#line 386 "c-parse.y"
+#line 363 "c-parse.y"
 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
     break;}
 case 41:
-#line 391 "c-parse.y"
+#line 368 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 43:
-#line 397 "c-parse.y"
+#line 374 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 44:
-#line 399 "c-parse.y"
+#line 376 "c-parse.y"
 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 46:
-#line 405 "c-parse.y"
+#line 382 "c-parse.y"
 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
     break;}
 case 47:
-#line 408 "c-parse.y"
+#line 385 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  pedantic = yyvsp[-1].itype; ;
     break;}
 case 48:
-#line 411 "c-parse.y"
+#line 388 "c-parse.y"
 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
                  overflow_warning (yyval.ttype); ;
     break;}
 case 49:
-#line 415 "c-parse.y"
+#line 392 "c-parse.y"
 { tree label = lookup_label (yyvsp[0].ttype);
                  if (pedantic)
                    pedwarn ("ANSI C forbids `&&'");
@@ -1959,7 +2017,7 @@ case 49:
                ;
     break;}
 case 50:
-#line 443 "c-parse.y"
+#line 420 "c-parse.y"
 { skip_evaluation--;
                  if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
                      && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
@@ -1967,53 +2025,53 @@ case 50:
                  yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
     break;}
 case 51:
-#line 449 "c-parse.y"
+#line 426 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 52:
-#line 452 "c-parse.y"
+#line 429 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
     break;}
 case 53:
-#line 455 "c-parse.y"
+#line 432 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 54:
-#line 458 "c-parse.y"
+#line 435 "c-parse.y"
 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
     break;}
 case 55:
-#line 460 "c-parse.y"
+#line 437 "c-parse.y"
 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
     break;}
 case 56:
-#line 462 "c-parse.y"
+#line 439 "c-parse.y"
 { yyval.ttype = build_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 57:
-#line 466 "c-parse.y"
+#line 443 "c-parse.y"
 { skip_evaluation++; ;
     break;}
 case 58:
-#line 470 "c-parse.y"
+#line 447 "c-parse.y"
 { skip_evaluation++; ;
     break;}
 case 60:
-#line 476 "c-parse.y"
+#line 453 "c-parse.y"
 { tree type = groktypename (yyvsp[-2].ttype);
                  yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
     break;}
 case 61:
-#line 479 "c-parse.y"
+#line 456 "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 483 "c-parse.y"
+#line 460 "c-parse.y"
 { char *name;
                  tree result = pop_init_level (0);
                  tree type = yyvsp[-5].ttype;
@@ -2040,90 +2098,90 @@ case 62:
                ;
     break;}
 case 64:
-#line 512 "c-parse.y"
+#line 489 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 65:
-#line 514 "c-parse.y"
+#line 491 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 66:
-#line 516 "c-parse.y"
+#line 493 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 67:
-#line 518 "c-parse.y"
+#line 495 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 68:
-#line 520 "c-parse.y"
+#line 497 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 69:
-#line 522 "c-parse.y"
+#line 499 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 70:
-#line 524 "c-parse.y"
+#line 501 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 71:
-#line 526 "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 72:
-#line 528 "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 73:
-#line 530 "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 74:
-#line 532 "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 75:
-#line 534 "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 76:
-#line 536 "c-parse.y"
+#line 513 "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 539 "c-parse.y"
+#line 516 "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 542 "c-parse.y"
+#line 519 "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 545 "c-parse.y"
+#line 522 "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 548 "c-parse.y"
+#line 525 "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 551 "c-parse.y"
+#line 528 "c-parse.y"
 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
                                      - (yyvsp[-4].ttype == boolean_false_node)); ;
     break;}
 case 82:
-#line 554 "c-parse.y"
+#line 531 "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 557 "c-parse.y"
+#line 534 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
                  /* Make sure first operand is calculated only once.  */
@@ -2132,12 +2190,12 @@ case 83:
                  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
     break;}
 case 84:
-#line 564 "c-parse.y"
+#line 541 "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 567 "c-parse.y"
+#line 544 "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));
@@ -2147,7 +2205,7 @@ case 85:
                ;
     break;}
 case 86:
-#line 575 "c-parse.y"
+#line 552 "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.  */
@@ -2158,7 +2216,7 @@ case 86:
                ;
     break;}
 case 87:
-#line 587 "c-parse.y"
+#line 564 "c-parse.y"
 {
                  yyval.ttype = lastiddecl;
                  if (!yyval.ttype || yyval.ttype == error_mark_node)
@@ -2258,11 +2316,11 @@ case 87:
                ;
     break;}
 case 89:
-#line 686 "c-parse.y"
+#line 663 "c-parse.y"
 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
     break;}
 case 90:
-#line 688 "c-parse.y"
+#line 665 "c-parse.y"
 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
                  if (class == 'e' || class == '1'
                      || class == '2' || class == '<')
@@ -2270,27 +2328,11 @@ case 90:
                  yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 91:
-#line 694 "c-parse.y"
+#line 671 "c-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 92:
-#line 696 "c-parse.y"
-{ if (current_function_decl == 0)
-                   {
-                     error ("braced-group within expression allowed only inside a function");
-                     YYERROR;
-                   }
-                 /* We must force a BLOCK for this level
-                    so that, if it is not expanded later,
-                    there is a way to turn off the entire subtree of blocks
-                    that are contained in it.  */
-                 keep_next_level ();
-                 push_iterator_stack ();
-                 push_label_level ();
-                 yyval.ttype = expand_start_stmt_expr (); ;
-    break;}
-case 93:
-#line 710 "c-parse.y"
+#line 673 "c-parse.y"
 { tree rtl_exp;
                  if (pedantic)
                    pedwarn ("ANSI C forbids braced-groups within expressions");
@@ -2314,22 +2356,33 @@ case 93:
                    yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
+case 93:
+#line 696 "c-parse.y"
+{
+                 /* Make sure we call expand_end_stmt_expr.  Otherwise
+                    we are likely to lose sequences and crash later.  */
+                 pop_iterator_stack ();
+                 pop_label_level ();
+                 expand_end_stmt_expr (yyvsp[-2].ttype);
+                 yyval.ttype = error_mark_node;
+               ;
+    break;}
 case 94:
-#line 733 "c-parse.y"
+#line 705 "c-parse.y"
 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 95:
-#line 735 "c-parse.y"
+#line 707 "c-parse.y"
 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 96:
-#line 737 "c-parse.y"
+#line 709 "c-parse.y"
 {
                    yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
 case 97:
-#line 741 "c-parse.y"
+#line 713 "c-parse.y"
 {
                   tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
 
@@ -2337,56 +2390,56 @@ case 97:
                ;
     break;}
 case 98:
-#line 747 "c-parse.y"
+#line 719 "c-parse.y"
 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
 case 99:
-#line 749 "c-parse.y"
+#line 721 "c-parse.y"
 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
 case 101:
-#line 756 "c-parse.y"
+#line 728 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 104:
-#line 765 "c-parse.y"
+#line 737 "c-parse.y"
 { c_mark_varargs ();
                  if (pedantic)
                    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
     break;}
 case 105:
-#line 775 "c-parse.y"
+#line 747 "c-parse.y"
 { ;
     break;}
 case 110:
-#line 791 "c-parse.y"
+#line 763 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 111:
-#line 796 "c-parse.y"
+#line 768 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);     
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 112:
-#line 801 "c-parse.y"
+#line 773 "c-parse.y"
 { shadow_tag_warned (yyvsp[-1].ttype, 1);
                  pedwarn ("empty declaration"); ;
     break;}
 case 113:
-#line 804 "c-parse.y"
+#line 776 "c-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 114:
-#line 813 "c-parse.y"
+#line 785 "c-parse.y"
 { ;
     break;}
 case 119:
-#line 828 "c-parse.y"
+#line 800 "c-parse.y"
 { yyval.itype = suspend_momentary ();
                  pending_xref_error ();
                  declspec_stack = tree_cons (prefix_attributes,
@@ -2396,131 +2449,131 @@ case 119:
                                     &current_declspecs, &prefix_attributes); ;
     break;}
 case 120:
-#line 839 "c-parse.y"
+#line 811 "c-parse.y"
 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
     break;}
 case 121:
-#line 844 "c-parse.y"
+#line 816 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 122:
-#line 849 "c-parse.y"
+#line 821 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 123:
-#line 854 "c-parse.y"
+#line 826 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 124:
-#line 859 "c-parse.y"
+#line 831 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 125:
-#line 864 "c-parse.y"
+#line 836 "c-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 126:
-#line 866 "c-parse.y"
+#line 838 "c-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 127:
-#line 868 "c-parse.y"
+#line 840 "c-parse.y"
 { pedantic = yyvsp[-1].itype; ;
     break;}
 case 128:
-#line 878 "c-parse.y"
+#line 850 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 129:
-#line 880 "c-parse.y"
+#line 852 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 130:
-#line 884 "c-parse.y"
+#line 856 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 131:
-#line 886 "c-parse.y"
+#line 858 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 132:
-#line 888 "c-parse.y"
+#line 860 "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 893 "c-parse.y"
+#line 865 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 134:
-#line 898 "c-parse.y"
+#line 870 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 135:
-#line 900 "c-parse.y"
+#line 872 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 136:
-#line 905 "c-parse.y"
+#line 877 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 137:
-#line 907 "c-parse.y"
+#line 879 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 138:
-#line 909 "c-parse.y"
+#line 881 "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 922 "c-parse.y"
+#line 894 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 140:
-#line 924 "c-parse.y"
+#line 896 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
     break;}
 case 141:
-#line 926 "c-parse.y"
+#line 898 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 142:
-#line 928 "c-parse.y"
+#line 900 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 143:
-#line 933 "c-parse.y"
+#line 905 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
 case 144:
-#line 936 "c-parse.y"
+#line 908 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 145:
-#line 938 "c-parse.y"
+#line 910 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
 case 146:
-#line 941 "c-parse.y"
+#line 913 "c-parse.y"
 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
                    warning ("`%s' is not at beginning of declaration",
                             IDENTIFIER_POINTER (yyvsp[0].ttype));
@@ -2528,138 +2581,138 @@ case 146:
                  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
     break;}
 case 147:
-#line 955 "c-parse.y"
+#line 927 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 148:
-#line 957 "c-parse.y"
+#line 929 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 149:
-#line 961 "c-parse.y"
+#line 933 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 150:
-#line 963 "c-parse.y"
+#line 935 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 153:
-#line 973 "c-parse.y"
+#line 945 "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 977 "c-parse.y"
+#line 949 "c-parse.y"
 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
     break;}
 case 155:
-#line 979 "c-parse.y"
+#line 951 "c-parse.y"
 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
     break;}
 case 163:
-#line 1001 "c-parse.y"
+#line 973 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 164:
-#line 1003 "c-parse.y"
+#line 975 "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 1010 "c-parse.y"
+#line 982 "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 1015 "c-parse.y"
+#line 987 "c-parse.y"
 { finish_init ();
                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
     break;}
 case 167:
-#line 1018 "c-parse.y"
+#line 990 "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 1026 "c-parse.y"
+#line 998 "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 1031 "c-parse.y"
+#line 1003 "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 1035 "c-parse.y"
+#line 1007 "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 1043 "c-parse.y"
+#line 1015 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 172:
-#line 1045 "c-parse.y"
+#line 1017 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 173:
-#line 1050 "c-parse.y"
+#line 1022 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 174:
-#line 1052 "c-parse.y"
+#line 1024 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 175:
-#line 1057 "c-parse.y"
+#line 1029 "c-parse.y"
 { yyval.ttype = yyvsp[-2].ttype; ;
     break;}
 case 176:
-#line 1062 "c-parse.y"
+#line 1034 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 177:
-#line 1064 "c-parse.y"
+#line 1036 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 178:
-#line 1069 "c-parse.y"
+#line 1041 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 179:
-#line 1071 "c-parse.y"
+#line 1043 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 180:
-#line 1073 "c-parse.y"
+#line 1045 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
     break;}
 case 181:
-#line 1075 "c-parse.y"
+#line 1047 "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 1077 "c-parse.y"
+#line 1049 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 188:
-#line 1095 "c-parse.y"
+#line 1067 "c-parse.y"
 { really_start_incremental_init (NULL_TREE);
                  /* Note that the call to clear_momentary
                     is in process_init_element.  */
                  push_momentary (); ;
     break;}
 case 189:
-#line 1100 "c-parse.y"
+#line 1072 "c-parse.y"
 { yyval.ttype = pop_init_level (0);
                  if (yyval.ttype == error_mark_node
                      && ! (yychar == STRING || yychar == CONSTANT))
@@ -2668,44 +2721,44 @@ case 189:
                    pop_momentary_nofree (); ;
     break;}
 case 190:
-#line 1108 "c-parse.y"
+#line 1080 "c-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 191:
-#line 1114 "c-parse.y"
+#line 1086 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids empty initializer braces"); ;
     break;}
 case 197:
-#line 1130 "c-parse.y"
+#line 1102 "c-parse.y"
 { set_init_label (yyvsp[-1].ttype); ;
     break;}
 case 200:
-#line 1137 "c-parse.y"
+#line 1109 "c-parse.y"
 { push_init_level (0); ;
     break;}
 case 201:
-#line 1139 "c-parse.y"
+#line 1111 "c-parse.y"
 { process_init_element (pop_init_level (0)); ;
     break;}
 case 202:
-#line 1141 "c-parse.y"
+#line 1113 "c-parse.y"
 { process_init_element (yyvsp[0].ttype); ;
     break;}
 case 206:
-#line 1152 "c-parse.y"
+#line 1124 "c-parse.y"
 { set_init_label (yyvsp[0].ttype); ;
     break;}
 case 207:
-#line 1157 "c-parse.y"
+#line 1129 "c-parse.y"
 { set_init_index (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 208:
-#line 1159 "c-parse.y"
+#line 1131 "c-parse.y"
 { set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
     break;}
 case 209:
-#line 1164 "c-parse.y"
+#line 1136 "c-parse.y"
 { push_c_function_context ();
                  if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 1))
@@ -2716,16 +2769,16 @@ case 209:
                  reinit_parse_for_function (); ;
     break;}
 case 210:
-#line 1173 "c-parse.y"
+#line 1145 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 211:
-#line 1181 "c-parse.y"
+#line 1153 "c-parse.y"
 { finish_function (1);
                  pop_c_function_context (); ;
     break;}
 case 212:
-#line 1187 "c-parse.y"
+#line 1159 "c-parse.y"
 { push_c_function_context ();
                  if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 1))
@@ -2736,211 +2789,211 @@ case 212:
                  reinit_parse_for_function (); ;
     break;}
 case 213:
-#line 1196 "c-parse.y"
+#line 1168 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 214:
-#line 1204 "c-parse.y"
+#line 1176 "c-parse.y"
 { finish_function (1);
                  pop_c_function_context (); ;
     break;}
 case 217:
-#line 1220 "c-parse.y"
+#line 1192 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 218:
-#line 1222 "c-parse.y"
+#line 1194 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 219:
-#line 1227 "c-parse.y"
+#line 1199 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 220:
-#line 1229 "c-parse.y"
+#line 1201 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 221:
-#line 1231 "c-parse.y"
+#line 1203 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 222:
-#line 1238 "c-parse.y"
+#line 1210 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 224:
-#line 1249 "c-parse.y"
+#line 1221 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 225:
-#line 1254 "c-parse.y"
+#line 1226 "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");
                ;
     break;}
 case 226:
-#line 1259 "c-parse.y"
+#line 1231 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 227:
-#line 1261 "c-parse.y"
+#line 1233 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 228:
-#line 1263 "c-parse.y"
+#line 1235 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 229:
-#line 1270 "c-parse.y"
+#line 1242 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 231:
-#line 1279 "c-parse.y"
+#line 1251 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 232:
-#line 1284 "c-parse.y"
+#line 1256 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 233:
-#line 1286 "c-parse.y"
+#line 1258 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 234:
-#line 1288 "c-parse.y"
+#line 1260 "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");
                ;
     break;}
 case 235:
-#line 1293 "c-parse.y"
+#line 1265 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 236:
-#line 1295 "c-parse.y"
+#line 1267 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 237:
-#line 1302 "c-parse.y"
+#line 1274 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 239:
-#line 1308 "c-parse.y"
+#line 1280 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 240:
-#line 1310 "c-parse.y"
+#line 1282 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 241:
-#line 1315 "c-parse.y"
+#line 1287 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 242:
-#line 1317 "c-parse.y"
+#line 1289 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 243:
-#line 1322 "c-parse.y"
+#line 1294 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 244:
-#line 1324 "c-parse.y"
+#line 1296 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 245:
-#line 1329 "c-parse.y"
+#line 1301 "c-parse.y"
 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
                  /* Start scope of tag before parsing components.  */
                ;
     break;}
 case 246:
-#line 1333 "c-parse.y"
+#line 1305 "c-parse.y"
 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
     break;}
 case 247:
-#line 1335 "c-parse.y"
+#line 1307 "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 1339 "c-parse.y"
+#line 1311 "c-parse.y"
 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
     break;}
 case 249:
-#line 1341 "c-parse.y"
+#line 1313 "c-parse.y"
 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
     break;}
 case 250:
-#line 1343 "c-parse.y"
+#line 1315 "c-parse.y"
 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
     break;}
 case 251:
-#line 1345 "c-parse.y"
+#line 1317 "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 1349 "c-parse.y"
+#line 1321 "c-parse.y"
 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
     break;}
 case 253:
-#line 1351 "c-parse.y"
+#line 1323 "c-parse.y"
 { yyvsp[0].itype = suspend_momentary ();
                  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
     break;}
 case 254:
-#line 1354 "c-parse.y"
+#line 1326 "c-parse.y"
 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype));
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 255:
-#line 1357 "c-parse.y"
+#line 1329 "c-parse.y"
 { yyvsp[0].itype = suspend_momentary ();
                  yyval.ttype = start_enum (NULL_TREE); ;
     break;}
 case 256:
-#line 1360 "c-parse.y"
+#line 1332 "c-parse.y"
 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype));
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 257:
-#line 1363 "c-parse.y"
+#line 1335 "c-parse.y"
 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
     break;}
 case 261:
-#line 1374 "c-parse.y"
+#line 1346 "c-parse.y"
 { if (pedantic && ! flag_isoc9x)
                    pedwarn ("comma at end of enumerator list"); ;
     break;}
 case 262:
-#line 1380 "c-parse.y"
+#line 1352 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 263:
-#line 1382 "c-parse.y"
+#line 1354 "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 1387 "c-parse.y"
+#line 1359 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 265:
-#line 1389 "c-parse.y"
+#line 1361 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
     break;}
 case 266:
-#line 1391 "c-parse.y"
+#line 1363 "c-parse.y"
 { if (pedantic)
                    pedwarn ("extra semicolon in struct or union specified"); ;
     break;}
 case 267:
-#line 1406 "c-parse.y"
+#line 1378 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -2948,14 +3001,14 @@ case 267:
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 268:
-#line 1412 "c-parse.y"
+#line 1384 "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 269:
-#line 1417 "c-parse.y"
+#line 1389 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -2963,144 +3016,144 @@ case 269:
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 270:
-#line 1423 "c-parse.y"
+#line 1395 "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 1428 "c-parse.y"
+#line 1400 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 272:
-#line 1430 "c-parse.y"
+#line 1402 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  pedantic = yyvsp[-1].itype; ;
     break;}
 case 274:
-#line 1437 "c-parse.y"
+#line 1409 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 275:
-#line 1442 "c-parse.y"
+#line 1414 "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 1446 "c-parse.y"
+#line 1418 "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 1449 "c-parse.y"
+#line 1421 "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 1461 "c-parse.y"
+#line 1433 "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 1466 "c-parse.y"
+#line 1438 "c-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 281:
-#line 1472 "c-parse.y"
+#line 1444 "c-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 282:
-#line 1474 "c-parse.y"
+#line 1446 "c-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 283:
-#line 1479 "c-parse.y"
+#line 1451 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 284:
-#line 1481 "c-parse.y"
+#line 1453 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 285:
-#line 1486 "c-parse.y"
+#line 1458 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 287:
-#line 1492 "c-parse.y"
+#line 1464 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 288:
-#line 1494 "c-parse.y"
+#line 1466 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 289:
-#line 1499 "c-parse.y"
+#line 1471 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 290:
-#line 1501 "c-parse.y"
+#line 1473 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 291:
-#line 1506 "c-parse.y"
+#line 1478 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 292:
-#line 1509 "c-parse.y"
+#line 1481 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 293:
-#line 1511 "c-parse.y"
+#line 1483 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 294:
-#line 1513 "c-parse.y"
+#line 1485 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 295:
-#line 1515 "c-parse.y"
+#line 1487 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 296:
-#line 1517 "c-parse.y"
+#line 1489 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 297:
-#line 1519 "c-parse.y"
+#line 1491 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 298:
-#line 1521 "c-parse.y"
+#line 1493 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 299:
-#line 1523 "c-parse.y"
+#line 1495 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
     break;}
 case 300:
-#line 1527 "c-parse.y"
+#line 1499 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 301:
-#line 1536 "c-parse.y"
+#line 1508 "c-parse.y"
 {
                  if (pedantic && yyvsp[0].ends_in_label)
                    pedwarn ("ANSI C forbids label at end of compound statement");
                ;
     break;}
 case 303:
-#line 1545 "c-parse.y"
+#line 1517 "c-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
 case 304:
-#line 1547 "c-parse.y"
+#line 1519 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
 case 308:
-#line 1559 "c-parse.y"
+#line 1531 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  pushlevel (0);
                  clear_last_expr ();
@@ -3109,12 +3162,12 @@ case 308:
                ;
     break;}
 case 310:
-#line 1572 "c-parse.y"
+#line 1544 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids label declarations"); ;
     break;}
 case 313:
-#line 1583 "c-parse.y"
+#line 1555 "c-parse.y"
 { tree link;
                  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
                    {
@@ -3125,19 +3178,19 @@ case 313:
                ;
     break;}
 case 314:
-#line 1597 "c-parse.y"
+#line 1569 "c-parse.y"
 {;
     break;}
 case 316:
-#line 1601 "c-parse.y"
+#line 1573 "c-parse.y"
 { compstmt_count++; ;
     break;}
 case 317:
-#line 1604 "c-parse.y"
+#line 1576 "c-parse.y"
 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
     break;}
 case 318:
-#line 1606 "c-parse.y"
+#line 1578 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), 1, 0);
                  yyval.ttype = poplevel (1, 1, 0);
@@ -3147,7 +3200,7 @@ case 318:
                    pop_momentary (); ;
     break;}
 case 319:
-#line 1614 "c-parse.y"
+#line 1586 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3157,7 +3210,7 @@ case 319:
                    pop_momentary (); ;
     break;}
 case 320:
-#line 1622 "c-parse.y"
+#line 1594 "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);
@@ -3166,8 +3219,30 @@ case 320:
                  else
                    pop_momentary (); ;
     break;}
-case 323:
-#line 1642 "c-parse.y"
+case 321:
+#line 1605 "c-parse.y"
+{ if (current_function_decl == 0)
+                   {
+                     error ("braced-group within expression allowed only inside a function");
+                     YYERROR;
+                   }
+                 /* We must force a BLOCK for this level
+                    so that, if it is not expanded later,
+                    there is a way to turn off the entire subtree of blocks
+                    that are contained in it.  */
+                 keep_next_level ();
+                 push_iterator_stack ();
+                 push_label_level ();
+                 yyval.ttype = expand_start_stmt_expr ();
+                 compstmt_count++;
+               ;
+    break;}
+case 322:
+#line 1622 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 325:
+#line 1636 "c-parse.y"
 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, 
                                       compstmt_count);
@@ -3176,8 +3251,8 @@ case 323:
                  if_stmt_line = yyvsp[-4].lineno;
                  position_after_white_space (); ;
     break;}
-case 324:
-#line 1656 "c-parse.y"
+case 326:
+#line 1650 "c-parse.y"
 { stmt_count++;
                  compstmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
@@ -3186,44 +3261,44 @@ case 324:
                  expand_start_loop_continue_elsewhere (1);
                  position_after_white_space (); ;
     break;}
-case 325:
-#line 1664 "c-parse.y"
+case 327:
+#line 1658 "c-parse.y"
 { expand_loop_continue_here (); ;
     break;}
-case 326:
-#line 1668 "c-parse.y"
+case 328:
+#line 1662 "c-parse.y"
 { yyval.filename = input_filename; ;
     break;}
-case 327:
-#line 1672 "c-parse.y"
+case 329:
+#line 1666 "c-parse.y"
 { yyval.lineno = lineno; ;
     break;}
-case 328:
-#line 1677 "c-parse.y"
+case 330:
+#line 1671 "c-parse.y"
 { ;
     break;}
-case 329:
-#line 1682 "c-parse.y"
+case 331:
+#line 1676 "c-parse.y"
 { ;
     break;}
-case 330:
-#line 1687 "c-parse.y"
+case 332:
+#line 1681 "c-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
-case 331:
-#line 1692 "c-parse.y"
+case 333:
+#line 1686 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 332:
-#line 1694 "c-parse.y"
+case 334:
+#line 1688 "c-parse.y"
 { yyval.ends_in_label = 1; ;
     break;}
-case 333:
-#line 1700 "c-parse.y"
+case 335:
+#line 1694 "c-parse.y"
 { stmt_count++; ;
     break;}
-case 335:
-#line 1703 "c-parse.y"
+case 337:
+#line 1697 "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
@@ -3241,20 +3316,20 @@ case 335:
                  iterator_expand (yyvsp[-1].ttype);
                  clear_momentary (); ;
     break;}
-case 336:
-#line 1720 "c-parse.y"
+case 338:
+#line 1714 "c-parse.y"
 { c_expand_start_else ();
                  yyvsp[-1].itype = stmt_count;
                  position_after_white_space (); ;
     break;}
-case 337:
-#line 1724 "c-parse.y"
+case 339:
+#line 1718 "c-parse.y"
 { c_expand_end_cond ();
                  if (extra_warnings && stmt_count == yyvsp[-3].itype)
                    warning ("empty body in an else-statement"); ;
     break;}
-case 338:
-#line 1728 "c-parse.y"
+case 340:
+#line 1722 "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
@@ -3264,12 +3339,12 @@ case 338:
                    warning_with_file_and_line (if_stmt_file, if_stmt_line,
                                                "empty body in an if-statement"); ;
     break;}
-case 339:
-#line 1740 "c-parse.y"
+case 341:
+#line 1734 "c-parse.y"
 { c_expand_end_cond (); ;
     break;}
-case 340:
-#line 1742 "c-parse.y"
+case 342:
+#line 1736 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
                  /* The emit_nop used to come before emit_line_note,
@@ -3280,8 +3355,8 @@ case 340:
                     We will see.  --rms, July 15, 1991.  */
                  emit_nop (); ;
     break;}
-case 341:
-#line 1752 "c-parse.y"
+case 343:
+#line 1746 "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.  */
@@ -3291,25 +3366,25 @@ case 341:
                                             truthvalue_conversion (yyvsp[-1].ttype));
                  position_after_white_space (); ;
     break;}
-case 342:
-#line 1761 "c-parse.y"
+case 344:
+#line 1755 "c-parse.y"
 { expand_end_loop (); ;
     break;}
-case 343:
-#line 1764 "c-parse.y"
+case 345:
+#line 1758 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_exit_loop_if_false (NULL_PTR,
                                             truthvalue_conversion (yyvsp[-2].ttype));
                  expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 344:
-#line 1771 "c-parse.y"
+case 346:
+#line 1765 "c-parse.y"
 { expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 345:
-#line 1775 "c-parse.y"
+case 347:
+#line 1769 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  /* See comment in `while' alternative, above.  */
@@ -3321,13 +3396,13 @@ case 345:
                     fn without calling expand_end_loop.  */
                ;
     break;}
-case 346:
-#line 1787 "c-parse.y"
+case 348:
+#line 1781 "c-parse.y"
 { yyvsp[0].lineno = lineno;
                  yyval.filename = input_filename; ;
     break;}
-case 347:
-#line 1790 "c-parse.y"
+case 349:
+#line 1784 "c-parse.y"
 { 
                  /* Start the loop.  Doing this after parsing
                     all the expressions ensures we will end the loop.  */
@@ -3344,8 +3419,8 @@ case 347:
                  yyvsp[-2].filename = input_filename;
                  position_after_white_space (); ;
     break;}
-case 348:
-#line 1806 "c-parse.y"
+case 350:
+#line 1800 "c-parse.y"
 { /* Emit the increment expression, with a line number.  */
                  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
                  expand_loop_continue_here ();
@@ -3357,8 +3432,8 @@ case 348:
                    pop_momentary ();
                  expand_end_loop (); ;
     break;}
-case 349:
-#line 1817 "c-parse.y"
+case 351:
+#line 1811 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_case (yyvsp[-1].ttype);
@@ -3367,42 +3442,42 @@ case 349:
                  push_momentary ();
                  position_after_white_space (); ;
     break;}
-case 350:
-#line 1825 "c-parse.y"
+case 352:
+#line 1819 "c-parse.y"
 { expand_end_case (yyvsp[-3].ttype);
                  if (yychar == CONSTANT || yychar == STRING)
                    pop_momentary_nofree ();
                  else
                    pop_momentary (); ;
     break;}
-case 351:
-#line 1831 "c-parse.y"
+case 353:
+#line 1825 "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 352:
-#line 1836 "c-parse.y"
+case 354:
+#line 1830 "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 353:
-#line 1841 "c-parse.y"
+case 355:
+#line 1835 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  c_expand_return (NULL_TREE); ;
     break;}
-case 354:
-#line 1845 "c-parse.y"
+case 356:
+#line 1839 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
                  c_expand_return (yyvsp[-1].ttype); ;
     break;}
-case 355:
-#line 1849 "c-parse.y"
+case 357:
+#line 1843 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
                  STRIP_NOPS (yyvsp[-2].ttype);
@@ -3413,32 +3488,32 @@ case 355:
                  else
                    error ("argument of `asm' is not a constant string"); ;
     break;}
-case 356:
-#line 1860 "c-parse.y"
+case 358:
+#line 1854 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
                  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
                                         yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 357:
-#line 1867 "c-parse.y"
+case 359:
+#line 1861 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
                  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
                                         yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 358:
-#line 1875 "c-parse.y"
+case 360:
+#line 1869 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
                  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
                                         yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 359:
-#line 1881 "c-parse.y"
+case 361:
+#line 1875 "c-parse.y"
 { tree decl;
                  stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -3450,16 +3525,16 @@ case 359:
                    }
                ;
     break;}
-case 360:
-#line 1892 "c-parse.y"
+case 362:
+#line 1886 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids `goto *expr;'");
                  stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
     break;}
-case 363:
-#line 1907 "c-parse.y"
+case 365:
+#line 1901 "c-parse.y"
 {
            /* The value returned by this action is  */
            /*      1 if everything is OK */ 
@@ -3481,15 +3556,15 @@ case 363:
              }
          ;
     break;}
-case 364:
-#line 1928 "c-parse.y"
+case 366:
+#line 1922 "c-parse.y"
 {
            if (yyvsp[-1].itype)
              iterator_for_loop_end (yyvsp[-3].ttype);
          ;
     break;}
-case 365:
-#line 1963 "c-parse.y"
+case 367:
+#line 1957 "c-parse.y"
 { register tree value = check_case_value (yyvsp[-1].ttype);
                  register tree label
                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
@@ -3521,8 +3596,8 @@ case 365:
                    }
                  position_after_white_space (); ;
     break;}
-case 366:
-#line 1994 "c-parse.y"
+case 368:
+#line 1988 "c-parse.y"
 { register tree value1 = check_case_value (yyvsp[-3].ttype);
                  register tree value2 = check_case_value (yyvsp[-1].ttype);
                  register tree label
@@ -3554,8 +3629,8 @@ case 366:
                    }
                  position_after_white_space (); ;
     break;}
-case 367:
-#line 2025 "c-parse.y"
+case 369:
+#line 2019 "c-parse.y"
 {
                  tree duplicate;
                  register tree label
@@ -3571,8 +3646,8 @@ case 367:
                    }
                  position_after_white_space (); ;
     break;}
-case 368:
-#line 2040 "c-parse.y"
+case 370:
+#line 2034 "c-parse.y"
 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
                  stmt_count++;
                  emit_nop ();
@@ -3583,53 +3658,53 @@ case 368:
                    }
                  position_after_white_space (); ;
     break;}
-case 369:
-#line 2055 "c-parse.y"
+case 371:
+#line 2049 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 370:
-#line 2058 "c-parse.y"
+case 372:
+#line 2052 "c-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
-case 371:
-#line 2063 "c-parse.y"
+case 373:
+#line 2057 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 373:
-#line 2070 "c-parse.y"
+case 375:
+#line 2064 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 376:
-#line 2077 "c-parse.y"
+case 378:
+#line 2071 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 377:
-#line 2082 "c-parse.y"
+case 379:
+#line 2076 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 378:
-#line 2087 "c-parse.y"
+case 380:
+#line 2081 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
-case 379:
-#line 2089 "c-parse.y"
+case 381:
+#line 2083 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
     break;}
-case 380:
-#line 2095 "c-parse.y"
+case 382:
+#line 2089 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (0); ;
     break;}
-case 381:
-#line 2099 "c-parse.y"
+case 383:
+#line 2093 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 383:
-#line 2107 "c-parse.y"
+case 385:
+#line 2101 "c-parse.y"
 { tree parm;
                  if (pedantic)
                    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -3638,20 +3713,20 @@ case 383:
                    TREE_ASM_WRITTEN (parm) = 1;
                  clear_parm_order (); ;
     break;}
-case 384:
-#line 2115 "c-parse.y"
+case 386:
+#line 2109 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 385:
-#line 2117 "c-parse.y"
+case 387:
+#line 2111 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
-case 386:
-#line 2123 "c-parse.y"
+case 388:
+#line 2117 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
-case 387:
-#line 2125 "c-parse.y"
+case 389:
+#line 2119 "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.
@@ -3662,24 +3737,24 @@ case 387:
                  error ("ANSI C requires a named argument before `...'");
                ;
     break;}
-case 388:
-#line 2135 "c-parse.y"
+case 390:
+#line 2129 "c-parse.y"
 { yyval.ttype = get_parm_info (1); ;
     break;}
-case 389:
-#line 2137 "c-parse.y"
+case 391:
+#line 2131 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
-case 390:
-#line 2142 "c-parse.y"
+case 392:
+#line 2136 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 391:
-#line 2144 "c-parse.y"
+case 393:
+#line 2138 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 392:
-#line 2151 "c-parse.y"
+case 394:
+#line 2145 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3689,8 +3764,8 @@ case 392:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 393:
-#line 2160 "c-parse.y"
+case 395:
+#line 2154 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3700,8 +3775,8 @@ case 393:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 394:
-#line 2169 "c-parse.y"
+case 396:
+#line 2163 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3711,8 +3786,8 @@ case 394:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 395:
-#line 2178 "c-parse.y"
+case 397:
+#line 2172 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3722,8 +3797,8 @@ case 395:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 396:
-#line 2188 "c-parse.y"
+case 398:
+#line 2182 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3733,50 +3808,50 @@ case 396:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 397:
-#line 2202 "c-parse.y"
+case 399:
+#line 2196 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (1); ;
     break;}
-case 398:
-#line 2206 "c-parse.y"
+case 400:
+#line 2200 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 400:
-#line 2214 "c-parse.y"
+case 402:
+#line 2208 "c-parse.y"
 { tree t;
                  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
                    if (TREE_VALUE (t) == NULL_TREE)
                      error ("`...' in old-style identifier list");
                  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 401:
-#line 2224 "c-parse.y"
+case 403:
+#line 2218 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 402:
-#line 2226 "c-parse.y"
+case 404:
+#line 2220 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
-case 403:
-#line 2232 "c-parse.y"
+case 405:
+#line 2226 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 404:
-#line 2234 "c-parse.y"
+case 406:
+#line 2228 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
-case 405:
-#line 2239 "c-parse.y"
+case 407:
+#line 2233 "c-parse.y"
 { yyval.itype = pedantic;
                  pedantic = 0; ;
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/cygnus/gnupro-98r2/share/bison.simple"
+#line 542 "/usr/lib/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -3971,6 +4046,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 2243 "c-parse.y"
+#line 2237 "c-parse.y"
 
index 5c9abe09ac1d8bccd4652b7f061bc89da62c2143..cbffaaac88bf24269ecaad23256559d3eea872f4 100644 (file)
@@ -1,66 +1,66 @@
 typedef union {long itype; tree ttype; enum tree_code code;
        char *filename; int lineno; int ends_in_label; } YYSTYPE;
-#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
+#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        END_OF_LINE     290
+#define        ASSIGN  291
+#define        OROR    292
+#define        ANDAND  293
+#define        EQCOMPARE       294
+#define        ARITHCOMPARE    295
+#define        LSHIFT  296
+#define        RSHIFT  297
+#define        UNARY   298
+#define        PLUSPLUS        299
+#define        MINUSMINUS      300
+#define        HYPERUNARY      301
+#define        POINTSAT        302
+#define        INTERFACE       303
+#define        IMPLEMENTATION  304
+#define        END     305
+#define        SELECTOR        306
+#define        DEFS    307
+#define        ENCODE  308
+#define        CLASSNAME       309
+#define        PUBLIC  310
+#define        PRIVATE 311
+#define        PROTECTED       312
+#define        PROTOCOL        313
+#define        OBJECTNAME      314
+#define        CLASS   315
+#define        ALIAS   316
+#define        OBJC_STRING     317
 
 
 extern YYSTYPE yylval;
index 7bd12990ddc042693195e0c1b96977b06a5a4139..a329a1610acf4d6de94e7d2b3776b78d457c0172 100644 (file)
@@ -28,33 +28,10 @@ Boston, MA 02111-1307, USA.  */
    written by AT&T, but I have never seen it.  */
 
 ifobjc
-%expect 66
+%expect 73
 end ifobjc
 ifc
-%expect 51
-
-/* These are the 23 conflicts you should get in parse.output;
-   the state numbers may vary if minor changes in the grammar are made.
-
-State 42 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTE.)
-State 44 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
-State 103 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
-State 110 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTE.)
-State 111 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
-State 115 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
-State 132 contains 1 shift/reduce conflict.  (See comment at component_decl.)
-State 180 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTE.)
-State 194 contains 2 shift/reduce conflict.  (Four ways to parse this.)
-State 202 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
-State 214 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
-State 220 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
-State 304 contains 2 shift/reduce conflicts.  (Four ways to parse this.)
-State 335 contains 2 shift/reduce conflicts.  (Four ways to parse this.)
-State 347 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTES.)
-State 352 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTES.)
-State 383 contains 2 shift/reduce conflicts.  (Four ways to parse this.)
-State 434 contains 2 shift/reduce conflicts.  (Four ways to parse this.)  */
-
+%expect 52
 end ifc
 
 %{
@@ -191,7 +168,7 @@ end ifc
 %type <ttype> maybe_attribute attributes attribute attribute_list attrib
 %type <ttype> any_word
 
-%type <ttype> compstmt
+%type <ttype> compstmt compstmt_nostart compstmt_primary_start
 
 %type <ttype> declarator
 %type <ttype> notype_declarator after_type_declarator
@@ -806,42 +783,37 @@ end ifobjc
                  $$ = $2; }
        | '(' error ')'
                { $$ = error_mark_node; }
-       | '('
-               { if (current_function_decl == 0)
-                   {
-                     error ("braced-group within expression allowed only inside a function");
-                     YYERROR;
-                   }
-                 /* We must force a BLOCK for this level
-                    so that, if it is not expanded later,
-                    there is a way to turn off the entire subtree of blocks
-                    that are contained in it.  */
-                 keep_next_level ();
-                 push_iterator_stack ();
-                 push_label_level ();
-                 $<ttype>$ = expand_start_stmt_expr (); }
-         compstmt ')'
+       | compstmt_primary_start compstmt_nostart ')'
                { tree rtl_exp;
                  if (pedantic)
                    pedwarn ("ANSI C forbids braced-groups within expressions");
                  pop_iterator_stack ();
                  pop_label_level ();
-                 rtl_exp = expand_end_stmt_expr ($<ttype>2);
+                 rtl_exp = expand_end_stmt_expr ($1);
                  /* The statements have side effects, so the group does.  */
                  TREE_SIDE_EFFECTS (rtl_exp) = 1;
 
-                 if (TREE_CODE ($3) == BLOCK)
+                 if (TREE_CODE ($2) == BLOCK)
                    {
                      /* Make a BIND_EXPR for the BLOCK already made.  */
                      $$ = build (BIND_EXPR, TREE_TYPE (rtl_exp),
-                                 NULL_TREE, rtl_exp, $3);
+                                 NULL_TREE, rtl_exp, $2);
                      /* Remove the block from the tree at this point.
                         It gets put back at the proper place
                         when the BIND_EXPR is expanded.  */
-                     delete_block ($3);
+                     delete_block ($2);
                    }
                  else
-                   $$ = $3;
+                   $$ = $2;
+               }
+       | compstmt_primary_start error ')'
+               {
+                 /* Make sure we call expand_end_stmt_expr.  Otherwise
+                    we are likely to lose sequences and crash later.  */
+                 pop_iterator_stack ();
+                 pop_label_level ();
+                 expand_end_stmt_expr ($1);
+                 $$ = error_mark_node;
                }
        | primary '(' exprlist ')'   %prec '.'
                { $$ = build_function_call ($1, $3); }
@@ -1795,9 +1767,9 @@ compstmt_or_error:
 
 compstmt_start: '{' { compstmt_count++; }
 
-compstmt: compstmt_start '}'
+compstmt_nostart: '}'
                { $$ = convert (void_type_node, integer_zero_node); }
-       | compstmt_start pushlevel maybe_label_decls decls xstmts '}'
+       | pushlevel maybe_label_decls decls xstmts '}'
                { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), 1, 0);
                  $$ = poplevel (1, 1, 0);
@@ -1805,7 +1777,7 @@ compstmt: compstmt_start '}'
                    pop_momentary_nofree ();
                  else
                    pop_momentary (); }
-       | compstmt_start pushlevel maybe_label_decls error '}'
+       | pushlevel maybe_label_decls error '}'
                { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  $$ = poplevel (kept_level_p (), 0, 0);
@@ -1813,7 +1785,7 @@ compstmt: compstmt_start '}'
                    pop_momentary_nofree ();
                  else
                    pop_momentary (); }
-       | compstmt_start pushlevel maybe_label_decls stmts '}'
+       | pushlevel maybe_label_decls stmts '}'
                { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  $$ = poplevel (kept_level_p (), 0, 0);
@@ -1823,6 +1795,28 @@ compstmt: compstmt_start '}'
                    pop_momentary (); }
        ;
 
+compstmt_primary_start:
+       '(' '{'
+               { if (current_function_decl == 0)
+                   {
+                     error ("braced-group within expression allowed only inside a function");
+                     YYERROR;
+                   }
+                 /* We must force a BLOCK for this level
+                    so that, if it is not expanded later,
+                    there is a way to turn off the entire subtree of blocks
+                    that are contained in it.  */
+                 keep_next_level ();
+                 push_iterator_stack ();
+                 push_label_level ();
+                 $$ = expand_start_stmt_expr ();
+                 compstmt_count++;
+               }
+
+compstmt: compstmt_start compstmt_nostart
+               { $$ = $2; }
+       ;
+
 /* Value is number of statements counted as of the closeparen.  */
 simple_if:
          if_prefix lineno_labeled_stmt
index 08d985b0876515eac8026df1e6fd594b5a6769e0..9833b0fde298b6d92bac27a41f41c0707b9e5061 100644 (file)
@@ -28,30 +28,7 @@ Boston, MA 02111-1307, USA.  */
 /* To whomever it may concern: I have heard that such a thing was once
    written by AT&T, but I have never seen it.  */
 
-%expect 51
-
-/* These are the 23 conflicts you should get in parse.output;
-   the state numbers may vary if minor changes in the grammar are made.
-
-State 42 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTE.)
-State 44 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
-State 103 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
-State 110 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTE.)
-State 111 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
-State 115 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
-State 132 contains 1 shift/reduce conflict.  (See comment at component_decl.)
-State 180 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTE.)
-State 194 contains 2 shift/reduce conflict.  (Four ways to parse this.)
-State 202 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
-State 214 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
-State 220 contains 1 shift/reduce conflict.  (Two ways to recover from error.)
-State 304 contains 2 shift/reduce conflicts.  (Four ways to parse this.)
-State 335 contains 2 shift/reduce conflicts.  (Four ways to parse this.)
-State 347 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTES.)
-State 352 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTES.)
-State 383 contains 2 shift/reduce conflicts.  (Four ways to parse this.)
-State 434 contains 2 shift/reduce conflicts.  (Four ways to parse this.)  */
-
+%expect 52
 
 %{
 #include "config.h"
@@ -179,7 +156,7 @@ const char * const language_string = "GNU C";
 %type <ttype> maybe_attribute attributes attribute attribute_list attrib
 %type <ttype> any_word
 
-%type <ttype> compstmt
+%type <ttype> compstmt compstmt_nostart compstmt_primary_start
 
 %type <ttype> declarator
 %type <ttype> notype_declarator after_type_declarator
@@ -692,42 +669,37 @@ primary:
                  $$ = $2; }
        | '(' error ')'
                { $$ = error_mark_node; }
-       | '('
-               { if (current_function_decl == 0)
-                   {
-                     error ("braced-group within expression allowed only inside a function");
-                     YYERROR;
-                   }
-                 /* We must force a BLOCK for this level
-                    so that, if it is not expanded later,
-                    there is a way to turn off the entire subtree of blocks
-                    that are contained in it.  */
-                 keep_next_level ();
-                 push_iterator_stack ();
-                 push_label_level ();
-                 $<ttype>$ = expand_start_stmt_expr (); }
-         compstmt ')'
+       | compstmt_primary_start compstmt_nostart ')'
                { tree rtl_exp;
                  if (pedantic)
                    pedwarn ("ANSI C forbids braced-groups within expressions");
                  pop_iterator_stack ();
                  pop_label_level ();
-                 rtl_exp = expand_end_stmt_expr ($<ttype>2);
+                 rtl_exp = expand_end_stmt_expr ($1);
                  /* The statements have side effects, so the group does.  */
                  TREE_SIDE_EFFECTS (rtl_exp) = 1;
 
-                 if (TREE_CODE ($3) == BLOCK)
+                 if (TREE_CODE ($2) == BLOCK)
                    {
                      /* Make a BIND_EXPR for the BLOCK already made.  */
                      $$ = build (BIND_EXPR, TREE_TYPE (rtl_exp),
-                                 NULL_TREE, rtl_exp, $3);
+                                 NULL_TREE, rtl_exp, $2);
                      /* Remove the block from the tree at this point.
                         It gets put back at the proper place
                         when the BIND_EXPR is expanded.  */
-                     delete_block ($3);
+                     delete_block ($2);
                    }
                  else
-                   $$ = $3;
+                   $$ = $2;
+               }
+       | compstmt_primary_start error ')'
+               {
+                 /* Make sure we call expand_end_stmt_expr.  Otherwise
+                    we are likely to lose sequences and crash later.  */
+                 pop_iterator_stack ();
+                 pop_label_level ();
+                 expand_end_stmt_expr ($1);
+                 $$ = error_mark_node;
                }
        | primary '(' exprlist ')'   %prec '.'
                { $$ = build_function_call ($1, $3); }
@@ -1600,9 +1572,9 @@ compstmt_or_error:
 
 compstmt_start: '{' { compstmt_count++; }
 
-compstmt: compstmt_start '}'
+compstmt_nostart: '}'
                { $$ = convert (void_type_node, integer_zero_node); }
-       | compstmt_start pushlevel maybe_label_decls decls xstmts '}'
+       | pushlevel maybe_label_decls decls xstmts '}'
                { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), 1, 0);
                  $$ = poplevel (1, 1, 0);
@@ -1610,7 +1582,7 @@ compstmt: compstmt_start '}'
                    pop_momentary_nofree ();
                  else
                    pop_momentary (); }
-       | compstmt_start pushlevel maybe_label_decls error '}'
+       | pushlevel maybe_label_decls error '}'
                { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  $$ = poplevel (kept_level_p (), 0, 0);
@@ -1618,7 +1590,7 @@ compstmt: compstmt_start '}'
                    pop_momentary_nofree ();
                  else
                    pop_momentary (); }
-       | compstmt_start pushlevel maybe_label_decls stmts '}'
+       | pushlevel maybe_label_decls stmts '}'
                { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  $$ = poplevel (kept_level_p (), 0, 0);
@@ -1628,6 +1600,28 @@ compstmt: compstmt_start '}'
                    pop_momentary (); }
        ;
 
+compstmt_primary_start:
+       '(' '{'
+               { if (current_function_decl == 0)
+                   {
+                     error ("braced-group within expression allowed only inside a function");
+                     YYERROR;
+                   }
+                 /* We must force a BLOCK for this level
+                    so that, if it is not expanded later,
+                    there is a way to turn off the entire subtree of blocks
+                    that are contained in it.  */
+                 keep_next_level ();
+                 push_iterator_stack ();
+                 push_label_level ();
+                 $$ = expand_start_stmt_expr ();
+                 compstmt_count++;
+               }
+
+compstmt: compstmt_start compstmt_nostart
+               { $$ = $2; }
+       ;
+
 /* Value is number of statements counted as of the closeparen.  */
 simple_if:
          if_prefix lineno_labeled_stmt
index f34ec91a596836c405df6aca57100e25475f499c..bec8a379c2f895071bc952d9508333ad3981974d 100644 (file)
@@ -1,71 +1,71 @@
 
 /*  A Bison parser, made from objc-parse.y
- by  GNU Bison version 1.25
+ by  GNU Bison version 1.27
   */
 
 #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
+#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        END_OF_LINE     290
+#define        ASSIGN  291
+#define        OROR    292
+#define        ANDAND  293
+#define        EQCOMPARE       294
+#define        ARITHCOMPARE    295
+#define        LSHIFT  296
+#define        RSHIFT  297
+#define        UNARY   298
+#define        PLUSPLUS        299
+#define        MINUSMINUS      300
+#define        HYPERUNARY      301
+#define        POINTSAT        302
+#define        INTERFACE       303
+#define        IMPLEMENTATION  304
+#define        END     305
+#define        SELECTOR        306
+#define        DEFS    307
+#define        ENCODE  308
+#define        CLASSNAME       309
+#define        PUBLIC  310
+#define        PRIVATE 311
+#define        PROTECTED       312
+#define        PROTOCOL        313
+#define        OBJECTNAME      314
+#define        CLASS   315
+#define        ALIAS   316
+#define        OBJC_STRING     317
 
 #line 33 "objc-parse.y"
 
@@ -148,11 +148,11 @@ extern void yyprint                       PROTO ((FILE *, int, YYSTYPE));
 
 
 
-#define        YYFINAL         961
+#define        YYFINAL         965
 #define        YYFLAG          -32768
 #define        YYNTBASE        86
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 318 ? yytranslate[x] : 313)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 317 ? yytranslate[x] : 314)
 
 static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -180,13 +180,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,    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
 };
 
 #if YYDEBUG != 0
@@ -200,77 +200,77 @@ static const short yyprhs[] = {     0,
    176,   178,   180,   185,   186,   194,   196,   200,   204,   208,
    212,   216,   220,   224,   228,   232,   236,   240,   244,   245,
    250,   251,   256,   257,   258,   266,   267,   273,   277,   281,
-   283,   285,   287,   291,   295,   296,   301,   306,   311,   315,
-   319,   322,   325,   327,   329,   331,   333,   335,   337,   340,
-   342,   345,   346,   348,   351,   355,   357,   359,   362,   365,
-   370,   375,   378,   381,   385,   387,   389,   392,   395,   396,
-   397,   402,   407,   411,   415,   418,   421,   424,   427,   431,
-   432,   435,   438,   441,   444,   448,   449,   452,   455,   457,
-   459,   462,   465,   467,   469,   472,   475,   478,   482,   483,
-   486,   488,   490,   492,   495,   498,   500,   505,   510,   512,
-   514,   516,   518,   522,   524,   528,   529,   534,   535,   542,
-   546,   547,   554,   558,   559,   561,   563,   566,   573,   575,
-   579,   580,   582,   587,   594,   599,   601,   603,   605,   607,
-   609,   610,   615,   617,   618,   621,   623,   627,   631,   634,
-   635,   640,   642,   643,   648,   650,   652,   654,   657,   660,
-   661,   662,   668,   669,   670,   676,   678,   680,   684,   688,
-   693,   697,   701,   705,   707,   709,   713,   718,   722,   726,
-   730,   732,   736,   740,   744,   749,   753,   757,   759,   761,
-   764,   766,   769,   771,   774,   775,   783,   789,   792,   793,
-   801,   807,   810,   811,   820,   821,   829,   832,   833,   835,
-   836,   838,   840,   843,   844,   848,   851,   856,   860,   862,
-   866,   868,   870,   873,   875,   879,   884,   891,   897,   899,
-   903,   905,   907,   911,   914,   917,   918,   920,   922,   925,
-   926,   929,   933,   937,   940,   944,   949,   953,   956,   960,
-   963,   967,   969,   971,   974,   977,   978,   980,   983,   984,
-   985,   987,   989,   992,   996,   998,  1001,  1003,  1006,  1013,
-  1019,  1025,  1028,  1031,  1036,  1037,  1042,  1043,  1044,  1048,
-  1053,  1057,  1059,  1061,  1063,  1065,  1068,  1069,  1074,  1076,
-  1080,  1081,  1082,  1090,  1096,  1099,  1100,  1101,  1102,  1115,
-  1116,  1123,  1126,  1129,  1132,  1136,  1143,  1152,  1163,  1176,
-  1180,  1185,  1187,  1189,  1190,  1197,  1201,  1207,  1210,  1214,
-  1215,  1217,  1218,  1220,  1221,  1223,  1225,  1229,  1234,  1236,
-  1240,  1241,  1244,  1247,  1248,  1253,  1256,  1257,  1259,  1261,
-  1265,  1267,  1271,  1276,  1281,  1286,  1291,  1296,  1297,  1300,
-  1302,  1305,  1307,  1311,  1313,  1317,  1319,  1321,  1323,  1325,
-  1327,  1329,  1331,  1333,  1337,  1341,  1346,  1347,  1348,  1359,
-  1360,  1367,  1368,  1369,  1382,  1383,  1392,  1393,  1400,  1403,
-  1404,  1413,  1418,  1419,  1429,  1435,  1436,  1443,  1444,  1446,
-  1450,  1454,  1456,  1458,  1460,  1462,  1463,  1467,  1470,  1474,
-  1478,  1480,  1481,  1483,  1487,  1489,  1493,  1496,  1497,  1498,
-  1499,  1507,  1508,  1509,  1510,  1518,  1519,  1520,  1523,  1525,
-  1527,  1530,  1531,  1535,  1537,  1539,  1540,  1541,  1547,  1548,
-  1549,  1555,  1560,  1562,  1568,  1571,  1572,  1575,  1576,  1578,
-  1580,  1582,  1585,  1588,  1593,  1596,  1599,  1601,  1605,  1608,
-  1611,  1614,  1615,  1618,  1619,  1623,  1625,  1627,  1630,  1632,
+   283,   285,   287,   291,   295,   299,   303,   308,   313,   317,
+   321,   324,   327,   329,   331,   333,   335,   337,   339,   342,
+   344,   347,   348,   350,   353,   357,   359,   361,   364,   367,
+   372,   377,   380,   383,   387,   389,   391,   394,   397,   398,
+   399,   404,   409,   413,   417,   420,   423,   426,   429,   433,
+   434,   437,   440,   443,   446,   450,   451,   454,   457,   459,
+   461,   464,   467,   469,   471,   474,   477,   480,   484,   485,
+   488,   490,   492,   494,   497,   500,   502,   507,   512,   514,
+   516,   518,   520,   524,   526,   530,   531,   536,   537,   544,
+   548,   549,   556,   560,   561,   563,   565,   568,   575,   577,
+   581,   582,   584,   589,   596,   601,   603,   605,   607,   609,
+   611,   612,   617,   619,   620,   623,   625,   629,   633,   636,
+   637,   642,   644,   645,   650,   652,   654,   656,   659,   662,
+   663,   664,   670,   671,   672,   678,   680,   682,   686,   690,
+   695,   699,   703,   707,   709,   711,   715,   720,   724,   728,
+   732,   734,   738,   742,   746,   751,   755,   759,   761,   763,
+   766,   768,   771,   773,   776,   777,   785,   791,   794,   795,
+   803,   809,   812,   813,   822,   823,   831,   834,   835,   837,
+   838,   840,   842,   845,   846,   850,   853,   858,   862,   864,
+   868,   870,   872,   875,   877,   881,   886,   893,   899,   901,
+   905,   907,   909,   913,   916,   919,   920,   922,   924,   927,
+   928,   931,   935,   939,   942,   946,   951,   955,   958,   962,
+   965,   969,   971,   973,   976,   979,   980,   982,   985,   986,
+   987,   989,   991,   994,   998,  1000,  1003,  1005,  1007,  1013,
+  1018,  1023,  1026,  1029,  1032,  1035,  1040,  1041,  1046,  1047,
+  1048,  1052,  1057,  1061,  1063,  1065,  1067,  1069,  1072,  1073,
+  1078,  1080,  1084,  1085,  1086,  1094,  1100,  1103,  1104,  1105,
+  1106,  1119,  1120,  1127,  1130,  1133,  1136,  1140,  1147,  1156,
+  1167,  1180,  1184,  1189,  1191,  1193,  1194,  1201,  1205,  1211,
+  1214,  1218,  1219,  1221,  1222,  1224,  1225,  1227,  1229,  1233,
+  1238,  1240,  1244,  1245,  1248,  1251,  1252,  1257,  1260,  1261,
+  1263,  1265,  1269,  1271,  1275,  1280,  1285,  1290,  1295,  1300,
+  1301,  1304,  1306,  1309,  1311,  1315,  1317,  1321,  1323,  1325,
+  1327,  1329,  1331,  1333,  1335,  1337,  1341,  1345,  1350,  1351,
+  1352,  1363,  1364,  1371,  1372,  1373,  1386,  1387,  1396,  1397,
+  1404,  1407,  1408,  1417,  1422,  1423,  1433,  1439,  1440,  1447,
+  1448,  1450,  1454,  1458,  1460,  1462,  1464,  1466,  1467,  1471,
+  1474,  1478,  1482,  1484,  1485,  1487,  1491,  1493,  1497,  1500,
+  1501,  1502,  1503,  1511,  1512,  1513,  1514,  1522,  1523,  1524,
+  1527,  1529,  1531,  1534,  1535,  1539,  1541,  1543,  1544,  1545,
+  1551,  1552,  1553,  1559,  1564,  1566,  1572,  1575,  1576,  1579,
+  1580,  1582,  1584,  1586,  1589,  1592,  1597,  1600,  1603,  1605,
+  1609,  1612,  1615,  1618,  1619,  1622,  1623,  1627,  1629,  1631,
   1634,  1636,  1638,  1640,  1642,  1644,  1646,  1648,  1650,  1652,
   1654,  1656,  1658,  1660,  1662,  1664,  1666,  1668,  1670,  1672,
-  1674,  1676,  1678,  1680,  1687,  1691,  1697,  1700,  1702,  1704,
-  1706,  1709,  1711,  1715,  1718,  1720,  1722,  1723,  1724,  1731,
-  1733,  1735,  1737,  1740,  1743,  1745,  1750,  1755
+  1674,  1676,  1678,  1680,  1682,  1684,  1691,  1695,  1701,  1704,
+  1706,  1708,  1710,  1713,  1715,  1719,  1722,  1724,  1726,  1727,
+  1728,  1735,  1737,  1739,  1741,  1744,  1747,  1749,  1754,  1759
 };
 
 static const short yyrhs[] = {    -1,
     87,     0,     0,    88,    90,     0,     0,    87,    89,    90,
-     0,    92,     0,    91,     0,   244,     0,    27,    61,   101,
-    78,    79,     0,   243,    90,     0,   125,   139,    79,     0,
-   132,   125,   139,    79,     0,   128,   125,   138,    79,     0,
-   132,    79,     0,   128,    79,     0,     1,    79,     0,     1,
-    80,     0,    79,     0,     0,     0,   128,   125,   167,    93,
-   119,    94,   201,     0,   128,   125,   167,     1,     0,     0,
-     0,   132,   125,   170,    95,   119,    96,   201,     0,   132,
-   125,   170,     1,     0,     0,     0,   125,   170,    97,   119,
-    98,   201,     0,   125,   170,     1,     0,     3,     0,     4,
+     0,    92,     0,    91,     0,   245,     0,    27,    61,   101,
+    78,    79,     0,   244,    90,     0,   124,   138,    79,     0,
+   131,   124,   138,    79,     0,   127,   124,   137,    79,     0,
+   131,    79,     0,   127,    79,     0,     1,    79,     0,     1,
+    80,     0,    79,     0,     0,     0,   127,   124,   166,    93,
+   118,    94,   200,     0,   127,   124,   166,     1,     0,     0,
+     0,   131,   124,   169,    95,   118,    96,   200,     0,   131,
+   124,   169,     1,     0,     0,     0,   124,   169,    97,   118,
+    98,   200,     0,   124,   169,     1,     0,     3,     0,     4,
      0,    74,     0,    69,     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,   188,
-    78,     0,   106,   104,     0,   106,    61,   188,    78,     0,
+   115,     0,    52,   107,     0,   244,   107,     0,   100,   107,
+     0,    42,    99,     0,   105,   104,     0,   105,    61,   187,
+    78,     0,   106,   104,     0,   106,    61,   187,    78,     0,
     33,   107,     0,    34,   107,     0,    35,    61,   109,    83,
-   188,    78,     0,    11,     0,    29,     0,   104,     0,    61,
-   188,    78,   107,     0,     0,    61,   188,    78,    84,   108,
-   153,    80,     0,   107,     0,   109,    50,   109,     0,   109,
+   187,    78,     0,    11,     0,    29,     0,   104,     0,    61,
+   187,    78,   107,     0,     0,    61,   187,    78,    84,   108,
+   152,    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,
@@ -279,154 +279,155 @@ static const short yyrhs[] = {    -1,
    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,   117,     0,    61,   101,    78,     0,
-    61,     1,    78,     0,     0,    61,   116,   203,    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,   304,     0,   310,     0,   311,     0,
-   312,     0,   118,     0,     9,     0,   117,     9,     0,    77,
-     0,   118,    77,     0,     0,   121,     0,   121,    10,     0,
-   208,   209,   122,     0,   120,     0,   196,     0,   121,   120,
-     0,   120,   196,     0,   130,   125,   138,    79,     0,   133,
-   125,   139,    79,     0,   130,    79,     0,   133,    79,     0,
-   208,   209,   127,     0,   123,     0,   196,     0,   124,   123,
-     0,   123,   196,     0,     0,     0,   128,   125,   138,    79,
-     0,   132,   125,   139,    79,     0,   128,   125,   161,     0,
-   132,   125,   164,     0,   128,    79,     0,   132,    79,     0,
-   243,   127,     0,   136,   129,     0,   132,   136,   129,     0,
-     0,   129,   137,     0,   129,     5,     0,   129,   146,     0,
-   136,   131,     0,   133,   136,   131,     0,     0,   131,   137,
-     0,   131,     5,     0,   133,     0,   146,     0,   132,   133,
-     0,   132,   146,     0,     7,     0,     5,     0,   133,     7,
-     0,   133,     5,     0,   136,   135,     0,   190,   136,   135,
-     0,     0,   135,   137,     0,     6,     0,   174,     0,     4,
-     0,    69,   260,     0,    74,   260,     0,   261,     0,    28,
-    61,   101,    78,     0,    28,    61,   188,    78,     0,     6,
-     0,     7,     0,   174,     0,   141,     0,   138,    83,   141,
-     0,   143,     0,   139,    83,   141,     0,     0,    27,    61,
-   117,    78,     0,     0,   167,   140,   145,    38,   142,   151,
-     0,   167,   140,   145,     0,     0,   170,   140,   145,    38,
-   144,   151,     0,   170,   140,   145,     0,     0,   146,     0,
-   147,     0,   146,   147,     0,    30,    61,    61,   148,    78,
-    78,     0,   149,     0,   148,    83,   149,     0,     0,   150,
-     0,   150,    61,     3,    78,     0,   150,    61,     3,    83,
-   103,    78,     0,   150,    61,   102,    78,     0,    99,     0,
-     5,     0,     6,     0,     7,     0,   109,     0,     0,    84,
-   152,   153,    80,     0,     1,     0,     0,   154,   179,     0,
-   155,     0,   154,    83,   155,     0,   159,    38,   157,     0,
-   160,   157,     0,     0,    99,    40,   156,   157,     0,   157,
-     0,     0,    84,   158,   153,    80,     0,   109,     0,     1,
-     0,   160,     0,   159,   160,     0,    60,    99,     0,     0,
-     0,   167,   162,   119,   163,   203,     0,     0,     0,   170,
-   165,   119,   166,   203,     0,   168,     0,   170,     0,    61,
-   168,    78,     0,   168,    61,   238,     0,   168,    62,   101,
-    85,     0,   168,    62,    85,     0,    52,   191,   168,     0,
-   146,   126,   168,     0,     4,     0,    74,     0,   169,    61,
-   238,     0,   169,    62,   101,    85,     0,   169,    62,    85,
-     0,    52,   191,   169,     0,   146,   126,   169,     0,     4,
-     0,   170,    61,   238,     0,    61,   170,    78,     0,    52,
-   191,   170,     0,   170,    62,   101,    85,     0,   170,    62,
-    85,     0,   146,   126,   170,     0,     3,     0,    13,     0,
-    13,   146,     0,    14,     0,    14,   146,     0,    12,     0,
-    12,   146,     0,     0,   171,    99,    84,   175,   181,    80,
-   145,     0,   171,    84,   181,    80,   145,     0,   171,    99,
-     0,     0,   172,    99,    84,   176,   181,    80,   145,     0,
-   172,    84,   181,    80,   145,     0,   172,    99,     0,     0,
-   173,    99,    84,   177,   186,   180,    80,   145,     0,     0,
-   173,    84,   178,   186,   180,    80,   145,     0,   173,    99,
-     0,     0,    83,     0,     0,    83,     0,   182,     0,   182,
-   183,     0,     0,   182,   183,    79,     0,   182,    79,     0,
-    67,    61,    69,    78,     0,   134,   125,   184,     0,   134,
-     0,   190,   125,   184,     0,   190,     0,     1,     0,   243,
-   183,     0,   185,     0,   184,    83,   185,     0,   208,   209,
-   167,   145,     0,   208,   209,   167,    40,   109,   145,     0,
-   208,   209,    40,   109,   145,     0,   187,     0,   186,    83,
-   187,     0,     1,     0,    99,     0,    99,    38,   109,     0,
-   134,   189,     0,   190,   189,     0,     0,   192,     0,     7,
-     0,   190,     7,     0,     0,   191,     7,     0,    61,   192,
-    78,     0,    52,   191,   192,     0,    52,   191,     0,   192,
-    61,   231,     0,   192,    62,   101,    85,     0,   192,    62,
-    85,     0,    61,   231,     0,    62,   101,    85,     0,    62,
-    85,     0,   146,   126,   192,     0,   194,     0,   211,     0,
-   194,   211,     0,   194,   196,     0,     0,   193,     0,     1,
-    79,     0,     0,     0,   199,     0,   200,     0,   199,   200,
-     0,    32,   242,    79,     0,   203,     0,     1,   203,     0,
-    84,     0,   202,    80,     0,   202,   197,   198,   124,   195,
-    80,     0,   202,   197,   198,     1,    80,     0,   202,   197,
-   198,   193,    80,     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,   145,     0,     0,     7,     0,     0,   101,     0,     0,
-   228,     0,   229,     0,   228,    83,   229,     0,     9,    61,
-   101,    78,     0,   117,     0,   230,    83,   117,     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,
-   128,   125,   169,   145,     0,   128,   125,   170,   145,     0,
-   128,   125,   189,   145,     0,   132,   125,   170,   145,     0,
-   132,   125,   189,   145,     0,     0,   239,   240,     0,   233,
-     0,   241,    78,     0,     3,     0,   241,    83,     3,     0,
-    99,     0,   242,    83,    99,     0,    31,     0,   248,     0,
-   246,     0,   247,     0,   258,     0,   268,     0,    65,     0,
-    99,     0,   245,    83,    99,     0,    75,   245,    79,     0,
-    76,    99,    99,    79,     0,     0,     0,    63,    99,   260,
-    84,   249,   262,    80,   250,   275,    65,     0,     0,    63,
-    99,   260,   251,   275,    65,     0,     0,     0,    63,    99,
-    40,    99,   260,    84,   252,   262,    80,   253,   275,    65,
-     0,     0,    63,    99,    40,    99,   260,   254,   275,    65,
-     0,     0,    64,    99,    84,   255,   262,    80,     0,    64,
-    99,     0,     0,    64,    99,    40,    99,    84,   256,   262,
-    80,     0,    64,    99,    40,    99,     0,     0,    63,    99,
-    61,    99,    78,   260,   257,   275,    65,     0,    64,    99,
-    61,    99,    78,     0,     0,    73,    99,   260,   259,   275,
-    65,     0,     0,   261,     0,    47,   245,    47,     0,   262,
-   263,   264,     0,   264,     0,    71,     0,    72,     0,    70,
-     0,     0,   264,   265,    79,     0,   264,    79,     0,   134,
-   125,   266,     0,   190,   125,   266,     0,     1,     0,     0,
-   267,     0,   266,    83,   267,     0,   167,     0,   167,    40,
-   109,     0,    40,   109,     0,     0,     0,     0,    50,   269,
-   285,   270,   286,   271,   201,     0,     0,     0,     0,    51,
-   272,   285,   273,   286,   274,   201,     0,     0,     0,   276,
-   277,     0,   280,     0,    91,     0,   277,   280,     0,     0,
-   277,   278,    91,     0,    79,     0,     1,     0,     0,     0,
-    50,   281,   285,   282,   279,     0,     0,     0,    51,   283,
-   285,   284,   279,     0,    61,   188,    78,   294,     0,   294,
-     0,    61,   188,    78,   295,   292,     0,   295,   292,     0,
-     0,    79,   287,     0,     0,   288,     0,   289,     0,   196,
-     0,   288,   289,     0,   289,   196,     0,   128,   125,   290,
-    79,     0,   128,    79,     0,   132,    79,     0,   291,     0,
-   290,    83,   291,     0,   169,   145,     0,   170,   145,     0,
-   189,   145,     0,     0,    83,    10,     0,     0,    83,   293,
-   235,     0,   296,     0,   298,     0,   295,   298,     0,     3,
-     0,     4,     0,    74,     0,   297,     0,    12,     0,    13,
-     0,    14,     0,    15,     0,    16,     0,    17,     0,    18,
-     0,    19,     0,    20,     0,    21,     0,    22,     0,    23,
-     0,    24,     0,    25,     0,    26,     0,    27,     0,    11,
-     0,    28,     0,    29,     0,     6,     0,     7,     0,   296,
-    40,    61,   188,    78,    99,     0,   296,    40,    99,     0,
-    40,    61,   188,    78,    99,     0,    40,    99,     0,   296,
-     0,   300,     0,   302,     0,   300,   302,     0,   103,     0,
-   296,    40,   301,     0,    40,   301,     0,   101,     0,    69,
-     0,     0,     0,    62,   305,   303,   306,   299,    85,     0,
-   296,     0,   308,     0,   309,     0,   308,   309,     0,   296,
-    40,     0,    40,     0,    66,    61,   307,    78,     0,    73,
-    61,    99,    78,     0,    68,    61,   188,    78,     0
+     3,     0,     8,     0,   116,     0,    61,   101,    78,     0,
+    61,     1,    78,     0,   203,   202,    78,     0,   203,     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,   305,     0,   311,     0,
+   312,     0,   313,     0,   117,     0,     9,     0,   116,     9,
+     0,    77,     0,   117,    77,     0,     0,   120,     0,   120,
+    10,     0,   209,   210,   121,     0,   119,     0,   195,     0,
+   120,   119,     0,   119,   195,     0,   129,   124,   137,    79,
+     0,   132,   124,   138,    79,     0,   129,    79,     0,   132,
+    79,     0,   209,   210,   126,     0,   122,     0,   195,     0,
+   123,   122,     0,   122,   195,     0,     0,     0,   127,   124,
+   137,    79,     0,   131,   124,   138,    79,     0,   127,   124,
+   160,     0,   131,   124,   163,     0,   127,    79,     0,   131,
+    79,     0,   244,   126,     0,   135,   128,     0,   131,   135,
+   128,     0,     0,   128,   136,     0,   128,     5,     0,   128,
+   145,     0,   135,   130,     0,   132,   135,   130,     0,     0,
+   130,   136,     0,   130,     5,     0,   132,     0,   145,     0,
+   131,   132,     0,   131,   145,     0,     7,     0,     5,     0,
+   132,     7,     0,   132,     5,     0,   135,   134,     0,   189,
+   135,   134,     0,     0,   134,   136,     0,     6,     0,   173,
+     0,     4,     0,    69,   261,     0,    74,   261,     0,   262,
+     0,    28,    61,   101,    78,     0,    28,    61,   187,    78,
+     0,     6,     0,     7,     0,   173,     0,   140,     0,   137,
+    83,   140,     0,   142,     0,   138,    83,   140,     0,     0,
+    27,    61,   116,    78,     0,     0,   166,   139,   144,    38,
+   141,   150,     0,   166,   139,   144,     0,     0,   169,   139,
+   144,    38,   143,   150,     0,   169,   139,   144,     0,     0,
+   145,     0,   146,     0,   145,   146,     0,    30,    61,    61,
+   147,    78,    78,     0,   148,     0,   147,    83,   148,     0,
+     0,   149,     0,   149,    61,     3,    78,     0,   149,    61,
+     3,    83,   103,    78,     0,   149,    61,   102,    78,     0,
+    99,     0,     5,     0,     6,     0,     7,     0,   109,     0,
+     0,    84,   151,   152,    80,     0,     1,     0,     0,   153,
+   178,     0,   154,     0,   153,    83,   154,     0,   158,    38,
+   156,     0,   159,   156,     0,     0,    99,    40,   155,   156,
+     0,   156,     0,     0,    84,   157,   152,    80,     0,   109,
+     0,     1,     0,   159,     0,   158,   159,     0,    60,    99,
+     0,     0,     0,   166,   161,   118,   162,   204,     0,     0,
+     0,   169,   164,   118,   165,   204,     0,   167,     0,   169,
+     0,    61,   167,    78,     0,   167,    61,   239,     0,   167,
+    62,   101,    85,     0,   167,    62,    85,     0,    52,   190,
+   167,     0,   145,   125,   167,     0,     4,     0,    74,     0,
+   168,    61,   239,     0,   168,    62,   101,    85,     0,   168,
+    62,    85,     0,    52,   190,   168,     0,   145,   125,   168,
+     0,     4,     0,   169,    61,   239,     0,    61,   169,    78,
+     0,    52,   190,   169,     0,   169,    62,   101,    85,     0,
+   169,    62,    85,     0,   145,   125,   169,     0,     3,     0,
+    13,     0,    13,   145,     0,    14,     0,    14,   145,     0,
+    12,     0,    12,   145,     0,     0,   170,    99,    84,   174,
+   180,    80,   144,     0,   170,    84,   180,    80,   144,     0,
+   170,    99,     0,     0,   171,    99,    84,   175,   180,    80,
+   144,     0,   171,    84,   180,    80,   144,     0,   171,    99,
+     0,     0,   172,    99,    84,   176,   185,   179,    80,   144,
+     0,     0,   172,    84,   177,   185,   179,    80,   144,     0,
+   172,    99,     0,     0,    83,     0,     0,    83,     0,   181,
+     0,   181,   182,     0,     0,   181,   182,    79,     0,   181,
+    79,     0,    67,    61,    69,    78,     0,   133,   124,   183,
+     0,   133,     0,   189,   124,   183,     0,   189,     0,     1,
+     0,   244,   182,     0,   184,     0,   183,    83,   184,     0,
+   209,   210,   166,   144,     0,   209,   210,   166,    40,   109,
+   144,     0,   209,   210,    40,   109,   144,     0,   186,     0,
+   185,    83,   186,     0,     1,     0,    99,     0,    99,    38,
+   109,     0,   133,   188,     0,   189,   188,     0,     0,   191,
+     0,     7,     0,   189,     7,     0,     0,   190,     7,     0,
+    61,   191,    78,     0,    52,   190,   191,     0,    52,   190,
+     0,   191,    61,   232,     0,   191,    62,   101,    85,     0,
+   191,    62,    85,     0,    61,   232,     0,    62,   101,    85,
+     0,    62,    85,     0,   145,   125,   191,     0,   193,     0,
+   212,     0,   193,   212,     0,   193,   195,     0,     0,   192,
+     0,     1,    79,     0,     0,     0,   198,     0,   199,     0,
+   198,   199,     0,    32,   243,    79,     0,   204,     0,     1,
+   204,     0,    84,     0,    80,     0,   196,   197,   123,   194,
+    80,     0,   196,   197,     1,    80,     0,   196,   197,   192,
+    80,     0,    61,    84,     0,   201,   202,     0,   206,   211,
+     0,   206,     1,     0,    15,    61,   101,    78,     0,     0,
+    18,   208,   211,    17,     0,     0,     0,   209,   210,   214,
+     0,   209,   210,   225,   211,     0,   209,   210,   213,     0,
+   214,     0,   225,     0,   204,     0,   222,     0,   101,    79,
+     0,     0,   205,    16,   215,   211,     0,   205,     0,   205,
+    16,     1,     0,     0,     0,    17,   216,    61,   101,    78,
+   217,   211,     0,   207,    61,   101,    78,    79,     0,   207,
+     1,     0,     0,     0,     0,    19,    61,   227,    79,   218,
+   227,    79,   219,   227,    78,   220,   211,     0,     0,    20,
+    61,   101,    78,   221,   211,     0,    23,    79,     0,    24,
+    79,     0,    25,    79,     0,    25,   101,    79,     0,    27,
+   226,    61,   101,    78,    79,     0,    27,   226,    61,   101,
+    40,   228,    78,    79,     0,    27,   226,    61,   101,    40,
+   228,    40,   228,    78,    79,     0,    27,   226,    61,   101,
+    40,   228,    40,   228,    40,   231,    78,    79,     0,    26,
+    99,    79,     0,    26,    52,   101,    79,     0,    79,     0,
+   223,     0,     0,    19,    61,   115,    78,   224,   211,     0,
+    21,   109,    40,     0,    21,   109,    10,   109,    40,     0,
+    22,    40,     0,    99,    40,   144,     0,     0,     7,     0,
+     0,   101,     0,     0,   229,     0,   230,     0,   229,    83,
+   230,     0,     9,    61,   101,    78,     0,   116,     0,   231,
+    83,   116,     0,     0,   233,   234,     0,   236,    78,     0,
+     0,   237,    79,   235,   234,     0,     1,    78,     0,     0,
+    10,     0,   237,     0,   237,    83,    10,     0,   238,     0,
+   237,    83,   238,     0,   127,   124,   168,   144,     0,   127,
+   124,   169,   144,     0,   127,   124,   188,   144,     0,   131,
+   124,   169,   144,     0,   131,   124,   188,   144,     0,     0,
+   240,   241,     0,   234,     0,   242,    78,     0,     3,     0,
+   242,    83,     3,     0,    99,     0,   243,    83,    99,     0,
+    31,     0,   249,     0,   247,     0,   248,     0,   259,     0,
+   269,     0,    65,     0,    99,     0,   246,    83,    99,     0,
+    75,   246,    79,     0,    76,    99,    99,    79,     0,     0,
+     0,    63,    99,   261,    84,   250,   263,    80,   251,   276,
+    65,     0,     0,    63,    99,   261,   252,   276,    65,     0,
+     0,     0,    63,    99,    40,    99,   261,    84,   253,   263,
+    80,   254,   276,    65,     0,     0,    63,    99,    40,    99,
+   261,   255,   276,    65,     0,     0,    64,    99,    84,   256,
+   263,    80,     0,    64,    99,     0,     0,    64,    99,    40,
+    99,    84,   257,   263,    80,     0,    64,    99,    40,    99,
+     0,     0,    63,    99,    61,    99,    78,   261,   258,   276,
+    65,     0,    64,    99,    61,    99,    78,     0,     0,    73,
+    99,   261,   260,   276,    65,     0,     0,   262,     0,    47,
+   246,    47,     0,   263,   264,   265,     0,   265,     0,    71,
+     0,    72,     0,    70,     0,     0,   265,   266,    79,     0,
+   265,    79,     0,   133,   124,   267,     0,   189,   124,   267,
+     0,     1,     0,     0,   268,     0,   267,    83,   268,     0,
+   166,     0,   166,    40,   109,     0,    40,   109,     0,     0,
+     0,     0,    50,   270,   286,   271,   287,   272,   200,     0,
+     0,     0,     0,    51,   273,   286,   274,   287,   275,   200,
+     0,     0,     0,   277,   278,     0,   281,     0,    91,     0,
+   278,   281,     0,     0,   278,   279,    91,     0,    79,     0,
+     1,     0,     0,     0,    50,   282,   286,   283,   280,     0,
+     0,     0,    51,   284,   286,   285,   280,     0,    61,   187,
+    78,   295,     0,   295,     0,    61,   187,    78,   296,   293,
+     0,   296,   293,     0,     0,    79,   288,     0,     0,   289,
+     0,   290,     0,   195,     0,   289,   290,     0,   290,   195,
+     0,   127,   124,   291,    79,     0,   127,    79,     0,   131,
+    79,     0,   292,     0,   291,    83,   292,     0,   168,   144,
+     0,   169,   144,     0,   188,   144,     0,     0,    83,    10,
+     0,     0,    83,   294,   236,     0,   297,     0,   299,     0,
+   296,   299,     0,     3,     0,     4,     0,    74,     0,   298,
+     0,    12,     0,    13,     0,    14,     0,    15,     0,    16,
+     0,    17,     0,    18,     0,    19,     0,    20,     0,    21,
+     0,    22,     0,    23,     0,    24,     0,    25,     0,    26,
+     0,    27,     0,    11,     0,    28,     0,    29,     0,     6,
+     0,     7,     0,   297,    40,    61,   187,    78,    99,     0,
+   297,    40,    99,     0,    40,    61,   187,    78,    99,     0,
+    40,    99,     0,   297,     0,   301,     0,   303,     0,   301,
+   303,     0,   103,     0,   297,    40,   302,     0,    40,   302,
+     0,   101,     0,    69,     0,     0,     0,    62,   306,   304,
+   307,   300,    85,     0,   297,     0,   309,     0,   310,     0,
+   309,   310,     0,   297,    40,     0,    40,     0,    66,    61,
+   308,    78,     0,    73,    61,    99,    78,     0,    68,    61,
+   187,    78,     0
 };
 
 #endif
@@ -442,54 +443,54 @@ static const short yyrline[] = { 0,
    472,   476,   478,   481,   485,   512,   514,   516,   518,   520,
    522,   524,   526,   528,   530,   532,   534,   536,   538,   542,
    544,   548,   550,   553,   557,   559,   566,   569,   577,   588,
-   748,   749,   751,   757,   759,   773,   796,   798,   800,   812,
-   826,   828,   830,   832,   834,   836,   838,   843,   845,   851,
-   853,   857,   859,   860,   870,   875,   877,   878,   879,   886,
-   892,   897,   900,   908,   913,   915,   916,   917,   924,   935,
-   939,   945,   950,   955,   960,   962,   964,   973,   976,   980,
-   982,   984,   989,   993,   996,  1000,  1003,  1005,  1017,  1020,
-  1022,  1024,  1028,  1032,  1034,  1037,  1050,  1053,  1057,  1059,
-  1067,  1068,  1069,  1073,  1075,  1080,  1082,  1084,  1090,  1091,
-  1092,  1095,  1097,  1100,  1102,  1105,  1108,  1114,  1121,  1123,
-  1130,  1137,  1140,  1147,  1150,  1154,  1157,  1161,  1166,  1169,
-  1173,  1176,  1178,  1180,  1182,  1189,  1191,  1192,  1193,  1198,
-  1200,  1205,  1213,  1218,  1222,  1225,  1227,  1232,  1234,  1235,
-  1238,  1238,  1241,  1244,  1246,  1248,  1251,  1253,  1256,  1264,
-  1275,  1283,  1287,  1298,  1306,  1313,  1315,  1320,  1323,  1328,
-  1330,  1332,  1339,  1341,  1342,  1350,  1356,  1358,  1360,  1367,
-  1369,  1375,  1381,  1383,  1385,  1387,  1394,  1396,  1399,  1402,
-  1406,  1409,  1413,  1416,  1420,  1425,  1427,  1431,  1433,  1435,
-  1437,  1441,  1443,  1446,  1449,  1452,  1455,  1459,  1461,  1464,
-  1466,  1471,  1474,  1479,  1481,  1483,  1487,  1511,  1518,  1523,
-  1529,  1534,  1536,  1541,  1543,  1547,  1551,  1555,  1565,  1567,
-  1572,  1577,  1580,  1584,  1587,  1591,  1594,  1597,  1600,  1604,
-  1607,  1611,  1615,  1617,  1619,  1621,  1623,  1625,  1627,  1629,
-  1633,  1641,  1649,  1651,  1653,  1657,  1659,  1662,  1665,  1678,
-  1680,  1685,  1687,  1690,  1704,  1707,  1710,  1712,  1714,  1722,
-  1730,  1741,  1746,  1749,  1763,  1772,  1776,  1780,  1784,  1790,
-  1794,  1799,  1802,  1807,  1810,  1811,  1828,  1833,  1836,  1848,
-  1850,  1860,  1870,  1871,  1879,  1882,  1894,  1898,  1915,  1925,
-  1934,  1939,  1944,  1949,  1953,  1957,  1968,  1975,  1982,  1989,
-  2000,  2006,  2009,  2014,  2037,  2071,  2102,  2133,  2148,  2162,
-  2166,  2170,  2173,  2178,  2180,  2183,  2185,  2189,  2194,  2197,
-  2203,  2208,  2213,  2215,  2224,  2225,  2231,  2233,  2243,  2245,
-  2249,  2252,  2258,  2268,  2277,  2286,  2296,  2310,  2315,  2320,
-  2322,  2331,  2334,  2339,  2342,  2346,  2354,  2356,  2357,  2358,
-  2359,  2360,  2374,  2377,  2381,  2387,  2393,  2400,  2405,  2411,
-  2418,  2424,  2430,  2435,  2441,  2448,  2454,  2460,  2466,  2474,
-  2480,  2486,  2494,  2501,  2507,  2516,  2523,  2531,  2536,  2539,
-  2549,  2551,  2554,  2556,  2557,  2560,  2565,  2566,  2583,  2590,
-  2596,  2600,  2603,  2604,  2607,  2615,  2621,  2630,  2640,  2647,
-  2651,  2656,  2665,  2672,  2676,  2686,  2688,  2689,  2691,  2693,
-  2694,  2695,  2696,  2698,  2700,  2703,  2711,  2718,  2718,  2725,
-  2731,  2733,  2739,  2744,  2749,  2758,  2760,  2766,  2768,  2771,
-  2773,  2774,  2775,  2778,  2784,  2786,  2790,  2793,  2800,  2806,
-  2811,  2818,  2823,  2828,  2833,  2840,  2844,  2847,  2853,  2855,
-  2856,  2857,  2860,  2862,  2863,  2864,  2865,  2866,  2867,  2868,
-  2869,  2870,  2871,  2872,  2873,  2874,  2875,  2876,  2877,  2878,
-  2879,  2880,  2880,  2883,  2889,  2894,  2899,  2905,  2907,  2910,
-  2912,  2919,  2931,  2936,  2942,  2944,  2950,  2954,  2955,  2961,
-  2963,  2966,  2968,  2974,  2979,  2985,  2992,  3001
+   748,   749,   751,   757,   759,   782,   791,   793,   795,   807,
+   821,   823,   825,   827,   829,   831,   833,   838,   840,   846,
+   848,   852,   854,   855,   865,   870,   872,   873,   874,   881,
+   887,   892,   895,   903,   908,   910,   911,   912,   919,   930,
+   934,   940,   945,   950,   955,   957,   959,   968,   971,   975,
+   977,   979,   984,   988,   991,   995,   998,  1000,  1012,  1015,
+  1017,  1019,  1023,  1027,  1029,  1032,  1045,  1048,  1052,  1054,
+  1062,  1063,  1064,  1068,  1070,  1075,  1077,  1079,  1085,  1086,
+  1087,  1090,  1092,  1095,  1097,  1100,  1103,  1109,  1116,  1118,
+  1125,  1132,  1135,  1142,  1145,  1149,  1152,  1156,  1161,  1164,
+  1168,  1171,  1173,  1175,  1177,  1184,  1186,  1187,  1188,  1193,
+  1195,  1200,  1208,  1213,  1217,  1220,  1222,  1227,  1229,  1230,
+  1233,  1233,  1236,  1239,  1241,  1243,  1246,  1248,  1251,  1259,
+  1270,  1278,  1282,  1293,  1301,  1308,  1310,  1315,  1318,  1323,
+  1325,  1327,  1334,  1336,  1337,  1345,  1351,  1353,  1355,  1362,
+  1364,  1370,  1376,  1378,  1380,  1382,  1389,  1391,  1394,  1397,
+  1401,  1404,  1408,  1411,  1415,  1420,  1422,  1426,  1428,  1430,
+  1432,  1436,  1438,  1441,  1444,  1447,  1450,  1454,  1456,  1459,
+  1461,  1466,  1469,  1474,  1476,  1478,  1482,  1506,  1513,  1518,
+  1524,  1529,  1531,  1536,  1538,  1542,  1546,  1550,  1560,  1562,
+  1567,  1572,  1575,  1579,  1582,  1586,  1589,  1592,  1595,  1599,
+  1602,  1606,  1610,  1612,  1614,  1616,  1618,  1620,  1622,  1624,
+  1628,  1636,  1644,  1646,  1648,  1652,  1654,  1657,  1660,  1673,
+  1675,  1680,  1682,  1685,  1699,  1702,  1705,  1707,  1709,  1717,
+  1725,  1735,  1753,  1758,  1763,  1766,  1780,  1789,  1793,  1797,
+  1801,  1807,  1811,  1816,  1819,  1824,  1827,  1828,  1845,  1850,
+  1853,  1865,  1867,  1877,  1887,  1888,  1896,  1899,  1911,  1915,
+  1932,  1942,  1951,  1956,  1961,  1966,  1970,  1974,  1985,  1992,
+  1999,  2006,  2017,  2023,  2026,  2031,  2054,  2088,  2119,  2150,
+  2165,  2179,  2183,  2187,  2190,  2195,  2197,  2200,  2202,  2206,
+  2211,  2214,  2220,  2225,  2230,  2232,  2241,  2242,  2248,  2250,
+  2260,  2262,  2266,  2269,  2275,  2285,  2294,  2303,  2313,  2327,
+  2332,  2337,  2339,  2348,  2351,  2356,  2359,  2363,  2371,  2373,
+  2374,  2375,  2376,  2377,  2391,  2394,  2398,  2404,  2410,  2417,
+  2422,  2428,  2435,  2441,  2447,  2452,  2458,  2465,  2471,  2477,
+  2483,  2491,  2497,  2503,  2511,  2518,  2524,  2533,  2540,  2548,
+  2553,  2556,  2566,  2568,  2571,  2573,  2574,  2577,  2582,  2583,
+  2600,  2607,  2613,  2617,  2620,  2621,  2624,  2632,  2638,  2647,
+  2657,  2664,  2668,  2673,  2682,  2689,  2693,  2703,  2705,  2706,
+  2708,  2710,  2711,  2712,  2713,  2715,  2717,  2720,  2728,  2735,
+  2735,  2742,  2748,  2750,  2756,  2761,  2766,  2775,  2777,  2783,
+  2785,  2788,  2790,  2791,  2792,  2795,  2801,  2803,  2807,  2810,
+  2817,  2823,  2828,  2835,  2840,  2845,  2850,  2857,  2861,  2864,
+  2870,  2872,  2873,  2874,  2877,  2879,  2880,  2881,  2882,  2883,
+  2884,  2885,  2886,  2887,  2888,  2889,  2890,  2891,  2892,  2893,
+  2894,  2895,  2896,  2897,  2897,  2900,  2906,  2911,  2916,  2922,
+  2924,  2927,  2929,  2936,  2948,  2953,  2959,  2961,  2967,  2971,
+  2972,  2978,  2980,  2983,  2985,  2991,  2996,  3002,  3009,  3018
 };
 #endif
 
@@ -509,35 +510,36 @@ static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER"
 "program","extdefs","@1","@2","extdef","datadef","fndef","@3","@4","@5","@6",
 "@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist","unary_expr",
 "sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11","@12","@13",
-"@14","primary","@15","string","objc_string","old_style_parm_decls","lineno_datadecl",
+"@14","primary","string","objc_string","old_style_parm_decls","lineno_datadecl",
 "datadecls","datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
-"initdcl","@16","notype_initdcl","@17","maybe_attribute","attributes","attribute",
-"attribute_list","attrib","any_word","init","@18","initlist_maybe_comma","initlist1",
-"initelt","@19","initval","@20","designator_list","designator","nested_function",
-"@21","@22","notype_nested_function","@23","@24","declarator","after_type_declarator",
+"initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute",
+"attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1",
+"initelt","@18","initval","@19","designator_list","designator","nested_function",
+"@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator",
 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
-"structsp","@25","@26","@27","@28","maybecomma","maybecomma_warn","component_decl_list",
+"structsp","@24","@25","@26","@27","maybecomma","maybecomma_warn","component_decl_list",
 "component_decl_list2","component_decl","components","component_declarator",
 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
-"label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
-"if_prefix","do_stmt_start","@29","save_filename","save_lineno","lineno_labeled_stmt",
-"lineno_stmt_or_label","stmt_or_label","stmt","@30","@31","@32","@33","@34",
-"@35","@36","all_iter_stmt","all_iter_stmt_simple","@37","label","maybe_type_qual",
-"xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
-"@38","parmlist_1","@39","parmlist_2","parms","parm","parmlist_or_identifiers",
-"@40","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension",
-"objcdef","identifier_list","classdecl","aliasdecl","classdef","@41","@42","@43",
-"@44","@45","@46","@47","@48","@49","protocoldef","@50","protocolrefs","non_empty_protocolrefs",
-"ivar_decl_list","visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator",
-"methoddef","@51","@52","@53","@54","@55","@56","methodprotolist","@57","methodprotolist2",
-"@58","semi_or_error","methodproto","@59","@60","@61","@62","methoddecl","optarglist",
-"myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@63","unaryselector",
+"label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt_nostart",
+"compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start",
+"@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
+"stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt",
+"all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands",
+"nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1",
+"@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1",
+"identifiers","identifiers_or_typenames","extension","objcdef","identifier_list",
+"classdecl","aliasdecl","classdef","@40","@41","@42","@43","@44","@45","@46",
+"@47","@48","protocoldef","@49","protocolrefs","non_empty_protocolrefs","ivar_decl_list",
+"visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator","methoddef",
+"@50","@51","@52","@53","@54","@55","methodprotolist","@56","methodprotolist2",
+"@57","semi_or_error","methodproto","@58","@59","@60","@61","methoddecl","optarglist",
+"myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@62","unaryselector",
 "keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
-"keywordexpr","keywordarg","receiver","objcmessageexpr","@64","@65","selectorarg",
+"keywordexpr","keywordarg","receiver","objcmessageexpr","@63","@64","selectorarg",
 "keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr", NULL
 };
 #endif
@@ -552,54 +554,54 @@ static const short yyr1[] = {     0,
    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,   116,   115,   115,   115,   115,   115,
-   115,   115,   115,   115,   115,   115,   115,   117,   117,   118,
-   118,   119,   119,   119,   120,   121,   121,   121,   121,   122,
-   122,   122,   122,   123,   124,   124,   124,   124,   125,   126,
-   127,   127,   127,   127,   127,   127,   127,   128,   128,   129,
-   129,   129,   129,   130,   130,   131,   131,   131,   132,   132,
-   132,   132,   133,   133,   133,   133,   134,   134,   135,   135,
-   136,   136,   136,   136,   136,   136,   136,   136,   137,   137,
-   137,   138,   138,   139,   139,   140,   140,   142,   141,   141,
-   144,   143,   143,   145,   145,   146,   146,   147,   148,   148,
-   149,   149,   149,   149,   149,   150,   150,   150,   150,   151,
-   152,   151,   151,   153,   153,   154,   154,   155,   155,   156,
-   155,   155,   158,   157,   157,   157,   159,   159,   160,   162,
-   163,   161,   165,   166,   164,   167,   167,   168,   168,   168,
-   168,   168,   168,   168,   168,   169,   169,   169,   169,   169,
-   169,   170,   170,   170,   170,   170,   170,   170,   171,   171,
-   172,   172,   173,   173,   175,   174,   174,   174,   176,   174,
-   174,   174,   177,   174,   178,   174,   174,   179,   179,   180,
-   180,   181,   181,   182,   182,   182,   182,   183,   183,   183,
-   183,   183,   183,   184,   184,   185,   185,   185,   186,   186,
-   186,   187,   187,   188,   188,   189,   189,   190,   190,   191,
-   191,   192,   192,   192,   192,   192,   192,   192,   192,   192,
-   192,   193,   194,   194,   194,   195,   195,   196,   197,   198,
-   198,   199,   199,   200,   201,   201,   202,   203,   203,   203,
-   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,   244,   244,   244,   244,
-   244,   244,   245,   245,   246,   247,   249,   250,   248,   251,
-   248,   252,   253,   248,   254,   248,   255,   248,   248,   256,
-   248,   248,   257,   248,   248,   259,   258,   260,   260,   261,
-   262,   262,   263,   263,   263,   264,   264,   264,   265,   265,
-   265,   266,   266,   266,   267,   267,   267,   269,   270,   271,
-   268,   272,   273,   274,   268,   275,   276,   275,   277,   277,
-   277,   278,   277,   279,   279,   281,   282,   280,   283,   284,
-   280,   285,   285,   285,   285,   286,   286,   287,   287,   288,
-   288,   288,   288,   289,   289,   289,   290,   290,   291,   291,
-   291,   292,   292,   293,   292,   294,   295,   295,   296,   296,
-   296,   296,   297,   297,   297,   297,   297,   297,   297,   297,
-   297,   297,   297,   297,   297,   297,   297,   297,   297,   297,
-   297,   297,   297,   298,   298,   298,   298,   299,   299,   300,
-   300,   301,   302,   302,   303,   303,   305,   306,   304,   307,
-   307,   308,   308,   309,   309,   310,   311,   312
+   115,   115,   115,   115,   115,   115,   115,   115,   115,   115,
+   115,   115,   115,   115,   115,   115,   115,   116,   116,   117,
+   117,   118,   118,   118,   119,   120,   120,   120,   120,   121,
+   121,   121,   121,   122,   123,   123,   123,   123,   124,   125,
+   126,   126,   126,   126,   126,   126,   126,   127,   127,   128,
+   128,   128,   128,   129,   129,   130,   130,   130,   131,   131,
+   131,   131,   132,   132,   132,   132,   133,   133,   134,   134,
+   135,   135,   135,   135,   135,   135,   135,   135,   136,   136,
+   136,   137,   137,   138,   138,   139,   139,   141,   140,   140,
+   143,   142,   142,   144,   144,   145,   145,   146,   147,   147,
+   148,   148,   148,   148,   148,   149,   149,   149,   149,   150,
+   151,   150,   150,   152,   152,   153,   153,   154,   154,   155,
+   154,   154,   157,   156,   156,   156,   158,   158,   159,   161,
+   162,   160,   164,   165,   163,   166,   166,   167,   167,   167,
+   167,   167,   167,   167,   167,   168,   168,   168,   168,   168,
+   168,   169,   169,   169,   169,   169,   169,   169,   170,   170,
+   171,   171,   172,   172,   174,   173,   173,   173,   175,   173,
+   173,   173,   176,   173,   177,   173,   173,   178,   178,   179,
+   179,   180,   180,   181,   181,   181,   181,   182,   182,   182,
+   182,   182,   182,   183,   183,   184,   184,   184,   185,   185,
+   185,   186,   186,   187,   187,   188,   188,   189,   189,   190,
+   190,   191,   191,   191,   191,   191,   191,   191,   191,   191,
+   191,   192,   193,   193,   193,   194,   194,   195,   196,   197,
+   197,   198,   198,   199,   200,   200,   201,   202,   202,   202,
+   202,   203,   204,   205,   205,   206,   208,   207,   209,   210,
+   211,   211,   212,   213,   213,   214,   214,   214,   215,   214,
+   214,   214,   216,   217,   214,   214,   214,   218,   219,   220,
+   214,   221,   214,   214,   214,   214,   214,   214,   214,   214,
+   214,   214,   214,   214,   222,   224,   223,   225,   225,   225,
+   225,   226,   226,   227,   227,   228,   228,   229,   229,   230,
+   231,   231,   233,   232,   234,   235,   234,   234,   236,   236,
+   236,   236,   237,   237,   238,   238,   238,   238,   238,   240,
+   239,   241,   241,   242,   242,   243,   243,   244,   245,   245,
+   245,   245,   245,   245,   246,   246,   247,   248,   250,   251,
+   249,   252,   249,   253,   254,   249,   255,   249,   256,   249,
+   249,   257,   249,   249,   258,   249,   249,   260,   259,   261,
+   261,   262,   263,   263,   264,   264,   264,   265,   265,   265,
+   266,   266,   266,   267,   267,   267,   268,   268,   268,   270,
+   271,   272,   269,   273,   274,   275,   269,   276,   277,   276,
+   278,   278,   278,   279,   278,   280,   280,   282,   283,   281,
+   284,   285,   281,   286,   286,   286,   286,   287,   287,   288,
+   288,   289,   289,   289,   289,   290,   290,   290,   291,   291,
+   292,   292,   292,   293,   293,   294,   293,   295,   296,   296,
+   297,   297,   297,   297,   298,   298,   298,   298,   298,   298,
+   298,   298,   298,   298,   298,   298,   298,   298,   298,   298,
+   298,   298,   298,   298,   298,   299,   299,   299,   299,   300,
+   300,   301,   301,   302,   303,   303,   304,   304,   306,   307,
+   305,   308,   308,   309,   309,   310,   310,   311,   312,   313
 };
 
 static const short yyr2[] = {     0,
@@ -612,7 +614,7 @@ static const short yyr2[] = {     0,
      1,     1,     4,     0,     7,     1,     3,     3,     3,     3,
      3,     3,     3,     3,     3,     3,     3,     3,     0,     4,
      0,     4,     0,     0,     7,     0,     5,     3,     3,     1,
-     1,     1,     3,     3,     0,     4,     4,     4,     3,     3,
+     1,     1,     3,     3,     3,     3,     4,     4,     3,     3,
      2,     2,     1,     1,     1,     1,     1,     1,     2,     1,
      2,     0,     1,     2,     3,     1,     1,     2,     2,     4,
      4,     2,     2,     3,     1,     1,     2,     2,     0,     0,
@@ -635,1080 +637,1095 @@ static const short yyr2[] = {     0,
      1,     1,     3,     2,     2,     0,     1,     1,     2,     0,
      2,     3,     3,     2,     3,     4,     3,     2,     3,     2,
      3,     1,     1,     2,     2,     0,     1,     2,     0,     0,
-     1,     1,     2,     3,     1,     2,     1,     2,     6,     5,
-     5,     2,     2,     4,     0,     4,     0,     0,     3,     4,
-     3,     1,     1,     1,     1,     2,     0,     4,     1,     3,
-     0,     0,     7,     5,     2,     0,     0,     0,    12,     0,
-     6,     2,     2,     2,     3,     6,     8,    10,    12,     3,
-     4,     1,     1,     0,     6,     3,     5,     2,     3,     0,
-     1,     0,     1,     0,     1,     1,     3,     4,     1,     3,
-     0,     2,     2,     0,     4,     2,     0,     1,     1,     3,
-     1,     3,     4,     4,     4,     4,     4,     0,     2,     1,
-     2,     1,     3,     1,     3,     1,     1,     1,     1,     1,
-     1,     1,     1,     3,     3,     4,     0,     0,    10,     0,
-     6,     0,     0,    12,     0,     8,     0,     6,     2,     0,
-     8,     4,     0,     9,     5,     0,     6,     0,     1,     3,
-     3,     1,     1,     1,     1,     0,     3,     2,     3,     3,
-     1,     0,     1,     3,     1,     3,     2,     0,     0,     0,
-     7,     0,     0,     0,     7,     0,     0,     2,     1,     1,
-     2,     0,     3,     1,     1,     0,     0,     5,     0,     0,
-     5,     4,     1,     5,     2,     0,     2,     0,     1,     1,
-     1,     2,     2,     4,     2,     2,     1,     3,     2,     2,
-     2,     0,     2,     0,     3,     1,     1,     2,     1,     1,
+     1,     1,     2,     3,     1,     2,     1,     1,     5,     4,
+     4,     2,     2,     2,     2,     4,     0,     4,     0,     0,
+     3,     4,     3,     1,     1,     1,     1,     2,     0,     4,
+     1,     3,     0,     0,     7,     5,     2,     0,     0,     0,
+    12,     0,     6,     2,     2,     2,     3,     6,     8,    10,
+    12,     3,     4,     1,     1,     0,     6,     3,     5,     2,
+     3,     0,     1,     0,     1,     0,     1,     1,     3,     4,
+     1,     3,     0,     2,     2,     0,     4,     2,     0,     1,
+     1,     3,     1,     3,     4,     4,     4,     4,     4,     0,
+     2,     1,     2,     1,     3,     1,     3,     1,     1,     1,
+     1,     1,     1,     1,     1,     3,     3,     4,     0,     0,
+    10,     0,     6,     0,     0,    12,     0,     8,     0,     6,
+     2,     0,     8,     4,     0,     9,     5,     0,     6,     0,
+     1,     3,     3,     1,     1,     1,     1,     0,     3,     2,
+     3,     3,     1,     0,     1,     3,     1,     3,     2,     0,
+     0,     0,     7,     0,     0,     0,     7,     0,     0,     2,
+     1,     1,     2,     0,     3,     1,     1,     0,     0,     5,
+     0,     0,     5,     4,     1,     5,     2,     0,     2,     0,
+     1,     1,     1,     2,     2,     4,     2,     2,     1,     3,
+     2,     2,     2,     0,     2,     0,     3,     1,     1,     2,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     6,     3,     5,     2,     1,     1,     1,
-     2,     1,     3,     2,     1,     1,     0,     0,     6,     1,
-     1,     1,     2,     2,     1,     4,     4,     4
+     1,     1,     1,     1,     1,     6,     3,     5,     2,     1,
+     1,     1,     2,     1,     3,     2,     1,     1,     0,     0,
+     6,     1,     1,     1,     2,     2,     1,     4,     4,     4
 };
 
 static const short yydefact[] = {     3,
      5,     0,     0,     0,   163,   154,   161,   153,   253,   249,
-   251,     0,     0,     0,   416,     0,   468,   472,     0,     0,
-   422,   448,     0,   448,     0,     0,    19,     4,     8,     7,
+   251,     0,     0,     0,   418,     0,   470,   474,     0,     0,
+   424,   450,     0,   450,     0,     0,    19,     4,     8,     7,
      0,   129,   129,   149,   140,   150,   186,     0,     0,     0,
-   162,     0,     9,   418,   419,   417,   420,   166,   421,     6,
+   162,     0,     9,   420,   421,   419,   422,   166,   423,     6,
     17,    18,   254,   250,   252,     0,     0,     0,    32,    33,
-    35,    34,   423,     0,     0,     0,   448,   439,   164,   449,
-   448,   165,     0,     0,   248,   300,     0,     0,   174,   130,
+    35,    34,   425,     0,     0,     0,   450,   441,   164,   451,
+   450,   165,     0,     0,   248,   300,     0,     0,   174,   130,
      0,    16,     0,    15,     0,   151,   140,   152,   156,   155,
    138,   187,   274,   258,   274,   262,   265,   267,    11,    90,
     91,   108,    60,    61,     0,     0,     0,     0,    36,    38,
-    37,     0,    39,    40,     0,   557,     0,     0,     0,   110,
+    37,     0,    39,    40,     0,   559,     0,     0,     0,   110,
     41,    42,     0,     0,    43,    62,     0,     0,    66,    46,
-    48,    92,   107,     0,   103,   104,   105,   106,   298,     0,
-   296,   159,     0,   296,   191,   450,     0,   519,   520,   542,
-   543,   539,   523,   524,   525,   526,   527,   528,   529,   530,
-   531,   532,   533,   534,   535,   536,   537,   538,   540,   541,
-     0,     0,   521,   469,   493,   512,   516,   522,   517,   473,
-     0,     0,   430,     0,     0,   437,   446,   425,     0,     0,
-     0,    12,     0,     0,    31,     0,   408,     0,     0,   184,
-   234,   300,     0,   235,     0,   172,   130,     0,   226,   227,
-     0,     0,   139,   142,   169,   170,   141,   143,   171,     0,
-     0,     0,   255,     0,   259,     0,   263,    57,    58,     0,
-    52,    49,     0,     0,     0,     0,     0,     0,     0,     0,
-    51,     0,     0,     0,    53,     0,    55,     0,     0,    83,
-    81,    79,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   101,   102,     0,     0,    44,     0,
-   109,   111,    50,   167,   300,   391,     0,   130,   294,   297,
-   157,   168,   299,   159,   295,   197,   198,   199,   196,     0,
-   189,   192,   424,     0,   547,     0,   496,   514,   495,     0,
-   518,     0,   496,   448,     0,   427,   477,   442,     0,   456,
-   477,   426,   301,   244,   243,   175,   176,   247,     0,   242,
-     0,   246,     0,     0,    29,     0,   337,   117,   338,   183,
-   185,     0,     0,    14,     0,     0,    23,     0,   184,   408,
-     0,    13,    27,     0,     0,   184,   282,   276,   129,   273,
-   129,     0,   274,   184,   274,   291,   292,   270,   289,     0,
-     0,    94,    93,   327,   319,     0,     0,   556,   555,   558,
-   565,   560,     0,   561,   562,     0,     0,    10,    47,     0,
-     0,    89,    88,     0,     0,     0,     0,    77,    78,    76,
-    75,    74,    72,    73,    67,    68,    69,    70,    71,   100,
-    99,     0,    45,     0,   304,     0,   308,     0,   310,     0,
-     0,   391,     0,   160,   158,     0,   191,    44,     0,     0,
-     0,   470,   513,   397,     0,   545,   474,   435,   448,   456,
-     0,     0,   440,   445,     0,     0,     0,     0,     0,   412,
-   398,   129,   129,   410,     0,   399,   401,   409,     0,   245,
-   318,     0,   119,   114,   118,     0,   181,   232,   228,   173,
-   233,    21,   180,   229,   231,     0,    25,     0,   257,   337,
-   275,   337,   283,     0,   261,     0,     0,   271,     0,   270,
-     0,   328,   320,    96,    64,    63,     0,   564,   566,     0,
-   563,   568,   567,    54,    56,     0,     0,    82,    80,    97,
-    98,   303,   302,   392,   309,   311,   305,   307,     0,   188,
-   190,    90,     0,     0,   492,   512,   129,     0,   501,   497,
-   499,     0,     0,   515,   399,     0,     0,   432,   477,   443,
-     0,   431,   486,   489,   480,     0,   129,   129,   482,   479,
-   456,   455,   453,   454,   438,   456,   461,   458,   129,   129,
-     0,   447,   177,   396,   296,   296,   393,   394,     0,   411,
-     0,     0,    30,   325,   115,   129,   129,   146,     0,     0,
-   178,   230,     0,   277,   278,   284,   338,   280,   184,   184,
-   293,   290,   184,     0,     0,     0,     0,   321,   322,     0,
-     0,   548,     0,   549,   550,    84,    87,   306,   193,     0,
-   195,   546,   494,   505,   296,   506,   502,   503,   471,     0,
-   475,   456,     0,   477,   428,     0,     0,   176,     0,     0,
-     0,   481,     0,     0,   462,   462,   457,   241,   300,   391,
-   130,   184,   184,   184,   300,   130,   184,   184,     0,   400,
-   402,   413,   326,   122,     0,   123,     0,   146,   144,   203,
-   201,   200,   182,    22,     0,    26,   337,     0,   256,   260,
-   266,   184,    59,   414,     0,     0,     0,   337,     0,     0,
-   126,   338,   313,   323,   216,    90,     0,   213,     0,   215,
-     0,   268,   206,   212,     0,     0,   552,   554,     0,   559,
-     0,   551,     0,     0,   184,   184,   184,     0,   507,   544,
-     0,   436,     0,   477,   487,   490,   483,   441,     0,   465,
-   459,   463,   460,   304,     0,   408,     0,   403,   404,   405,
-   304,     0,   406,   407,   395,     0,     0,   145,   148,   147,
-     0,   179,   285,     0,   184,   264,   324,     0,   330,   128,
-   127,   317,     0,   331,   315,   338,   314,     0,   219,     0,
-   210,    65,     0,   205,     0,   218,   209,   553,    85,   194,
-   509,   510,   511,   504,   296,   433,   444,     0,     0,     0,
-   467,     0,     0,   239,   240,   236,   238,     0,   120,   121,
-     0,   184,     0,   286,   415,   329,     0,   163,     0,   351,
-   335,     0,     0,     0,     0,     0,     0,     0,     0,   380,
-   448,   448,   372,     0,     0,   124,   129,   129,   344,   349,
-     0,     0,   341,   342,   345,   373,   343,     0,     0,     0,
-   207,   208,   508,   477,   429,   485,   484,   488,   491,   466,
-   464,   237,   202,   288,   184,     0,     0,   337,   382,     0,
-     0,   378,   362,   363,   364,     0,     0,     0,   381,     0,
-   184,   346,   135,     0,   136,     0,     0,   333,   338,   332,
-   355,     0,   137,   214,   211,     0,   287,     0,     0,     0,
-   383,    48,     0,     0,     0,   376,   365,     0,   370,     0,
-   379,     0,   133,   220,     0,   134,   223,   350,   337,     0,
-     0,   434,   334,     0,   336,   374,   356,   360,     0,   371,
-     0,   131,     0,   132,     0,   348,   339,   337,     0,   352,
-   337,   382,   337,   377,   384,     0,   221,   224,   340,   354,
-   337,   375,     0,   361,     0,     0,   385,   386,   366,     0,
-     0,   353,   357,     0,   384,     0,     0,   222,   225,   382,
-     0,     0,   367,   387,     0,   388,     0,     0,   358,   389,
-     0,   368,   337,     0,     0,   359,   369,   390,     0,     0,
-     0
+    48,    92,   107,     0,     0,   103,   104,   105,   106,   298,
+     0,   296,   159,     0,   296,   191,   452,     0,   521,   522,
+   544,   545,   541,   525,   526,   527,   528,   529,   530,   531,
+   532,   533,   534,   535,   536,   537,   538,   539,   540,   542,
+   543,     0,     0,   523,   471,   495,   514,   518,   524,   519,
+   475,     0,     0,   432,     0,     0,   439,   448,   427,     0,
+     0,     0,    12,     0,     0,    31,     0,   410,     0,     0,
+   184,   234,   300,     0,   235,     0,   172,   130,     0,   226,
+   227,     0,     0,   139,   142,   169,   170,   141,   143,   171,
+     0,     0,     0,   255,     0,   259,     0,   263,    57,    58,
+     0,    52,    49,     0,   332,     0,     0,     0,     0,     0,
+     0,    51,     0,     0,     0,    53,     0,    55,     0,     0,
+    83,    81,    79,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   101,   102,     0,     0,    44,
+     0,   109,   111,     0,   328,   320,     0,    50,   167,   300,
+   393,     0,   130,   294,   297,   157,   168,   299,   159,   295,
+   197,   198,   199,   196,     0,   189,   192,   426,     0,   549,
+     0,   498,   516,   497,     0,   520,     0,   498,   450,     0,
+   429,   479,   444,     0,   458,   479,   428,   301,   244,   243,
+   175,   176,   247,     0,   242,     0,   246,     0,     0,    29,
+     0,   339,   117,   340,   183,   185,     0,     0,    14,     0,
+     0,    23,     0,   184,   410,     0,    13,    27,     0,     0,
+   184,   282,   276,   129,   273,   129,     0,   274,   184,   274,
+   291,   292,   270,   289,     0,     0,    94,    93,     0,   558,
+   557,   560,   567,   562,     0,   563,   564,     0,     0,    10,
+    47,     0,     0,    89,    88,     0,     0,     0,     0,    77,
+    78,    76,    75,    74,    72,    73,    67,    68,    69,    70,
+    71,   100,    99,     0,    45,     0,    96,     0,     0,   321,
+   322,    95,   304,     0,   308,     0,   310,     0,     0,   393,
+     0,   160,   158,     0,   191,    44,     0,     0,     0,   472,
+   515,   399,     0,   547,   476,   437,   450,   458,     0,     0,
+   442,   447,     0,     0,     0,     0,     0,   414,   400,   129,
+   129,   412,     0,   401,   403,   411,     0,   245,   318,     0,
+   119,   114,   118,     0,   181,   232,   228,   173,   233,    21,
+   180,   229,   231,     0,    25,     0,   257,   339,   275,   339,
+   283,     0,   261,     0,     0,   271,     0,   270,     0,    64,
+    63,     0,   566,   568,     0,   565,   570,   569,    54,    56,
+     0,     0,    82,    80,    97,    98,   416,     0,     0,     0,
+   339,     0,     0,   126,   340,   313,   323,   303,   302,   394,
+   309,   311,   305,   307,     0,   188,   190,    90,     0,     0,
+   494,   514,   129,     0,   503,   499,   501,     0,     0,   517,
+   401,     0,     0,   434,   479,   445,     0,   433,   488,   491,
+   482,     0,   129,   129,   484,   481,   458,   457,   455,   456,
+   440,   458,   463,   460,   129,   129,     0,   449,   177,   398,
+   296,   296,   395,   396,     0,   413,     0,     0,   327,    30,
+   319,   325,   115,   129,   129,   146,     0,     0,   178,   230,
+     0,   277,   278,   284,   340,   280,   184,   184,   293,   290,
+   184,     0,     0,     0,     0,   550,     0,   551,   552,    84,
+    87,   324,     0,   330,   128,   127,   317,     0,   331,   315,
+   340,   314,     0,   306,   193,     0,   195,   548,   496,   507,
+   296,   508,   504,   505,   473,     0,   477,   458,     0,   479,
+   430,     0,     0,   176,     0,     0,     0,   483,     0,     0,
+   464,   464,   459,   241,   300,   393,   130,   184,   184,   184,
+   300,   130,   184,   184,     0,   402,   404,   415,   326,   333,
+   122,     0,   123,     0,   146,   144,   203,   201,   200,   182,
+    22,     0,    26,   339,     0,   256,   260,   266,   184,    59,
+   216,    90,     0,   213,     0,   215,     0,   268,   206,   212,
+     0,     0,   554,   556,     0,   561,     0,   553,     0,   417,
+   329,     0,   163,     0,   353,   337,     0,     0,     0,     0,
+     0,     0,     0,     0,   382,   450,   450,   374,     0,     0,
+   124,   129,   129,   346,   351,     0,     0,   343,   344,   347,
+   375,   345,     0,     0,   184,   184,   184,     0,   509,   546,
+     0,   438,     0,   479,   489,   492,   485,   443,     0,   467,
+   461,   465,   462,   304,     0,   410,     0,   405,   406,   407,
+   304,     0,   408,   409,   397,     0,     0,   145,   148,   147,
+     0,   179,   285,     0,   184,   264,   219,     0,   210,    65,
+     0,   205,     0,   218,   209,   555,    85,     0,     0,   339,
+   384,     0,     0,   380,   364,   365,   366,     0,     0,     0,
+   383,     0,   184,   348,   135,     0,   136,     0,     0,   335,
+   340,   334,   357,     0,   137,   194,   511,   512,   513,   506,
+   296,   435,   446,     0,     0,     0,   469,     0,     0,   239,
+   240,   236,   238,     0,   120,   121,     0,   184,     0,   286,
+     0,     0,   207,   208,     0,     0,     0,   385,    48,     0,
+     0,     0,   378,   367,     0,   372,     0,   381,     0,   133,
+   220,     0,   134,   223,   352,   339,     0,     0,   510,   479,
+   431,   487,   486,   490,   493,   468,   466,   237,   202,   288,
+   184,   214,   211,   336,     0,   338,   376,   358,   362,     0,
+   373,     0,   131,     0,   132,     0,   350,   341,   339,     0,
+     0,   287,   354,   339,   384,   339,   379,   386,     0,   221,
+   224,   342,   356,   436,   339,   377,     0,   363,     0,     0,
+   387,   388,   368,     0,     0,   355,   359,     0,   386,     0,
+     0,   222,   225,   384,     0,     0,   369,   389,     0,   390,
+     0,     0,   360,   391,     0,   370,   339,     0,     0,   361,
+   371,   392,     0,     0,     0
 };
 
-static const short yydefgoto[] = {   959,
-     1,     2,     3,    28,    29,    30,   338,   570,   344,   573,
-   199,   452,   679,   123,   234,   402,   125,   126,   127,   128,
-   129,   590,   130,   387,   386,   384,   693,   385,   131,   235,
-   132,   133,   325,   326,   327,   565,   667,   668,    31,   194,
-   806,   442,    91,   566,   649,   443,    34,   141,   281,    35,
-   217,   205,    78,   200,   206,   655,    79,   569,   330,   331,
-    37,   290,   291,   292,   653,   731,   681,   682,   683,   820,
-   684,   750,   685,   686,   883,   903,   930,   886,   905,   931,
-   317,   209,   695,   210,    38,    39,    40,    41,   353,   355,
-   360,   226,   754,   479,   221,   222,   350,   575,   576,   358,
-   359,   143,   697,   144,   190,   280,   669,   670,   743,   328,
-   483,   587,   588,   589,   563,   365,   564,   810,   811,   812,
-   838,   859,   456,   860,   673,   813,   814,   889,   837,   921,
-   912,   940,   953,   913,   815,   816,   911,   817,   850,   873,
-   926,   927,   928,   951,   407,   408,   444,   639,   445,   446,
-   447,   320,   321,   448,   449,   665,   134,    43,    64,    44,
-    45,    46,   430,   704,   307,   612,   824,   529,   310,   541,
-   614,    47,   311,    69,    48,   435,   546,   436,   551,   711,
-   712,    49,    65,   297,   523,    66,   303,   527,   431,   432,
-   539,   621,   828,   540,   616,   769,   617,   770,   174,   422,
-   520,   521,   522,   698,   699,   299,   424,   175,   176,   177,
-   178,   179,   593,   594,   688,   595,   370,   135,   237,   487,
-   373,   374,   375,   136,   137,   138
+static const short yydefgoto[] = {   963,
+     1,     2,     3,    28,    29,    30,   343,   588,   349,   591,
+   200,   460,   695,   123,   236,   404,   125,   126,   127,   128,
+   129,   604,   130,   389,   388,   386,   709,   387,   131,   132,
+   133,   330,   331,   332,   583,   510,   511,    31,   195,   731,
+   450,    91,   584,   676,   451,    34,   142,   286,    35,   218,
+   206,    78,   201,   207,   682,    79,   587,   335,   336,    37,
+   295,   296,   297,   680,   781,   697,   698,   699,   852,   700,
+   788,   701,   702,   870,   904,   934,   873,   906,   935,   322,
+   210,   745,   211,    38,    39,    40,    41,   358,   360,   365,
+   227,   792,   487,   222,   223,   355,   593,   594,   363,   364,
+   144,   747,   145,   191,   285,   512,   513,   618,   333,   276,
+   409,   410,   411,   580,   581,   277,   134,   582,   735,   736,
+   737,   800,   821,   464,   822,   516,   738,   739,   876,   799,
+   925,   915,   944,   957,   916,   740,   741,   914,   742,   812,
+   860,   930,   931,   932,   955,   415,   416,   452,   665,   453,
+   454,   455,   325,   326,   456,   457,   508,   135,    43,    64,
+    44,    45,    46,   438,   754,   312,   638,   880,   545,   315,
+   557,   640,    47,   316,    69,    48,   443,   562,   444,   567,
+   761,   762,    49,    65,   302,   539,    66,   308,   543,   439,
+   440,   555,   647,   884,   556,   642,   835,   643,   836,   175,
+   430,   536,   537,   538,   748,   749,   304,   432,   176,   177,
+   178,   179,   180,   607,   608,   704,   609,   372,   136,   238,
+   492,   375,   376,   377,   137,   138,   139
 };
 
-static const short yypact[] = {    98,
-   121,  3222,  3222,   106,-32768,-32768,-32768,-32768,   102,   102,
-   102,    88,    94,   134,-32768,   273,-32768,-32768,   273,   273,
--32768,    63,   273,    63,   273,   273,-32768,-32768,-32768,-32768,
-   321,   149,   325,   191,-32768,   102,-32768,   108,   115,   233,
--32768,  3222,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   102,   102,   102,  2921,  2753,   187,-32768,-32768,
--32768,-32768,-32768,    58,  3507,  3507,   218,    52,-32768,-32768,
-    63,-32768,   262,   273,-32768,-32768,   321,   317,-32768,   102,
-  1267,-32768,   387,-32768,   321,   191,-32768,   102,-32768,-32768,
-   596,-32768,   190,    56,   190,   198,-32768,   213,-32768,-32768,
--32768,-32768,-32768,-32768,  2921,  2921,   208,   273,-32768,-32768,
--32768,  2921,-32768,-32768,  1471,-32768,   245,   247,   258,-32768,
--32768,-32768,  2921,   265,   282,-32768,  2977,  3033,-32768,  3858,
-   766,   347,   291,  2921,-32768,-32768,-32768,-32768,-32768,   299,
-   442,-32768,   311,  3631,   415,-32768,   273,-32768,-32768,-32768,
+static const short yypact[] = {   101,
+   110,  3362,  3362,   129,-32768,-32768,-32768,-32768,    94,    94,
+    94,   134,   169,   178,-32768,   303,-32768,-32768,   303,   303,
+-32768,    80,   303,    80,   303,   303,-32768,-32768,-32768,-32768,
+   112,   177,  2761,   217,-32768,    94,-32768,    82,   133,   239,
+-32768,  3362,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,    94,    94,    94,  2998,  2830,   211,-32768,-32768,
+-32768,-32768,-32768,    46,  3614,  3614,   210,    51,-32768,-32768,
+    80,-32768,   231,   303,-32768,-32768,   112,   336,-32768,    94,
+  1979,-32768,   601,-32768,   112,   217,-32768,    94,-32768,-32768,
+   677,-32768,   207,    78,   207,   196,-32768,   200,-32768,-32768,
+-32768,-32768,-32768,-32768,  2998,  2998,   237,   303,-32768,-32768,
+-32768,  2998,-32768,-32768,  1497,-32768,   261,   272,   299,-32768,
+-32768,-32768,  2998,   292,   310,-32768,  3054,  3110,-32768,  3935,
+   735,   366,   326,  1011,  2998,-32768,-32768,-32768,-32768,-32768,
+   340,   497,-32768,   343,  3738,   322,-32768,   303,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-   201,  2081,-32768,-32768,-32768,  2643,   367,-32768,-32768,-32768,
-   273,   273,   339,   273,   273,-32768,-32768,-32768,   308,   381,
-   145,-32768,   387,   321,-32768,   388,-32768,  2096,  2070,   102,
--32768,-32768,   387,-32768,   331,-32768,   102,  1297,   272,   369,
-   404,  1953,   596,-32768,-32768,-32768,-32768,   102,-32768,   390,
-   374,  1356,-32768,   393,-32768,    92,-32768,-32768,-32768,  2921,
--32768,-32768,   414,   423,   437,   463,  2809,  3537,  2081,   273,
--32768,   465,  2921,  1471,-32768,  1471,-32768,  2921,  2921,   509,
--32768,-32768,  2921,  2921,  2921,  2921,  2921,  2921,  2921,  2921,
-  2921,  2921,  2921,  2921,-32768,-32768,   273,   273,  2921,  2921,
--32768,-32768,-32768,-32768,-32768,   442,  2157,   102,-32768,   379,
-   675,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   162,
--32768,   497,-32768,  2081,-32768,   477,   480,   551,-32768,   367,
--32768,   240,   480,    63,   491,-32768,   506,   492,   500,-32768,
-   506,-32768,-32768,   369,-32768,-32768,   554,   369,   575,-32768,
-  3327,-32768,   526,   520,-32768,  1983,    79,-32768,-32768,   580,
-   102,   231,   212,-32768,   387,   387,-32768,  2070,   102,-32768,
-  2218,-32768,-32768,  2070,   544,   102,-32768,-32768,   419,   542,
-  3385,  3468,   190,   102,   190,-32768,   585,   545,-32768,    92,
-  3775,-32768,-32768,-32768,   547,   552,  2561,-32768,-32768,-32768,
--32768,   593,   567,  3537,-32768,   569,   572,-32768,  3858,   577,
-   579,  3858,  3858,  2921,   622,  2921,  2921,   936,  1237,   749,
-   589,  1128,   676,   676,   269,   269,-32768,-32768,-32768,-32768,
--32768,   588,   282,   540,   288,   274,-32768,  3357,-32768,   587,
-   442,-32768,  2279,-32768,   675,   595,   415,  3089,   601,  3572,
-  2012,-32768,-32768,  3643,  2081,-32768,-32768,   599,    63,-32768,
-   564,  3299,-32768,-32768,   457,  3168,   626,    73,   615,-32768,
--32768,-32768,  3709,-32768,   617,   430,-32768,-32768,   185,-32768,
--32768,    76,-32768,-32768,-32768,  3729,-32768,   272,-32768,-32768,
-   272,-32768,   658,-32768,-32768,   619,-32768,   629,-32768,-32768,
--32768,-32768,-32768,   634,-32768,   640,  2921,   273,   641,   545,
-  2081,-32768,   693,-32768,-32768,-32768,  3602,-32768,-32768,   593,
--32768,-32768,-32768,-32768,-32768,   692,  2921,  1444,  1604,-32768,
--32768,   379,-32768,-32768,-32768,   379,-32768,-32768,   648,-32768,
--32768,   276,   659,   273,-32768,  2643,   661,  2684,-32768,-32768,
-  3709,  2042,    76,-32768,   655,   663,    76,-32768,   506,-32768,
-   476,-32768,-32768,-32768,-32768,   321,   149,   325,   440,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  3741,
-   664,-32768,-32768,-32768,   455,   376,-32768,-32768,  3697,-32768,
-   741,   437,-32768,-32768,-32768,   669,  3438,-32768,  1794,    76,
--32768,-32768,    76,-32768,   668,-32768,-32768,   668,   102,   102,
-  3858,-32768,   102,   672,   677,   273,   997,   693,-32768,  1553,
-  2921,   716,   673,  3602,-32768,-32768,  1524,-32768,-32768,  2921,
--32768,-32768,-32768,-32768,   455,-32768,-32768,-32768,-32768,   273,
--32768,-32768,   698,   506,-32768,  3507,  3507,   111,   387,   321,
-  1882,-32768,   494,  3185,   493,   493,-32768,-32768,-32768,   376,
-   102,   139,   225,   102,-32768,   102,   225,   102,  3357,-32768,
--32768,-32768,-32768,-32768,   387,-32768,   321,-32768,   696,-32768,
--32768,  3858,-32768,-32768,  1794,-32768,-32768,   616,-32768,-32768,
--32768,   102,-32768,-32768,   443,   435,   895,   686,   689,  1087,
--32768,-32768,-32768,-32768,-32768,   717,   273,-32768,   730,  3858,
-   691,   703,-32768,-32768,    68,  1717,   282,-32768,  2921,-32768,
-   716,-32768,  2921,   303,   139,   225,   102,   459,-32768,-32768,
-   535,-32768,   707,   506,-32768,-32768,-32768,-32768,  2921,   734,
-   709,-32768,   709,   715,   455,-32768,  2340,-32768,-32768,-32768,
-   363,   376,-32768,-32768,-32768,   507,   508,   696,-32768,-32768,
-  1553,-32768,-32768,  2921,    61,-32768,-32768,   273,-32768,-32768,
--32768,-32768,   695,-32768,-32768,-32768,-32768,  2423,-32768,  1553,
--32768,-32768,  1635,-32768,  1871,-32768,-32768,-32768,  1524,-32768,
--32768,-32768,-32768,-32768,   455,-32768,-32768,   740,    83,    83,
-  3858,  2921,   493,   405,   405,-32768,-32768,   722,-32768,-32768,
-   731,  3822,  2921,-32768,-32768,-32768,  2505,   770,   753,-32768,
--32768,   754,   755,  2921,   777,   751,   752,  2865,   309,   812,
-   173,   263,-32768,   793,   758,-32768,   759,  3410,-32768,   823,
-  1183,    87,-32768,-32768,-32768,-32768,-32768,  2673,   761,  1871,
--32768,-32768,-32768,   506,-32768,-32768,-32768,-32768,-32768,  3858,
--32768,-32768,-32768,-32768,  3822,  2921,   781,-32768,  2921,  2921,
-  3794,-32768,-32768,-32768,-32768,   764,  2921,   765,-32768,   784,
-   102,-32768,-32768,   387,-32768,   321,  1387,-32768,-32768,-32768,
--32768,  2921,-32768,-32768,-32768,   783,-32768,   768,  2921,   833,
--32768,   592,   792,   794,  2921,-32768,-32768,   795,-32768,  2921,
--32768,   514,-32768,    96,   533,-32768,   685,-32768,-32768,  2505,
-   797,-32768,-32768,   799,-32768,-32768,-32768,-32768,  3840,-32768,
-    75,-32768,  2070,-32768,  2070,-32768,-32768,-32768,   800,-32768,
--32768,  2921,-32768,-32768,   864,   801,-32768,-32768,-32768,-32768,
--32768,-32768,   802,-32768,   821,    80,   803,-32768,-32768,   437,
-   437,-32768,-32768,  2921,   864,   804,   864,-32768,-32768,  2921,
-   807,   110,-32768,-32768,   809,-32768,   575,   810,-32768,   347,
-   351,-32768,-32768,   811,   575,-32768,-32768,   347,   888,   892,
--32768
+-32768,   278,  3809,-32768,-32768,-32768,  2720,   386,-32768,-32768,
+-32768,   303,   303,   348,   303,   303,-32768,-32768,-32768,   367,
+   460,    47,-32768,   601,   112,-32768,   390,-32768,  2173,  2152,
+    94,-32768,-32768,   601,-32768,   345,-32768,    94,  2066,   293,
+   306,   383,  2007,   677,-32768,-32768,-32768,-32768,    94,-32768,
+   393,   381,  3282,-32768,   411,-32768,   127,-32768,-32768,-32768,
+  2998,-32768,-32768,   427,-32768,   432,   448,  2886,  3644,  3809,
+   303,-32768,   462,  2998,  1497,-32768,  1497,-32768,  2998,  2998,
+   491,-32768,-32768,  2998,  2998,  2998,  2998,  2998,  2998,  2998,
+  2998,  2998,  2998,  2998,  2998,-32768,-32768,   303,   303,  2998,
+  2998,-32768,-32768,   461,-32768,   518,   479,-32768,-32768,-32768,
+   497,  2234,    94,-32768,   377,   753,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,    35,-32768,   522,-32768,  3809,-32768,
+   490,   510,   583,-32768,   386,-32768,   395,   510,    80,   517,
+-32768,   535,   529,   523,-32768,   535,-32768,-32768,   306,-32768,
+-32768,   590,   306,   610,-32768,  1209,-32768,   540,   547,-32768,
+   290,    95,-32768,-32768,   589,    94,   328,   171,-32768,   601,
+   601,-32768,  2152,    94,-32768,  2295,-32768,-32768,  2152,   560,
+    94,-32768,-32768,   414,   554,   801,  3550,   207,    94,   207,
+-32768,   596,   553,-32768,   127,  3856,-32768,-32768,  2638,-32768,
+-32768,-32768,-32768,   597,   561,  3644,-32768,   564,   565,-32768,
+  3935,   568,   569,  3935,  3935,  2998,   618,  2998,  2998,   845,
+  1546,  1152,  1626,  1553,   814,   814,   333,   333,-32768,-32768,
+-32768,-32768,-32768,   572,   310,   576,-32768,   303,  1246,   518,
+-32768,-32768,   644,   284,-32768,  3467,-32768,   578,   497,-32768,
+  2356,-32768,   753,   587,   322,  3166,   593,  3679,  2094,-32768,
+-32768,  3392,  3809,-32768,-32768,   584,    80,-32768,   611,  3439,
+-32768,-32768,   342,  3245,   613,    83,   602,-32768,-32768,-32768,
+  3797,-32768,   603,   397,-32768,-32768,    38,-32768,-32768,    65,
+-32768,-32768,-32768,  2018,-32768,   293,-32768,-32768,   293,-32768,
+   650,-32768,-32768,   609,-32768,   621,-32768,-32768,-32768,-32768,
+-32768,   622,-32768,   623,  2998,   303,   628,   553,  3809,-32768,
+-32768,  3709,-32768,-32768,   597,-32768,-32768,-32768,-32768,-32768,
+   653,  2998,  1054,  1469,-32768,-32768,-32768,   400,   423,  1113,
+   632,   637,   908,-32768,-32768,-32768,-32768,   377,-32768,-32768,
+-32768,   377,-32768,-32768,   616,-32768,-32768,    67,   640,   303,
+-32768,  2720,   645,  3497,-32768,-32768,  3797,  2114,    65,-32768,
+   636,   648,    65,-32768,   535,-32768,   452,-32768,-32768,-32768,
+-32768,   112,   177,  2761,   236,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,  3822,   652,-32768,-32768,-32768,
+   608,   216,-32768,-32768,  3750,-32768,   724,   649,-32768,-32768,
+   656,-32768,-32768,   659,   541,-32768,  1820,    65,-32768,-32768,
+    65,-32768,   646,-32768,-32768,   646,    94,    94,  3935,-32768,
+    94,   667,   654,  1579,  2998,   710,   666,  3709,-32768,-32768,
+   952,-32768,   303,-32768,-32768,-32768,-32768,   682,-32768,-32768,
+-32768,-32768,  2500,-32768,-32768,  2998,-32768,-32768,-32768,-32768,
+   608,-32768,-32768,-32768,-32768,   303,-32768,-32768,   708,   535,
+-32768,  3614,  3614,   126,   601,   112,  1908,-32768,   494,  3262,
+   413,   413,-32768,-32768,-32768,   216,    94,   167,   259,    94,
+-32768,    94,   259,    94,  3467,-32768,-32768,-32768,-32768,-32768,
+-32768,   601,-32768,   112,-32768,   830,-32768,-32768,  3935,-32768,
+-32768,  1820,-32768,-32768,   456,-32768,-32768,-32768,    94,-32768,
+-32768,   736,   303,-32768,   737,  3935,   698,   715,-32768,-32768,
+    60,  1743,   310,-32768,  2998,-32768,   710,-32768,  2998,-32768,
+-32768,  2582,   759,   740,-32768,-32768,   742,   743,  2998,   766,
+   730,   731,  2942,   201,   809,   159,   212,-32768,   782,   746,
+-32768,   747,  3525,-32768,   811,  1333,    87,-32768,-32768,-32768,
+-32768,-32768,  2750,   241,   167,   259,    94,   473,-32768,-32768,
+   615,-32768,   763,   535,-32768,-32768,-32768,-32768,  2998,   791,
+   749,-32768,   749,   445,   608,-32768,  2417,-32768,-32768,-32768,
+   375,   216,-32768,-32768,-32768,   496,   498,   830,-32768,-32768,
+  1579,-32768,-32768,  2998,    77,-32768,-32768,  1579,-32768,-32768,
+  1661,-32768,  1897,-32768,-32768,-32768,   952,  2998,   777,-32768,
+  2998,  2998,  3874,-32768,-32768,-32768,-32768,   760,  2998,   767,
+-32768,   784,    94,-32768,-32768,   601,-32768,   112,  1415,-32768,
+-32768,-32768,-32768,  2998,-32768,-32768,-32768,-32768,-32768,-32768,
+   608,-32768,-32768,   787,    86,    86,  3935,  2998,   413,   482,
+   482,-32768,-32768,   762,-32768,-32768,   778,  3899,  2998,-32768,
+   780,  1897,-32768,-32768,   779,  2998,   844,-32768,   794,   783,
+   793,  2998,-32768,-32768,   790,-32768,  2998,-32768,   499,-32768,
+   454,   507,-32768,   346,-32768,-32768,  2582,   795,-32768,   535,
+-32768,-32768,-32768,-32768,-32768,  3935,-32768,-32768,-32768,-32768,
+  3899,-32768,-32768,-32768,   796,-32768,-32768,-32768,-32768,  3917,
+-32768,    55,-32768,  2152,-32768,  2152,-32768,-32768,-32768,   798,
+   813,-32768,-32768,-32768,  2998,-32768,-32768,   870,   804,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,   805,-32768,   825,    63,
+   818,-32768,-32768,   649,   649,-32768,-32768,  2998,   870,   823,
+   870,-32768,-32768,  2998,   826,    66,-32768,-32768,   832,-32768,
+   610,   824,-32768,   366,   270,-32768,-32768,   836,   610,-32768,
+-32768,   366,   918,   920,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,    97,  -374,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   -14,-32768,   -56,   479,  -215,   397,-32768,-32768,
-   -68,-32768,   606,-32768,-32768,-32768,-32768,-32768,    55,-32768,
-  -280,-32768,  -281,   578,-32768,-32768,   243,-32768,    13,  -179,
-   109,    11,   844,-32768,   284,    14,   -30,  -155,   649,    50,
-  -251,  -583,   -77,  -190,  -118,-32768,-32768,-32768,   156,    39,
-    49,-32768,   517,-32768,   280,-32768,  -641,-32768,   183,-32768,
-  -610,-32768,-32768,   254,-32768,-32768,-32768,-32768,-32768,-32768,
-   -73,  -117,  -484,   -16,-32768,-32768,-32768,   -57,-32768,-32768,
--32768,-32768,-32768,   461,   -55,-32768,   591,   472,   292,   590,
-   470,   -28,   -76,  -143,  -167,  -203,   285,-32768,-32768,  -262,
--32768,-32768,-32768,   366,  -380,-32768,  -214,-32768,-32768,-32768,
--32768,  -192,  -555,  -662,   289,-32768,    65,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,    70,-32768,  -815,
-    23,-32768,    25,-32768,   553,-32768,  -375,-32768,   543,   546,
-   407,  -304,-32768,-32768,-32768,-32768,    17,-32768,   946,-32768,
+-32768,-32768,-32768,    96,  -378,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   -14,-32768,   -56,   495,  -234,   435,-32768,-32768,
+   -77,-32768,   525,-32768,-32768,-32768,-32768,-32768,   121,  -302,
+-32768,  -290,   592,-32768,-32768,   425,-32768,     7,  -144,   195,
+     1,   853,-32768,   269,     5,   -20,  -200,   657,   143,  -253,
+  -591,   -66,  -199,  -117,-32768,-32768,-32768,   160,    69,     2,
+-32768,   524,-32768,   265,-32768,  -447,-32768,   157,-32768,  -634,
+-32768,-32768,   250,-32768,-32768,-32768,-32768,-32768,-32768,   -67,
+  -121,  -498,    -1,-32768,-32768,-32768,   -74,-32768,-32768,-32768,
+-32768,-32768,   464,   -43,-32768,   598,   474,   273,   591,   475,
+   -54,   -94,  -182,  -166,  -236,   451,-32768,-32768,  -262,-32768,
+-32768,-32768,   556,  -354,-32768,   382,-32768,  -534,-32768,-32768,
+-32768,-32768,  -169,  -440,  -678,   455,-32768,    90,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    98,-32768,
+  -818,    32,-32768,    31,-32768,   558,-32768,  -366,-32768,   548,
+   551,   404,  -311,-32768,-32768,-32768,-32768,    12,-32768,   959,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   -20,     7,  -387,-32768,   427,-32768,   352,
-   221,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -288,-32768,
--32768,-32768,   226,   456,-32768,-32768,-32768,-32768,   -34,   694,
--32768,-32768,   478,-32768,   248,   513,-32768,   613,   614,  -124,
--32768,  -149,-32768,-32768,   346,   444,-32768,-32768,-32768,-32768,
--32768,-32768,   662,-32768,-32768,-32768
+-32768,-32768,-32768,-32768,     3,    -4,  -373,-32768,   424,-32768,
+   355,   170,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -284,
+-32768,-32768,-32768,   175,   458,-32768,-32768,-32768,-32768,   -45,
+   713,-32768,-32768,   511,-32768,   218,   515,-32768,   624,   626,
+  -135,-32768,  -128,-32768,-32768,   350,   442,-32768,-32768,-32768,
+-32768,-32768,-32768,   681,-32768,-32768,-32768
 };
 
 
-#define        YYLAST          3912
+#define        YYLAST          3989
 
 
 static const short yytable[] = {   124,
-   140,    63,    86,    72,    67,    68,   329,   211,    71,   208,
-    63,    74,    32,    32,    81,    33,    33,   339,    42,    42,
-   366,   658,   437,    94,    96,    98,   301,   336,    70,   414,
-    70,   180,   504,   219,   332,   464,   228,   229,   438,   224,
-    36,    36,   531,   232,    83,    85,   183,    53,    54,    55,
-   187,   300,    32,   403,   241,    33,   462,   535,    42,   189,
-   191,   726,   467,   453,   279,   273,   349,   285,   212,    80,
-   632,    88,   406,    70,   316,   757,   562,    70,   351,  -113,
-    36,   271,    87,   826,    92,   333,   236,   861,   454,   781,
-    14,   184,   356,   231,    59,    60,   923,    -1,   411,    50,
-   783,    92,    92,    92,   146,   755,   142,   405,   819,    16,
-    59,    60,   185,   372,   915,    80,   748,    59,    60,   935,
-    -2,   207,   196,    80,   945,  -176,   339,   677,    92,   218,
-   289,    14,   293,  -176,   329,   186,    92,   196,    99,   223,
-   147,   323,   609,   296,   822,   329,   611,   862,    56,   947,
-   553,   329,   916,   623,    57,   219,   295,   936,   519,   364,
-    61,   827,  -113,   414,   142,    62,   304,   305,    14,   308,
-   309,   197,   198,   314,  -176,   870,    61,   318,  -176,   278,
-   369,    62,   278,    61,    51,    52,   191,   948,    62,   654,
-   787,    93,   656,   284,    58,    89,   349,    90,    95,   716,
-   717,   502,   403,    59,    60,   197,   198,   506,   351,   865,
-   376,   357,   -35,   404,   458,   380,   460,   381,   461,    16,
-   410,   142,   315,   219,   701,   377,   906,    82,    80,   774,
-   775,   207,    80,    75,   201,    59,    60,   313,   352,   416,
-   613,   207,    59,    60,   417,   919,   707,   145,   922,   490,
-   924,   218,   400,   401,    14,    92,   220,   181,   932,   608,
-    14,   294,   560,   725,    16,   419,    92,   561,   230,    61,
-   882,   142,   340,   341,    62,    59,    60,   577,   182,   577,
-   549,   225,   202,   428,   466,   197,   198,   426,   142,   459,
-   956,   203,   550,   142,   313,   142,   227,   474,   486,   476,
-   425,    61,   -34,   890,   204,   238,    62,   239,    61,    16,
-    70,    59,    60,    62,   278,   314,    97,    14,   240,   318,
-   262,   263,   264,    75,   671,   703,    92,   496,     5,     6,
-     7,     8,   340,   341,   412,   413,     9,    10,    11,   275,
-   188,    61,   242,   142,   147,   357,    62,   643,   276,   277,
-    14,   503,    13,   599,    14,   271,   509,   219,   600,    36,
-   847,   470,   592,   472,   243,    75,   301,   272,   352,   313,
-   207,    16,    76,   207,   207,   687,   274,    61,    75,    92,
-   760,    77,    62,    75,   694,   243,   312,   313,   282,    75,
-   201,   300,    14,    22,   672,   192,   526,   730,    24,   193,
-   284,   142,   289,    84,   740,    14,   302,   745,   530,   334,
-    14,   776,    86,   335,   635,   768,    14,    59,    60,   286,
-   287,   288,   306,   630,   277,   567,   406,   635,   954,   197,
-   198,   517,    76,   955,   518,    70,   630,   277,   202,   412,
-   413,    77,   537,   278,   536,   538,    36,   203,   319,   278,
-   345,   715,   585,   346,   555,   556,   722,    75,   628,    36,
-   204,   714,    36,   357,   577,   716,   717,   721,   549,   691,
-    36,    14,   354,   687,   142,   672,   730,   746,   634,   638,
-   550,    88,   342,    61,    14,   142,   193,    86,    62,   533,
-   534,   362,    87,   275,   463,    75,   201,  -279,  -279,   602,
-   363,   469,   276,   277,  -478,   568,   629,    86,   558,   475,
-   502,   506,   559,   451,   739,   630,   277,   502,   506,   618,
-   364,   737,    14,   245,   247,   738,   542,   543,   544,   605,
-   142,   517,   709,   809,   518,   866,   545,   764,   633,   637,
-   367,   765,   211,   378,   202,   542,   543,   544,   -86,   619,
-   620,   710,   710,   203,   420,   615,    88,   418,   421,    36,
-   423,   625,   626,   542,   543,   544,   204,    87,   429,   727,
-  -476,   664,   809,   708,    80,   433,    88,   434,   645,   647,
-   196,   705,   706,   102,   735,   779,   780,    87,   696,   335,
-   193,   219,   902,   631,   636,   700,   335,    36,   451,   284,
-   214,   215,   216,   618,   542,   543,   544,     9,    10,    11,
-   450,   904,   468,   191,   766,   193,   648,   457,    75,   201,
-   471,   917,   477,   918,   501,    14,   482,   478,   532,   484,
-   618,   537,   488,   536,   538,   257,   258,   259,   260,   261,
-   262,   263,   264,   631,   489,    14,   492,   265,   266,   493,
-   267,   268,   269,   270,   494,   734,   495,   207,    80,    36,
-   778,   497,   749,   207,   207,   500,   950,   202,   636,   896,
-   219,   505,   510,   142,   958,   809,   203,    36,   514,    92,
-   215,   216,   528,   207,    92,    80,     9,    10,    11,   204,
-   552,   805,   554,   339,   557,   571,   207,   314,   318,   710,
-   729,   215,   216,   572,   314,   318,   574,     9,    10,    11,
-   329,   196,   329,   579,  -176,   938,   939,    75,   628,   580,
-   583,   313,  -176,   785,   586,   260,   261,   262,   263,   264,
-   805,   596,   598,   804,   659,   660,   601,   559,   661,   604,
-   610,   846,   627,   642,    14,   197,   198,   644,   696,   273,
-   657,   662,   631,   631,   663,   689,   -32,   690,   807,   636,
-   636,   808,   702,  -176,   818,  -316,   629,  -176,   744,   751,
-   752,   767,   804,   772,   786,   630,   277,    86,   885,   868,
-   884,    72,   871,   874,   848,   753,    36,   718,   719,   720,
-   878,   773,   723,   724,   256,   257,   258,   259,   260,   261,
-   262,   263,   264,   631,   825,   891,   832,    70,    70,   -33,
-   833,   207,   894,   836,   839,   840,   842,   736,   849,   854,
-   856,   265,   266,   901,   267,   268,   269,   270,   807,   843,
-   844,   808,   851,   805,   818,   361,   852,   853,   857,   887,
-   864,   869,   877,   879,   880,   893,    88,   892,   379,   895,
-   761,   762,   763,   382,   383,   871,    36,    87,   388,   389,
-   390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
-   897,   898,   925,   900,   909,   804,   910,   941,   920,   929,
-   933,   934,   943,   871,   946,   937,   949,   960,   952,   957,
-   784,   961,   207,   872,    80,   324,   513,  -125,  -125,  -125,
-  -125,  -125,  -125,  -125,   455,  -125,  -125,  -125,  -125,  -125,
-   741,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,
-  -125,  -125,  -125,  -125,  -125,  -125,   863,  -125,  -125,  -125,
-   213,   728,   415,   511,   732,   821,  -125,   834,   756,  -125,
-   584,  -125,   473,   578,  -125,  -125,  -125,   582,   733,   480,
-  -125,  -125,   742,   674,   907,  -125,  -125,   942,   747,   908,
-  -125,   944,  -125,  -125,   507,   641,   524,  -125,  -125,   525,
-    73,  -125,   624,  -125,  -125,  -125,  -125,   713,  -125,   254,
-   255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-   867,   498,   499,   831,   622,   829,   427,   666,   607,  -337,
-  -337,  -337,  -337,  -337,  -337,  -337,   881,  -337,  -337,  -337,
-  -337,  -337,   823,  -337,  -337,  -337,  -337,  -337,  -337,  -337,
-  -337,  -337,  -337,  -337,  -337,  -337,  -337,  -337,   603,  -337,
-  -337,  -337,   515,   516,   758,   491,     0,   692,  -337,     0,
-     0,  -337,     0,  -337,     0,     0,  -337,  -337,  -337,     0,
-     0,     0,  -337,  -337,     0,     0,     0,  -337,  -337,     0,
-     0,     0,  -337,     0,  -337,  -337,     0,     0,     0,  -337,
-  -337,     0,     0,  -337,     0,  -337,     0,  -337,  -337,     0,
-  -337,     0,   581,     0,     0,     0,     0,   324,     0,  -337,
-  -337,     0,     0,     0,  -337,  -337,     0,  -337,     0,     0,
-     0,  -337,   597,  -337,  -337,  -337,  -337,  -337,  -337,  -337,
-  -337,  -337,  -337,  -337,     0,  -337,     0,  -337,     0,  -337,
-  -337,  -337,     0,     0,     0,     0,     0,     0,  -337,     0,
-     0,  -337,     0,     0,     0,     0,  -337,  -337,  -337,     0,
-     0,     0,  -337,  -337,     0,     0,     0,  -337,  -337,     0,
-     0,     0,  -337,     0,  -337,  -337,     0,     0,     0,  -337,
-  -337,     0,     0,  -337,     0,  -337,  -312,  -337,  -337,     0,
-  -337,     0,     0,     0,   652,   258,   259,   260,   261,   262,
-   263,   264,     0,   858,     0,  -337,  -337,     0,     0,     0,
-  -337,  -337,     0,  -337,     0,   680,     0,  -337,     0,  -337,
-  -337,  -337,  -337,  -337,  -337,  -337,  -337,  -337,  -337,  -337,
-     0,  -337,     0,  -337,     0,  -337,  -337,  -337,     0,     0,
-     0,     0,     0,     0,  -337,     0,     0,  -337,     0,     0,
-     0,     0,  -337,  -337,  -337,     0,     0,     0,  -337,  -337,
-     0,     0,     0,  -337,  -337,     0,     0,     0,  -337,     0,
-  -337,  -337,     0,     0,     0,  -337,  -337,     0,     0,  -337,
-   652,  -337,     0,  -337,  -337,     0,  -337,   195,     0,     0,
-   -28,   -28,   -28,   -28,     0,     0,     0,     0,   -28,   -28,
-   -28,   255,   256,   257,   258,   259,   260,   261,   262,   263,
-   264,   680,     0,   196,   -28,     0,  -176,   337,   759,     0,
-   -20,   -20,   -20,   -20,  -176,     0,     0,     0,   -20,   -20,
-   -20,     0,     0,   -28,   771,     0,     0,     0,     0,     0,
-     0,     0,     0,   196,   -20,     0,  -176,   197,   198,     0,
-     0,     0,     0,     0,  -176,   -28,   680,     0,     0,   782,
-   -28,     0,     0,   -20,     0,  -176,     0,     0,     0,  -176,
-   -28,     0,     0,     0,     0,   680,   347,     0,   680,     5,
-   680,     7,   139,     0,     0,   -20,     0,     9,    10,    11,
-   -20,     0,     0,     0,     0,  -176,     0,   830,     0,  -176,
-   -20,     0,     0,    13,     0,     0,    15,   888,   835,  -347,
-  -347,     0,     0,     0,  -347,  -347,     0,  -347,     0,   841,
-     0,  -347,    16,  -347,  -347,  -347,  -347,  -347,  -347,  -347,
-  -347,  -347,  -347,  -347,     0,  -347,     0,  -347,     0,  -347,
-  -347,  -347,     0,     0,    22,   680,     0,     0,  -347,    24,
-     0,  -347,     0,     0,   348,  -272,  -347,  -347,  -347,     0,
-     0,     0,  -347,  -347,     0,     0,     0,  -347,  -347,     0,
-     0,     0,  -347,     0,  -347,  -347,     0,     0,     0,  -347,
-  -347,     0,     0,  -347,     0,  -347,     0,  -347,  -347,     0,
-  -347,   233,     0,   100,     5,     0,     7,   139,   101,   102,
-   899,   103,     9,    10,    11,   252,   253,   254,   255,   256,
-   257,   258,   259,   260,   261,   262,   263,   264,    13,   104,
+   141,    63,    32,    32,    67,    68,    33,    33,    71,   344,
+    63,    74,    86,    42,    42,   209,   220,    70,   212,    70,
+   181,   446,   354,    94,    96,    98,    72,   229,   230,    81,
+   334,   445,   422,   472,   233,   405,   337,    92,    83,    85,
+   356,   305,    32,   669,   414,   242,    33,   284,   306,   520,
+   290,   225,   470,    42,    92,    92,    92,   278,   475,   190,
+   237,   551,    70,   341,   547,   578,    70,   795,   461,   184,
+    36,    36,   658,   188,   623,   192,   321,    53,    54,    55,
+   776,    92,   338,   213,    59,    60,   882,   823,   734,    92,
+   185,   272,   147,   232,   918,  -113,   927,   793,    50,    80,
+    -1,    88,   939,   374,   462,   951,    14,   198,   199,    -2,
+    36,   186,   424,   413,    75,   576,   849,   425,   301,   693,
+   577,   857,   344,    14,   320,   949,    16,   361,   148,    59,
+    60,   294,   919,   298,   187,    59,    60,    99,   419,   220,
+   940,    14,   328,   952,   625,    80,   514,   824,   579,   626,
+    61,   208,   197,    80,   685,    62,   354,   300,   854,   219,
+   569,   224,   334,    76,   883,    93,   535,   309,   310,   422,
+   313,   314,    77,   334,   356,    87,   518,   734,  -113,   334,
+   712,   371,   522,   649,   635,   378,   198,   199,   637,   319,
+   382,   405,   383,   323,    56,    61,    14,   907,   -35,   143,
+    62,    61,   192,    59,    60,    16,    62,    51,    52,    92,
+   283,   220,   362,   283,   406,   466,    95,   893,    75,   469,
+    92,    89,   468,    90,   869,   418,   379,   766,   767,    57,
+   922,   345,   346,   681,   357,   926,   683,   928,    58,   515,
+   495,    59,    60,   565,   427,    14,   936,   615,   467,   182,
+   620,   -34,   809,   402,   403,    82,    16,   143,    16,    80,
+   639,   566,   208,    80,   751,   840,   841,   661,   757,    61,
+   183,   146,   208,   221,    62,   634,   656,   282,   960,   226,
+    59,    60,   219,   228,    92,   549,   550,   289,    14,   474,
+   329,   491,   434,  -116,  -116,  -116,  -116,   231,   775,  -116,
+  -480,  -116,  -116,  -116,    70,    59,    60,    61,   595,   189,
+   595,   436,    62,   148,   482,   143,   484,  -116,   826,   198,
+   199,   239,    97,   244,    59,    60,   291,   292,   293,   501,
+    75,   202,   240,   847,   318,   319,  -116,    92,   299,   323,
+   851,   515,   734,   621,   420,   421,    61,   958,   220,   283,
+   362,    62,   959,   345,   346,   753,   606,    14,  -116,   241,
+   478,   519,   480,  -116,   525,   143,   198,   199,   357,   243,
+   703,    61,   197,  -116,   272,  -176,    62,    75,   542,   203,
+   877,   318,   143,  -176,   263,   264,   265,   143,   204,   143,
+    61,   744,   244,   507,    36,    62,   305,    59,    60,   942,
+   943,   205,   273,   306,    14,   208,   198,   199,   208,   208,
+   294,   558,   559,   560,   193,    75,   202,   279,   194,   414,
+   287,   561,   780,   339,  -176,   307,   661,   340,  -176,   533,
+    86,   311,    70,   534,   603,   656,   282,   420,   421,   546,
+   553,   143,    14,   585,   554,   317,   552,    75,   654,   565,
+   324,   318,   759,   350,   842,   433,   571,   572,    75,   202,
+   351,   347,    75,    61,   203,   194,   318,   566,    62,   834,
+   703,   362,   707,   204,    14,   574,   660,   664,   612,   575,
+   197,   283,   613,  -176,    36,    14,   205,   283,   764,    14,
+   359,  -176,  -279,  -279,   771,   784,   655,    36,   289,   143,
+    36,   459,   614,   471,   367,   656,   282,   203,    36,   368,
+   477,    76,   765,    86,   595,   628,   204,   772,   483,    88,
+    77,   558,   559,   560,   780,   369,    14,   518,   522,   205,
+   -86,   641,  -176,    86,   518,   522,  -176,   533,   407,   631,
+   380,   534,   766,   767,     5,    89,     7,    90,   280,   408,
+   644,   830,     9,    10,    11,   831,   412,   281,   282,   645,
+   646,   246,   248,   558,   559,   560,   730,   428,    13,   659,
+   663,   651,   652,   758,   845,   143,   846,   903,   340,   212,
+   194,   340,   426,   760,   760,   905,   143,    16,   429,   194,
+   672,   674,   431,    87,   437,   911,   755,   756,   710,  -478,
+   442,   220,    88,    75,   202,    36,   586,   777,   729,    22,
+    75,   654,   441,   920,    24,   921,   197,   785,   102,   673,
+    80,   750,    88,   732,   458,   459,   465,   733,   476,   746,
+    14,   143,   479,   485,   743,   486,   493,    14,   494,   657,
+   662,   497,   498,    36,   644,   499,   500,   553,   954,   505,
+   318,   554,   203,   552,   192,   730,   962,   502,    92,   655,
+   506,   204,   521,    92,   526,   278,   808,   544,   656,   282,
+   530,   344,   644,    14,   205,   548,    87,   568,   787,   570,
+   573,   215,   216,   217,   558,   559,   560,   589,     9,    10,
+    11,    36,   610,   590,   832,   280,    87,   729,   592,   657,
+   624,   597,   598,   220,   281,   282,    14,   601,   289,   810,
+   844,  -316,    86,   208,    80,    36,   619,   627,   575,   208,
+   208,    70,    70,   630,   662,   636,   668,   675,   684,    72,
+   653,   690,   579,    36,   334,   275,   334,   671,   816,   818,
+   208,   855,    80,   732,   858,   861,   689,   733,   871,   705,
+   706,   872,   865,   208,   743,   366,   686,   687,   216,   217,
+   688,   711,   319,   323,     9,    10,    11,   878,   381,   319,
+   323,   760,   752,   384,   385,   -32,   789,   790,   390,   391,
+   392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
+   266,   267,   143,   268,   269,   270,   271,   791,   -33,   895,
+   798,    88,   801,   802,     5,   804,     7,   288,   805,   806,
+   902,    36,     9,    10,    11,   811,   874,   768,   769,   770,
+   730,   813,   773,   774,   814,   815,   819,   833,    13,   746,
+   838,   839,   657,   657,   779,   216,   217,   856,   864,   662,
+   662,     9,    10,    11,   867,   866,   888,    16,   786,   266,
+   267,   881,   268,   269,   270,   271,   894,   889,   858,   892,
+   896,   898,   729,   261,   262,   263,   264,   265,   901,    22,
+   899,   897,   910,   913,    24,    87,   923,   924,   929,  -281,
+  -281,   945,   933,   937,   208,   938,    80,   858,   255,   256,
+   257,   258,   259,   260,   261,   262,   263,   264,   265,   657,
+   941,   947,   956,   950,   827,   828,   829,   208,   329,   953,
+  -339,  -339,   503,   504,   961,  -339,  -339,   964,  -339,   965,
+   529,   859,  -339,   463,  -339,  -339,  -339,  -339,  -339,  -339,
+  -339,  -339,  -339,  -339,  -339,   616,  -339,   825,  -339,   214,
+  -339,  -339,  -339,   778,   850,   423,   782,   853,   527,  -339,
+   794,   602,  -339,   596,   481,   488,   783,  -339,  -339,  -339,
+   600,   617,   670,  -339,  -339,   517,   908,   622,  -339,  -339,
+   946,   948,   868,  -339,   909,  -339,  -339,   523,   667,   540,
+  -339,  -339,   541,    73,  -339,   650,  -339,  -312,  -339,  -339,
+   251,  -339,   252,   253,   254,   255,   256,   257,   258,   259,
+   260,   261,   262,   263,   264,   265,   763,   890,   887,   599,
+   885,   274,   648,  -319,  -319,  -319,  -319,  -319,  -319,  -319,
+   435,  -319,  -319,  -319,  -319,  -319,   611,  -319,  -319,  -319,
+  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,
+  -319,  -319,  -319,  -319,  -319,  -319,   629,   633,   879,   708,
+   912,   531,  -319,   532,   796,  -319,   496,  -319,     0,     0,
+  -319,  -319,  -319,     0,     0,     0,  -319,  -319,     0,     0,
+     0,  -319,  -319,     0,     0,     0,  -319,     0,  -319,  -319,
+     0,     0,     0,  -319,  -319,     0,     0,  -319,     0,  -319,
+   275,  -319,  -319,     0,  -319,   253,   254,   255,   256,   257,
+   258,   259,   260,   261,   262,   263,   264,   265,     0,     0,
+     0,   679,     0,   329,     0,  -125,  -125,  -125,  -125,  -125,
+  -125,  -125,     0,  -125,  -125,  -125,  -125,  -125,   696,  -125,
+  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,
+  -125,  -125,  -125,  -125,     0,  -125,  -125,  -125,     0,     0,
+     0,     0,     0,     0,  -125,     0,     0,  -125,     0,  -125,
+     0,     0,  -125,  -125,  -125,     0,     0,     0,  -125,  -125,
+     0,     0,     0,  -125,  -125,     0,     0,     0,  -125,     0,
+  -125,  -125,     0,     0,     0,  -125,  -125,     0,     0,  -125,
+     0,  -125,  -125,  -125,  -125,     0,  -125,   257,   258,   259,
+   260,   261,   262,   263,   264,   265,   679,     0,     0,   447,
+     0,   448,     5,     6,     7,     8,     0,     0,   449,     0,
+     9,    10,    11,     0,     0,     0,   696,     0,     0,     0,
+     0,     0,     0,   797,     0,     0,    13,     0,    14,     0,
+     0,     0,     0,   803,     0,     0,   509,     0,  -339,  -339,
+  -339,  -339,  -339,  -339,  -339,    16,  -339,  -339,  -339,  -339,
+  -339,     0,  -339,  -339,  -339,  -339,  -339,  -339,  -339,  -339,
+  -339,  -339,  -339,  -339,  -339,  -339,  -339,    22,  -339,  -339,
+  -339,     0,    24,   837,     0,     0,  -399,  -339,     0,     0,
+  -339,     0,  -339,     0,     0,  -339,  -339,  -339,     0,     0,
+     0,  -339,  -339,     0,     0,   696,  -339,  -339,   848,     0,
+     0,  -339,   696,  -339,  -339,   696,     0,   696,  -339,  -339,
+     0,     0,  -339,     0,  -339,     0,  -339,  -339,     0,  -339,
+     0,     0,     0,   820,     0,  -339,  -339,     0,     0,     0,
+  -339,  -339,     0,  -339,     0,     0,     0,  -339,     0,  -339,
+  -339,  -339,  -339,  -339,  -339,  -339,  -339,  -339,  -339,  -339,
+     0,  -339,   886,  -339,     0,  -339,  -339,  -339,     0,     0,
+     0,     0,     0,   891,  -339,     0,   696,  -339,     0,     0,
+     0,     0,  -339,  -339,  -339,     0,   900,     0,  -339,  -339,
+     0,     0,     0,  -339,  -339,     0,     0,     0,  -339,     0,
+  -339,  -339,     0,     0,     0,  -339,  -339,     0,     0,  -339,
+     0,  -339,     0,  -339,  -339,   875,  -339,  -349,  -349,     0,
+     0,     0,  -349,  -349,     0,  -349,     0,     0,     0,  -349,
+     0,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
+  -349,  -349,     0,  -349,     0,  -349,     0,  -349,  -349,  -349,
+     0,     0,     0,     0,     0,     0,  -349,     0,     0,  -349,
+     0,     0,     0,     0,  -349,  -349,  -349,     0,     0,     0,
+  -349,  -349,     0,     0,     0,  -349,  -349,     0,     0,     0,
+  -349,     0,  -349,  -349,     0,     0,     0,  -349,  -349,     0,
+     0,  -349,     0,  -349,     0,  -349,  -349,   234,  -349,   100,
+     5,     0,     7,   140,   101,   102,     0,   103,     9,    10,
+    11,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+   263,   264,   265,     0,    13,   104,     0,    15,     0,   105,
+   106,   107,     0,     0,     0,     0,     0,     0,   108,     0,
+     0,   109,     0,    16,     0,     0,   110,   111,   112,     0,
+     0,     0,   113,   114,     0,     0,     0,   115,   116,     0,
+     0,     0,   117,     0,   118,    22,     0,     0,     0,   119,
+    24,     0,     0,   120,     0,     0,     0,   121,   122,   691,
+   235,   692,    60,     0,     0,     0,   101,   102,     0,   103,
+   256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
+   259,   260,   261,   262,   263,   264,   265,   104,     0,    15,
+     0,   105,   106,   107,     0,     0,     0,     0,     0,     0,
+   108,     0,     0,   109,     0,     0,     0,     0,   110,   111,
+   112,     0,     0,     0,   113,   114,     0,     0,   693,   115,
+   116,     0,     0,     0,   117,     0,   118,    61,     0,     0,
+     0,   119,    62,     0,     0,   120,     0,     0,  -204,   121,
+   122,   691,   694,   692,    60,     0,     0,     0,   101,   102,
+     0,   103,   258,   259,   260,   261,   262,   263,   264,   265,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   104,
      0,    15,     0,   105,   106,   107,     0,     0,     0,     0,
-     0,     0,   108,     0,     0,   109,     0,    16,     0,     0,
+     0,     0,   108,     0,     0,   109,     0,     0,     0,     0,
    110,   111,   112,     0,     0,     0,   113,   114,     0,     0,
-     0,   115,   116,     0,     0,     0,   117,     0,   118,    22,
-     0,     0,     0,   119,    24,     0,     0,   120,     0,     0,
-     0,   121,   122,   675,   -95,   676,    60,     0,     0,     0,
-   101,   102,   250,   103,   251,   252,   253,   254,   255,   256,
-   257,   258,   259,   260,   261,   262,   263,   264,     0,     0,
+   693,   115,   116,     0,     0,     0,   117,     0,   118,    61,
+     0,     0,     0,   119,    62,     0,     0,   120,     0,     0,
+  -269,   121,   122,   691,   694,   100,     0,     0,     0,     0,
+   101,   102,     0,   103,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,   104,     0,    15,     0,   105,   106,   107,     0,     0,
-     0,     0,     0,     0,   108,     0,     0,   109,     0,     0,
+  -217,     0,     0,     0,   108,     0,     0,   109,     0,     0,
      0,     0,   110,   111,   112,     0,     0,     0,   113,   114,
-     0,     0,   677,   115,   116,     0,     0,     0,   117,     0,
-   118,    61,     0,     0,     0,   119,    62,     0,     0,   120,
-     0,     0,  -204,   121,   122,   675,   678,   676,    60,     0,
-     0,     0,   101,   102,     0,   103,   253,   254,   255,   256,
-   257,   258,   259,   260,   261,   262,   263,   264,     0,     0,
-     0,     0,     0,   104,     0,    15,     0,   105,   106,   107,
-     0,     0,     0,     0,     0,     0,   108,     0,     0,   109,
-     0,     0,     0,     0,   110,   111,   112,     0,     0,     0,
-   113,   114,     0,     0,   677,   115,   116,     0,     0,     0,
-   117,     0,   118,    61,     0,     0,     0,   119,    62,     0,
-     0,   120,     0,     0,  -269,   121,   122,   675,   678,   100,
-     0,     0,     0,     0,   101,   102,     0,   103,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   104,     0,    15,     0,   105,
-   106,   107,     0,     0,  -217,     0,     0,     0,   108,     0,
+     0,     0,  -217,   115,   116,     0,     0,     0,   117,     0,
+   118,     0,     0,     0,     0,   119,     0,     0,     0,   120,
+   677,     0,   100,   121,   122,     0,   694,   101,   102,     0,
+   103,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   104,     0,
+    15,     0,   105,   106,   107,     0,     0,     0,     0,     0,
+     0,   108,     0,     0,   109,     0,     0,     0,     0,   110,
+   111,   112,     0,     0,     0,   113,   114,     0,     0,     0,
+   115,   116,     0,     0,     0,   117,     0,   118,     0,     0,
+     0,     0,   119,     0,     0,     0,   120,   691,     0,   100,
+   121,   122,     0,   678,   101,   102,     0,   103,     4,     0,
+  -129,     5,     6,     7,     8,     0,     0,     0,     0,     9,
+    10,    11,     0,     0,     0,   104,     0,    15,     0,   105,
+   106,   107,     0,     0,     0,    13,     0,    14,   108,     0,
      0,   109,     0,     0,     0,     0,   110,   111,   112,     0,
-     0,     0,   113,   114,     0,     0,  -217,   115,   116,     0,
-     0,     0,   117,     0,   118,     0,     0,     0,     0,   119,
-     0,     0,     0,   120,   650,     0,   100,   121,   122,     0,
-   678,   101,   102,     0,   103,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   113,   114,    16,     0,     0,   115,   116,  -129,
+     0,     0,   117,     0,   118,     0,     0,     0,  -129,   119,
+     0,     0,     0,   120,     0,     0,    22,   121,   122,   196,
+   694,    24,   -28,   -28,   -28,   -28,    27,     0,     0,     0,
+   -28,   -28,   -28,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   197,   -28,   348,  -176,     0,
+   -24,   -24,   -24,   -24,     0,     0,  -176,     0,   -24,   -24,
+   -24,     5,     6,     7,     8,   -28,     0,     0,     0,     9,
+    10,    11,     0,   197,   -24,     0,  -176,     0,     0,   198,
+   199,     0,     0,     0,  -176,    13,     0,   -28,     0,     0,
+     0,     0,   -28,   -24,     0,     0,     0,  -176,     0,     0,
+     0,  -176,   -28,     0,    16,     0,   342,   198,   199,   -20,
+   -20,   -20,   -20,     0,     0,   -24,     0,   -20,   -20,   -20,
+   -24,     0,     0,     0,     0,  -176,    22,     0,     0,  -176,
+   -24,    24,   197,   -20,   329,  -176,     0,     5,     6,     7,
+     8,     0,     0,  -176,     0,     9,    10,    11,     0,     0,
+     0,     0,   -20,     0,   329,     0,     0,  -502,  -502,  -502,
+  -502,    13,     0,    14,     0,  -502,  -502,  -502,     0,     0,
+     0,     0,     0,     0,   -20,     0,     0,     0,     0,   -20,
+    16,  -502,     0,  -502,  -176,     0,     0,     0,  -176,   -20,
+     0,     0,   329,     0,     0,  -339,  -339,  -339,  -339,     0,
+  -502,     0,    22,  -339,  -339,  -339,     0,    24,     0,     0,
+     0,     0,     0,     0,     0,   100,     0,  -500,     0,  -339,
+   101,   102,  -502,   103,     0,     0,     0,  -502,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,  -502,  -339,     0,
+     0,   104,     0,    15,     0,   105,   106,   107,     0,     0,
+     0,     0,     0,     0,   108,     0,     0,   109,     0,     0,
+  -339,     0,   110,   111,   112,  -339,     0,     0,   113,   114,
+     0,     0,     0,   115,   116,  -112,   100,     0,   117,     0,
+   118,   101,   102,     0,   103,   119,     0,     0,     0,   120,
+     0,     0,     0,   121,   122,     0,     0,   327,     0,     0,
      0,     0,   104,     0,    15,     0,   105,   106,   107,     0,
      0,     0,     0,     0,     0,   108,     0,     0,   109,     0,
      0,     0,     0,   110,   111,   112,     0,     0,     0,   113,
-   114,     0,     0,     0,   115,   116,     0,     0,     0,   117,
-     0,   118,     0,     0,     0,     0,   119,     0,     0,     0,
-   120,   675,     0,   100,   121,   122,     0,   651,   101,   102,
-     0,   103,     4,     0,  -129,     5,     6,     7,     8,     0,
-     0,     0,     0,     9,    10,    11,     0,     0,     0,   104,
-     0,    15,     0,   105,   106,   107,     0,     0,     0,    13,
-     0,    14,   108,     0,     0,   109,     0,     0,     0,     0,
-   110,   111,   112,     0,     0,     0,   113,   114,    16,     0,
-     0,   115,   116,  -129,     0,     0,   117,     0,   118,     0,
-     0,     0,  -129,   119,     0,     0,     0,   120,     0,     0,
-    22,   121,   122,   343,   678,    24,   -24,   -24,   -24,   -24,
-    27,     0,     0,     0,   -24,   -24,   -24,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   196,
-   -24,     0,  -176,   324,     0,     0,  -116,  -116,  -116,  -116,
-  -176,     0,  -116,     0,  -116,  -116,  -116,     0,     0,   -24,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-  -116,     0,   324,   197,   198,     5,     6,     7,     8,     0,
-     0,   -24,     0,     9,    10,    11,   -24,     0,     0,  -116,
-     0,  -176,     0,     0,     0,  -176,   -24,     0,     0,    13,
-     0,    14,   324,     0,     0,  -500,  -500,  -500,  -500,     0,
-     0,  -116,     0,  -500,  -500,  -500,  -116,     0,    16,     0,
-     0,     0,     0,     0,     0,     0,  -116,     0,     0,  -500,
-   324,  -500,     0,  -337,  -337,  -337,  -337,     0,     0,     0,
-    22,  -337,  -337,  -337,     5,    24,     7,   139,  -500,     0,
-     0,     0,     9,    10,    11,  -498,     0,  -337,   100,     0,
-     0,     0,     0,   101,   102,     0,   103,     0,    13,     0,
-  -500,     0,     0,     0,     0,  -500,  -337,     0,     0,     0,
-     0,     0,     0,     0,   104,  -500,    15,    16,   105,   106,
-   107,     0,     0,     0,     0,     0,     0,   108,  -337,     0,
-   109,     0,     0,  -337,     0,   110,   111,   112,     0,    22,
-     0,   113,   114,  -112,    24,     0,   115,   116,     0,   100,
+   114,     0,     0,     0,   115,   116,     0,   100,     0,   117,
+     0,   118,   101,   102,     0,   103,   119,     0,     0,     0,
+   120,     0,     0,     0,   121,   122,     0,     0,   417,     0,
+     0,     0,     0,   104,     0,    15,     0,   105,   106,   107,
+     0,     0,     0,     0,     0,     0,   108,     0,     0,   109,
+     0,     0,     0,     0,   110,   111,   112,     0,     0,     0,
+   113,   114,     0,     0,     0,   115,   116,     0,   100,     0,
+   117,     0,   118,   101,   102,     0,   103,   119,     0,     0,
+     0,   120,     0,     0,     0,   121,   122,     0,     0,   473,
+     0,     0,     0,     0,   104,     0,    15,     0,   105,   106,
+   107,     0,     0,     0,     0,     0,     0,   108,     0,     0,
+   109,     0,     0,     0,     0,   110,   111,   112,     0,     0,
+     0,   113,   114,     0,     0,     0,   115,   116,     0,   100,
      0,   117,     0,   118,   101,   102,     0,   103,   119,     0,
      0,     0,   120,     0,     0,     0,   121,   122,     0,     0,
-   322,     0,     0,     0,     0,   104,     0,    15,     0,   105,
+   524,     0,     0,     0,     0,   104,     0,    15,     0,   105,
    106,   107,     0,     0,     0,     0,     0,     0,   108,     0,
      0,   109,     0,     0,     0,     0,   110,   111,   112,     0,
      0,     0,   113,   114,     0,     0,     0,   115,   116,     0,
-   100,     0,   117,     0,   118,   101,   102,     0,   103,   119,
+     0,     0,   117,     0,   118,     0,     0,     0,     0,   119,
      0,     0,     0,   120,     0,     0,     0,   121,   122,     0,
-     0,   409,     0,     0,     0,     0,   104,     0,    15,     0,
+     0,   843,   692,   713,     6,     7,     8,   101,   102,     0,
+   103,     9,    10,    11,   714,     0,   715,   716,   717,   718,
+   719,   720,   721,   722,   723,   724,   725,    13,   104,    14,
+    15,     0,   105,   106,   107,     0,     0,     0,     0,     0,
+     0,   108,     0,     0,   109,     0,    16,     0,     0,   110,
+   111,   112,     0,     0,     0,   113,   114,     0,     0,     0,
+   115,   116,     0,     0,     0,   117,     0,   118,   726,     0,
+     0,     0,   119,   727,     0,     0,   120,     0,   728,     0,
+   121,   122,     0,   579,   692,    60,     0,     0,     0,   101,
+   102,     0,   103,     0,     0,     0,   714,     0,   715,   716,
+   717,   718,   719,   720,   721,   722,   723,   724,   725,     0,
+   104,     0,    15,     0,   105,   106,   107,     0,     0,     0,
+     0,     0,     0,   108,     0,     0,   109,     0,     0,     0,
+     0,   110,   111,   112,     0,     0,     0,   113,   114,     0,
+   100,     0,   115,   116,     0,   101,   102,   117,   103,   118,
+    61,     0,     0,     0,   119,    62,     0,     0,   120,     0,
+   728,     0,   121,   122,     0,   579,   104,     0,    15,     0,
    105,   106,   107,     0,     0,     0,     0,     0,     0,   108,
      0,     0,   109,     0,     0,     0,     0,   110,   111,   112,
      0,     0,     0,   113,   114,     0,     0,     0,   115,   116,
-     0,   100,     0,   117,     0,   118,   101,   102,     0,   103,
+     0,     0,     0,   117,     0,   118,     0,     0,     0,     0,
    119,     0,     0,     0,   120,     0,     0,     0,   121,   122,
-     0,     0,   465,     0,     0,     0,     0,   104,     0,    15,
-     0,   105,   106,   107,     0,     0,     0,     0,     0,     0,
-   108,     0,     0,   109,     0,     0,     0,     0,   110,   111,
-   112,     0,     0,     0,   113,   114,     0,     0,     0,   115,
-   116,     0,   100,     0,   117,     0,   118,   101,   102,     0,
-   103,   119,     0,     0,     0,   120,     0,     0,     0,   121,
-   122,     0,     0,   508,     0,     0,     0,     0,   104,     0,
+     0,   490,   149,   150,     0,   151,   152,     0,     0,     0,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
+   163,   164,   165,   166,   167,   168,   169,   170,   171,     0,
+     0,     0,   100,     5,     6,     7,     8,   101,   102,   172,
+   103,     9,    10,    11,     5,     6,     7,     8,     0,     0,
+     0,     0,     9,    10,    11,     0,     0,    13,   104,    14,
+    15,     0,   105,   106,   107,     0,     0,     0,    13,     0,
+    14,   108,     0,   174,   109,     0,    16,     0,     0,   110,
+   111,   112,   303,     0,     0,   113,   114,    16,     0,     0,
+   115,   116,     0,     0,     0,   117,     0,   118,    22,     0,
+     0,     0,   119,    24,     0,     0,   120,     0,     0,    22,
+   121,   122,   100,     5,    24,     7,   140,   101,   102,    84,
+   103,     9,    10,    11,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    13,   104,     0,
+    15,     0,   105,   106,   107,     0,     0,     0,     0,     0,
+     0,   108,     0,     0,   109,     0,    16,     0,     0,   110,
+   111,   112,     0,     0,     0,   113,   114,     0,   100,     0,
+   115,   116,     0,   101,   102,   117,   103,   118,    22,     0,
+     0,     0,   119,    24,     0,     0,   120,     0,     0,     0,
+   121,   122,     0,     0,   104,     0,    15,     0,   105,   106,
+   107,     0,     0,     0,     0,     0,     0,   108,     0,     0,
+   109,     0,     0,     0,     0,   110,   111,   112,     0,     0,
+     0,   113,   114,     0,   100,     0,   115,   116,     0,   101,
+   102,   117,   103,   118,   370,     0,     0,     0,   119,     0,
+     0,     0,   120,     0,     0,     0,   121,   122,     0,     0,
+   104,     0,    15,     0,   105,   106,   107,     0,     0,     0,
+     0,     0,     0,   108,     0,     0,   109,     0,     0,     0,
+     0,   110,   111,   112,     0,     0,     0,   113,   114,     0,
+   100,     0,   115,   116,     0,   101,   102,   117,   103,   118,
+     0,     0,     0,     0,   119,     0,     0,     0,   120,     0,
+   807,     0,   121,   122,     0,     0,   104,     0,    15,     0,
+   105,   106,   107,     0,     0,     0,     0,     0,     0,   108,
+     0,     0,   109,     0,     0,     0,     0,   110,   111,   112,
+     0,     0,     0,   113,   114,     0,   100,     0,   115,   116,
+     0,   101,   102,   117,   103,   118,     0,     0,     0,     0,
+   119,     0,     0,     0,   120,     0,     0,     0,   121,   122,
+     0,     0,   104,     0,    15,     0,   105,   106,   107,     0,
+     0,     0,     0,     0,     0,   108,     0,     0,   109,     0,
+     0,     0,     0,   110,   111,   112,     0,     0,     0,   113,
+   114,     0,   100,     0,   245,   116,     0,   101,   102,   117,
+   103,   118,     0,     0,     0,     0,   119,     0,     0,     0,
+   120,     0,     0,     0,   121,   122,     0,     0,   104,     0,
     15,     0,   105,   106,   107,     0,     0,     0,     0,     0,
      0,   108,     0,     0,   109,     0,     0,     0,     0,   110,
-   111,   112,     0,     0,     0,   113,   114,     0,     0,     0,
-   115,   116,     0,     0,     0,   117,     0,   118,     0,     0,
+   111,   112,     0,     0,     0,   113,   114,     0,   528,     0,
+   247,   116,     0,   101,   102,   117,   103,   118,     0,     0,
      0,     0,   119,     0,     0,     0,   120,     0,     0,     0,
-   121,   122,     0,     0,   777,   676,   788,     6,     7,     8,
-   101,   102,     0,   103,     9,    10,    11,   789,     0,   790,
-   791,   792,   793,   794,   795,   796,   797,   798,   799,   800,
-    13,   104,    14,    15,     0,   105,   106,   107,     0,     0,
-     0,     0,     0,     0,   108,     0,     0,   109,     0,    16,
-     0,     0,   110,   111,   112,     0,     0,     0,   113,   114,
-     0,     0,     0,   115,   116,     0,     0,     0,   117,     0,
-   118,   801,     0,     0,     0,   119,   802,     0,     0,   120,
-     0,   803,     0,   121,   122,     0,   364,   676,    60,     0,
-     0,     0,   101,   102,     0,   103,     0,     0,     0,   789,
-     0,   790,   791,   792,   793,   794,   795,   796,   797,   798,
-   799,   800,     0,   104,     0,    15,     0,   105,   106,   107,
-     0,     0,     0,     0,     0,     0,   108,     0,     0,   109,
-     0,     0,     0,     0,   110,   111,   112,     0,     0,     0,
-   113,   114,     0,   100,     0,   115,   116,     0,   101,   102,
-   117,   103,   118,    61,     0,     0,     0,   119,    62,     0,
-     0,   120,     0,   803,     0,   121,   122,     0,   364,   104,
-     0,    15,     0,   105,   106,   107,     0,     0,     0,     0,
-     0,     0,   108,     0,     0,   109,     0,     0,     0,     0,
-   110,   111,   112,     0,     0,     0,   113,   114,     0,     0,
-     0,   115,   116,     0,     0,     0,   117,     0,   118,     0,
-     0,     0,     0,   119,     0,     0,     0,   120,     0,     0,
-     0,   121,   122,     0,   485,   148,   149,     0,   150,   151,
-     0,     0,     0,   152,   153,   154,   155,   156,   157,   158,
-   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-   169,   170,     0,     0,     0,   100,     5,     6,     7,     8,
-   101,   102,   171,   103,     9,    10,    11,     5,     6,     7,
-     8,     0,     0,     0,     0,     9,    10,    11,     0,     0,
-    13,   104,    14,    15,     0,   105,   106,   107,     0,     0,
-     0,    13,     0,    14,   108,     0,   173,   109,     0,    16,
-     0,     0,   110,   111,   112,   298,     0,     0,   113,   114,
-    16,     0,     0,   115,   116,     0,     0,     0,   117,     0,
-   118,    22,     0,     0,     0,   119,    24,     0,     0,   120,
-     0,     0,    22,   121,   122,   100,     5,    24,     7,   139,
-   101,   102,   606,   103,     9,    10,    11,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    13,   104,     0,    15,     0,   105,   106,   107,     0,     0,
-     0,     0,     0,     0,   108,     0,     0,   109,     0,    16,
-     0,     0,   110,   111,   112,     0,     0,     0,   113,   114,
-     0,   100,     0,   115,   116,     0,   101,   102,   117,   103,
-   118,    22,     0,     0,     0,   119,    24,     0,     0,   120,
-     0,     0,     0,   121,   122,     0,     0,   104,     0,    15,
-     0,   105,   106,   107,     0,     0,     0,     0,     0,     0,
-   108,     0,     0,   109,     0,     0,     0,     0,   110,   111,
-   112,     0,     0,     0,   113,   114,     0,   100,     0,   115,
-   116,     0,   101,   102,   117,   103,   118,   368,     0,     0,
-     0,   119,     0,     0,     0,   120,     0,     0,     0,   121,
-   122,     0,     0,   104,     0,    15,     0,   105,   106,   107,
-     0,     0,     0,     0,     0,     0,   108,     0,     0,   109,
-     0,     0,     0,     0,   110,   111,   112,     0,     0,     0,
-   113,   114,     0,   100,     0,   115,   116,     0,   101,   102,
-   117,   103,   118,     0,     0,     0,     0,   119,     0,     0,
-     0,   120,     0,   845,     0,   121,   122,     0,     0,   104,
-     0,    15,     0,   105,   106,   107,     0,     0,     0,     0,
-     0,     0,   108,     0,     0,   109,     0,     0,     0,     0,
-   110,   111,   112,     0,     0,     0,   113,   114,     0,   100,
-     0,   115,   116,     0,   101,   102,   117,   103,   118,     0,
-     0,     0,     0,   119,     0,     0,     0,   120,     0,     0,
-     0,   121,   122,     0,     0,   104,     0,    15,     0,   105,
-   106,   107,     0,     0,     0,     0,     0,     0,   108,     0,
-     0,   109,     0,     0,     0,     0,   110,   111,   112,     0,
-     0,     0,   113,   114,     0,   100,     0,   244,   116,     0,
-   101,   102,   117,   103,   118,     0,     0,     0,     0,   119,
-     0,     0,     0,   120,     0,     0,     0,   121,   122,     0,
-     0,   104,     0,    15,     0,   105,   106,   107,     0,     0,
-     0,     0,     0,     0,   108,     0,     0,   109,     0,     0,
-     0,     0,   110,   111,   112,     0,     0,     0,   113,   114,
-     0,   512,     0,   246,   116,     0,   101,   102,   117,   103,
-   118,     0,     0,     0,     0,   119,     0,     0,     0,   120,
-     0,     0,     0,   121,   122,     0,     0,   104,     0,    15,
-     0,   105,   106,   107,     0,     0,     0,     0,     0,     0,
-   108,     0,     0,   109,     0,     0,     0,     0,   110,   111,
-   112,     0,     0,     0,   113,   114,     0,     0,     0,   115,
-   116,     0,     0,     0,   117,     0,   118,     0,     0,     0,
-     0,   119,     0,     0,     0,   120,     0,     0,   547,   121,
-   122,     5,     0,     7,   139,     0,     0,     0,     0,     9,
-    10,    11,     0,     0,     0,   547,     0,     0,     5,     0,
-     7,   139,     0,     0,     0,    13,     9,    10,    11,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    13,     0,    16,     0,     0,     0,     0,     0,
-     0,     0,     4,     0,  -129,     5,     6,     7,     8,     0,
-     0,    16,     0,     9,    10,    11,    22,  -452,  -452,  -452,
-     0,    24,     0,     0,     0,     0,   548,  -452,    12,    13,
-     0,    14,    15,    22,  -451,  -451,  -451,     0,    24,     0,
-     0,     0,     0,   548,  -451,     0,     0,     0,    16,     0,
-     0,    17,    18,  -129,     0,     0,     0,     0,     0,     0,
-     0,     0,  -129,     0,    19,    20,    21,     0,     0,     0,
-    22,     0,     0,     0,    23,    24,    25,    26,     0,     4,
+   121,   122,     0,     0,   104,     0,    15,     0,   105,   106,
+   107,     0,     0,     0,     0,     0,     0,   108,     0,     0,
+   109,     0,     0,     0,     0,   110,   111,   112,     0,     0,
+     0,   113,   114,     0,     0,     0,   115,   116,     0,     0,
+     0,   117,     0,   118,     0,     0,     0,     0,   119,     0,
+     0,     0,   120,     0,     0,   563,   121,   122,     5,     0,
+     7,   140,     0,     0,     0,     0,     9,    10,    11,     0,
+     0,     0,   563,     0,     0,     5,     0,     7,   140,     0,
+     0,     0,    13,     9,    10,    11,     0,     0,     0,     0,
+     0,     0,   352,     0,     0,     5,     0,     7,   140,    13,
+     0,    16,     0,     9,    10,    11,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    16,    13,
+     0,     0,    15,    22,  -454,  -454,  -454,     0,    24,     0,
+     0,     0,     0,   564,  -454,     0,     0,     0,    16,     0,
+    22,  -453,  -453,  -453,     0,    24,     0,     0,     0,     0,
+   564,  -453,     0,     0,     0,     0,     0,     0,     0,     0,
+    22,     0,     0,     0,     0,    24,     0,     0,     0,     0,
+   353,  -272,     4,     0,  -129,     5,     6,     7,     8,     0,
+     0,     0,     0,     9,    10,    11,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    12,    13,
+     0,    14,    15,     0,     0,     5,     6,     7,     8,     0,
+     0,   449,     0,     9,    10,    11,     0,     0,    16,     0,
+     0,    17,    18,  -129,     0,     0,     0,     0,     0,    13,
+     0,    14,  -129,     0,    19,    20,    21,     0,     0,     0,
+    22,     0,     0,     0,    23,    24,    25,    26,    16,     4,
     27,  -129,     5,     6,     7,     8,     0,     0,     0,     0,
      9,    10,    11,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,    13,   439,    14,   440,
-     5,     6,     7,     8,     0,     0,   441,     0,     9,    10,
-    11,     0,     0,     0,     0,    16,     0,     0,   533,   534,
-  -129,     0,     0,     0,    13,     0,    14,   439,     0,  -129,
-     5,     6,     7,     8,     0,     0,   441,    22,     9,    10,
+    22,     0,     0,     0,     0,    24,    13,   447,    14,     0,
+     5,     6,     7,     8,     0,     0,   449,     0,     9,    10,
+    11,     0,     0,     0,     0,    16,     0,     0,   549,   550,
+  -129,     0,     0,     0,    13,     0,    14,     0,     0,  -129,
+     5,     6,     7,     8,     0,     0,     0,    22,     9,    10,
     11,     0,    24,    16,     0,     0,     0,    27,     0,     0,
-     0,     0,     0,     0,    13,     0,    14,     0,     5,     0,
-     7,   283,     0,     0,     0,    22,     9,    10,    11,     0,
-    24,     0,     0,    16,  -397,     0,     0,     0,     0,     0,
-     0,     0,    13,     5,     6,     7,     8,     0,     0,     0,
+     0,     0,     0,     0,    13,     0,    14,     0,     5,     6,
+     7,     8,     0,     0,     0,    22,     9,    10,    11,     0,
+    24,     0,     0,    16,  -399,     0,     0,     0,     0,     0,
+   352,     0,    13,     5,    14,     7,   140,     0,     0,     0,
      0,     9,    10,    11,     0,    22,     0,     0,     0,     0,
-    24,    16,     0,     0,  -397,     0,     0,    13,     0,    14,
-     0,     5,    89,     7,    90,     0,     0,     0,     0,     9,
-    10,    11,     0,    22,     0,     0,    16,     0,    24,     0,
-     0,     0,     0,  -281,  -281,    13,     0,     0,   347,     0,
-     0,     5,     0,     7,   139,     0,     0,     0,    22,     9,
-    10,    11,     0,    24,    16,     0,     0,     0,   855,     0,
-     0,     0,     0,     0,     0,    13,     0,     0,    15,     0,
-     0,     0,     0,     0,     0,     0,    22,     0,     0,   148,
-   149,    24,   150,   151,    16,     0,   646,   152,   153,   154,
-   155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-   165,   166,   167,   168,   169,   170,    22,     0,     0,   148,
-   149,    24,   150,   151,     0,     0,   171,   152,   153,   154,
-   155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-   165,   166,   167,   168,   169,   170,     0,   172,     0,     0,
-     0,     0,     0,     0,   148,   149,   371,   150,   151,     0,
-   173,     0,   152,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
-   170,     0,     0,     0,   148,   149,     0,   150,   151,     0,
-   173,   171,   152,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
-   170,     0,     0,     0,     5,     0,     7,   283,     0,     0,
-     0,   591,     9,    10,    11,   173,     5,     6,     7,     8,
-     0,     0,   441,     0,     9,    10,    11,     0,    13,     0,
-    14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    13,     0,    14,     0,     0,   173,     0,    16,     0,     0,
-     0,     0,   275,     0,     0,     0,     0,     0,     0,    16,
-     0,   276,   277,     0,     0,     0,     0,     0,     0,    22,
-     5,     6,     7,     8,    24,     0,   640,     0,     9,    10,
-    11,    22,     5,     6,     7,     8,    24,     0,     0,     0,
-     9,    10,    11,     0,    13,     0,    14,     0,     0,     0,
-     0,     0,     5,     6,     7,     8,    13,     0,    14,     0,
-     9,    10,    11,    16,     5,     0,     7,   283,     0,     0,
-     0,     0,     9,    10,    11,    16,    13,     0,     0,     0,
-     0,     0,     0,     0,     0,    22,     0,     0,    13,     0,
-    24,     0,     0,     0,     0,    16,     0,    22,     0,     0,
-     0,     0,    24,     0,     0,     0,     0,    16,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    22,     0,     0,
-     0,     0,    24,   875,     0,     0,     0,     0,     0,    22,
-     0,   248,   249,   250,    24,   251,   252,   253,   254,   255,
-   256,   257,   258,   259,   260,   261,   262,   263,   264,     0,
-   248,   249,   250,   876,   251,   252,   253,   254,   255,   256,
-   257,   258,   259,   260,   261,   262,   263,   264,     0,     0,
-     0,    14,     0,     0,     0,     0,     0,   481,   248,   249,
-   250,     0,   251,   252,   253,   254,   255,   256,   257,   258,
-   259,   260,   261,   262,   263,   264,   248,   249,   250,   914,
-   251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
-   261,   262,   263,   264,   248,   249,   250,     0,   251,   252,
+    24,    16,     0,     0,     0,   632,     0,    13,     0,     0,
+    15,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    22,     0,     0,    16,     0,    24,     0,
+     0,     0,     0,   817,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   149,   150,    22,   151,
+   152,     0,     0,    24,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
+   169,   170,   171,     0,     0,     0,   149,   150,     0,   151,
+   152,     0,     0,   172,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
+   169,   170,   171,     0,   173,     0,     0,     0,     0,     0,
+     0,   149,   150,   373,   151,   152,     0,   174,     0,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,   168,   169,   170,   171,     0,     0,
+     0,   149,   150,     0,   151,   152,     0,   174,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
+   164,   165,   166,   167,   168,   169,   170,   171,     0,     0,
+     0,     5,     0,     7,   288,     0,     0,     0,   605,     9,
+    10,    11,   174,     5,     6,     7,     8,     0,     0,   666,
+     0,     9,    10,    11,     0,    13,     0,    14,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    13,     0,    14,
+     0,     0,   174,     0,    16,     0,     0,     0,     0,   280,
+     0,     0,     0,     0,     0,     0,    16,     0,   281,   282,
+     5,     6,     7,     8,     0,     0,    22,     0,     9,    10,
+    11,    24,     5,     0,     7,   140,     0,     0,    22,     0,
+     9,    10,    11,    24,    13,     5,    14,     7,   288,     0,
+     0,     0,     0,     9,    10,    11,    13,     0,     0,     0,
+     0,     0,     0,    16,     0,     0,     0,     0,     0,    13,
+     0,     0,     0,     0,     0,    16,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    22,     0,     0,    16,     0,
+    24,     0,     0,     0,     0,     0,     0,    22,     0,     0,
+     0,     0,    24,   862,     0,     0,     0,     0,     0,     0,
+    22,     0,   249,   250,   251,    24,   252,   253,   254,   255,
+   256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
+   249,   250,   251,   863,   252,   253,   254,   255,   256,   257,
+   258,   259,   260,   261,   262,   263,   264,   265,    14,     0,
+     0,     0,     0,     0,     0,   249,   250,   251,   489,   252,
    253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-   263,   264
+   263,   264,   265,   249,   250,   251,   917,   252,   253,   254,
+   255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+   265,   249,   250,   251,     0,   252,   253,   254,   255,   256,
+   257,   258,   259,   260,   261,   262,   263,   264,   265
 };
 
 static const short yycheck[] = {    56,
-    57,    16,    33,    24,    19,    20,   199,    85,    23,    83,
-    25,    26,     2,     3,    31,     2,     3,   208,     2,     3,
-   235,   577,   311,    38,    39,    40,   176,   207,    22,   281,
-    24,    66,   408,    91,   202,   340,   105,   106,   319,    95,
-     2,     3,   430,   112,    32,    33,    67,     9,    10,    11,
-    71,   176,    42,   269,   123,    42,   338,   432,    42,    74,
-    77,   645,   344,   326,   141,   134,   222,   144,    85,    31,
-   555,    33,   276,    67,   193,   686,     1,    71,   222,     1,
-    42,     9,    33,     1,    36,   203,   115,     1,    10,   731,
-    30,    40,     1,   108,     3,     4,   912,     0,   278,     3,
-    40,    53,    54,    55,    47,    38,    57,   275,   750,    47,
-     3,     4,    61,   238,    40,    77,   672,     3,     4,    40,
-     0,    83,    27,    85,   940,    30,   317,    60,    80,    91,
-   145,    30,   147,    38,   327,    84,    88,    27,    42,    84,
-    83,   198,   523,   172,   755,   338,   527,    61,    61,    40,
-    78,   344,    78,   541,    61,   213,   171,    78,   421,    84,
-    69,    79,    84,   415,   115,    74,   181,   182,    30,   184,
-   185,    61,    62,   190,    79,   838,    69,   194,    83,   141,
-   237,    74,   144,    69,    79,    80,   203,    78,    74,   570,
-   746,    84,   573,   144,    61,     5,   352,     7,    84,    61,
-    62,   405,   418,     3,     4,    61,    62,   411,   352,   820,
-   239,   226,    40,   270,   332,   244,   335,   246,   336,    47,
-   277,   172,    78,   281,   612,   240,   889,    79,   190,   714,
-   715,   193,   194,     3,     4,     3,     4,     7,   222,    78,
-   529,   203,     3,     4,    83,   908,   621,    61,   911,   374,
-   913,   213,   267,   268,    30,   207,    67,    40,   921,   522,
-    30,    61,    78,   639,    47,   294,   218,    83,    61,    69,
-   854,   222,    61,    62,    74,     3,     4,   470,    61,   472,
-   436,    84,    52,   304,   341,    61,    62,   302,   239,    78,
-   953,    61,   436,   244,     7,   246,    84,   353,   367,   355,
-    61,    69,    40,   859,    74,    61,    74,    61,    69,    47,
-   304,     3,     4,    74,   276,   332,    84,    30,    61,   336,
-    52,    53,    54,     3,   587,   614,   278,   384,     4,     5,
-     6,     7,    61,    62,    61,    62,    12,    13,    14,    52,
-    79,    69,    78,   294,    83,   360,    74,   562,    61,    62,
-    30,    78,    28,    78,    30,     9,   413,   415,    83,   321,
-    52,   349,   487,   351,    83,     3,   516,    77,   352,     7,
-   332,    47,    52,   335,   336,   591,    78,    69,     3,   331,
-    78,    61,    74,     3,   600,    83,    79,     7,    78,     3,
-     4,   516,    30,    69,   587,    79,   425,   649,    74,    83,
-   351,   352,   417,    79,   667,    30,    40,   670,   429,    79,
-    30,   716,   443,    83,    52,   704,    30,     3,     4,     5,
-     6,     7,    84,    61,    62,   456,   630,    52,    78,    61,
-    62,   421,    52,    83,   421,   429,    61,    62,    52,    61,
-    62,    61,   432,   405,   432,   432,   408,    61,    61,   411,
-    61,   631,   481,    80,   442,   443,   636,     3,     4,   421,
-    74,   629,   424,   478,   657,    61,    62,   635,   624,   594,
-   432,    30,    80,   689,   425,   668,   728,   670,   555,   556,
-   624,   443,    79,    69,    30,   436,    83,   518,    74,    50,
-    51,    78,   443,    52,   339,     3,     4,    79,    80,   514,
-    78,   346,    61,    62,    65,   456,    52,   538,    79,   354,
-   714,   715,    83,    79,    80,    61,    62,   721,   722,   536,
-    84,    79,    30,   127,   128,    83,    70,    71,    72,   517,
-   481,   521,    40,   748,   521,   824,    80,    79,   555,   556,
-    78,    83,   620,    79,    52,    70,    71,    72,    40,   537,
-   538,   625,   626,    61,    78,    80,   518,    61,    79,   521,
-    10,   549,   550,    70,    71,    72,    74,   518,    78,   647,
-    65,   586,   787,    80,   536,    84,   538,    78,   566,   567,
-    27,   616,   617,     9,   658,    79,    79,   538,   605,    83,
-    83,   649,    79,   555,   556,   610,    83,   559,    79,   550,
-     5,     6,     7,   620,    70,    71,    72,    12,    13,    14,
-    85,    79,    69,   630,    80,    83,   567,    38,     3,     4,
-    79,   903,    38,   905,    85,    30,    80,    83,    65,    78,
-   647,   621,    40,   621,   621,    47,    48,    49,    50,    51,
-    52,    53,    54,   605,    78,    30,    78,    56,    57,    78,
-    59,    60,    61,    62,    78,    40,    78,   619,   620,   621,
-   717,    40,   677,   625,   626,    78,   947,    52,   630,    78,
-   728,    85,    78,   624,   955,   890,    61,   639,    78,   631,
-     6,     7,    84,   645,   636,   647,    12,    13,    14,    74,
-    65,   748,    78,   884,    78,    38,   658,   714,   715,   773,
-     5,     6,     7,    85,   721,   722,    78,    12,    13,    14,
-   903,    27,   905,    80,    30,   930,   931,     3,     4,    80,
-    80,     7,    38,   738,    32,    50,    51,    52,    53,    54,
-   787,    40,    85,   748,   579,   580,    78,    83,   583,    79,
-    78,   798,    79,     3,    30,    61,    62,    79,   765,   818,
-    83,    80,   714,   715,    78,    40,    40,    85,   748,   721,
-   722,   748,    65,    79,   748,    80,    52,    83,    80,    40,
-    80,    65,   787,    40,    80,    61,    62,   808,   856,   836,
-   854,   802,   839,   840,   799,    83,   748,   632,   633,   634,
-   847,    83,   637,   638,    46,    47,    48,    49,    50,    51,
-    52,    53,    54,   765,    65,   862,    85,   801,   802,    40,
-    80,   773,   869,    61,    61,    61,    40,   662,     7,   807,
-   808,    56,    57,   880,    59,    60,    61,    62,   818,    79,
-    79,   818,    40,   890,   818,   230,    79,    79,    16,   856,
-    80,    61,    79,    79,    61,    78,   808,    65,   243,    17,
-   695,   696,   697,   248,   249,   912,   818,   808,   253,   254,
-   255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-    79,    78,     9,    79,    78,   890,    78,   934,    79,    79,
-    79,    61,    79,   940,    78,    83,    78,     0,    79,    79,
-   735,     0,   854,   839,   856,     1,   418,     3,     4,     5,
-     6,     7,     8,     9,   327,    11,    12,    13,    14,    15,
-   668,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,    30,    31,   818,    33,    34,    35,
-    87,   648,   284,   417,   655,   753,    42,   782,   685,    45,
-   480,    47,   352,   472,    50,    51,    52,   478,   657,   360,
-    56,    57,   668,   588,   890,    61,    62,   935,   670,   890,
-    66,   937,    68,    69,   412,   559,   424,    73,    74,   424,
-    25,    77,   546,    79,    80,    81,    82,   626,    84,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-   835,   386,   387,   773,   539,   770,   303,     1,   521,     3,
-     4,     5,     6,     7,     8,     9,   851,    11,    12,    13,
-    14,    15,   765,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    27,    28,    29,    30,    31,   516,    33,
-    34,    35,   420,   420,   689,   374,    -1,   594,    42,    -1,
-    -1,    45,    -1,    47,    -1,    -1,    50,    51,    52,    -1,
-    -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,
-    -1,    -1,    66,    -1,    68,    69,    -1,    -1,    -1,    73,
-    74,    -1,    -1,    77,    -1,    79,    -1,    81,    82,    -1,
-    84,    -1,   477,    -1,    -1,    -1,    -1,     1,    -1,     3,
-     4,    -1,    -1,    -1,     8,     9,    -1,    11,    -1,    -1,
-    -1,    15,   497,    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,    -1,
-    -1,    45,    -1,    -1,    -1,    -1,    50,    51,    52,    -1,
-    -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,
-    -1,    -1,    66,    -1,    68,    69,    -1,    -1,    -1,    73,
-    74,    -1,    -1,    77,    -1,    79,    80,    81,    82,    -1,
-    84,    -1,    -1,    -1,   569,    48,    49,    50,    51,    52,
-    53,    54,    -1,     1,    -1,     3,     4,    -1,    -1,    -1,
-     8,     9,    -1,    11,    -1,   590,    -1,    15,    -1,    17,
+    57,    16,     2,     3,    19,    20,     2,     3,    23,   209,
+    25,    26,    33,     2,     3,    83,    91,    22,    85,    24,
+    66,   324,   223,    38,    39,    40,    24,   105,   106,    31,
+   200,   316,   286,   345,   112,   270,   203,    36,    32,    33,
+   223,   177,    42,   578,   281,   123,    42,   142,   177,   416,
+   145,    95,   343,    42,    53,    54,    55,   135,   349,    74,
+   115,   440,    67,   208,   438,     1,    71,   702,   331,    67,
+     2,     3,   571,    71,   515,    77,   194,     9,    10,    11,
+   672,    80,   204,    85,     3,     4,     1,     1,   623,    88,
+    40,     9,    47,   108,    40,     1,   915,    38,     3,    31,
+     0,    33,    40,   239,    10,    40,    30,    61,    62,     0,
+    42,    61,    78,   280,     3,    78,    40,    83,   173,    60,
+    83,   800,   322,    30,    78,   944,    47,     1,    83,     3,
+     4,   146,    78,   148,    84,     3,     4,    42,   283,   214,
+    78,    30,   199,    78,    78,    77,   409,    61,    84,    83,
+    69,    83,    27,    85,   595,    74,   357,   172,   793,    91,
+    78,    84,   332,    52,    79,    84,   429,   182,   183,   423,
+   185,   186,    61,   343,   357,    33,   413,   712,    84,   349,
+   621,   238,   419,   557,   539,   240,    61,    62,   543,   191,
+   245,   426,   247,   195,    61,    69,    30,   876,    40,    57,
+    74,    69,   204,     3,     4,    47,    74,    79,    80,   208,
+   142,   286,   227,   145,   271,   337,    84,   852,     3,   341,
+   219,     5,   340,     7,   816,   282,   241,    61,    62,    61,
+   909,    61,    62,   588,   223,   914,   591,   916,    61,   409,
+   376,     3,     4,   444,   299,    30,   925,   510,    78,    40,
+   513,    40,    52,   268,   269,    79,    47,   115,    47,   191,
+   545,   444,   194,   195,   638,   764,   765,    52,   647,    69,
+    61,    61,   204,    67,    74,   538,    61,    62,   957,    84,
+     3,     4,   214,    84,   283,    50,    51,   145,    30,   346,
+     1,   369,   307,     4,     5,     6,     7,    61,   665,    10,
+    65,    12,    13,    14,   309,     3,     4,    69,   478,    79,
+   480,   309,    74,    83,   358,   173,   360,    28,    78,    61,
+    62,    61,    84,    83,     3,     4,     5,     6,     7,   386,
+     3,     4,    61,   781,     7,   337,    47,   336,    61,   341,
+   788,   511,   877,   513,    61,    62,    69,    78,   423,   281,
+   365,    74,    83,    61,    62,   640,   492,    30,    69,    61,
+   354,    78,   356,    74,   421,   223,    61,    62,   357,    78,
+   605,    69,    27,    84,     9,    30,    74,     3,   433,    52,
+   821,     7,   240,    38,    52,    53,    54,   245,    61,   247,
+    69,   626,    83,   408,   326,    74,   532,     3,     4,   934,
+   935,    74,    77,   532,    30,   337,    61,    62,   340,   341,
+   425,    70,    71,    72,    79,     3,     4,    78,    83,   656,
+    78,    80,   676,    79,    79,    40,    52,    83,    83,   429,
+   451,    84,   437,   429,   489,    61,    62,    61,    62,   437,
+   440,   299,    30,   464,   440,    79,   440,     3,     4,   650,
+    61,     7,    40,    61,   766,    61,   450,   451,     3,     4,
+    80,    79,     3,    69,    52,    83,     7,   650,    74,   754,
+   705,   486,   608,    61,    30,    79,   571,   572,    79,    83,
+    27,   413,    83,    30,   416,    30,    74,   419,   655,    30,
+    80,    38,    79,    80,   661,    40,    52,   429,   356,   357,
+   432,    79,    80,   344,    78,    61,    62,    52,   440,    78,
+   351,    52,   657,   534,   684,   530,    61,   662,   359,   451,
+    61,    70,    71,    72,   778,    78,    30,   764,   765,    74,
+    40,    80,    79,   554,   771,   772,    83,   537,    78,   533,
+    79,   537,    61,    62,     4,     5,     6,     7,    52,    32,
+   552,    79,    12,    13,    14,    83,    78,    61,    62,   553,
+   554,   127,   128,    70,    71,    72,   623,    78,    28,   571,
+   572,   565,   566,    80,    79,   433,    79,    79,    83,   646,
+    83,    83,    61,   651,   652,    79,   444,    47,    79,    83,
+   584,   585,    10,   451,    78,   880,   642,   643,   613,    65,
+    78,   676,   534,     3,     4,   537,   464,   674,   623,    69,
+     3,     4,    84,   904,    74,   906,    27,   685,     9,    79,
+   552,   636,   554,   623,    85,    79,    38,   623,    69,   631,
+    30,   489,    79,    38,   623,    83,    40,    30,    78,   571,
+   572,    78,    78,   575,   646,    78,    78,   647,   951,    78,
+     7,   647,    52,   647,   656,   712,   959,    40,   657,    52,
+    85,    61,    85,   662,    78,   743,   723,    84,    61,    62,
+    78,   871,   674,    30,    74,    65,   534,    65,   693,    78,
+    78,     5,     6,     7,    70,    71,    72,    38,    12,    13,
+    14,   623,    40,    85,    80,    52,   554,   712,    78,   631,
+    85,    80,    80,   778,    61,    62,    30,    80,   566,   724,
+   767,    80,   733,   645,   646,   647,    80,    78,    83,   651,
+   652,   726,   727,    79,   656,    78,     3,   585,    83,   727,
+    79,    78,    84,   665,   904,    80,   906,    79,   732,   733,
+   672,   798,   674,   743,   801,   802,    80,   743,   816,    40,
+    85,   818,   809,   685,   743,   231,   597,   598,     6,     7,
+   601,    80,   764,   765,    12,    13,    14,   824,   244,   771,
+   772,   839,    65,   249,   250,    40,    40,    80,   254,   255,
+   256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
+    56,    57,   650,    59,    60,    61,    62,    83,    40,   856,
+    61,   733,    61,    61,     4,    40,     6,     7,    79,    79,
+   867,   743,    12,    13,    14,     7,   818,   658,   659,   660,
+   877,    40,   663,   664,    79,    79,    16,    65,    28,   831,
+    40,    83,   764,   765,     5,     6,     7,    61,    79,   771,
+   772,    12,    13,    14,    61,    79,    85,    47,   689,    56,
+    57,    65,    59,    60,    61,    62,    78,    80,   915,    80,
+    17,    79,   877,    50,    51,    52,    53,    54,    79,    69,
+    78,    78,    78,    78,    74,   733,    79,    65,     9,    79,
+    80,   938,    79,    79,   816,    61,   818,   944,    44,    45,
+    46,    47,    48,    49,    50,    51,    52,    53,    54,   831,
+    83,    79,    79,    78,   745,   746,   747,   839,     1,    78,
+     3,     4,   388,   389,    79,     8,     9,     0,    11,     0,
+   426,   801,    15,   332,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    26,    27,   511,    29,   743,    31,    87,
+    33,    34,    35,   675,   785,   289,   682,   791,   425,    42,
+   701,   488,    45,   480,   357,   365,   684,    50,    51,    52,
+   486,   511,   581,    56,    57,   410,   877,   513,    61,    62,
+   939,   941,   813,    66,   877,    68,    69,   420,   575,   432,
+    73,    74,   432,    25,    77,   562,    79,    80,    81,    82,
+    39,    84,    41,    42,    43,    44,    45,    46,    47,    48,
+    49,    50,    51,    52,    53,    54,   652,   848,   839,   485,
+   836,     1,   555,     3,     4,     5,     6,     7,     8,     9,
+   308,    11,    12,    13,    14,    15,   502,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+    30,    31,    32,    33,    34,    35,   532,   537,   831,   608,
+   891,   428,    42,   428,   705,    45,   376,    47,    -1,    -1,
+    50,    51,    52,    -1,    -1,    -1,    56,    57,    -1,    -1,
+    -1,    61,    62,    -1,    -1,    -1,    66,    -1,    68,    69,
+    -1,    -1,    -1,    73,    74,    -1,    -1,    77,    -1,    79,
+    80,    81,    82,    -1,    84,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    53,    54,    -1,    -1,
+    -1,   587,    -1,     1,    -1,     3,     4,     5,     6,     7,
+     8,     9,    -1,    11,    12,    13,    14,    15,   604,    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,    -1,    -1,    45,    -1,    -1,
+    28,    29,    30,    31,    -1,    33,    34,    35,    -1,    -1,
+    -1,    -1,    -1,    -1,    42,    -1,    -1,    45,    -1,    47,
     -1,    -1,    50,    51,    52,    -1,    -1,    -1,    56,    57,
     -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    66,    -1,
     68,    69,    -1,    -1,    -1,    73,    74,    -1,    -1,    77,
-   655,    79,    -1,    81,    82,    -1,    84,     1,    -1,    -1,
-     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
-    14,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-    54,   686,    -1,    27,    28,    -1,    30,     1,   693,    -1,
-     4,     5,     6,     7,    38,    -1,    -1,    -1,    12,    13,
-    14,    -1,    -1,    47,   709,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    27,    28,    -1,    30,    61,    62,    -1,
-    -1,    -1,    -1,    -1,    38,    69,   731,    -1,    -1,   734,
-    74,    -1,    -1,    47,    -1,    79,    -1,    -1,    -1,    83,
-    84,    -1,    -1,    -1,    -1,   750,     1,    -1,   753,     4,
-   755,     6,     7,    -1,    -1,    69,    -1,    12,    13,    14,
-    74,    -1,    -1,    -1,    -1,    79,    -1,   772,    -1,    83,
-    84,    -1,    -1,    28,    -1,    -1,    31,     1,   783,     3,
-     4,    -1,    -1,    -1,     8,     9,    -1,    11,    -1,   794,
-    -1,    15,    47,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,    33,
-    34,    35,    -1,    -1,    69,   820,    -1,    -1,    42,    74,
-    -1,    45,    -1,    -1,    79,    80,    50,    51,    52,    -1,
+    -1,    79,    80,    81,    82,    -1,    84,    46,    47,    48,
+    49,    50,    51,    52,    53,    54,   682,    -1,    -1,     1,
+    -1,     3,     4,     5,     6,     7,    -1,    -1,    10,    -1,
+    12,    13,    14,    -1,    -1,    -1,   702,    -1,    -1,    -1,
+    -1,    -1,    -1,   709,    -1,    -1,    28,    -1,    30,    -1,
+    -1,    -1,    -1,   719,    -1,    -1,     1,    -1,     3,     4,
+     5,     6,     7,     8,     9,    47,    11,    12,    13,    14,
+    15,    -1,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    28,    29,    30,    31,    69,    33,    34,
+    35,    -1,    74,   759,    -1,    -1,    78,    42,    -1,    -1,
+    45,    -1,    47,    -1,    -1,    50,    51,    52,    -1,    -1,
+    -1,    56,    57,    -1,    -1,   781,    61,    62,   784,    -1,
+    -1,    66,   788,    68,    69,   791,    -1,   793,    73,    74,
+    -1,    -1,    77,    -1,    79,    -1,    81,    82,    -1,    84,
+    -1,    -1,    -1,     1,    -1,     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,   838,    31,    -1,    33,    34,    35,    -1,    -1,
+    -1,    -1,    -1,   849,    42,    -1,   852,    45,    -1,    -1,
+    -1,    -1,    50,    51,    52,    -1,   862,    -1,    56,    57,
+    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    66,    -1,
+    68,    69,    -1,    -1,    -1,    73,    74,    -1,    -1,    77,
+    -1,    79,    -1,    81,    82,     1,    84,     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,    -1,    42,    -1,    -1,    45,
+    -1,    -1,    -1,    -1,    50,    51,    52,    -1,    -1,    -1,
+    56,    57,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,
+    66,    -1,    68,    69,    -1,    -1,    -1,    73,    74,    -1,
+    -1,    77,    -1,    79,    -1,    81,    82,     1,    84,     3,
+     4,    -1,     6,     7,     8,     9,    -1,    11,    12,    13,
+    14,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    53,    54,    -1,    28,    29,    -1,    31,    -1,    33,
+    34,    35,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
+    -1,    45,    -1,    47,    -1,    -1,    50,    51,    52,    -1,
     -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,
     -1,    -1,    66,    -1,    68,    69,    -1,    -1,    -1,    73,
-    74,    -1,    -1,    77,    -1,    79,    -1,    81,    82,    -1,
-    84,     1,    -1,     3,     4,    -1,     6,     7,     8,     9,
-   875,    11,    12,    13,    14,    42,    43,    44,    45,    46,
-    47,    48,    49,    50,    51,    52,    53,    54,    28,    29,
+    74,    -1,    -1,    77,    -1,    -1,    -1,    81,    82,     1,
+    84,     3,     4,    -1,    -1,    -1,     8,     9,    -1,    11,
+    45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+    48,    49,    50,    51,    52,    53,    54,    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,    -1,    66,    -1,    68,    69,    -1,    -1,
+    -1,    73,    74,    -1,    -1,    77,    -1,    -1,    80,    81,
+    82,     1,    84,     3,     4,    -1,    -1,    -1,     8,     9,
+    -1,    11,    47,    48,    49,    50,    51,    52,    53,    54,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    29,
     -1,    31,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,
-    -1,    -1,    42,    -1,    -1,    45,    -1,    47,    -1,    -1,
+    -1,    -1,    42,    -1,    -1,    45,    -1,    -1,    -1,    -1,
     50,    51,    52,    -1,    -1,    -1,    56,    57,    -1,    -1,
-    -1,    61,    62,    -1,    -1,    -1,    66,    -1,    68,    69,
+    60,    61,    62,    -1,    -1,    -1,    66,    -1,    68,    69,
     -1,    -1,    -1,    73,    74,    -1,    -1,    77,    -1,    -1,
-    -1,    81,    82,     1,    84,     3,     4,    -1,    -1,    -1,
-     8,     9,    39,    11,    41,    42,    43,    44,    45,    46,
-    47,    48,    49,    50,    51,    52,    53,    54,    -1,    -1,
+    80,    81,    82,     1,    84,     3,    -1,    -1,    -1,    -1,
+     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -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,
+    38,    -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,    -1,    66,    -1,
-    68,    69,    -1,    -1,    -1,    73,    74,    -1,    -1,    77,
-    -1,    -1,    80,    81,    82,     1,    84,     3,     4,    -1,
-    -1,    -1,     8,     9,    -1,    11,    43,    44,    45,    46,
-    47,    48,    49,    50,    51,    52,    53,    54,    -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,    -1,
-    66,    -1,    68,    69,    -1,    -1,    -1,    73,    74,    -1,
-    -1,    77,    -1,    -1,    80,    81,    82,     1,    84,     3,
-    -1,    -1,    -1,    -1,     8,     9,    -1,    11,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
-    34,    35,    -1,    -1,    38,    -1,    -1,    -1,    42,    -1,
+    68,    -1,    -1,    -1,    -1,    73,    -1,    -1,    -1,    77,
+     1,    -1,     3,    81,    82,    -1,    84,     8,     9,    -1,
+    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -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,    -1,
+    61,    62,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,
+    -1,    -1,    73,    -1,    -1,    -1,    77,     1,    -1,     3,
+    81,    82,    -1,    84,     8,     9,    -1,    11,     1,    -1,
+     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
+    13,    14,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
+    34,    35,    -1,    -1,    -1,    28,    -1,    30,    42,    -1,
     -1,    45,    -1,    -1,    -1,    -1,    50,    51,    52,    -1,
-    -1,    -1,    56,    57,    -1,    -1,    60,    61,    62,    -1,
-    -1,    -1,    66,    -1,    68,    -1,    -1,    -1,    -1,    73,
-    -1,    -1,    -1,    77,     1,    -1,     3,    81,    82,    -1,
-    84,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    56,    57,    47,    -1,    -1,    61,    62,    52,
+    -1,    -1,    66,    -1,    68,    -1,    -1,    -1,    61,    73,
+    -1,    -1,    -1,    77,    -1,    -1,    69,    81,    82,     1,
+    84,    74,     4,     5,     6,     7,    79,    -1,    -1,    -1,
+    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    27,    28,     1,    30,    -1,
+     4,     5,     6,     7,    -1,    -1,    38,    -1,    12,    13,
+    14,     4,     5,     6,     7,    47,    -1,    -1,    -1,    12,
+    13,    14,    -1,    27,    28,    -1,    30,    -1,    -1,    61,
+    62,    -1,    -1,    -1,    38,    28,    -1,    69,    -1,    -1,
+    -1,    -1,    74,    47,    -1,    -1,    -1,    79,    -1,    -1,
+    -1,    83,    84,    -1,    47,    -1,     1,    61,    62,     4,
+     5,     6,     7,    -1,    -1,    69,    -1,    12,    13,    14,
+    74,    -1,    -1,    -1,    -1,    79,    69,    -1,    -1,    83,
+    84,    74,    27,    28,     1,    30,    -1,     4,     5,     6,
+     7,    -1,    -1,    38,    -1,    12,    13,    14,    -1,    -1,
+    -1,    -1,    47,    -1,     1,    -1,    -1,     4,     5,     6,
+     7,    28,    -1,    30,    -1,    12,    13,    14,    -1,    -1,
+    -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,    -1,    74,
+    47,    28,    -1,    30,    79,    -1,    -1,    -1,    83,    84,
+    -1,    -1,     1,    -1,    -1,     4,     5,     6,     7,    -1,
+    47,    -1,    69,    12,    13,    14,    -1,    74,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,     3,    -1,    84,    -1,    28,
+     8,     9,    69,    11,    -1,    -1,    -1,    74,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    84,    47,    -1,
+    -1,    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,
+    -1,    -1,    -1,    -1,    42,    -1,    -1,    45,    -1,    -1,
+    69,    -1,    50,    51,    52,    74,    -1,    -1,    56,    57,
+    -1,    -1,    -1,    61,    62,    84,     3,    -1,    66,    -1,
+    68,     8,     9,    -1,    11,    73,    -1,    -1,    -1,    77,
+    -1,    -1,    -1,    81,    82,    -1,    -1,    85,    -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,    -1,    61,    62,    -1,    -1,    -1,    66,
-    -1,    68,    -1,    -1,    -1,    -1,    73,    -1,    -1,    -1,
-    77,     1,    -1,     3,    81,    82,    -1,    84,     8,     9,
-    -1,    11,     1,    -1,     3,     4,     5,     6,     7,    -1,
-    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    29,
-    -1,    31,    -1,    33,    34,    35,    -1,    -1,    -1,    28,
-    -1,    30,    42,    -1,    -1,    45,    -1,    -1,    -1,    -1,
-    50,    51,    52,    -1,    -1,    -1,    56,    57,    47,    -1,
-    -1,    61,    62,    52,    -1,    -1,    66,    -1,    68,    -1,
-    -1,    -1,    61,    73,    -1,    -1,    -1,    77,    -1,    -1,
-    69,    81,    82,     1,    84,    74,     4,     5,     6,     7,
-    79,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,
-    28,    -1,    30,     1,    -1,    -1,     4,     5,     6,     7,
-    38,    -1,    10,    -1,    12,    13,    14,    -1,    -1,    47,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    28,    -1,     1,    61,    62,     4,     5,     6,     7,    -1,
-    -1,    69,    -1,    12,    13,    14,    74,    -1,    -1,    47,
-    -1,    79,    -1,    -1,    -1,    83,    84,    -1,    -1,    28,
-    -1,    30,     1,    -1,    -1,     4,     5,     6,     7,    -1,
-    -1,    69,    -1,    12,    13,    14,    74,    -1,    47,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    84,    -1,    -1,    28,
-     1,    30,    -1,     4,     5,     6,     7,    -1,    -1,    -1,
-    69,    12,    13,    14,     4,    74,     6,     7,    47,    -1,
-    -1,    -1,    12,    13,    14,    84,    -1,    28,     3,    -1,
-    -1,    -1,    -1,     8,     9,    -1,    11,    -1,    28,    -1,
-    69,    -1,    -1,    -1,    -1,    74,    47,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    29,    84,    31,    47,    33,    34,
-    35,    -1,    -1,    -1,    -1,    -1,    -1,    42,    69,    -1,
-    45,    -1,    -1,    74,    -1,    50,    51,    52,    -1,    69,
-    -1,    56,    57,    84,    74,    -1,    61,    62,    -1,     3,
+    57,    -1,    -1,    -1,    61,    62,    -1,     3,    -1,    66,
+    -1,    68,     8,     9,    -1,    11,    73,    -1,    -1,    -1,
+    77,    -1,    -1,    -1,    81,    82,    -1,    -1,    85,    -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,    -1,    61,    62,    -1,     3,    -1,
+    66,    -1,    68,     8,     9,    -1,    11,    73,    -1,    -1,
+    -1,    77,    -1,    -1,    -1,    81,    82,    -1,    -1,    85,
+    -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,    -1,    61,    62,    -1,     3,
     -1,    66,    -1,    68,     8,     9,    -1,    11,    73,    -1,
     -1,    -1,    77,    -1,    -1,    -1,    81,    82,    -1,    -1,
     85,    -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,    -1,    61,    62,    -1,
-     3,    -1,    66,    -1,    68,     8,     9,    -1,    11,    73,
+    -1,    -1,    66,    -1,    68,    -1,    -1,    -1,    -1,    73,
     -1,    -1,    -1,    77,    -1,    -1,    -1,    81,    82,    -1,
-    -1,    85,    -1,    -1,    -1,    -1,    29,    -1,    31,    -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,    47,    -1,    -1,    50,
+    51,    52,    -1,    -1,    -1,    56,    57,    -1,    -1,    -1,
+    61,    62,    -1,    -1,    -1,    66,    -1,    68,    69,    -1,
+    -1,    -1,    73,    74,    -1,    -1,    77,    -1,    79,    -1,
+    81,    82,    -1,    84,     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,    -1,    42,    -1,    -1,    45,    -1,    -1,    -1,
+    -1,    50,    51,    52,    -1,    -1,    -1,    56,    57,    -1,
+     3,    -1,    61,    62,    -1,     8,     9,    66,    11,    68,
+    69,    -1,    -1,    -1,    73,    74,    -1,    -1,    77,    -1,
+    79,    -1,    81,    82,    -1,    84,    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,    -1,    61,    62,
-    -1,     3,    -1,    66,    -1,    68,     8,     9,    -1,    11,
+    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    -1,    -1,
     73,    -1,    -1,    -1,    77,    -1,    -1,    -1,    81,    82,
-    -1,    -1,    85,    -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,    -1,    61,
-    62,    -1,     3,    -1,    66,    -1,    68,     8,     9,    -1,
-    11,    73,    -1,    -1,    -1,    77,    -1,    -1,    -1,    81,
-    82,    -1,    -1,    85,    -1,    -1,    -1,    -1,    29,    -1,
+    -1,    84,     3,     4,    -1,     6,     7,    -1,    -1,    -1,
+    11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    28,    29,    -1,
+    -1,    -1,     3,     4,     5,     6,     7,     8,     9,    40,
+    11,    12,    13,    14,     4,     5,     6,     7,    -1,    -1,
+    -1,    -1,    12,    13,    14,    -1,    -1,    28,    29,    30,
+    31,    -1,    33,    34,    35,    -1,    -1,    -1,    28,    -1,
+    30,    42,    -1,    74,    45,    -1,    47,    -1,    -1,    50,
+    51,    52,    83,    -1,    -1,    56,    57,    47,    -1,    -1,
+    61,    62,    -1,    -1,    -1,    66,    -1,    68,    69,    -1,
+    -1,    -1,    73,    74,    -1,    -1,    77,    -1,    -1,    69,
+    81,    82,     3,     4,    74,     6,     7,     8,     9,    79,
+    11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    -1,
+    31,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,
+    -1,    42,    -1,    -1,    45,    -1,    47,    -1,    -1,    50,
+    51,    52,    -1,    -1,    -1,    56,    57,    -1,     3,    -1,
+    61,    62,    -1,     8,     9,    66,    11,    68,    69,    -1,
+    -1,    -1,    73,    74,    -1,    -1,    77,    -1,    -1,    -1,
+    81,    82,    -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,     3,    -1,    61,    62,    -1,     8,
+     9,    66,    11,    68,    69,    -1,    -1,    -1,    73,    -1,
+    -1,    -1,    77,    -1,    -1,    -1,    81,    82,    -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,
+     3,    -1,    61,    62,    -1,     8,     9,    66,    11,    68,
+    -1,    -1,    -1,    -1,    73,    -1,    -1,    -1,    77,    -1,
+    79,    -1,    81,    82,    -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,     3,    -1,    61,    62,
+    -1,     8,     9,    66,    11,    68,    -1,    -1,    -1,    -1,
+    73,    -1,    -1,    -1,    77,    -1,    -1,    -1,    81,    82,
+    -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,     3,    -1,    61,    62,    -1,     8,     9,    66,
+    11,    68,    -1,    -1,    -1,    -1,    73,    -1,    -1,    -1,
+    77,    -1,    -1,    -1,    81,    82,    -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,    -1,
-    61,    62,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,
+    51,    52,    -1,    -1,    -1,    56,    57,    -1,     3,    -1,
+    61,    62,    -1,     8,     9,    66,    11,    68,    -1,    -1,
     -1,    -1,    73,    -1,    -1,    -1,    77,    -1,    -1,    -1,
-    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,    47,
-    -1,    -1,    50,    51,    52,    -1,    -1,    -1,    56,    57,
-    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    66,    -1,
-    68,    69,    -1,    -1,    -1,    73,    74,    -1,    -1,    77,
-    -1,    79,    -1,    81,    82,    -1,    84,     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,    -1,    42,    -1,    -1,    45,
-    -1,    -1,    -1,    -1,    50,    51,    52,    -1,    -1,    -1,
-    56,    57,    -1,     3,    -1,    61,    62,    -1,     8,     9,
-    66,    11,    68,    69,    -1,    -1,    -1,    73,    74,    -1,
-    -1,    77,    -1,    79,    -1,    81,    82,    -1,    84,    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,
-    -1,    61,    62,    -1,    -1,    -1,    66,    -1,    68,    -1,
-    -1,    -1,    -1,    73,    -1,    -1,    -1,    77,    -1,    -1,
-    -1,    81,    82,    -1,    84,     3,     4,    -1,     6,     7,
-    -1,    -1,    -1,    11,    12,    13,    14,    15,    16,    17,
-    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-    28,    29,    -1,    -1,    -1,     3,     4,     5,     6,     7,
-     8,     9,    40,    11,    12,    13,    14,     4,     5,     6,
-     7,    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,
-    28,    29,    30,    31,    -1,    33,    34,    35,    -1,    -1,
-    -1,    28,    -1,    30,    42,    -1,    74,    45,    -1,    47,
-    -1,    -1,    50,    51,    52,    83,    -1,    -1,    56,    57,
-    47,    -1,    -1,    61,    62,    -1,    -1,    -1,    66,    -1,
-    68,    69,    -1,    -1,    -1,    73,    74,    -1,    -1,    77,
-    -1,    -1,    69,    81,    82,     3,     4,    74,     6,     7,
-     8,     9,    79,    11,    12,    13,    14,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    28,    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,
-    -1,    -1,    -1,    -1,    42,    -1,    -1,    45,    -1,    47,
-    -1,    -1,    50,    51,    52,    -1,    -1,    -1,    56,    57,
-    -1,     3,    -1,    61,    62,    -1,     8,     9,    66,    11,
-    68,    69,    -1,    -1,    -1,    73,    74,    -1,    -1,    77,
-    -1,    -1,    -1,    81,    82,    -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,     3,    -1,    61,
-    62,    -1,     8,     9,    66,    11,    68,    69,    -1,    -1,
-    -1,    73,    -1,    -1,    -1,    77,    -1,    -1,    -1,    81,
-    82,    -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,     3,    -1,    61,    62,    -1,     8,     9,
-    66,    11,    68,    -1,    -1,    -1,    -1,    73,    -1,    -1,
-    -1,    77,    -1,    79,    -1,    81,    82,    -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,     3,
-    -1,    61,    62,    -1,     8,     9,    66,    11,    68,    -1,
-    -1,    -1,    -1,    73,    -1,    -1,    -1,    77,    -1,    -1,
-    -1,    81,    82,    -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,     3,    -1,    61,    62,    -1,
-     8,     9,    66,    11,    68,    -1,    -1,    -1,    -1,    73,
-    -1,    -1,    -1,    77,    -1,    -1,    -1,    81,    82,    -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,     3,    -1,    61,    62,    -1,     8,     9,    66,    11,
-    68,    -1,    -1,    -1,    -1,    73,    -1,    -1,    -1,    77,
-    -1,    -1,    -1,    81,    82,    -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,    -1,    61,
-    62,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    -1,
-    -1,    73,    -1,    -1,    -1,    77,    -1,    -1,     1,    81,
-    82,     4,    -1,     6,     7,    -1,    -1,    -1,    -1,    12,
-    13,    14,    -1,    -1,    -1,     1,    -1,    -1,     4,    -1,
-     6,     7,    -1,    -1,    -1,    28,    12,    13,    14,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    28,    -1,    47,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,    -1,
-    -1,    47,    -1,    12,    13,    14,    69,    70,    71,    72,
-    -1,    74,    -1,    -1,    -1,    -1,    79,    80,    27,    28,
-    -1,    30,    31,    69,    70,    71,    72,    -1,    74,    -1,
+    81,    82,    -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,    -1,    61,    62,    -1,    -1,
+    -1,    66,    -1,    68,    -1,    -1,    -1,    -1,    73,    -1,
+    -1,    -1,    77,    -1,    -1,     1,    81,    82,     4,    -1,
+     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,    -1,
+    -1,    -1,     1,    -1,    -1,     4,    -1,     6,     7,    -1,
+    -1,    -1,    28,    12,    13,    14,    -1,    -1,    -1,    -1,
+    -1,    -1,     1,    -1,    -1,     4,    -1,     6,     7,    28,
+    -1,    47,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,    28,
+    -1,    -1,    31,    69,    70,    71,    72,    -1,    74,    -1,
     -1,    -1,    -1,    79,    80,    -1,    -1,    -1,    47,    -1,
-    -1,    50,    51,    52,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    61,    -1,    63,    64,    65,    -1,    -1,    -1,
-    69,    -1,    -1,    -1,    73,    74,    75,    76,    -1,     1,
+    69,    70,    71,    72,    -1,    74,    -1,    -1,    -1,    -1,
+    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    69,    -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,
+    79,    80,     1,    -1,     3,     4,     5,     6,     7,    -1,
+    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,
+    -1,    30,    31,    -1,    -1,     4,     5,     6,     7,    -1,
+    -1,    10,    -1,    12,    13,    14,    -1,    -1,    47,    -1,
+    -1,    50,    51,    52,    -1,    -1,    -1,    -1,    -1,    28,
+    -1,    30,    61,    -1,    63,    64,    65,    -1,    -1,    -1,
+    69,    -1,    -1,    -1,    73,    74,    75,    76,    47,     1,
     79,     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
     12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    28,     1,    30,     3,
+    69,    -1,    -1,    -1,    -1,    74,    28,     1,    30,    -1,
      4,     5,     6,     7,    -1,    -1,    10,    -1,    12,    13,
     14,    -1,    -1,    -1,    -1,    47,    -1,    -1,    50,    51,
-    52,    -1,    -1,    -1,    28,    -1,    30,     1,    -1,    61,
-     4,     5,     6,     7,    -1,    -1,    10,    69,    12,    13,
+    52,    -1,    -1,    -1,    28,    -1,    30,    -1,    -1,    61,
+     4,     5,     6,     7,    -1,    -1,    -1,    69,    12,    13,
     14,    -1,    74,    47,    -1,    -1,    -1,    79,    -1,    -1,
-    -1,    -1,    -1,    -1,    28,    -1,    30,    -1,     4,    -1,
+    -1,    -1,    -1,    -1,    28,    -1,    30,    -1,     4,     5,
      6,     7,    -1,    -1,    -1,    69,    12,    13,    14,    -1,
     74,    -1,    -1,    47,    78,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    28,     4,     5,     6,     7,    -1,    -1,    -1,
+     1,    -1,    28,     4,    30,     6,     7,    -1,    -1,    -1,
     -1,    12,    13,    14,    -1,    69,    -1,    -1,    -1,    -1,
-    74,    47,    -1,    -1,    78,    -1,    -1,    28,    -1,    30,
-    -1,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
-    13,    14,    -1,    69,    -1,    -1,    47,    -1,    74,    -1,
-    -1,    -1,    -1,    79,    80,    28,    -1,    -1,     1,    -1,
-    -1,     4,    -1,     6,     7,    -1,    -1,    -1,    69,    12,
-    13,    14,    -1,    74,    47,    -1,    -1,    -1,    79,    -1,
-    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    31,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,     3,
-     4,    74,     6,     7,    47,    -1,    79,    11,    12,    13,
-    14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    27,    28,    29,    69,    -1,    -1,     3,
-     4,    74,     6,     7,    -1,    -1,    40,    11,    12,    13,
-    14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    27,    28,    29,    -1,    61,    -1,    -1,
-    -1,    -1,    -1,    -1,     3,     4,    40,     6,     7,    -1,
-    74,    -1,    11,    12,    13,    14,    15,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-    29,    -1,    -1,    -1,     3,     4,    -1,     6,     7,    -1,
-    74,    40,    11,    12,    13,    14,    15,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-    29,    -1,    -1,    -1,     4,    -1,     6,     7,    -1,    -1,
-    -1,    40,    12,    13,    14,    74,     4,     5,     6,     7,
-    -1,    -1,    10,    -1,    12,    13,    14,    -1,    28,    -1,
-    30,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    28,    -1,    30,    -1,    -1,    74,    -1,    47,    -1,    -1,
-    -1,    -1,    52,    -1,    -1,    -1,    -1,    -1,    -1,    47,
-    -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    69,
-     4,     5,     6,     7,    74,    -1,    10,    -1,    12,    13,
-    14,    69,     4,     5,     6,     7,    74,    -1,    -1,    -1,
-    12,    13,    14,    -1,    28,    -1,    30,    -1,    -1,    -1,
-    -1,    -1,     4,     5,     6,     7,    28,    -1,    30,    -1,
-    12,    13,    14,    47,     4,    -1,     6,     7,    -1,    -1,
-    -1,    -1,    12,    13,    14,    47,    28,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,    28,    -1,
-    74,    -1,    -1,    -1,    -1,    47,    -1,    69,    -1,    -1,
-    -1,    -1,    74,    -1,    -1,    -1,    -1,    47,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,
-    -1,    -1,    74,    10,    -1,    -1,    -1,    -1,    -1,    69,
-    -1,    37,    38,    39,    74,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    53,    54,    -1,
+    74,    47,    -1,    -1,    -1,    79,    -1,    28,    -1,    -1,
+    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    69,    -1,    -1,    47,    -1,    74,    -1,
+    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    69,     6,
+     7,    -1,    -1,    74,    11,    12,    13,    14,    15,    16,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    -1,    -1,    -1,     3,     4,    -1,     6,
+     7,    -1,    -1,    40,    11,    12,    13,    14,    15,    16,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    -1,    61,    -1,    -1,    -1,    -1,    -1,
+    -1,     3,     4,    40,     6,     7,    -1,    74,    -1,    11,
+    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+    22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
+    -1,     3,     4,    -1,     6,     7,    -1,    74,    40,    11,
+    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+    22,    23,    24,    25,    26,    27,    28,    29,    -1,    -1,
+    -1,     4,    -1,     6,     7,    -1,    -1,    -1,    40,    12,
+    13,    14,    74,     4,     5,     6,     7,    -1,    -1,    10,
+    -1,    12,    13,    14,    -1,    28,    -1,    30,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,
+    -1,    -1,    74,    -1,    47,    -1,    -1,    -1,    -1,    52,
+    -1,    -1,    -1,    -1,    -1,    -1,    47,    -1,    61,    62,
+     4,     5,     6,     7,    -1,    -1,    69,    -1,    12,    13,
+    14,    74,     4,    -1,     6,     7,    -1,    -1,    69,    -1,
+    12,    13,    14,    74,    28,     4,    30,     6,     7,    -1,
+    -1,    -1,    -1,    12,    13,    14,    28,    -1,    -1,    -1,
+    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    28,
+    -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,    47,    -1,
+    74,    -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,
+    -1,    -1,    74,    10,    -1,    -1,    -1,    -1,    -1,    -1,
+    69,    -1,    37,    38,    39,    74,    41,    42,    43,    44,
+    45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
     37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-    47,    48,    49,    50,    51,    52,    53,    54,    -1,    -1,
-    -1,    30,    -1,    -1,    -1,    -1,    -1,    83,    37,    38,
-    39,    -1,    41,    42,    43,    44,    45,    46,    47,    48,
-    49,    50,    51,    52,    53,    54,    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
+    47,    48,    49,    50,    51,    52,    53,    54,    30,    -1,
+    -1,    -1,    -1,    -1,    -1,    37,    38,    39,    83,    41,
+    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    53,    54,    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
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/cygnus/gnupro-98r2/share/bison.simple"
+#line 3 "/usr/lib/bison.simple"
+/* This file comes from bison-1.27.  */
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -1725,46 +1742,66 @@ static const short yycheck[] = {    56,
 
    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
@@ -1774,8 +1811,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
@@ -1856,12 +1893,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++ */
@@ -1873,7 +1910,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;
@@ -1888,10 +1925,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)
@@ -1901,7 +1938,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/cygnus/gnupro-98r2/share/bison.simple"
+#line 216 "/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 *.
@@ -1922,6 +1959,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
@@ -1950,6 +1996,7 @@ yyparse(YYPARSE_PARAM_ARG)
 #endif
 
   int yystacksize = YYINITDEPTH;
+  int yyfree_stacks = 0;
 
 #ifdef YYPURE
   int yychar;
@@ -2034,18 +2081,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 */
 
@@ -2812,22 +2873,6 @@ case 94:
     break;}
 case 95:
 #line 760 "objc-parse.y"
-{ if (current_function_decl == 0)
-                   {
-                     error ("braced-group within expression allowed only inside a function");
-                     YYERROR;
-                   }
-                 /* We must force a BLOCK for this level
-                    so that, if it is not expanded later,
-                    there is a way to turn off the entire subtree of blocks
-                    that are contained in it.  */
-                 keep_next_level ();
-                 push_iterator_stack ();
-                 push_label_level ();
-                 yyval.ttype = expand_start_stmt_expr (); ;
-    break;}
-case 96:
-#line 774 "objc-parse.y"
 { tree rtl_exp;
                  if (pedantic)
                    pedwarn ("ANSI C forbids braced-groups within expressions");
@@ -2851,16 +2896,27 @@ case 96:
                    yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
+case 96:
+#line 783 "objc-parse.y"
+{
+                 /* Make sure we call expand_end_stmt_expr.  Otherwise
+                    we are likely to lose sequences and crash later.  */
+                 pop_iterator_stack ();
+                 pop_label_level ();
+                 expand_end_stmt_expr (yyvsp[-2].ttype);
+                 yyval.ttype = error_mark_node;
+               ;
+    break;}
 case 97:
-#line 797 "objc-parse.y"
+#line 792 "objc-parse.y"
 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 98:
-#line 799 "objc-parse.y"
+#line 794 "objc-parse.y"
 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 99:
-#line 801 "objc-parse.y"
+#line 796 "objc-parse.y"
 {
                   if (doing_objc_thang)
                     {
@@ -2874,7 +2930,7 @@ case 99:
                ;
     break;}
 case 100:
-#line 813 "objc-parse.y"
+#line 808 "objc-parse.y"
 {
                   tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
 
@@ -2890,80 +2946,80 @@ case 100:
                ;
     break;}
 case 101:
-#line 827 "objc-parse.y"
+#line 822 "objc-parse.y"
 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
 case 102:
-#line 829 "objc-parse.y"
+#line 824 "objc-parse.y"
 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
 case 103:
-#line 831 "objc-parse.y"
+#line 826 "objc-parse.y"
 { yyval.ttype = build_message_expr (yyvsp[0].ttype); ;
     break;}
 case 104:
-#line 833 "objc-parse.y"
+#line 828 "objc-parse.y"
 { yyval.ttype = build_selector_expr (yyvsp[0].ttype); ;
     break;}
 case 105:
-#line 835 "objc-parse.y"
+#line 830 "objc-parse.y"
 { yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ;
     break;}
 case 106:
-#line 837 "objc-parse.y"
+#line 832 "objc-parse.y"
 { yyval.ttype = build_encode_expr (yyvsp[0].ttype); ;
     break;}
 case 107:
-#line 839 "objc-parse.y"
+#line 834 "objc-parse.y"
 { yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ;
     break;}
 case 109:
-#line 846 "objc-parse.y"
+#line 841 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 111:
-#line 854 "objc-parse.y"
+#line 849 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 114:
-#line 862 "objc-parse.y"
+#line 857 "objc-parse.y"
 { c_mark_varargs ();
                  if (pedantic)
                    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
     break;}
 case 115:
-#line 872 "objc-parse.y"
+#line 867 "objc-parse.y"
 { ;
     break;}
 case 120:
-#line 888 "objc-parse.y"
+#line 883 "objc-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 121:
-#line 893 "objc-parse.y"
+#line 888 "objc-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);     
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 122:
-#line 898 "objc-parse.y"
+#line 893 "objc-parse.y"
 { shadow_tag_warned (yyvsp[-1].ttype, 1);
                  pedwarn ("empty declaration"); ;
     break;}
 case 123:
-#line 901 "objc-parse.y"
+#line 896 "objc-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 124:
-#line 910 "objc-parse.y"
+#line 905 "objc-parse.y"
 { ;
     break;}
 case 129:
-#line 925 "objc-parse.y"
+#line 920 "objc-parse.y"
 { yyval.itype = suspend_momentary ();
                  pending_xref_error ();
                  declspec_stack = tree_cons (prefix_attributes,
@@ -2973,131 +3029,131 @@ case 129:
                                     &current_declspecs, &prefix_attributes); ;
     break;}
 case 130:
-#line 936 "objc-parse.y"
+#line 931 "objc-parse.y"
 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
     break;}
 case 131:
-#line 941 "objc-parse.y"
+#line 936 "objc-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 132:
-#line 946 "objc-parse.y"
+#line 941 "objc-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 133:
-#line 951 "objc-parse.y"
+#line 946 "objc-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 134:
-#line 956 "objc-parse.y"
+#line 951 "objc-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 135:
-#line 961 "objc-parse.y"
+#line 956 "objc-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 136:
-#line 963 "objc-parse.y"
+#line 958 "objc-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 137:
-#line 965 "objc-parse.y"
+#line 960 "objc-parse.y"
 { pedantic = yyvsp[-1].itype; ;
     break;}
 case 138:
-#line 975 "objc-parse.y"
+#line 970 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 139:
-#line 977 "objc-parse.y"
+#line 972 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 140:
-#line 981 "objc-parse.y"
+#line 976 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 141:
-#line 983 "objc-parse.y"
+#line 978 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 142:
-#line 985 "objc-parse.y"
+#line 980 "objc-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 143:
-#line 990 "objc-parse.y"
+#line 985 "objc-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 144:
-#line 995 "objc-parse.y"
+#line 990 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 145:
-#line 997 "objc-parse.y"
+#line 992 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 146:
-#line 1002 "objc-parse.y"
+#line 997 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 147:
-#line 1004 "objc-parse.y"
+#line 999 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 148:
-#line 1006 "objc-parse.y"
+#line 1001 "objc-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 149:
-#line 1019 "objc-parse.y"
+#line 1014 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 150:
-#line 1021 "objc-parse.y"
+#line 1016 "objc-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
     break;}
 case 151:
-#line 1023 "objc-parse.y"
+#line 1018 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 152:
-#line 1025 "objc-parse.y"
+#line 1020 "objc-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 153:
-#line 1030 "objc-parse.y"
+#line 1025 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
 case 154:
-#line 1033 "objc-parse.y"
+#line 1028 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 155:
-#line 1035 "objc-parse.y"
+#line 1030 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
 case 156:
-#line 1038 "objc-parse.y"
+#line 1033 "objc-parse.y"
 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
                    warning ("`%s' is not at beginning of declaration",
                             IDENTIFIER_POINTER (yyvsp[0].ttype));
@@ -3105,150 +3161,150 @@ case 156:
                  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
     break;}
 case 157:
-#line 1052 "objc-parse.y"
+#line 1047 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 158:
-#line 1054 "objc-parse.y"
+#line 1049 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 159:
-#line 1058 "objc-parse.y"
+#line 1053 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 160:
-#line 1060 "objc-parse.y"
+#line 1055 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 163:
-#line 1070 "objc-parse.y"
+#line 1065 "objc-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 164:
-#line 1074 "objc-parse.y"
+#line 1069 "objc-parse.y"
 { yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 165:
-#line 1076 "objc-parse.y"
+#line 1071 "objc-parse.y"
 { yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
     break;}
 case 166:
-#line 1081 "objc-parse.y"
+#line 1076 "objc-parse.y"
 { yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
     break;}
 case 167:
-#line 1083 "objc-parse.y"
+#line 1078 "objc-parse.y"
 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
     break;}
 case 168:
-#line 1085 "objc-parse.y"
+#line 1080 "objc-parse.y"
 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
     break;}
 case 176:
-#line 1107 "objc-parse.y"
+#line 1102 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 177:
-#line 1109 "objc-parse.y"
+#line 1104 "objc-parse.y"
 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
 case 178:
-#line 1116 "objc-parse.y"
+#line 1111 "objc-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 179:
-#line 1121 "objc-parse.y"
+#line 1116 "objc-parse.y"
 { finish_init ();
                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
     break;}
 case 180:
-#line 1124 "objc-parse.y"
+#line 1119 "objc-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 181:
-#line 1132 "objc-parse.y"
+#line 1127 "objc-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 182:
-#line 1137 "objc-parse.y"
+#line 1132 "objc-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 183:
-#line 1141 "objc-parse.y"
+#line 1136 "objc-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 184:
-#line 1149 "objc-parse.y"
+#line 1144 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 185:
-#line 1151 "objc-parse.y"
+#line 1146 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 186:
-#line 1156 "objc-parse.y"
+#line 1151 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 187:
-#line 1158 "objc-parse.y"
+#line 1153 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 188:
-#line 1163 "objc-parse.y"
+#line 1158 "objc-parse.y"
 { yyval.ttype = yyvsp[-2].ttype; ;
     break;}
 case 189:
-#line 1168 "objc-parse.y"
+#line 1163 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 190:
-#line 1170 "objc-parse.y"
+#line 1165 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 191:
-#line 1175 "objc-parse.y"
+#line 1170 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 192:
-#line 1177 "objc-parse.y"
+#line 1172 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 193:
-#line 1179 "objc-parse.y"
+#line 1174 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
     break;}
 case 194:
-#line 1181 "objc-parse.y"
+#line 1176 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
     break;}
 case 195:
-#line 1183 "objc-parse.y"
+#line 1178 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 201:
-#line 1201 "objc-parse.y"
+#line 1196 "objc-parse.y"
 { really_start_incremental_init (NULL_TREE);
                  /* Note that the call to clear_momentary
                     is in process_init_element.  */
                  push_momentary (); ;
     break;}
 case 202:
-#line 1206 "objc-parse.y"
+#line 1201 "objc-parse.y"
 { yyval.ttype = pop_init_level (0);
                  if (yyval.ttype == error_mark_node
                      && ! (yychar == STRING || yychar == CONSTANT))
@@ -3257,36 +3313,36 @@ case 202:
                    pop_momentary_nofree (); ;
     break;}
 case 203:
-#line 1214 "objc-parse.y"
+#line 1209 "objc-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 204:
-#line 1220 "objc-parse.y"
+#line 1215 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids empty initializer braces"); ;
     break;}
 case 210:
-#line 1236 "objc-parse.y"
+#line 1231 "objc-parse.y"
 { set_init_label (yyvsp[-1].ttype); ;
     break;}
 case 213:
-#line 1243 "objc-parse.y"
+#line 1238 "objc-parse.y"
 { push_init_level (0); ;
     break;}
 case 214:
-#line 1245 "objc-parse.y"
+#line 1240 "objc-parse.y"
 { process_init_element (pop_init_level (0)); ;
     break;}
 case 215:
-#line 1247 "objc-parse.y"
+#line 1242 "objc-parse.y"
 { process_init_element (yyvsp[0].ttype); ;
     break;}
 case 219:
-#line 1258 "objc-parse.y"
+#line 1253 "objc-parse.y"
 { set_init_label (yyvsp[0].ttype); ;
     break;}
 case 220:
-#line 1266 "objc-parse.y"
+#line 1261 "objc-parse.y"
 { push_c_function_context ();
                  if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 1))
@@ -3297,16 +3353,16 @@ case 220:
                  reinit_parse_for_function (); ;
     break;}
 case 221:
-#line 1275 "objc-parse.y"
+#line 1270 "objc-parse.y"
 { store_parm_decls (); ;
     break;}
 case 222:
-#line 1283 "objc-parse.y"
+#line 1278 "objc-parse.y"
 { finish_function (1);
                  pop_c_function_context (); ;
     break;}
 case 223:
-#line 1289 "objc-parse.y"
+#line 1284 "objc-parse.y"
 { push_c_function_context ();
                  if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 1))
@@ -3317,197 +3373,197 @@ case 223:
                  reinit_parse_for_function (); ;
     break;}
 case 224:
-#line 1298 "objc-parse.y"
+#line 1293 "objc-parse.y"
 { store_parm_decls (); ;
     break;}
 case 225:
-#line 1306 "objc-parse.y"
+#line 1301 "objc-parse.y"
 { finish_function (1);
                  pop_c_function_context (); ;
     break;}
 case 228:
-#line 1322 "objc-parse.y"
+#line 1317 "objc-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 229:
-#line 1324 "objc-parse.y"
+#line 1319 "objc-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 230:
-#line 1329 "objc-parse.y"
+#line 1324 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 231:
-#line 1331 "objc-parse.y"
+#line 1326 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 232:
-#line 1333 "objc-parse.y"
+#line 1328 "objc-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 233:
-#line 1340 "objc-parse.y"
+#line 1335 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 236:
-#line 1352 "objc-parse.y"
+#line 1347 "objc-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 237:
-#line 1357 "objc-parse.y"
+#line 1352 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 238:
-#line 1359 "objc-parse.y"
+#line 1354 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 239:
-#line 1361 "objc-parse.y"
+#line 1356 "objc-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 240:
-#line 1368 "objc-parse.y"
+#line 1363 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 242:
-#line 1377 "objc-parse.y"
+#line 1372 "objc-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 243:
-#line 1382 "objc-parse.y"
+#line 1377 "objc-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 244:
-#line 1384 "objc-parse.y"
+#line 1379 "objc-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 245:
-#line 1386 "objc-parse.y"
+#line 1381 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 246:
-#line 1388 "objc-parse.y"
+#line 1383 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 247:
-#line 1395 "objc-parse.y"
+#line 1390 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 249:
-#line 1401 "objc-parse.y"
+#line 1396 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 250:
-#line 1403 "objc-parse.y"
+#line 1398 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 251:
-#line 1408 "objc-parse.y"
+#line 1403 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 252:
-#line 1410 "objc-parse.y"
+#line 1405 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 253:
-#line 1415 "objc-parse.y"
+#line 1410 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 254:
-#line 1417 "objc-parse.y"
+#line 1412 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 255:
-#line 1422 "objc-parse.y"
+#line 1417 "objc-parse.y"
 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
                  /* Start scope of tag before parsing components.  */
                ;
     break;}
 case 256:
-#line 1426 "objc-parse.y"
+#line 1421 "objc-parse.y"
 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
     break;}
 case 257:
-#line 1428 "objc-parse.y"
+#line 1423 "objc-parse.y"
 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
                                      yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
                ;
     break;}
 case 258:
-#line 1432 "objc-parse.y"
+#line 1427 "objc-parse.y"
 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
     break;}
 case 259:
-#line 1434 "objc-parse.y"
+#line 1429 "objc-parse.y"
 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
     break;}
 case 260:
-#line 1436 "objc-parse.y"
+#line 1431 "objc-parse.y"
 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
     break;}
 case 261:
-#line 1438 "objc-parse.y"
+#line 1433 "objc-parse.y"
 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
                                      yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
                ;
     break;}
 case 262:
-#line 1442 "objc-parse.y"
+#line 1437 "objc-parse.y"
 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
     break;}
 case 263:
-#line 1444 "objc-parse.y"
+#line 1439 "objc-parse.y"
 { yyvsp[0].itype = suspend_momentary ();
                  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
     break;}
 case 264:
-#line 1447 "objc-parse.y"
+#line 1442 "objc-parse.y"
 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype));
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 265:
-#line 1450 "objc-parse.y"
+#line 1445 "objc-parse.y"
 { yyvsp[0].itype = suspend_momentary ();
                  yyval.ttype = start_enum (NULL_TREE); ;
     break;}
 case 266:
-#line 1453 "objc-parse.y"
+#line 1448 "objc-parse.y"
 { yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype));
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 267:
-#line 1456 "objc-parse.y"
+#line 1451 "objc-parse.y"
 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
     break;}
 case 271:
-#line 1467 "objc-parse.y"
+#line 1462 "objc-parse.y"
 { if (pedantic && ! flag_isoc9x)
                    pedwarn ("comma at end of enumerator list"); ;
     break;}
 case 272:
-#line 1473 "objc-parse.y"
+#line 1468 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 273:
-#line 1475 "objc-parse.y"
+#line 1470 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                  pedwarn ("no semicolon at end of struct or union"); ;
     break;}
 case 274:
-#line 1480 "objc-parse.y"
+#line 1475 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 275:
-#line 1482 "objc-parse.y"
+#line 1477 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
     break;}
 case 276:
-#line 1484 "objc-parse.y"
+#line 1479 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("extra semicolon in struct or union specified"); ;
     break;}
 case 277:
-#line 1488 "objc-parse.y"
+#line 1483 "objc-parse.y"
 {
                  tree interface = lookup_interface (yyvsp[-1].ttype);
 
@@ -3522,7 +3578,7 @@ case 277:
                ;
     break;}
 case 278:
-#line 1513 "objc-parse.y"
+#line 1508 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -3530,14 +3586,14 @@ case 278:
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 279:
-#line 1519 "objc-parse.y"
+#line 1514 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids member declarations with no members");
                  shadow_tag(yyvsp[0].ttype);
                  yyval.ttype = NULL_TREE; ;
     break;}
 case 280:
-#line 1524 "objc-parse.y"
+#line 1519 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -3545,144 +3601,144 @@ case 280:
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 281:
-#line 1530 "objc-parse.y"
+#line 1525 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids member declarations with no members");
                  shadow_tag(yyvsp[0].ttype);
                  yyval.ttype = NULL_TREE; ;
     break;}
 case 282:
-#line 1535 "objc-parse.y"
+#line 1530 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 283:
-#line 1537 "objc-parse.y"
+#line 1532 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  pedantic = yyvsp[-1].itype; ;
     break;}
 case 285:
-#line 1544 "objc-parse.y"
+#line 1539 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 286:
-#line 1549 "objc-parse.y"
+#line 1544 "objc-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 287:
-#line 1553 "objc-parse.y"
+#line 1548 "objc-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 288:
-#line 1556 "objc-parse.y"
+#line 1551 "objc-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 290:
-#line 1568 "objc-parse.y"
+#line 1563 "objc-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 291:
-#line 1573 "objc-parse.y"
+#line 1568 "objc-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 292:
-#line 1579 "objc-parse.y"
+#line 1574 "objc-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 293:
-#line 1581 "objc-parse.y"
+#line 1576 "objc-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 294:
-#line 1586 "objc-parse.y"
+#line 1581 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 295:
-#line 1588 "objc-parse.y"
+#line 1583 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 296:
-#line 1593 "objc-parse.y"
+#line 1588 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 298:
-#line 1599 "objc-parse.y"
+#line 1594 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 299:
-#line 1601 "objc-parse.y"
+#line 1596 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 300:
-#line 1606 "objc-parse.y"
+#line 1601 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 301:
-#line 1608 "objc-parse.y"
+#line 1603 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 302:
-#line 1613 "objc-parse.y"
+#line 1608 "objc-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 303:
-#line 1616 "objc-parse.y"
+#line 1611 "objc-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 304:
-#line 1618 "objc-parse.y"
+#line 1613 "objc-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 305:
-#line 1620 "objc-parse.y"
+#line 1615 "objc-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 306:
-#line 1622 "objc-parse.y"
+#line 1617 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 307:
-#line 1624 "objc-parse.y"
+#line 1619 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 308:
-#line 1626 "objc-parse.y"
+#line 1621 "objc-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 309:
-#line 1628 "objc-parse.y"
+#line 1623 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 310:
-#line 1630 "objc-parse.y"
+#line 1625 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
     break;}
 case 311:
-#line 1634 "objc-parse.y"
+#line 1629 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 312:
-#line 1643 "objc-parse.y"
+#line 1638 "objc-parse.y"
 {
                  if (pedantic && yyvsp[0].ends_in_label)
                    pedwarn ("ANSI C forbids label at end of compound statement");
                ;
     break;}
 case 314:
-#line 1652 "objc-parse.y"
+#line 1647 "objc-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
 case 315:
-#line 1654 "objc-parse.y"
+#line 1649 "objc-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
 case 319:
-#line 1666 "objc-parse.y"
+#line 1661 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  pushlevel (0);
                  clear_last_expr ();
@@ -3693,12 +3749,12 @@ case 319:
                ;
     break;}
 case 321:
-#line 1681 "objc-parse.y"
+#line 1676 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids label declarations"); ;
     break;}
 case 324:
-#line 1692 "objc-parse.y"
+#line 1687 "objc-parse.y"
 { tree link;
                  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
                    {
@@ -3709,19 +3765,19 @@ case 324:
                ;
     break;}
 case 325:
-#line 1706 "objc-parse.y"
+#line 1701 "objc-parse.y"
 {;
     break;}
 case 327:
-#line 1710 "objc-parse.y"
+#line 1705 "objc-parse.y"
 { compstmt_count++; ;
     break;}
 case 328:
-#line 1713 "objc-parse.y"
+#line 1708 "objc-parse.y"
 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
     break;}
 case 329:
-#line 1715 "objc-parse.y"
+#line 1710 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), 1, 0);
                  yyval.ttype = poplevel (1, 1, 0);
@@ -3731,7 +3787,7 @@ case 329:
                    pop_momentary (); ;
     break;}
 case 330:
-#line 1723 "objc-parse.y"
+#line 1718 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3741,7 +3797,7 @@ case 330:
                    pop_momentary (); ;
     break;}
 case 331:
-#line 1731 "objc-parse.y"
+#line 1726 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3750,8 +3806,30 @@ case 331:
                  else
                    pop_momentary (); ;
     break;}
-case 334:
-#line 1751 "objc-parse.y"
+case 332:
+#line 1737 "objc-parse.y"
+{ if (current_function_decl == 0)
+                   {
+                     error ("braced-group within expression allowed only inside a function");
+                     YYERROR;
+                   }
+                 /* We must force a BLOCK for this level
+                    so that, if it is not expanded later,
+                    there is a way to turn off the entire subtree of blocks
+                    that are contained in it.  */
+                 keep_next_level ();
+                 push_iterator_stack ();
+                 push_label_level ();
+                 yyval.ttype = expand_start_stmt_expr ();
+                 compstmt_count++;
+               ;
+    break;}
+case 333:
+#line 1754 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
+    break;}
+case 336:
+#line 1768 "objc-parse.y"
 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, 
                                       compstmt_count);
@@ -3760,8 +3838,8 @@ case 334:
                  if_stmt_line = yyvsp[-4].lineno;
                  position_after_white_space (); ;
     break;}
-case 335:
-#line 1765 "objc-parse.y"
+case 337:
+#line 1782 "objc-parse.y"
 { stmt_count++;
                  compstmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
@@ -3770,44 +3848,44 @@ case 335:
                  expand_start_loop_continue_elsewhere (1);
                  position_after_white_space (); ;
     break;}
-case 336:
-#line 1773 "objc-parse.y"
+case 338:
+#line 1790 "objc-parse.y"
 { expand_loop_continue_here (); ;
     break;}
-case 337:
-#line 1777 "objc-parse.y"
+case 339:
+#line 1794 "objc-parse.y"
 { yyval.filename = input_filename; ;
     break;}
-case 338:
-#line 1781 "objc-parse.y"
+case 340:
+#line 1798 "objc-parse.y"
 { yyval.lineno = lineno; ;
     break;}
-case 339:
-#line 1786 "objc-parse.y"
+case 341:
+#line 1803 "objc-parse.y"
 { ;
     break;}
-case 340:
-#line 1791 "objc-parse.y"
+case 342:
+#line 1808 "objc-parse.y"
 { ;
     break;}
-case 341:
-#line 1796 "objc-parse.y"
+case 343:
+#line 1813 "objc-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
-case 342:
-#line 1801 "objc-parse.y"
+case 344:
+#line 1818 "objc-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 343:
-#line 1803 "objc-parse.y"
+case 345:
+#line 1820 "objc-parse.y"
 { yyval.ends_in_label = 1; ;
     break;}
-case 344:
-#line 1809 "objc-parse.y"
+case 346:
+#line 1826 "objc-parse.y"
 { stmt_count++; ;
     break;}
-case 346:
-#line 1812 "objc-parse.y"
+case 348:
+#line 1829 "objc-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
@@ -3825,20 +3903,20 @@ case 346:
                  iterator_expand (yyvsp[-1].ttype);
                  clear_momentary (); ;
     break;}
-case 347:
-#line 1829 "objc-parse.y"
+case 349:
+#line 1846 "objc-parse.y"
 { c_expand_start_else ();
                  yyvsp[-1].itype = stmt_count;
                  position_after_white_space (); ;
     break;}
-case 348:
-#line 1833 "objc-parse.y"
+case 350:
+#line 1850 "objc-parse.y"
 { c_expand_end_cond ();
                  if (extra_warnings && stmt_count == yyvsp[-3].itype)
                    warning ("empty body in an else-statement"); ;
     break;}
-case 349:
-#line 1837 "objc-parse.y"
+case 351:
+#line 1854 "objc-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
@@ -3848,12 +3926,12 @@ case 349:
                    warning_with_file_and_line (if_stmt_file, if_stmt_line,
                                                "empty body in an if-statement"); ;
     break;}
-case 350:
-#line 1849 "objc-parse.y"
+case 352:
+#line 1866 "objc-parse.y"
 { c_expand_end_cond (); ;
     break;}
-case 351:
-#line 1851 "objc-parse.y"
+case 353:
+#line 1868 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
                  /* The emit_nop used to come before emit_line_note,
@@ -3864,8 +3942,8 @@ case 351:
                     We will see.  --rms, July 15, 1991.  */
                  emit_nop (); ;
     break;}
-case 352:
-#line 1861 "objc-parse.y"
+case 354:
+#line 1878 "objc-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.  */
@@ -3875,25 +3953,25 @@ case 352:
                                             truthvalue_conversion (yyvsp[-1].ttype));
                  position_after_white_space (); ;
     break;}
-case 353:
-#line 1870 "objc-parse.y"
+case 355:
+#line 1887 "objc-parse.y"
 { expand_end_loop (); ;
     break;}
-case 354:
-#line 1873 "objc-parse.y"
+case 356:
+#line 1890 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_exit_loop_if_false (NULL_PTR,
                                             truthvalue_conversion (yyvsp[-2].ttype));
                  expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 355:
-#line 1880 "objc-parse.y"
+case 357:
+#line 1897 "objc-parse.y"
 { expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 356:
-#line 1884 "objc-parse.y"
+case 358:
+#line 1901 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  /* See comment in `while' alternative, above.  */
@@ -3905,13 +3983,13 @@ case 356:
                     fn without calling expand_end_loop.  */
                ;
     break;}
-case 357:
-#line 1896 "objc-parse.y"
+case 359:
+#line 1913 "objc-parse.y"
 { yyvsp[0].lineno = lineno;
                  yyval.filename = input_filename; ;
     break;}
-case 358:
-#line 1899 "objc-parse.y"
+case 360:
+#line 1916 "objc-parse.y"
 { 
                  /* Start the loop.  Doing this after parsing
                     all the expressions ensures we will end the loop.  */
@@ -3928,8 +4006,8 @@ case 358:
                  yyvsp[-2].filename = input_filename;
                  position_after_white_space (); ;
     break;}
-case 359:
-#line 1915 "objc-parse.y"
+case 361:
+#line 1932 "objc-parse.y"
 { /* Emit the increment expression, with a line number.  */
                  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
                  expand_loop_continue_here ();
@@ -3941,8 +4019,8 @@ case 359:
                    pop_momentary ();
                  expand_end_loop (); ;
     break;}
-case 360:
-#line 1926 "objc-parse.y"
+case 362:
+#line 1943 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_case (yyvsp[-1].ttype);
@@ -3951,42 +4029,42 @@ case 360:
                  push_momentary ();
                  position_after_white_space (); ;
     break;}
-case 361:
-#line 1934 "objc-parse.y"
+case 363:
+#line 1951 "objc-parse.y"
 { expand_end_case (yyvsp[-3].ttype);
                  if (yychar == CONSTANT || yychar == STRING)
                    pop_momentary_nofree ();
                  else
                    pop_momentary (); ;
     break;}
-case 362:
-#line 1940 "objc-parse.y"
+case 364:
+#line 1957 "objc-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 363:
-#line 1945 "objc-parse.y"
+case 365:
+#line 1962 "objc-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 364:
-#line 1950 "objc-parse.y"
+case 366:
+#line 1967 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  c_expand_return (NULL_TREE); ;
     break;}
-case 365:
-#line 1954 "objc-parse.y"
+case 367:
+#line 1971 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
                  c_expand_return (yyvsp[-1].ttype); ;
     break;}
-case 366:
-#line 1958 "objc-parse.y"
+case 368:
+#line 1975 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
                  STRIP_NOPS (yyvsp[-2].ttype);
@@ -3997,32 +4075,32 @@ case 366:
                  else
                    error ("argument of `asm' is not a constant string"); ;
     break;}
-case 367:
-#line 1969 "objc-parse.y"
+case 369:
+#line 1986 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
                  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
                                         yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 368:
-#line 1976 "objc-parse.y"
+case 370:
+#line 1993 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
                  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
                                         yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 369:
-#line 1984 "objc-parse.y"
+case 371:
+#line 2001 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
                  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
                                         yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 370:
-#line 1990 "objc-parse.y"
+case 372:
+#line 2007 "objc-parse.y"
 { tree decl;
                  stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -4034,16 +4112,16 @@ case 370:
                    }
                ;
     break;}
-case 371:
-#line 2001 "objc-parse.y"
+case 373:
+#line 2018 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids `goto *expr;'");
                  stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
     break;}
-case 374:
-#line 2016 "objc-parse.y"
+case 376:
+#line 2033 "objc-parse.y"
 {
            /* The value returned by this action is  */
            /*      1 if everything is OK */ 
@@ -4065,15 +4143,15 @@ case 374:
              }
          ;
     break;}
-case 375:
-#line 2037 "objc-parse.y"
+case 377:
+#line 2054 "objc-parse.y"
 {
            if (yyvsp[-1].itype)
              iterator_for_loop_end (yyvsp[-3].ttype);
          ;
     break;}
-case 376:
-#line 2072 "objc-parse.y"
+case 378:
+#line 2089 "objc-parse.y"
 { register tree value = check_case_value (yyvsp[-1].ttype);
                  register tree label
                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
@@ -4105,8 +4183,8 @@ case 376:
                    }
                  position_after_white_space (); ;
     break;}
-case 377:
-#line 2103 "objc-parse.y"
+case 379:
+#line 2120 "objc-parse.y"
 { register tree value1 = check_case_value (yyvsp[-3].ttype);
                  register tree value2 = check_case_value (yyvsp[-1].ttype);
                  register tree label
@@ -4138,8 +4216,8 @@ case 377:
                    }
                  position_after_white_space (); ;
     break;}
-case 378:
-#line 2134 "objc-parse.y"
+case 380:
+#line 2151 "objc-parse.y"
 {
                  tree duplicate;
                  register tree label
@@ -4155,8 +4233,8 @@ case 378:
                    }
                  position_after_white_space (); ;
     break;}
-case 379:
-#line 2149 "objc-parse.y"
+case 381:
+#line 2166 "objc-parse.y"
 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
                  stmt_count++;
                  emit_nop ();
@@ -4167,53 +4245,53 @@ case 379:
                    }
                  position_after_white_space (); ;
     break;}
-case 380:
-#line 2164 "objc-parse.y"
+case 382:
+#line 2181 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 381:
-#line 2167 "objc-parse.y"
+case 383:
+#line 2184 "objc-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
-case 382:
-#line 2172 "objc-parse.y"
+case 384:
+#line 2189 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 384:
-#line 2179 "objc-parse.y"
+case 386:
+#line 2196 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 387:
-#line 2186 "objc-parse.y"
+case 389:
+#line 2203 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 388:
-#line 2191 "objc-parse.y"
+case 390:
+#line 2208 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 389:
-#line 2196 "objc-parse.y"
+case 391:
+#line 2213 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
-case 390:
-#line 2198 "objc-parse.y"
+case 392:
+#line 2215 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
     break;}
-case 391:
-#line 2204 "objc-parse.y"
+case 393:
+#line 2221 "objc-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (0); ;
     break;}
-case 392:
-#line 2208 "objc-parse.y"
+case 394:
+#line 2225 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 394:
-#line 2216 "objc-parse.y"
+case 396:
+#line 2233 "objc-parse.y"
 { tree parm;
                  if (pedantic)
                    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -4222,20 +4300,20 @@ case 394:
                    TREE_ASM_WRITTEN (parm) = 1;
                  clear_parm_order (); ;
     break;}
-case 395:
-#line 2224 "objc-parse.y"
+case 397:
+#line 2241 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 396:
-#line 2226 "objc-parse.y"
+case 398:
+#line 2243 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
-case 397:
-#line 2232 "objc-parse.y"
+case 399:
+#line 2249 "objc-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
-case 398:
-#line 2234 "objc-parse.y"
+case 400:
+#line 2251 "objc-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.
@@ -4246,24 +4324,24 @@ case 398:
                  error ("ANSI C requires a named argument before `...'");
                ;
     break;}
-case 399:
-#line 2244 "objc-parse.y"
+case 401:
+#line 2261 "objc-parse.y"
 { yyval.ttype = get_parm_info (1); ;
     break;}
-case 400:
-#line 2246 "objc-parse.y"
+case 402:
+#line 2263 "objc-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
-case 401:
-#line 2251 "objc-parse.y"
+case 403:
+#line 2268 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 402:
-#line 2253 "objc-parse.y"
+case 404:
+#line 2270 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 403:
-#line 2260 "objc-parse.y"
+case 405:
+#line 2277 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4273,8 +4351,8 @@ case 403:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 404:
-#line 2269 "objc-parse.y"
+case 406:
+#line 2286 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4284,8 +4362,8 @@ case 404:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 405:
-#line 2278 "objc-parse.y"
+case 407:
+#line 2295 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4295,8 +4373,8 @@ case 405:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 406:
-#line 2287 "objc-parse.y"
+case 408:
+#line 2304 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4306,8 +4384,8 @@ case 406:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 407:
-#line 2297 "objc-parse.y"
+case 409:
+#line 2314 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4317,49 +4395,49 @@ case 407:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 408:
-#line 2311 "objc-parse.y"
+case 410:
+#line 2328 "objc-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (1); ;
     break;}
-case 409:
-#line 2315 "objc-parse.y"
+case 411:
+#line 2332 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 411:
-#line 2323 "objc-parse.y"
+case 413:
+#line 2340 "objc-parse.y"
 { tree t;
                  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
                    if (TREE_VALUE (t) == NULL_TREE)
                      error ("`...' in old-style identifier list");
                  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 412:
-#line 2333 "objc-parse.y"
+case 414:
+#line 2350 "objc-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 413:
-#line 2335 "objc-parse.y"
+case 415:
+#line 2352 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
-case 414:
-#line 2341 "objc-parse.y"
+case 416:
+#line 2358 "objc-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 415:
-#line 2343 "objc-parse.y"
+case 417:
+#line 2360 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
-case 416:
-#line 2348 "objc-parse.y"
+case 418:
+#line 2365 "objc-parse.y"
 { yyval.itype = pedantic;
                  pedantic = 0; ;
     break;}
-case 422:
-#line 2361 "objc-parse.y"
+case 424:
+#line 2378 "objc-parse.y"
 {
                  if (objc_implementation_context)
                     {
@@ -4371,115 +4449,115 @@ case 422:
                    warning ("`@end' must appear in an implementation context");
                ;
     break;}
-case 423:
-#line 2376 "objc-parse.y"
+case 425:
+#line 2393 "objc-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 424:
-#line 2378 "objc-parse.y"
+case 426:
+#line 2395 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
-case 425:
-#line 2383 "objc-parse.y"
+case 427:
+#line 2400 "objc-parse.y"
 {
                  objc_declare_class (yyvsp[-1].ttype);
                ;
     break;}
-case 426:
-#line 2389 "objc-parse.y"
+case 428:
+#line 2406 "objc-parse.y"
 {
                  objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
                ;
     break;}
-case 427:
-#line 2395 "objc-parse.y"
+case 429:
+#line 2412 "objc-parse.y"
 {
                  objc_interface_context = objc_ivar_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
                   objc_public_flag = 0;
                ;
     break;}
-case 428:
-#line 2401 "objc-parse.y"
+case 430:
+#line 2418 "objc-parse.y"
 {
                   continue_class (objc_interface_context);
                ;
     break;}
-case 429:
-#line 2406 "objc-parse.y"
+case 431:
+#line 2423 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 430:
-#line 2412 "objc-parse.y"
+case 432:
+#line 2429 "objc-parse.y"
 {
                  objc_interface_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype);
                   continue_class (objc_interface_context);
                ;
     break;}
-case 431:
-#line 2419 "objc-parse.y"
+case 433:
+#line 2436 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 432:
-#line 2425 "objc-parse.y"
+case 434:
+#line 2442 "objc-parse.y"
 {
                  objc_interface_context = objc_ivar_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype);
                   objc_public_flag = 0;
                ;
     break;}
-case 433:
-#line 2431 "objc-parse.y"
+case 435:
+#line 2448 "objc-parse.y"
 {
                   continue_class (objc_interface_context);
                ;
     break;}
-case 434:
-#line 2436 "objc-parse.y"
+case 436:
+#line 2453 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 435:
-#line 2442 "objc-parse.y"
+case 437:
+#line 2459 "objc-parse.y"
 {
                  objc_interface_context
                    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
                   continue_class (objc_interface_context);
                ;
     break;}
-case 436:
-#line 2449 "objc-parse.y"
+case 438:
+#line 2466 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 437:
-#line 2455 "objc-parse.y"
+case 439:
+#line 2472 "objc-parse.y"
 {
                  objc_implementation_context = objc_ivar_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
                   objc_public_flag = 0;
                ;
     break;}
-case 438:
-#line 2461 "objc-parse.y"
+case 440:
+#line 2478 "objc-parse.y"
 {
                   objc_ivar_chain
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 439:
-#line 2467 "objc-parse.y"
+case 441:
+#line 2484 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
@@ -4487,23 +4565,23 @@ case 439:
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 440:
-#line 2475 "objc-parse.y"
+case 442:
+#line 2492 "objc-parse.y"
 {
                  objc_implementation_context = objc_ivar_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
                   objc_public_flag = 0;
                ;
     break;}
-case 441:
-#line 2481 "objc-parse.y"
+case 443:
+#line 2498 "objc-parse.y"
 {
                   objc_ivar_chain
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 442:
-#line 2487 "objc-parse.y"
+case 444:
+#line 2504 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
@@ -4511,23 +4589,23 @@ case 442:
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 443:
-#line 2495 "objc-parse.y"
+case 445:
+#line 2512 "objc-parse.y"
 {
                  objc_interface_context
                    = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
                   continue_class (objc_interface_context);
                ;
     break;}
-case 444:
-#line 2502 "objc-parse.y"
+case 446:
+#line 2519 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 445:
-#line 2508 "objc-parse.y"
+case 447:
+#line 2525 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
@@ -4535,30 +4613,30 @@ case 445:
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 446:
-#line 2518 "objc-parse.y"
+case 448:
+#line 2535 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  objc_interface_context
                    = start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 447:
-#line 2524 "objc-parse.y"
+case 449:
+#line 2541 "objc-parse.y"
 {
                  forget_protocol_qualifiers();
                  finish_protocol(objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 448:
-#line 2533 "objc-parse.y"
+case 450:
+#line 2550 "objc-parse.y"
 {
                  yyval.ttype = NULL_TREE;
                ;
     break;}
-case 450:
-#line 2541 "objc-parse.y"
+case 452:
+#line 2558 "objc-parse.y"
 {
                  if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR)
                    yyval.ttype = yyvsp[-1].ttype;
@@ -4566,57 +4644,57 @@ case 450:
                    YYERROR1;
                ;
     break;}
-case 453:
-#line 2555 "objc-parse.y"
+case 455:
+#line 2572 "objc-parse.y"
 { objc_public_flag = 2; ;
     break;}
-case 454:
-#line 2556 "objc-parse.y"
+case 456:
+#line 2573 "objc-parse.y"
 { objc_public_flag = 0; ;
     break;}
-case 455:
-#line 2557 "objc-parse.y"
+case 457:
+#line 2574 "objc-parse.y"
 { objc_public_flag = 1; ;
     break;}
-case 456:
-#line 2562 "objc-parse.y"
+case 458:
+#line 2579 "objc-parse.y"
 {
                   yyval.ttype = NULL_TREE;
                 ;
     break;}
-case 458:
-#line 2567 "objc-parse.y"
+case 460:
+#line 2584 "objc-parse.y"
 {
                   if (pedantic)
                    pedwarn ("extra semicolon in struct or union specified");
                 ;
     break;}
-case 459:
-#line 2585 "objc-parse.y"
+case 461:
+#line 2602 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
-case 460:
-#line 2591 "objc-parse.y"
+case 462:
+#line 2608 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
-case 461:
-#line 2597 "objc-parse.y"
+case 463:
+#line 2614 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 462:
-#line 2602 "objc-parse.y"
+case 464:
+#line 2619 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 465:
-#line 2609 "objc-parse.y"
+case 467:
+#line 2626 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
@@ -4624,16 +4702,16 @@ case 465:
                                              NULL_TREE);
                 ;
     break;}
-case 466:
-#line 2616 "objc-parse.y"
+case 468:
+#line 2633 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
                                              yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype);
                 ;
     break;}
-case 467:
-#line 2622 "objc-parse.y"
+case 469:
+#line 2639 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
@@ -4641,8 +4719,8 @@ case 467:
                                              current_declspecs, yyvsp[0].ttype);
                 ;
     break;}
-case 468:
-#line 2632 "objc-parse.y"
+case 470:
+#line 2649 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  if (objc_implementation_context)
@@ -4651,8 +4729,8 @@ case 468:
                    fatal ("method definition not in class context");
                ;
     break;}
-case 469:
-#line 2640 "objc-parse.y"
+case 471:
+#line 2657 "objc-parse.y"
 {
                  forget_protocol_qualifiers ();
                  add_class_method (objc_implementation_context, yyvsp[0].ttype);
@@ -4660,21 +4738,21 @@ case 469:
                  objc_method_context = yyvsp[0].ttype;
                ;
     break;}
-case 470:
-#line 2647 "objc-parse.y"
+case 472:
+#line 2664 "objc-parse.y"
 {
                  continue_method_def ();
                ;
     break;}
-case 471:
-#line 2651 "objc-parse.y"
+case 473:
+#line 2668 "objc-parse.y"
 {
                  finish_method_def ();
                  objc_method_context = NULL_TREE;
                ;
     break;}
-case 472:
-#line 2657 "objc-parse.y"
+case 474:
+#line 2674 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  if (objc_implementation_context)
@@ -4683,8 +4761,8 @@ case 472:
                    fatal ("method definition not in class context");
                ;
     break;}
-case 473:
-#line 2665 "objc-parse.y"
+case 475:
+#line 2682 "objc-parse.y"
 {
                  forget_protocol_qualifiers ();
                  add_instance_method (objc_implementation_context, yyvsp[0].ttype);
@@ -4692,268 +4770,268 @@ case 473:
                  objc_method_context = yyvsp[0].ttype;
                ;
     break;}
-case 474:
-#line 2672 "objc-parse.y"
+case 476:
+#line 2689 "objc-parse.y"
 {
                  continue_method_def ();
                ;
     break;}
-case 475:
-#line 2676 "objc-parse.y"
+case 477:
+#line 2693 "objc-parse.y"
 {
                  finish_method_def ();
                  objc_method_context = NULL_TREE;
                ;
     break;}
-case 477:
-#line 2688 "objc-parse.y"
+case 479:
+#line 2705 "objc-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
-case 482:
-#line 2695 "objc-parse.y"
+case 484:
+#line 2712 "objc-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
-case 486:
-#line 2705 "objc-parse.y"
+case 488:
+#line 2722 "objc-parse.y"
 {
                  /* Remember protocol qualifiers in prototypes.  */
                  remember_protocol_qualifiers ();
                  objc_inherit_code = CLASS_METHOD_DECL;
                ;
     break;}
-case 487:
-#line 2711 "objc-parse.y"
+case 489:
+#line 2728 "objc-parse.y"
 {
                  /* Forget protocol qualifiers here.  */
                  forget_protocol_qualifiers ();
                  add_class_method (objc_interface_context, yyvsp[0].ttype);
                ;
     break;}
-case 489:
-#line 2719 "objc-parse.y"
+case 491:
+#line 2736 "objc-parse.y"
 {
                  /* Remember protocol qualifiers in prototypes.  */
                  remember_protocol_qualifiers ();
                  objc_inherit_code = INSTANCE_METHOD_DECL;
                ;
     break;}
-case 490:
-#line 2725 "objc-parse.y"
+case 492:
+#line 2742 "objc-parse.y"
 {
                  /* Forget protocol qualifiers here.  */
                  forget_protocol_qualifiers ();
                  add_instance_method (objc_interface_context, yyvsp[0].ttype);
                ;
     break;}
-case 492:
-#line 2735 "objc-parse.y"
+case 494:
+#line 2752 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
                ;
     break;}
-case 493:
-#line 2740 "objc-parse.y"
+case 495:
+#line 2757 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE);
                ;
     break;}
-case 494:
-#line 2745 "objc-parse.y"
+case 496:
+#line 2762 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 495:
-#line 2750 "objc-parse.y"
+case 497:
+#line 2767 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 504:
-#line 2780 "objc-parse.y"
+case 506:
+#line 2797 "objc-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 505:
-#line 2785 "objc-parse.y"
+case 507:
+#line 2802 "objc-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
-case 506:
-#line 2787 "objc-parse.y"
+case 508:
+#line 2804 "objc-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
-case 507:
-#line 2792 "objc-parse.y"
+case 509:
+#line 2809 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 508:
-#line 2794 "objc-parse.y"
+case 510:
+#line 2811 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 509:
-#line 2802 "objc-parse.y"
+case 511:
+#line 2819 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
                                                         yyvsp[0].ttype)); ;
     break;}
-case 510:
-#line 2807 "objc-parse.y"
+case 512:
+#line 2824 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
                                                         yyvsp[0].ttype)); ;
     break;}
-case 511:
-#line 2812 "objc-parse.y"
+case 513:
+#line 2829 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
                                                         yyvsp[0].ttype)); ;
     break;}
-case 512:
-#line 2820 "objc-parse.y"
+case 514:
+#line 2837 "objc-parse.y"
 {
                  yyval.ttype = NULL_TREE;
                ;
     break;}
-case 513:
-#line 2824 "objc-parse.y"
+case 515:
+#line 2841 "objc-parse.y"
 {
                  /* oh what a kludge! */
                  yyval.ttype = (tree)1;
                ;
     break;}
-case 514:
-#line 2829 "objc-parse.y"
+case 516:
+#line 2846 "objc-parse.y"
 {
                  pushlevel (0);
                ;
     break;}
-case 515:
-#line 2833 "objc-parse.y"
+case 517:
+#line 2850 "objc-parse.y"
 {
                  /* returns a tree list node generated by get_parm_info */
                  yyval.ttype = yyvsp[0].ttype;
                  poplevel (0, 0, 0);
                ;
     break;}
-case 518:
-#line 2848 "objc-parse.y"
+case 520:
+#line 2865 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 523:
-#line 2861 "objc-parse.y"
-{ yyval.ttype = get_identifier (token_buffer); ;
-    break;}
-case 524:
-#line 2862 "objc-parse.y"
-{ yyval.ttype = get_identifier (token_buffer); ;
-    break;}
 case 525:
-#line 2863 "objc-parse.y"
+#line 2878 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 526:
-#line 2864 "objc-parse.y"
+#line 2879 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 527:
-#line 2865 "objc-parse.y"
+#line 2880 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 528:
-#line 2866 "objc-parse.y"
+#line 2881 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 529:
-#line 2867 "objc-parse.y"
+#line 2882 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 530:
-#line 2868 "objc-parse.y"
+#line 2883 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 531:
-#line 2869 "objc-parse.y"
+#line 2884 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 532:
-#line 2870 "objc-parse.y"
+#line 2885 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 533:
-#line 2871 "objc-parse.y"
+#line 2886 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 534:
-#line 2872 "objc-parse.y"
+#line 2887 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 535:
-#line 2873 "objc-parse.y"
+#line 2888 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 536:
-#line 2874 "objc-parse.y"
+#line 2889 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 537:
-#line 2875 "objc-parse.y"
+#line 2890 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 538:
-#line 2876 "objc-parse.y"
+#line 2891 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 539:
-#line 2877 "objc-parse.y"
+#line 2892 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 540:
-#line 2878 "objc-parse.y"
+#line 2893 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 541:
-#line 2879 "objc-parse.y"
+#line 2894 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
-case 544:
-#line 2885 "objc-parse.y"
+case 542:
+#line 2895 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 543:
+#line 2896 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 546:
+#line 2902 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 545:
-#line 2890 "objc-parse.y"
+case 547:
+#line 2907 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
-case 546:
-#line 2895 "objc-parse.y"
+case 548:
+#line 2912 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 547:
-#line 2900 "objc-parse.y"
+case 549:
+#line 2917 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
-case 551:
-#line 2913 "objc-parse.y"
+case 553:
+#line 2930 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 552:
-#line 2921 "objc-parse.y"
+case 554:
+#line 2938 "objc-parse.y"
 {
                  if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
                    /* just return the expr., remove a level of indirection */
@@ -4963,77 +5041,77 @@ case 552:
                    yyval.ttype = yyvsp[0].ttype;
                ;
     break;}
-case 553:
-#line 2933 "objc-parse.y"
+case 555:
+#line 2950 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 554:
-#line 2937 "objc-parse.y"
+case 556:
+#line 2954 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
-case 556:
-#line 2945 "objc-parse.y"
+case 558:
+#line 2962 "objc-parse.y"
 {
                  yyval.ttype = get_class_reference (yyvsp[0].ttype);
                ;
     break;}
-case 557:
-#line 2952 "objc-parse.y"
+case 559:
+#line 2969 "objc-parse.y"
 { objc_receiver_context = 1; ;
     break;}
-case 558:
-#line 2954 "objc-parse.y"
+case 560:
+#line 2971 "objc-parse.y"
 { objc_receiver_context = 0; ;
     break;}
-case 559:
-#line 2956 "objc-parse.y"
+case 561:
+#line 2973 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype);
                ;
     break;}
-case 563:
-#line 2969 "objc-parse.y"
+case 565:
+#line 2986 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 564:
-#line 2976 "objc-parse.y"
+case 566:
+#line 2993 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
                ;
     break;}
-case 565:
-#line 2980 "objc-parse.y"
+case 567:
+#line 2997 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
                ;
     break;}
-case 566:
-#line 2987 "objc-parse.y"
+case 568:
+#line 3004 "objc-parse.y"
 {
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
-case 567:
-#line 2994 "objc-parse.y"
+case 569:
+#line 3011 "objc-parse.y"
 {
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
-case 568:
-#line 3003 "objc-parse.y"
+case 570:
+#line 3020 "objc-parse.y"
 {
                  yyval.ttype = groktypename (yyvsp[-1].ttype);
                ;
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/cygnus/gnupro-98r2/share/bison.simple"
+#line 542 "/usr/lib/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -5228,6 +5306,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 3008 "objc-parse.y"
+#line 3025 "objc-parse.y"
 
index a092e1e88bafb076942957fc3ed874b2fdefd5a7..e902024cec4ec9b44fd685a096ec5a8e023b7d8c 100644 (file)
@@ -28,7 +28,7 @@ Boston, MA 02111-1307, USA.  */
 /* To whomever it may concern: I have heard that such a thing was once
    written by AT&T, but I have never seen it.  */
 
-%expect 66
+%expect 73
 
 %{
 #include "config.h"
@@ -157,7 +157,7 @@ const char * const language_string = "GNU Obj-C";
 %type <ttype> maybe_attribute attributes attribute attribute_list attrib
 %type <ttype> any_word
 
-%type <ttype> compstmt
+%type <ttype> compstmt compstmt_nostart compstmt_primary_start
 
 %type <ttype> declarator
 %type <ttype> notype_declarator after_type_declarator
@@ -756,42 +756,37 @@ primary:
                  $$ = $2; }
        | '(' error ')'
                { $$ = error_mark_node; }
-       | '('
-               { if (current_function_decl == 0)
-                   {
-                     error ("braced-group within expression allowed only inside a function");
-                     YYERROR;
-                   }
-                 /* We must force a BLOCK for this level
-                    so that, if it is not expanded later,
-                    there is a way to turn off the entire subtree of blocks
-                    that are contained in it.  */
-                 keep_next_level ();
-                 push_iterator_stack ();
-                 push_label_level ();
-                 $<ttype>$ = expand_start_stmt_expr (); }
-         compstmt ')'
+       | compstmt_primary_start compstmt_nostart ')'
                { tree rtl_exp;
                  if (pedantic)
                    pedwarn ("ANSI C forbids braced-groups within expressions");
                  pop_iterator_stack ();
                  pop_label_level ();
-                 rtl_exp = expand_end_stmt_expr ($<ttype>2);
+                 rtl_exp = expand_end_stmt_expr ($1);
                  /* The statements have side effects, so the group does.  */
                  TREE_SIDE_EFFECTS (rtl_exp) = 1;
 
-                 if (TREE_CODE ($3) == BLOCK)
+                 if (TREE_CODE ($2) == BLOCK)
                    {
                      /* Make a BIND_EXPR for the BLOCK already made.  */
                      $$ = build (BIND_EXPR, TREE_TYPE (rtl_exp),
-                                 NULL_TREE, rtl_exp, $3);
+                                 NULL_TREE, rtl_exp, $2);
                      /* Remove the block from the tree at this point.
                         It gets put back at the proper place
                         when the BIND_EXPR is expanded.  */
-                     delete_block ($3);
+                     delete_block ($2);
                    }
                  else
-                   $$ = $3;
+                   $$ = $2;
+               }
+       | compstmt_primary_start error ')'
+               {
+                 /* Make sure we call expand_end_stmt_expr.  Otherwise
+                    we are likely to lose sequences and crash later.  */
+                 pop_iterator_stack ();
+                 pop_label_level ();
+                 expand_end_stmt_expr ($1);
+                 $$ = error_mark_node;
                }
        | primary '(' exprlist ')'   %prec '.'
                { $$ = build_function_call ($1, $3); }
@@ -1709,9 +1704,9 @@ compstmt_or_error:
 
 compstmt_start: '{' { compstmt_count++; }
 
-compstmt: compstmt_start '}'
+compstmt_nostart: '}'
                { $$ = convert (void_type_node, integer_zero_node); }
-       | compstmt_start pushlevel maybe_label_decls decls xstmts '}'
+       | pushlevel maybe_label_decls decls xstmts '}'
                { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), 1, 0);
                  $$ = poplevel (1, 1, 0);
@@ -1719,7 +1714,7 @@ compstmt: compstmt_start '}'
                    pop_momentary_nofree ();
                  else
                    pop_momentary (); }
-       | compstmt_start pushlevel maybe_label_decls error '}'
+       | pushlevel maybe_label_decls error '}'
                { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  $$ = poplevel (kept_level_p (), 0, 0);
@@ -1727,7 +1722,7 @@ compstmt: compstmt_start '}'
                    pop_momentary_nofree ();
                  else
                    pop_momentary (); }
-       | compstmt_start pushlevel maybe_label_decls stmts '}'
+       | pushlevel maybe_label_decls stmts '}'
                { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  $$ = poplevel (kept_level_p (), 0, 0);
@@ -1737,6 +1732,28 @@ compstmt: compstmt_start '}'
                    pop_momentary (); }
        ;
 
+compstmt_primary_start:
+       '(' '{'
+               { if (current_function_decl == 0)
+                   {
+                     error ("braced-group within expression allowed only inside a function");
+                     YYERROR;
+                   }
+                 /* We must force a BLOCK for this level
+                    so that, if it is not expanded later,
+                    there is a way to turn off the entire subtree of blocks
+                    that are contained in it.  */
+                 keep_next_level ();
+                 push_iterator_stack ();
+                 push_label_level ();
+                 $$ = expand_start_stmt_expr ();
+                 compstmt_count++;
+               }
+
+compstmt: compstmt_start compstmt_nostart
+               { $$ = $2; }
+       ;
+
 /* Value is number of statements counted as of the closeparen.  */
 simple_if:
          if_prefix lineno_labeled_stmt
This page took 0.485179 seconds and 5 git commands to generate.