]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
c-parse.in (struct_head, [...]): New nonterminals.
authorJason Merrill <jason@yorick.cygnus.com>
Mon, 6 Jul 1998 22:30:16 +0000 (22:30 +0000)
committerJeff Law <law@gcc.gnu.org>
Mon, 6 Jul 1998 22:30:16 +0000 (16:30 -0600)
        * c-parse.in (struct_head, union_head, enum_head): New nonterminals.
        (structsp): Use them.  Update files generated from c-parse.in.
        * extend.texi (Type Attributes): Document it.

From-SVN: r20971

gcc/ChangeLog
gcc/c-parse.c
gcc/c-parse.in
gcc/c-parse.y
gcc/extend.texi
gcc/objc/objc-parse.c
gcc/objc/objc-parse.y

index 51df7432f1cc40aac66f7c421ee0645cbf917a12..872e982ed1cdea9d5f9a1730a6b9505be256aac3 100644 (file)
@@ -1,5 +1,9 @@
 Mon Jul  6 22:50:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
 
+       * c-parse.in (struct_head, union_head, enum_head): New nonterminals.
+       (structsp): Use them.  Update files generated from c-parse.in.
+       * extend.texi (Type Attributes): Document it.
+
        * c-decl.c: Add warn_multichar.
        (c_decode_option): Handle -Wno-multichar.
        * c-lex.c (yylex): Check it.
index 2165908d500fc32585d9cc5b178dbcc4e5893f4b..842d252631225e572ac2eafac2115a405c7bd4e3 100644 (file)
@@ -97,7 +97,7 @@ char *language_string = "GNU C";
 #line 87 "c-parse.y"
 typedef union {long itype; tree ttype; enum tree_code code;
        char *filename; int lineno; int ends_in_label; } YYSTYPE;
-#line 203 "c-parse.y"
+#line 204 "c-parse.y"
 
 /* Number of statements (loosely speaking) and compound statements 
    seen so far.  */
@@ -134,11 +134,11 @@ extern void yyprint                       PROTO ((FILE *, int, YYSTYPE));
 
 
 
-#define        YYFINAL         682
+#define        YYFINAL         688
 #define        YYFLAG          -32768
 #define        YYNTBASE        84
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 239)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 242)
 
 static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -200,44 +200,45 @@ static const short yyprhs[] = {     0,
    612,   619,   620,   626,   627,   632,   633,   639,   640,   641,
    647,   648,   649,   655,   657,   659,   663,   667,   672,   676,
    680,   684,   686,   690,   695,   699,   703,   707,   709,   713,
-   717,   721,   726,   730,   734,   736,   737,   745,   751,   754,
-   755,   763,   769,   772,   773,   782,   783,   791,   794,   795,
-   797,   798,   800,   802,   805,   806,   810,   813,   817,   819,
-   823,   825,   827,   830,   832,   836,   841,   848,   854,   856,
-   860,   862,   864,   868,   871,   874,   875,   877,   879,   882,
-   883,   886,   890,   894,   897,   901,   906,   910,   913,   917,
-   920,   922,   924,   927,   930,   931,   933,   936,   937,   938,
-   940,   942,   945,   949,   951,   954,   956,   959,   966,   972,
-   978,   981,   984,   989,   990,   995,   996,   997,  1001,  1006,
-  1010,  1012,  1014,  1016,  1018,  1021,  1022,  1027,  1029,  1033,
-  1034,  1035,  1043,  1049,  1052,  1053,  1054,  1055,  1068,  1069,
-  1076,  1079,  1082,  1085,  1089,  1096,  1105,  1116,  1129,  1133,
-  1138,  1140,  1142,  1143,  1150,  1154,  1160,  1163,  1166,  1167,
-  1169,  1170,  1172,  1173,  1175,  1177,  1181,  1186,  1188,  1192,
-  1193,  1196,  1199,  1200,  1205,  1208,  1209,  1211,  1213,  1217,
-  1219,  1223,  1228,  1233,  1238,  1243,  1248,  1249,  1252,  1254,
-  1257,  1259,  1263,  1265,  1269
+   717,   721,   726,   730,   734,   736,   738,   741,   743,   746,
+   748,   751,   752,   760,   766,   769,   770,   778,   784,   787,
+   788,   797,   798,   806,   809,   810,   812,   813,   815,   817,
+   820,   821,   825,   828,   832,   834,   838,   840,   842,   845,
+   847,   851,   856,   863,   869,   871,   875,   877,   879,   883,
+   886,   889,   890,   892,   894,   897,   898,   901,   905,   909,
+   912,   916,   921,   925,   928,   932,   935,   937,   939,   942,
+   945,   946,   948,   951,   952,   953,   955,   957,   960,   964,
+   966,   969,   971,   974,   981,   987,   993,   996,   999,  1004,
+  1005,  1010,  1011,  1012,  1016,  1021,  1025,  1027,  1029,  1031,
+  1033,  1036,  1037,  1042,  1044,  1048,  1049,  1050,  1058,  1064,
+  1067,  1068,  1069,  1070,  1083,  1084,  1091,  1094,  1097,  1100,
+  1104,  1111,  1120,  1131,  1144,  1148,  1153,  1155,  1157,  1158,
+  1165,  1169,  1175,  1178,  1181,  1182,  1184,  1185,  1187,  1188,
+  1190,  1192,  1196,  1201,  1203,  1207,  1208,  1211,  1214,  1215,
+  1220,  1223,  1224,  1226,  1228,  1232,  1234,  1238,  1243,  1248,
+  1253,  1258,  1263,  1264,  1267,  1269,  1272,  1274,  1278,  1280,
+  1284
 };
 
 static const short yyrhs[] = {    -1,
     85,     0,     0,    86,    88,     0,     0,    85,    87,    88,
      0,    90,     0,    89,     0,    27,    59,    99,    76,    77,
-     0,   238,    88,     0,   122,   136,    77,     0,   129,   122,
+     0,   241,    88,     0,   122,   136,    77,     0,   129,   122,
    136,    77,     0,   125,   122,   135,    77,     0,   129,    77,
      0,   125,    77,     0,     1,    77,     0,     1,    78,     0,
     77,     0,     0,     0,   125,   122,   165,    91,   116,    92,
-   196,     0,   125,   122,   165,     1,     0,     0,     0,   129,
-   122,   168,    93,   116,    94,   196,     0,   129,   122,   168,
-     1,     0,     0,     0,   122,   168,    95,   116,    96,   196,
+   199,     0,   125,   122,   165,     1,     0,     0,     0,   129,
+   122,   168,    93,   116,    94,   199,     0,   129,   122,   168,
+     1,     0,     0,     0,   122,   168,    95,   116,    96,   199,
      0,   122,   168,     1,     0,     3,     0,     4,     0,    43,
      0,    49,     0,    48,     0,    54,     0,    55,     0,    79,
      0,    80,     0,   101,     0,     0,   101,     0,   107,     0,
-   101,    81,   107,     0,   113,     0,    50,   105,     0,   238,
+   101,    81,   107,     0,   113,     0,    50,   105,     0,   241,
    105,     0,    98,   105,     0,    40,    97,     0,   103,   102,
-     0,   103,    59,   183,    76,     0,   104,   102,     0,   104,
-    59,   183,    76,     0,    33,   105,     0,    34,   105,     0,
-    11,     0,    29,     0,   102,     0,    59,   183,    76,   105,
-     0,     0,    59,   183,    76,    82,   106,   150,    78,     0,
+     0,   103,    59,   186,    76,     0,   104,   102,     0,   104,
+    59,   186,    76,     0,    33,   105,     0,    34,   105,     0,
+    11,     0,    29,     0,   102,     0,    59,   186,    76,   105,
+     0,     0,    59,   186,    76,    82,   106,   150,    78,     0,
    105,     0,   107,    48,   107,     0,   107,    49,   107,     0,
    107,    50,   107,     0,   107,    51,   107,     0,   107,    52,
    107,     0,   107,    46,   107,     0,   107,    47,   107,     0,
@@ -248,26 +249,26 @@ static const short yyrhs[] = {    -1,
    107,     0,     0,   107,    37,   112,    38,   107,     0,   107,
     36,   107,     0,   107,    35,   107,     0,     3,     0,     8,
      0,   115,     0,    59,    99,    76,     0,    59,     1,    76,
-     0,     0,    59,   114,   198,    76,     0,   113,    59,   100,
+     0,     0,    59,   114,   201,    76,     0,   113,    59,   100,
     76,     0,   113,    60,    99,    83,     0,   113,    58,    97,
      0,   113,    57,    97,     0,   113,    54,     0,   113,    55,
      0,     9,     0,   115,     9,     0,     0,   118,     0,   118,
-    10,     0,   203,   204,   119,     0,   117,     0,   191,     0,
-   118,   117,     0,   117,   191,     0,   127,   122,   135,    77,
+    10,     0,   206,   207,   119,     0,   117,     0,   194,     0,
+   118,   117,     0,   117,   194,     0,   127,   122,   135,    77,
      0,   130,   122,   136,    77,     0,   127,    77,     0,   130,
-    77,     0,   203,   204,   124,     0,   120,     0,   191,     0,
-   121,   120,     0,   120,   191,     0,     0,     0,   125,   122,
+    77,     0,   206,   207,   124,     0,   120,     0,   194,     0,
+   121,   120,     0,   120,   194,     0,     0,     0,   125,   122,
    135,    77,     0,   129,   122,   136,    77,     0,   125,   122,
    159,     0,   129,   122,   162,     0,   125,    77,     0,   129,
-    77,     0,   238,   124,     0,   133,   126,     0,   129,   133,
+    77,     0,   241,   124,     0,   133,   126,     0,   129,   133,
    126,     0,     0,   126,   134,     0,   126,     5,     0,   126,
    143,     0,   133,   128,     0,   130,   133,   128,     0,     0,
    128,   134,     0,   128,     5,     0,   130,     0,   143,     0,
    129,   130,     0,   129,   143,     0,     7,     0,     5,     0,
-   130,     7,     0,   130,     5,     0,   133,   132,     0,   185,
-   133,   132,     0,     0,   132,   134,     0,     6,     0,   169,
+   130,     7,     0,   130,     5,     0,   133,   132,     0,   188,
+   133,   132,     0,     0,   132,   134,     0,     6,     0,   172,
      0,     4,     0,    28,    59,    99,    76,     0,    28,    59,
-   183,    76,     0,     6,     0,     7,     0,   169,     0,   138,
+   186,    76,     0,     6,     0,     7,     0,   172,     0,   138,
      0,   135,    81,   138,     0,   140,     0,   136,    81,   138,
      0,     0,    27,    59,   115,    76,     0,     0,   165,   137,
    142,    36,   139,   148,     0,   165,   137,   142,     0,     0,
@@ -278,121 +279,124 @@ static const short yyrhs[] = {    -1,
    147,    59,     3,    81,   101,    76,     0,   147,    59,   100,
     76,     0,    97,     0,     5,     0,     6,     0,     7,     0,
    107,     0,     0,    82,   149,   150,    78,     0,     1,     0,
-     0,   151,   174,     0,   152,     0,   151,    81,   152,     0,
+     0,   151,   177,     0,   152,     0,   151,    81,   152,     0,
    107,     0,     0,    82,   153,   150,    78,     0,     1,     0,
      0,    60,   107,    10,   107,    83,    36,   154,   152,     0,
      0,    60,   107,    83,    36,   155,   152,     0,     0,    60,
    107,    83,   156,   152,     0,     0,    97,    38,   157,   152,
      0,     0,    58,    97,    36,   158,   152,     0,     0,     0,
-   165,   160,   116,   161,   198,     0,     0,     0,   168,   163,
-   116,   164,   198,     0,   166,     0,   168,     0,    59,   166,
-    76,     0,   166,    59,   233,     0,   166,    60,    99,    83,
-     0,   166,    60,    83,     0,    50,   186,   166,     0,   143,
-   123,   166,     0,     4,     0,   167,    59,   233,     0,   167,
-    60,    99,    83,     0,   167,    60,    83,     0,    50,   186,
+   165,   160,   116,   161,   201,     0,     0,     0,   168,   163,
+   116,   164,   201,     0,   166,     0,   168,     0,    59,   166,
+    76,     0,   166,    59,   236,     0,   166,    60,    99,    83,
+     0,   166,    60,    83,     0,    50,   189,   166,     0,   143,
+   123,   166,     0,     4,     0,   167,    59,   236,     0,   167,
+    60,    99,    83,     0,   167,    60,    83,     0,    50,   189,
    167,     0,   143,   123,   167,     0,     4,     0,   168,    59,
-   233,     0,    59,   168,    76,     0,    50,   186,   168,     0,
+   236,     0,    59,   168,    76,     0,    50,   189,   168,     0,
    168,    60,    99,    83,     0,   168,    60,    83,     0,   143,
-   123,   168,     0,     3,     0,     0,    13,    97,    82,   170,
-   176,    78,   142,     0,    13,    82,   176,    78,   142,     0,
-    13,    97,     0,     0,    14,    97,    82,   171,   176,    78,
-   142,     0,    14,    82,   176,    78,   142,     0,    14,    97,
-     0,     0,    12,    97,    82,   172,   181,   175,    78,   142,
-     0,     0,    12,    82,   173,   181,   175,    78,   142,     0,
-    12,    97,     0,     0,    81,     0,     0,    81,     0,   177,
-     0,   177,   178,     0,     0,   177,   178,    77,     0,   177,
-    77,     0,   131,   122,   179,     0,   131,     0,   185,   122,
-   179,     0,   185,     0,     1,     0,   238,   178,     0,   180,
-     0,   179,    81,   180,     0,   203,   204,   165,   142,     0,
-   203,   204,   165,    38,   107,   142,     0,   203,   204,    38,
-   107,   142,     0,   182,     0,   181,    81,   182,     0,     1,
-     0,    97,     0,    97,    36,   107,     0,   131,   184,     0,
-   185,   184,     0,     0,   187,     0,     7,     0,   185,     7,
-     0,     0,   186,     7,     0,    59,   187,    76,     0,    50,
-   186,   187,     0,    50,   186,     0,   187,    59,   226,     0,
-   187,    60,    99,    83,     0,   187,    60,    83,     0,    59,
-   226,     0,    60,    99,    83,     0,    60,    83,     0,   189,
-     0,   206,     0,   189,   206,     0,   189,   191,     0,     0,
-   188,     0,     1,    77,     0,     0,     0,   194,     0,   195,
-     0,   194,   195,     0,    32,   237,    77,     0,   198,     0,
-     1,   198,     0,    82,     0,   197,    78,     0,   197,   192,
-   193,   121,   190,    78,     0,   197,   192,   193,     1,    78,
-     0,   197,   192,   193,   188,    78,     0,   200,   205,     0,
-   200,     1,     0,    15,    59,    99,    76,     0,     0,    18,
-   202,   205,    17,     0,     0,     0,   203,   204,   208,     0,
-   203,   204,   219,   205,     0,   203,   204,   207,     0,   208,
-     0,   219,     0,   198,     0,   216,     0,    99,    77,     0,
-     0,   199,    16,   209,   205,     0,   199,     0,   199,    16,
-     1,     0,     0,     0,    17,   210,    59,    99,    76,   211,
-   205,     0,   201,    59,    99,    76,    77,     0,   201,     1,
-     0,     0,     0,     0,    19,    59,   221,    77,   212,   221,
-    77,   213,   221,    76,   214,   205,     0,     0,    20,    59,
-    99,    76,   215,   205,     0,    23,    77,     0,    24,    77,
-     0,    25,    77,     0,    25,    99,    77,     0,    27,   220,
-    59,    99,    76,    77,     0,    27,   220,    59,    99,    38,
-   222,    76,    77,     0,    27,   220,    59,    99,    38,   222,
-    38,   222,    76,    77,     0,    27,   220,    59,    99,    38,
-   222,    38,   222,    38,   225,    76,    77,     0,    26,    97,
-    77,     0,    26,    50,    99,    77,     0,    77,     0,   217,
-     0,     0,    19,    59,   113,    76,   218,   205,     0,    21,
-   107,    38,     0,    21,   107,    10,   107,    38,     0,    22,
-    38,     0,    97,    38,     0,     0,     7,     0,     0,    99,
-     0,     0,   223,     0,   224,     0,   223,    81,   224,     0,
-     9,    59,    99,    76,     0,   115,     0,   225,    81,   115,
-     0,     0,   227,   228,     0,   230,    76,     0,     0,   231,
-    77,   229,   228,     0,     1,    76,     0,     0,    10,     0,
-   231,     0,   231,    81,    10,     0,   232,     0,   231,    81,
-   232,     0,   125,   122,   167,   142,     0,   125,   122,   168,
-   142,     0,   125,   122,   184,   142,     0,   129,   122,   168,
-   142,     0,   129,   122,   184,   142,     0,     0,   234,   235,
-     0,   228,     0,   236,    76,     0,     3,     0,   236,    81,
-     3,     0,    97,     0,   237,    81,    97,     0,    31,     0
+   123,   168,     0,     3,     0,    13,     0,    13,   143,     0,
+    14,     0,    14,   143,     0,    12,     0,    12,   143,     0,
+     0,   169,    97,    82,   173,   179,    78,   142,     0,   169,
+    82,   179,    78,   142,     0,   169,    97,     0,     0,   170,
+    97,    82,   174,   179,    78,   142,     0,   170,    82,   179,
+    78,   142,     0,   170,    97,     0,     0,   171,    97,    82,
+   175,   184,   178,    78,   142,     0,     0,   171,    82,   176,
+   184,   178,    78,   142,     0,   171,    97,     0,     0,    81,
+     0,     0,    81,     0,   180,     0,   180,   181,     0,     0,
+   180,   181,    77,     0,   180,    77,     0,   131,   122,   182,
+     0,   131,     0,   188,   122,   182,     0,   188,     0,     1,
+     0,   241,   181,     0,   183,     0,   182,    81,   183,     0,
+   206,   207,   165,   142,     0,   206,   207,   165,    38,   107,
+   142,     0,   206,   207,    38,   107,   142,     0,   185,     0,
+   184,    81,   185,     0,     1,     0,    97,     0,    97,    36,
+   107,     0,   131,   187,     0,   188,   187,     0,     0,   190,
+     0,     7,     0,   188,     7,     0,     0,   189,     7,     0,
+    59,   190,    76,     0,    50,   189,   190,     0,    50,   189,
+     0,   190,    59,   229,     0,   190,    60,    99,    83,     0,
+   190,    60,    83,     0,    59,   229,     0,    60,    99,    83,
+     0,    60,    83,     0,   192,     0,   209,     0,   192,   209,
+     0,   192,   194,     0,     0,   191,     0,     1,    77,     0,
+     0,     0,   197,     0,   198,     0,   197,   198,     0,    32,
+   240,    77,     0,   201,     0,     1,   201,     0,    82,     0,
+   200,    78,     0,   200,   195,   196,   121,   193,    78,     0,
+   200,   195,   196,     1,    78,     0,   200,   195,   196,   191,
+    78,     0,   203,   208,     0,   203,     1,     0,    15,    59,
+    99,    76,     0,     0,    18,   205,   208,    17,     0,     0,
+     0,   206,   207,   211,     0,   206,   207,   222,   208,     0,
+   206,   207,   210,     0,   211,     0,   222,     0,   201,     0,
+   219,     0,    99,    77,     0,     0,   202,    16,   212,   208,
+     0,   202,     0,   202,    16,     1,     0,     0,     0,    17,
+   213,    59,    99,    76,   214,   208,     0,   204,    59,    99,
+    76,    77,     0,   204,     1,     0,     0,     0,     0,    19,
+    59,   224,    77,   215,   224,    77,   216,   224,    76,   217,
+   208,     0,     0,    20,    59,    99,    76,   218,   208,     0,
+    23,    77,     0,    24,    77,     0,    25,    77,     0,    25,
+    99,    77,     0,    27,   223,    59,    99,    76,    77,     0,
+    27,   223,    59,    99,    38,   225,    76,    77,     0,    27,
+   223,    59,    99,    38,   225,    38,   225,    76,    77,     0,
+    27,   223,    59,    99,    38,   225,    38,   225,    38,   228,
+    76,    77,     0,    26,    97,    77,     0,    26,    50,    99,
+    77,     0,    77,     0,   220,     0,     0,    19,    59,   113,
+    76,   221,   208,     0,    21,   107,    38,     0,    21,   107,
+    10,   107,    38,     0,    22,    38,     0,    97,    38,     0,
+     0,     7,     0,     0,    99,     0,     0,   226,     0,   227,
+     0,   226,    81,   227,     0,     9,    59,    99,    76,     0,
+   115,     0,   228,    81,   115,     0,     0,   230,   231,     0,
+   233,    76,     0,     0,   234,    77,   232,   231,     0,     1,
+    76,     0,     0,    10,     0,   234,     0,   234,    81,    10,
+     0,   235,     0,   234,    81,   235,     0,   125,   122,   167,
+   142,     0,   125,   122,   168,   142,     0,   125,   122,   187,
+   142,     0,   129,   122,   168,   142,     0,   129,   122,   187,
+   142,     0,     0,   237,   238,     0,   231,     0,   239,    76,
+     0,     3,     0,   239,    81,     3,     0,    97,     0,   240,
+    81,    97,     0,    31,     0
 };
 
 #endif
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   232,   237,   251,   253,   253,   254,   256,   258,   259,   267,
-   271,   282,   287,   292,   294,   296,   297,   298,   303,   310,
-   312,   317,   322,   328,   330,   335,   340,   346,   348,   353,
-   360,   362,   365,   367,   369,   371,   373,   375,   377,   381,
-   385,   388,   391,   394,   398,   400,   403,   406,   410,   438,
-   444,   447,   450,   453,   455,   459,   463,   467,   469,   472,
-   476,   503,   505,   507,   509,   511,   513,   515,   517,   519,
-   521,   523,   525,   527,   529,   533,   535,   539,   541,   544,
-   548,   550,   557,   560,   563,   569,   668,   669,   671,   677,
-   679,   693,   716,   718,   720,   724,   730,   732,   737,   739,
-   744,   746,   747,   757,   762,   764,   765,   766,   773,   779,
-   784,   787,   795,   800,   802,   803,   804,   811,   822,   826,
-   832,   837,   842,   847,   849,   851,   860,   863,   867,   869,
-   871,   876,   880,   883,   887,   890,   892,   904,   907,   909,
-   911,   915,   919,   921,   924,   937,   940,   944,   946,   954,
-   955,   956,   960,   962,   968,   969,   970,   973,   975,   978,
-   980,   983,   986,   992,   999,  1001,  1008,  1015,  1018,  1025,
-  1028,  1032,  1035,  1039,  1044,  1047,  1051,  1054,  1056,  1058,
-  1060,  1067,  1069,  1070,  1071,  1076,  1078,  1083,  1091,  1096,
-  1100,  1103,  1105,  1110,  1113,  1115,  1117,  1121,  1124,  1124,
-  1127,  1127,  1130,  1130,  1133,  1133,  1136,  1138,  1149,  1157,
-  1161,  1172,  1180,  1187,  1189,  1194,  1197,  1202,  1204,  1206,
-  1213,  1215,  1223,  1229,  1231,  1233,  1240,  1242,  1248,  1254,
-  1256,  1258,  1260,  1267,  1269,  1272,  1277,  1279,  1283,  1285,
-  1287,  1289,  1293,  1295,  1298,  1301,  1304,  1307,  1311,  1313,
-  1316,  1318,  1322,  1325,  1330,  1332,  1334,  1348,  1355,  1360,
-  1366,  1371,  1373,  1378,  1380,  1384,  1388,  1392,  1402,  1404,
-  1409,  1414,  1417,  1421,  1424,  1428,  1431,  1434,  1437,  1441,
-  1444,  1448,  1452,  1454,  1456,  1458,  1460,  1462,  1464,  1466,
-  1476,  1484,  1486,  1488,  1492,  1494,  1497,  1500,  1511,  1513,
-  1518,  1520,  1523,  1537,  1540,  1543,  1545,  1547,  1555,  1563,
-  1574,  1579,  1582,  1596,  1605,  1609,  1613,  1617,  1623,  1627,
-  1632,  1635,  1640,  1643,  1644,  1661,  1666,  1669,  1681,  1683,
-  1693,  1703,  1704,  1712,  1715,  1727,  1731,  1748,  1758,  1767,
-  1772,  1777,  1782,  1786,  1790,  1801,  1808,  1815,  1822,  1833,
-  1839,  1842,  1847,  1870,  1904,  1935,  1966,  1981,  1992,  1996,
-  2000,  2003,  2008,  2010,  2013,  2015,  2019,  2024,  2027,  2033,
-  2038,  2043,  2045,  2054,  2055,  2061,  2063,  2073,  2075,  2079,
-  2082,  2088,  2098,  2107,  2116,  2126,  2140,  2145,  2150,  2152,
-  2161,  2164,  2169,  2172,  2176
+   233,   238,   252,   254,   254,   255,   257,   259,   260,   268,
+   272,   283,   288,   293,   295,   297,   298,   299,   304,   311,
+   313,   318,   323,   329,   331,   336,   341,   347,   349,   354,
+   361,   363,   366,   368,   370,   372,   374,   376,   378,   382,
+   386,   389,   392,   395,   399,   401,   404,   407,   411,   439,
+   445,   448,   451,   454,   456,   460,   464,   468,   470,   473,
+   477,   504,   506,   508,   510,   512,   514,   516,   518,   520,
+   522,   524,   526,   528,   530,   534,   536,   540,   542,   545,
+   549,   551,   558,   561,   564,   570,   669,   670,   672,   678,
+   680,   694,   717,   719,   721,   725,   731,   733,   738,   740,
+   745,   747,   748,   758,   763,   765,   766,   767,   774,   780,
+   785,   788,   796,   801,   803,   804,   805,   812,   823,   827,
+   833,   838,   843,   848,   850,   852,   861,   864,   868,   870,
+   872,   877,   881,   884,   888,   891,   893,   905,   908,   910,
+   912,   916,   920,   922,   925,   938,   941,   945,   947,   955,
+   956,   957,   961,   963,   969,   970,   971,   974,   976,   979,
+   981,   984,   987,   993,  1000,  1002,  1009,  1016,  1019,  1026,
+  1029,  1033,  1036,  1040,  1045,  1048,  1052,  1055,  1057,  1059,
+  1061,  1068,  1070,  1071,  1072,  1077,  1079,  1084,  1092,  1097,
+  1101,  1104,  1106,  1111,  1114,  1116,  1118,  1122,  1125,  1125,
+  1128,  1128,  1131,  1131,  1134,  1134,  1137,  1139,  1150,  1158,
+  1162,  1173,  1181,  1188,  1190,  1195,  1198,  1203,  1205,  1207,
+  1214,  1216,  1224,  1230,  1232,  1234,  1241,  1243,  1249,  1255,
+  1257,  1259,  1261,  1268,  1270,  1273,  1276,  1280,  1283,  1287,
+  1290,  1294,  1299,  1301,  1305,  1307,  1309,  1311,  1315,  1317,
+  1320,  1323,  1326,  1329,  1333,  1335,  1338,  1340,  1344,  1347,
+  1352,  1354,  1356,  1370,  1377,  1382,  1388,  1393,  1395,  1400,
+  1402,  1406,  1410,  1414,  1424,  1426,  1431,  1436,  1439,  1443,
+  1446,  1450,  1453,  1456,  1459,  1463,  1466,  1470,  1474,  1476,
+  1478,  1480,  1482,  1484,  1486,  1488,  1498,  1506,  1508,  1510,
+  1514,  1516,  1519,  1522,  1533,  1535,  1540,  1542,  1545,  1559,
+  1562,  1565,  1567,  1569,  1577,  1585,  1596,  1601,  1604,  1618,
+  1627,  1631,  1635,  1639,  1645,  1649,  1654,  1657,  1662,  1665,
+  1666,  1683,  1688,  1691,  1703,  1705,  1715,  1725,  1726,  1734,
+  1737,  1749,  1753,  1770,  1780,  1789,  1794,  1799,  1804,  1808,
+  1812,  1823,  1830,  1837,  1844,  1855,  1861,  1864,  1869,  1892,
+  1926,  1957,  1988,  2003,  2014,  2018,  2022,  2025,  2030,  2032,
+  2035,  2037,  2041,  2046,  2049,  2055,  2060,  2065,  2067,  2076,
+  2077,  2083,  2085,  2095,  2097,  2101,  2104,  2110,  2120,  2129,
+  2138,  2148,  2162,  2167,  2172,  2174,  2183,  2186,  2191,  2194,
+  2198
 };
 #endif
 
@@ -421,17 +425,18 @@ static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER"
 "attrib","any_word","init","@18","initlist_maybe_comma","initlist1","initelt",
 "@19","@20","@21","@22","@23","@24","nested_function","@25","@26","notype_nested_function",
 "@27","@28","declarator","after_type_declarator","parm_declarator","notype_declarator",
-"structsp","@29","@30","@31","@32","maybecomma","maybecomma_warn","component_decl_list",
-"component_decl_list2","component_decl","components","component_declarator",
-"enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
-"absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
-"label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt","simple_if",
-"if_prefix","do_stmt_start","@33","save_filename","save_lineno","lineno_labeled_stmt",
-"lineno_stmt_or_label","stmt_or_label","stmt","@34","@35","@36","@37","@38",
-"@39","@40","all_iter_stmt","all_iter_stmt_simple","@41","label","maybe_type_qual",
-"xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
-"@42","parmlist_1","@43","parmlist_2","parms","parm","parmlist_or_identifiers",
-"@44","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension", NULL
+"struct_head","union_head","enum_head","structsp","@29","@30","@31","@32","maybecomma",
+"maybecomma_warn","component_decl_list","component_decl_list2","component_decl",
+"components","component_declarator","enumlist","enumerator","typename","absdcl",
+"nonempty_type_quals","type_quals","absdcl1","stmts","lineno_stmt_or_labels",
+"xstmts","errstmt","pushlevel","maybe_label_decls","label_decls","label_decl",
+"compstmt_or_error","compstmt_start","compstmt","simple_if","if_prefix","do_stmt_start",
+"@33","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
+"stmt_or_label","stmt","@34","@35","@36","@37","@38","@39","@40","all_iter_stmt",
+"all_iter_stmt_simple","@41","label","maybe_type_qual","xexpr","asm_operands",
+"nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@42","parmlist_1",
+"@43","parmlist_2","parms","parm","parmlist_or_identifiers","@44","parmlist_or_identifiers_1",
+"identifiers","identifiers_or_typenames","extension", NULL
 };
 #endif
 
@@ -459,23 +464,24 @@ static const short yyr1[] = {     0,
    152,   156,   152,   157,   152,   158,   152,   160,   161,   159,
    163,   164,   162,   165,   165,   166,   166,   166,   166,   166,
    166,   166,   167,   167,   167,   167,   167,   167,   168,   168,
-   168,   168,   168,   168,   168,   170,   169,   169,   169,   171,
-   169,   169,   169,   172,   169,   173,   169,   169,   174,   174,
-   175,   175,   176,   176,   177,   177,   177,   178,   178,   178,
-   178,   178,   178,   179,   179,   180,   180,   180,   181,   181,
-   181,   182,   182,   183,   183,   184,   184,   185,   185,   186,
-   186,   187,   187,   187,   187,   187,   187,   187,   187,   187,
-   188,   189,   189,   189,   190,   190,   191,   192,   193,   193,
-   194,   194,   195,   196,   196,   197,   198,   198,   198,   198,
-   199,   199,   200,   202,   201,   203,   204,   205,   205,   206,
-   207,   207,   208,   208,   208,   209,   208,   208,   208,   210,
-   211,   208,   208,   208,   212,   213,   214,   208,   215,   208,
-   208,   208,   208,   208,   208,   208,   208,   208,   208,   208,
-   208,   216,   218,   217,   219,   219,   219,   219,   220,   220,
-   221,   221,   222,   222,   223,   223,   224,   225,   225,   227,
-   226,   228,   229,   228,   228,   230,   230,   230,   230,   231,
-   231,   232,   232,   232,   232,   232,   234,   233,   235,   235,
-   236,   236,   237,   237,   238
+   168,   168,   168,   168,   168,   169,   169,   170,   170,   171,
+   171,   173,   172,   172,   172,   174,   172,   172,   172,   175,
+   172,   176,   172,   172,   177,   177,   178,   178,   179,   179,
+   180,   180,   180,   181,   181,   181,   181,   181,   181,   182,
+   182,   183,   183,   183,   184,   184,   184,   185,   185,   186,
+   186,   187,   187,   188,   188,   189,   189,   190,   190,   190,
+   190,   190,   190,   190,   190,   190,   191,   192,   192,   192,
+   193,   193,   194,   195,   196,   196,   197,   197,   198,   199,
+   199,   200,   201,   201,   201,   201,   202,   202,   203,   205,
+   204,   206,   207,   208,   208,   209,   210,   210,   211,   211,
+   211,   212,   211,   211,   211,   213,   214,   211,   211,   211,
+   215,   216,   217,   211,   218,   211,   211,   211,   211,   211,
+   211,   211,   211,   211,   211,   211,   211,   219,   221,   220,
+   222,   222,   222,   222,   223,   223,   224,   224,   225,   225,
+   226,   226,   227,   228,   228,   230,   229,   231,   232,   231,
+   231,   233,   233,   233,   233,   234,   234,   235,   235,   235,
+   235,   235,   237,   236,   238,   238,   239,   239,   240,   240,
+   241
 };
 
 static const short yyr2[] = {     0,
@@ -502,561 +508,547 @@ static const short yyr2[] = {     0,
      6,     0,     5,     0,     4,     0,     5,     0,     0,     5,
      0,     0,     5,     1,     1,     3,     3,     4,     3,     3,
      3,     1,     3,     4,     3,     3,     3,     1,     3,     3,
-     3,     4,     3,     3,     1,     0,     7,     5,     2,     0,
-     7,     5,     2,     0,     8,     0,     7,     2,     0,     1,
-     0,     1,     1,     2,     0,     3,     2,     3,     1,     3,
-     1,     1,     2,     1,     3,     4,     6,     5,     1,     3,
-     1,     1,     3,     2,     2,     0,     1,     1,     2,     0,
-     2,     3,     3,     2,     3,     4,     3,     2,     3,     2,
-     1,     1,     2,     2,     0,     1,     2,     0,     0,     1,
-     1,     2,     3,     1,     2,     1,     2,     6,     5,     5,
-     2,     2,     4,     0,     4,     0,     0,     3,     4,     3,
-     1,     1,     1,     1,     2,     0,     4,     1,     3,     0,
-     0,     7,     5,     2,     0,     0,     0,    12,     0,     6,
-     2,     2,     2,     3,     6,     8,    10,    12,     3,     4,
-     1,     1,     0,     6,     3,     5,     2,     2,     0,     1,
-     0,     1,     0,     1,     1,     3,     4,     1,     3,     0,
-     2,     2,     0,     4,     2,     0,     1,     1,     3,     1,
-     3,     4,     4,     4,     4,     4,     0,     2,     1,     2,
-     1,     3,     1,     3,     1
+     3,     4,     3,     3,     1,     1,     2,     1,     2,     1,
+     2,     0,     7,     5,     2,     0,     7,     5,     2,     0,
+     8,     0,     7,     2,     0,     1,     0,     1,     1,     2,
+     0,     3,     2,     3,     1,     3,     1,     1,     2,     1,
+     3,     4,     6,     5,     1,     3,     1,     1,     3,     2,
+     2,     0,     1,     1,     2,     0,     2,     3,     3,     2,
+     3,     4,     3,     2,     3,     2,     1,     1,     2,     2,
+     0,     1,     2,     0,     0,     1,     1,     2,     3,     1,
+     2,     1,     2,     6,     5,     5,     2,     2,     4,     0,
+     4,     0,     0,     3,     4,     3,     1,     1,     1,     1,
+     2,     0,     4,     1,     3,     0,     0,     7,     5,     2,
+     0,     0,     0,    12,     0,     6,     2,     2,     2,     3,
+     6,     8,    10,    12,     3,     4,     1,     1,     0,     6,
+     3,     5,     2,     2,     0,     1,     0,     1,     0,     1,
+     1,     3,     4,     1,     3,     0,     2,     2,     0,     4,
+     2,     0,     1,     1,     3,     1,     3,     4,     4,     4,
+     4,     4,     0,     2,     1,     2,     1,     3,     1,     3,
+     1
 };
 
 static const short yydefact[] = {     3,
-     5,     0,     0,     0,   152,   143,   150,   142,     0,     0,
-     0,     0,     0,     0,   395,    18,     4,     8,     7,     0,
-   118,   118,   138,   129,   139,   172,   151,     0,     6,    16,
-    17,    31,    32,   246,   248,   255,   239,   255,   243,     0,
-     0,     0,   235,   280,     0,     0,   160,   119,     0,    15,
-     0,    14,     0,   140,   129,   141,   145,   144,   127,   173,
-    10,     0,   244,     0,     0,   236,     0,   240,    86,    87,
-    99,    56,    57,     0,     0,     0,    33,    35,    34,     0,
-    36,    37,     0,    38,    39,     0,     0,    40,    58,     0,
-     0,    62,    43,    45,    88,     0,   278,     0,   276,   148,
-     0,   276,   177,     0,     0,    11,     0,     0,    30,     0,
-   387,     0,     0,   170,   222,   280,     0,     0,   158,   119,
-     0,   214,   215,     0,     0,   128,   131,   155,   156,   130,
-   132,   157,   271,   272,   251,   269,     0,   170,   262,   257,
-   118,   254,   118,     0,   255,   170,   255,    54,    55,    49,
-    46,     0,     0,     0,     0,    48,     0,     0,     0,    50,
-     0,    52,     0,     0,    79,    77,    75,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,    97,
-    98,     0,     0,    41,     0,   100,    47,   153,   280,   370,
-     0,   274,   277,   146,   154,   279,   148,   275,   183,   184,
-   185,   182,     0,   175,   178,   281,   231,   230,   161,   162,
-   234,     0,   229,     0,   233,     0,     0,    28,     0,   316,
-   106,   317,   169,   171,     0,     0,    13,     0,     0,    22,
-     0,   170,   387,     0,    12,    26,     0,     0,   252,     0,
-   251,   238,   316,   256,   316,   263,     0,   242,     0,    90,
-    89,   306,   298,     0,     0,     9,    44,     0,     0,    85,
-    84,     0,     0,     0,     0,    73,    74,    72,    71,    70,
-    68,    69,    63,    64,    65,    66,    67,    96,    95,     0,
-    42,     0,   284,     0,   288,     0,   290,     0,   370,     0,
-   149,   147,     0,   177,    41,     0,     0,   391,   377,   118,
-   118,   389,     0,   378,   380,   388,     0,   232,   297,     0,
-   108,   103,   107,     0,   167,   220,   216,   159,   221,    20,
-   166,   217,   219,     0,    24,   273,   270,   170,     0,   258,
-   264,   317,   260,   170,   170,   307,   299,    92,    60,    59,
-    51,    53,     0,     0,    78,    76,    93,    94,   283,   282,
-   371,   289,   285,   287,     0,   174,   176,    86,     0,   163,
-   375,   276,   276,   372,   373,     0,   390,     0,     0,    29,
-   304,   104,   118,   118,   135,     0,     0,   164,   218,     0,
-   247,   170,   316,     0,   237,   241,     0,     0,   300,   301,
-     0,    80,    83,   286,   179,     0,   181,   228,   280,   370,
-   119,   170,   170,   170,   280,   170,   170,     0,   379,   381,
-   392,   305,   111,     0,   112,     0,   135,   133,   189,   187,
-   186,   168,    21,     0,    25,   245,   265,     0,   170,   393,
-     0,     0,     0,   316,     0,     0,   115,   317,   292,   302,
-   197,    86,     0,     0,   195,     0,   194,     0,   249,   192,
-     0,     0,   284,     0,   387,     0,   382,   383,   384,   284,
-   385,   386,   374,     0,     0,   162,   134,   137,   136,     0,
-   165,   170,     0,   266,   303,     0,   309,   117,   116,   296,
-     0,   310,   294,   317,   293,     0,     0,     0,     0,   204,
-    61,     0,   191,    81,   180,   226,   280,   227,   223,   225,
-     0,   109,   110,     0,   268,   170,   394,   308,     0,   152,
-     0,   330,   314,     0,     0,     0,     0,     0,     0,     0,
-     0,   359,   351,     0,     0,   113,   118,   118,   323,   328,
-     0,     0,   320,   321,   324,   352,   322,     0,   206,     0,
-   202,     0,     0,   193,     0,   224,   188,   267,     0,     0,
-   316,   361,     0,     0,   357,   341,   342,   343,     0,     0,
-     0,   360,     0,   358,   325,   124,     0,   125,     0,     0,
-   312,   317,   311,   334,     0,   126,     0,     0,   200,     0,
-   196,   205,     0,     0,     0,   362,    45,     0,     0,     0,
-   355,   344,     0,   349,     0,     0,   122,   208,     0,   123,
-   211,   329,   316,     0,     0,   207,     0,     0,   203,   313,
-     0,   315,   353,   335,   339,     0,   350,     0,   120,     0,
-   121,     0,   327,   318,   316,     0,   198,   201,   331,   316,
-   361,   316,   356,   363,     0,   209,   212,   319,   333,     0,
-   316,   354,     0,   340,     0,     0,   364,   365,   345,     0,
-     0,   199,   332,   336,     0,   363,     0,     0,   210,   213,
-   361,     0,     0,   346,   366,     0,   367,     0,     0,   337,
-   368,     0,   347,   316,     0,     0,   338,   348,   369,     0,
-     0,     0
+     5,     0,     0,     0,   152,   143,   150,   142,   240,   236,
+   238,     0,     0,     0,   401,    18,     4,     8,     7,     0,
+   118,   118,   138,   129,   139,   172,     0,     0,     0,   151,
+     0,     6,    16,    17,   241,   237,   239,     0,     0,     0,
+   235,   286,     0,     0,   160,   119,     0,    15,     0,    14,
+     0,   140,   129,   141,   145,   144,   127,   173,    31,    32,
+   261,   245,   261,   249,   252,   254,    10,    86,    87,    99,
+    56,    57,     0,     0,     0,    33,    35,    34,     0,    36,
+    37,     0,    38,    39,     0,     0,    40,    58,     0,     0,
+    62,    43,    45,    88,     0,   284,     0,   282,   148,     0,
+   282,   177,     0,     0,    11,     0,     0,    30,     0,   393,
+     0,     0,   170,   222,   286,     0,     0,   158,   119,     0,
+   214,   215,     0,     0,   128,   131,   155,   156,   130,   132,
+   157,     0,     0,   242,     0,   246,     0,   250,    54,    55,
+    49,    46,     0,     0,     0,     0,    48,     0,     0,     0,
+    50,     0,    52,     0,     0,    79,    77,    75,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    97,    98,     0,     0,    41,     0,   100,    47,   153,   286,
+   376,     0,   280,   283,   146,   154,   285,   148,   281,   183,
+   184,   185,   182,     0,   175,   178,   287,   231,   230,   161,
+   162,   234,     0,   229,     0,   233,     0,     0,    28,     0,
+   322,   106,   323,   169,   171,     0,     0,    13,     0,     0,
+    22,     0,   170,   393,     0,    12,    26,     0,   170,   268,
+   263,   118,   260,   118,     0,   261,   170,   261,   277,   278,
+   257,   275,     0,    90,    89,   312,   304,     0,     0,     9,
+    44,     0,     0,    85,    84,     0,     0,     0,     0,    73,
+    74,    72,    71,    70,    68,    69,    63,    64,    65,    66,
+    67,    96,    95,     0,    42,     0,   290,     0,   294,     0,
+   296,     0,   376,     0,   149,   147,     0,   177,    41,     0,
+     0,   397,   383,   118,   118,   395,     0,   384,   386,   394,
+     0,   232,   303,     0,   108,   103,   107,     0,   167,   220,
+   216,   159,   221,    20,   166,   217,   219,     0,    24,   244,
+   322,   262,   322,   269,     0,   248,     0,     0,   258,     0,
+   257,   313,   305,    92,    60,    59,    51,    53,     0,     0,
+    78,    76,    93,    94,   289,   288,   377,   295,   291,   293,
+     0,   174,   176,    86,     0,   163,   381,   282,   282,   378,
+   379,     0,   396,     0,     0,    29,   310,   104,   118,   118,
+   135,     0,     0,   164,   218,     0,   264,   270,   323,   266,
+   170,   170,   279,   276,   170,     0,     0,     0,   306,   307,
+     0,    80,    83,   292,   179,     0,   181,   228,   286,   376,
+   119,   170,   170,   170,   286,   170,   170,     0,   385,   387,
+   398,   311,   111,     0,   112,     0,   135,   133,   189,   187,
+   186,   168,    21,     0,    25,   322,     0,   243,   247,   253,
+   170,   399,     0,     0,     0,   322,     0,     0,   115,   323,
+   298,   308,   197,    86,     0,     0,   195,     0,   194,     0,
+   255,   192,     0,     0,   290,     0,   393,     0,   388,   389,
+   390,   290,   391,   392,   380,     0,     0,   162,   134,   137,
+   136,     0,   165,   271,     0,   170,   251,   309,     0,   315,
+   117,   116,   302,     0,   316,   300,   323,   299,     0,     0,
+     0,     0,   204,    61,     0,   191,    81,   180,   226,   286,
+   227,   223,   225,     0,   109,   110,     0,   170,     0,   272,
+   400,   314,     0,   152,     0,   336,   320,     0,     0,     0,
+     0,     0,     0,     0,     0,   365,   357,     0,     0,   113,
+   118,   118,   329,   334,     0,     0,   326,   327,   330,   358,
+   328,     0,   206,     0,   202,     0,     0,   193,     0,   224,
+   188,   274,   170,     0,     0,   322,   367,     0,     0,   363,
+   347,   348,   349,     0,     0,     0,   366,     0,   364,   331,
+   124,     0,   125,     0,     0,   318,   323,   317,   340,     0,
+   126,     0,     0,   200,     0,   196,   205,   273,     0,     0,
+     0,   368,    45,     0,     0,     0,   361,   350,     0,   355,
+     0,     0,   122,   208,     0,   123,   211,   335,   322,     0,
+     0,   207,     0,     0,   203,   319,     0,   321,   359,   341,
+   345,     0,   356,     0,   120,     0,   121,     0,   333,   324,
+   322,     0,   198,   201,   337,   322,   367,   322,   362,   369,
+     0,   209,   212,   325,   339,     0,   322,   360,     0,   346,
+     0,     0,   370,   371,   351,     0,     0,   199,   338,   342,
+     0,   369,     0,     0,   210,   213,   367,     0,     0,   352,
+   372,     0,   373,     0,     0,   343,   374,     0,   353,   322,
+     0,     0,   344,   354,   375,     0,     0,     0
 };
 
-static const short yydefgoto[] = {   680,
-     1,     2,     3,    17,    18,    19,   231,   377,   237,   380,
-   113,   310,   446,    86,   153,   280,    88,    89,    90,    91,
-    92,   391,    93,   265,   264,   262,   451,   263,    94,   154,
-    95,   218,   219,   220,   372,   433,   434,    20,   108,   526,
-   300,    59,   373,   418,   301,    23,    99,   194,    24,   130,
-   118,    46,   114,   119,   424,    47,   376,   223,   224,    26,
-   203,   204,   205,   422,   470,   448,   449,   450,   489,   640,
-   608,   580,   543,   577,   597,   620,   650,   600,   622,   651,
-   210,   122,   496,   123,    27,   145,   147,   137,    62,   493,
-   240,    64,    65,   142,   330,   331,   135,   136,   101,   192,
-   102,   104,   193,   435,   436,   481,   221,   337,   388,   389,
-   390,   370,   253,   371,   530,   531,   532,   551,   572,   314,
-   573,   439,   533,   534,   603,   550,   641,   631,   661,   674,
-   632,   535,   536,   630,   537,   563,   588,   646,   647,   648,
-   672,   285,   286,   302,   408,   303,   304,   305,   213,   214,
-   306,   307,   431,    96
+static const short yydefgoto[] = {   686,
+     1,     2,     3,    17,    18,    19,   222,   373,   228,   376,
+   112,   304,   448,    85,   144,   274,    87,    88,    89,    90,
+    91,   391,    92,   259,   258,   256,   453,   257,    93,   145,
+    94,   209,   210,   211,   368,   435,   436,    20,   107,   530,
+   294,    57,   369,   418,   295,    23,    98,   185,    24,   129,
+   117,    44,   113,   118,   424,    45,   372,   214,   215,    26,
+   194,   195,   196,   422,   472,   450,   451,   452,   492,   646,
+   614,   585,   547,   582,   603,   626,   656,   606,   628,   657,
+   201,   121,   499,   122,    27,    28,    29,    30,   236,   238,
+   243,   137,   496,   330,   132,   133,   233,   377,   378,   241,
+   242,   100,   183,   101,   103,   184,   437,   438,   484,   212,
+   333,   388,   389,   390,   366,   247,   367,   534,   535,   536,
+   556,   577,   308,   578,   441,   537,   538,   609,   555,   647,
+   637,   667,   680,   638,   539,   540,   636,   541,   568,   594,
+   652,   653,   654,   678,   279,   280,   296,   408,   297,   298,
+   299,   204,   205,   300,   301,   433,    95
 };
 
-static const short yypact[] = {    66,
-    82,  2070,  2070,   286,-32768,-32768,-32768,-32768,    77,    84,
-   103,    30,    55,    79,-32768,-32768,-32768,-32768,-32768,    60,
-   113,   405,   142,-32768,   183,-32768,-32768,  2070,-32768,-32768,
--32768,-32768,-32768,-32768,   163,-32768,   170,-32768,   173,  1932,
-  1866,   165,-32768,-32768,    60,    35,-32768,   183,   589,-32768,
-   530,-32768,    60,   142,-32768,   183,-32768,-32768,  1138,-32768,
--32768,   458,-32768,   192,   267,-32768,   200,-32768,-32768,-32768,
--32768,-32768,-32768,  1932,  1932,   229,-32768,-32768,-32768,  1932,
--32768,-32768,   850,-32768,-32768,  1932,   206,   211,-32768,  1959,
-  1986,-32768,  2136,   366,   288,  1932,-32768,   243,   161,-32768,
-   271,   438,   842,   237,   150,-32768,   530,    60,-32768,   254,
--32768,  1408,   361,   183,-32768,-32768,   530,   106,-32768,   183,
-   732,   389,   413,   112,  1354,  1138,-32768,-32768,-32768,-32768,
-   183,-32768,-32768,   318,   297,-32768,   458,   183,-32768,-32768,
-   412,   306,   639,   824,-32768,   183,-32768,-32768,-32768,-32768,
--32768,   315,   321,   322,   331,-32768,   352,  1932,   850,-32768,
-   850,-32768,  1932,  1932,   401,-32768,-32768,  1932,  1932,  1932,
-  1932,  1932,  1932,  1932,  1932,  1932,  1932,  1932,  1932,-32768,
--32768,   229,   229,  1932,  1932,-32768,-32768,-32768,-32768,   161,
-  1421,-32768,   442,   648,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,    93,-32768,   394,-32768,   413,-32768,-32768,   443,
-   413,   466,-32768,   907,-32768,   377,   407,-32768,   323,    59,
--32768,-32768,   456,   183,   199,   283,-32768,   530,   530,-32768,
-   361,   183,-32768,  1474,-32768,-32768,   361,  1932,   229,   400,
-   297,-32768,-32768,-32768,-32768,-32768,   409,-32768,   416,-32768,
--32768,-32768,   418,   423,  1755,-32768,  2136,   427,   432,  2136,
-  2136,  1932,   479,  1932,  1932,  1725,  2193,  1903,  1130,  1357,
-   960,   960,   455,   455,-32768,-32768,-32768,-32768,-32768,   450,
-   211,   448,   310,   296,-32768,   628,-32768,   457,-32768,  1487,
--32768,   648,   465,   842,  2013,    52,   467,-32768,-32768,-32768,
-  1088,-32768,   470,   257,-32768,-32768,   154,-32768,-32768,    57,
--32768,-32768,-32768,   861,-32768,   389,-32768,-32768,   389,-32768,
-   512,-32768,-32768,   468,-32768,  2136,-32768,   183,   475,   473,
--32768,-32768,   473,   183,   183,-32768,   526,-32768,-32768,-32768,
--32768,-32768,   523,  1932,  2171,  2183,-32768,-32768,   442,-32768,
--32768,-32768,-32768,-32768,   482,-32768,-32768,   209,   490,-32768,
--32768,   177,    67,-32768,-32768,  1058,-32768,   576,   322,-32768,
--32768,-32768,   505,   451,-32768,  1343,    57,-32768,-32768,    57,
--32768,   183,-32768,   261,-32768,-32768,   229,   944,   526,-32768,
-  1163,-32768,  2065,-32768,-32768,  1932,-32768,-32768,-32768,    67,
-   183,   137,   242,   183,-32768,   242,   183,   628,-32768,-32768,
--32768,-32768,-32768,   530,-32768,    60,-32768,   387,-32768,-32768,
-  2136,-32768,-32768,  1343,-32768,-32768,-32768,  1932,   187,-32768,
-   276,   433,   672,   507,   508,   762,-32768,-32768,-32768,-32768,
--32768,   549,   229,  1932,-32768,   550,  2136,   514,   516,-32768,
-  1932,   250,   188,   609,-32768,  1540,-32768,-32768,-32768,   216,
--32768,-32768,-32768,   309,   325,   155,   387,-32768,-32768,  1163,
--32768,  1642,  1932,-32768,-32768,   229,-32768,-32768,-32768,-32768,
-   520,-32768,-32768,-32768,-32768,  1621,   564,  2109,  1163,-32768,
--32768,  1223,-32768,  2065,-32768,   459,-32768,   459,-32768,-32768,
-   524,-32768,-32768,   532,-32768,  1642,-32768,-32768,  1701,   573,
-   555,-32768,-32768,   559,   561,  1932,   584,   546,   547,  1879,
-   201,   619,-32768,   590,   553,-32768,   567,   794,-32768,   611,
-  1026,    61,-32768,-32768,-32768,-32768,-32768,  1812,-32768,  1932,
-   600,   569,  1283,-32768,   302,-32768,-32768,-32768,  1932,   591,
--32768,  1932,  1932,  1565,-32768,-32768,-32768,-32768,   580,  1932,
-   588,-32768,   610,-32768,-32768,-32768,   530,-32768,    60,  1106,
--32768,-32768,-32768,-32768,  1932,-32768,  1283,  2091,-32768,  1283,
--32768,-32768,   596,  1932,   665,-32768,   868,   630,   612,  1932,
--32768,-32768,   632,-32768,  1932,   350,-32768,   227,   355,-32768,
-   955,-32768,-32768,  1701,   634,-32768,   675,  1283,-32768,-32768,
-   637,-32768,-32768,-32768,-32768,  2158,-32768,    39,-32768,   361,
--32768,   361,-32768,-32768,-32768,   641,-32768,-32768,-32768,-32768,
-  1932,-32768,-32768,   705,   642,-32768,-32768,-32768,-32768,  1283,
--32768,-32768,   646,-32768,   666,    47,   643,-32768,-32768,   322,
-   322,-32768,-32768,-32768,  1932,   705,   651,   705,-32768,-32768,
-  1932,   653,    48,-32768,-32768,   654,-32768,   466,   655,-32768,
-   288,   303,-32768,-32768,   657,   466,-32768,-32768,   288,   735,
-   740,-32768
+static const short yypact[] = {    93,
+   154,  1950,  1950,   173,-32768,-32768,-32768,-32768,   130,   130,
+   130,   143,   166,   215,-32768,-32768,-32768,-32768,-32768,   554,
+    87,   336,   318,-32768,   130,-32768,    80,    83,    88,-32768,
+  1950,-32768,-32768,-32768,   130,   130,   130,  1812,  1746,   228,
+-32768,-32768,   554,   111,-32768,   130,   387,-32768,   327,-32768,
+   554,   318,-32768,   130,-32768,-32768,   858,-32768,-32768,-32768,
+-32768,   257,-32768,   265,-32768,   283,-32768,-32768,-32768,-32768,
+-32768,-32768,  1812,  1812,   290,-32768,-32768,-32768,  1812,-32768,
+-32768,   567,-32768,-32768,  1812,   136,   235,-32768,  1839,  1866,
+-32768,  2137,  1030,   326,  1812,-32768,   292,    20,-32768,   296,
+  1483,   975,   428,    29,-32768,   327,   554,-32768,   323,-32768,
+  1288,   808,   130,-32768,-32768,   327,   114,-32768,   130,   626,
+   243,   253,   151,  1234,   858,-32768,-32768,-32768,-32768,   130,
+-32768,   332,   885,-32768,   334,-32768,   436,-32768,-32768,-32768,
+-32768,-32768,   328,   340,   347,   342,-32768,   359,  1812,   567,
+-32768,   567,-32768,  1812,  1812,   407,-32768,-32768,  1812,  1812,
+  1812,  1812,  1812,  1812,  1812,  1812,  1812,  1812,  1812,  1812,
+-32768,-32768,   290,   290,  1812,  1812,-32768,-32768,-32768,-32768,
+    20,  1301,-32768,   321,  1036,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,    92,-32768,   389,-32768,   253,-32768,-32768,
+   430,   253,   450,-32768,   963,-32768,   380,   395,-32768,   728,
+    49,-32768,-32768,   438,   130,   207,   141,-32768,   327,   327,
+-32768,   808,   130,-32768,  1354,-32768,-32768,   808,   130,-32768,
+-32768,   376,   408,  1954,  2122,-32768,   130,-32768,-32768,   455,
+   412,-32768,   436,-32768,-32768,-32768,   421,   442,  1635,-32768,
+  2137,   447,   448,  2137,  2137,  1812,   492,  1812,  1812,  1605,
+  2159,  1783,   463,  1237,   973,   973,   310,   310,-32768,-32768,
+-32768,-32768,-32768,   458,   235,   452,    48,   374,-32768,  1558,
+-32768,   461,-32768,  1367,-32768,  1036,   465,   975,  1893,    57,
+   469,-32768,-32768,-32768,  1452,-32768,   473,   159,-32768,-32768,
+   102,-32768,-32768,    52,-32768,-32768,-32768,  1533,-32768,   243,
+-32768,-32768,   243,-32768,   495,-32768,-32768,   471,-32768,-32768,
+-32768,-32768,-32768,-32768,   478,-32768,   486,  1812,   290,   488,
+   412,-32768,   533,-32768,-32768,-32768,-32768,-32768,   529,  1812,
+  2097,  2149,-32768,-32768,   321,-32768,-32768,-32768,-32768,-32768,
+   494,-32768,-32768,   104,   506,-32768,-32768,   348,   269,-32768,
+-32768,   638,-32768,   584,   347,-32768,-32768,-32768,   512,   192,
+-32768,  1223,    52,-32768,-32768,    52,   509,-32768,-32768,   509,
+   130,   130,  2137,-32768,   130,   514,   290,   746,   533,-32768,
+  1043,-32768,  1974,-32768,-32768,  1812,-32768,-32768,-32768,   269,
+   130,   149,   203,   130,-32768,   203,   130,  1558,-32768,-32768,
+-32768,-32768,-32768,   327,-32768,   554,-32768,   785,-32768,-32768,
+  2137,-32768,-32768,  1223,-32768,-32768,   294,-32768,-32768,-32768,
+   130,-32768,   161,   393,   666,   515,   516,   826,-32768,-32768,
+-32768,-32768,-32768,   559,   290,  1812,-32768,   564,  2137,   525,
+   524,-32768,  1812,   153,   402,   892,-32768,  1420,-32768,-32768,
+-32768,   487,-32768,-32768,-32768,   171,   179,    50,   785,-32768,
+-32768,  1043,-32768,-32768,  1812,    91,-32768,-32768,   290,-32768,
+-32768,-32768,-32768,   528,-32768,-32768,-32768,-32768,  1501,   573,
+  1998,  1043,-32768,-32768,  1103,-32768,  1974,-32768,   424,-32768,
+   424,-32768,-32768,   531,-32768,-32768,   534,  2047,  1812,-32768,
+-32768,-32768,  1581,   580,   560,-32768,-32768,   561,   565,  1812,
+   590,   557,   558,  1759,   144,   630,-32768,   603,   578,-32768,
+   581,  1982,-32768,   641,   906,    56,-32768,-32768,-32768,-32768,
+-32768,  1692,-32768,  1812,   623,   583,  1163,-32768,   781,-32768,
+-32768,-32768,  2047,  1812,   605,-32768,  1812,  1812,  2070,-32768,
+-32768,-32768,-32768,   588,  1812,   599,-32768,   643,-32768,-32768,
+-32768,   327,-32768,   554,   986,-32768,-32768,-32768,-32768,  1812,
+-32768,  1163,  2021,-32768,  1163,-32768,-32768,-32768,   606,  1812,
+   687,-32768,   422,   628,   634,  1812,-32768,-32768,   636,-32768,
+  1812,   223,-32768,   349,   234,-32768,  1001,-32768,-32768,  1581,
+   635,-32768,   681,  1163,-32768,-32768,   642,-32768,-32768,-32768,
+-32768,  2119,-32768,    36,-32768,   808,-32768,   808,-32768,-32768,
+-32768,   645,-32768,-32768,-32768,-32768,  1812,-32768,-32768,   710,
+   646,-32768,-32768,-32768,-32768,  1163,-32768,-32768,   647,-32768,
+   667,    43,   650,-32768,-32768,   347,   347,-32768,-32768,-32768,
+  1812,   710,   651,   710,-32768,-32768,  1812,   660,    61,-32768,
+-32768,   661,-32768,   450,   662,-32768,   326,   168,-32768,-32768,
+   701,   450,-32768,-32768,   326,   727,   782,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,    65,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,    -5,-32768,   -40,   446,  -137,   424,-32768,-32768,
-   -55,-32768,   399,-32768,-32768,-32768,-32768,-32768,   190,-32768,
-  -191,  -207,   527,-32768,-32768,   314,-32768,    22,   -98,   215,
-     0,   700,-32768,   339,     7,    -7,   -15,   560,    11,  -149,
-  -366,   -45,  -107,   -52,-32768,-32768,-32768,   202,    14,    53,
--32768,   464,-32768,   337,-32768,  -378,-32768,  -409,-32768,-32768,
+-32768,-32768,-32768,    73,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   -24,-32768,   -38,   498,  -123,   432,-32768,-32768,
+   -10,-32768,   116,-32768,-32768,-32768,-32768,-32768,   224,-32768,
+  -178,  -204,   572,-32768,-32768,   357,-32768,    27,   -93,   260,
+     8,   750,-32768,   390,    13,     1,   -72,   616,    19,  -151,
+  -386,   -49,  -101,   -63,-32768,-32768,-32768,   -48,    11,   105,
+-32768,   518,-32768,   384,-32768,  -376,-32768,  -424,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-   -38,   -68,  -298,   -13,   -30,-32768,-32768,-32768,-32768,-32768,
-   528,    41,-32768,   620,   522,   391,   635,   537,     1,   -79,
-   -11,   -89,  -139,   344,-32768,-32768,  -180,-32768,-32768,-32768,
-   403,  -278,-32768,  -128,-32768,-32768,-32768,-32768,   -95,  -286,
-  -495,   358,-32768,   193,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   214,-32768,  -556,   147,-32768,   146,
--32768,   531,-32768,  -233,-32768,-32768,-32768,   449,  -195,-32768,
--32768,-32768,-32768,     9
+   -43,   -44,  -311,   -13,-32768,-32768,-32768,   -28,-32768,-32768,
+-32768,-32768,-32768,   485,   -23,-32768,   582,   496,   392,   589,
+   504,   -26,   -69,   -68,   -98,  -145,   388,-32768,-32768,  -143,
+-32768,-32768,-32768,   449,  -230,-32768,  -118,-32768,-32768,-32768,
+-32768,  -100,  -334,  -454,   401,-32768,   232,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,   244,-32768,  -542,
+   194,-32768,   197,-32768,   575,-32768,  -234,-32768,-32768,-32768,
+   500,  -189,-32768,-32768,-32768,-32768,     6
 };
 
 
-#define        YYLAST          2245
-
-
-static const short yytable[] = {    87,
-    98,    21,    21,    35,    37,    39,    49,   124,    22,    22,
-    28,    28,   121,   232,    54,    25,    25,   222,   148,   149,
-   296,   229,   198,   320,   151,   254,   225,    21,   132,   325,
-   156,   105,    55,    48,    22,    56,    28,   322,   311,   125,
-   187,    25,    51,    53,   291,   384,   281,   464,   226,   141,
-   284,   100,   351,   143,   209,   585,   134,   369,    48,  -102,
-   186,   574,    43,   402,   120,    -1,    48,    29,   312,    43,
-   150,   216,   131,   144,   643,   100,   634,    60,    67,    32,
-    33,    -2,   544,   155,   656,   668,    32,    33,    40,    14,
-   207,   504,    61,   100,   211,   132,    14,   202,   423,   283,
-    60,   425,   232,   105,   666,    32,    33,   623,    60,    44,
-   542,   106,   197,    41,   635,   107,   405,    48,    45,   575,
-   120,    48,   657,   669,   222,   400,   191,   360,   141,   638,
-   120,   134,   143,   582,   642,   222,   644,    42,   252,   131,
-  -102,   222,   291,   349,   282,   653,    57,   332,    58,   332,
-   288,   486,   144,   197,   100,   498,   316,   281,    34,   258,
-   319,   259,   243,   132,   245,    36,    14,   606,   293,   100,
-   609,   100,    60,   294,   463,   318,   278,   279,   677,    43,
-   398,   110,   227,    60,    38,   247,   228,   249,   235,    50,
-    43,   398,   107,   324,   206,   455,   456,   509,   628,   340,
-   596,    43,   115,    32,    33,   206,    14,   437,   111,   112,
-   189,   207,    14,   111,   112,   211,    14,    14,    43,   190,
-   191,   343,   206,   103,   473,   208,   399,    25,    14,   367,
-   652,    32,    33,   134,   368,   400,   191,   399,   120,    43,
-   412,   120,   120,   206,    63,    14,   400,   191,   116,   355,
-   560,    66,   478,   110,    68,   483,  -162,   117,   452,   499,
-   284,   132,  -162,    43,   115,   405,    14,   139,   469,   138,
-     5,    14,     7,    97,   400,   191,    60,   146,     9,    10,
-    11,   157,   404,   407,   395,   604,    44,   332,   202,   396,
-    14,   158,   438,    54,    13,    45,   186,    15,   428,    25,
-   111,   112,   454,  -162,    43,   398,   374,  -162,   206,   453,
-   116,    55,   212,   349,    56,   460,   206,   469,   188,   117,
-   349,   362,   363,   217,   375,   495,  -105,  -105,  -105,  -105,
-   158,    14,  -105,   365,  -105,  -105,  -105,   366,   438,   242,
-   484,   233,   234,   140,  -253,   429,   195,   248,   403,   406,
-  -105,   497,   475,   238,   289,   290,   476,   529,   317,   189,
-    45,   217,    30,    31,  -316,  -316,  -316,  -316,   190,   191,
-   465,   350,  -316,  -316,  -316,   401,    48,   239,   675,    25,
-   529,   430,   244,   676,   417,   502,   105,   132,  -316,   228,
-   250,   468,   128,   129,   414,   416,   251,   120,     9,    10,
-    11,   503,   466,   252,  -105,   107,   255,   545,     5,     6,
-     7,     8,   636,    48,   637,   501,     9,    10,    11,   180,
-   181,    25,   182,   183,   184,   185,   619,   120,   256,    48,
-   228,   621,    13,   321,    14,   107,   132,   487,   -82,   207,
-   211,     5,  -101,     7,   196,   525,   207,   233,   234,     9,
-    10,    11,   295,    60,     5,    57,     7,    58,   133,   308,
-    32,    33,     9,    10,    11,    13,   401,   401,   525,   110,
-   507,   111,   112,    48,    71,   529,   671,   328,    13,   559,
-   524,    52,   187,   309,   679,   527,   334,   189,  -259,  -259,
-   232,   315,   528,   335,   538,   336,   190,   191,   338,    25,
-   289,   290,   341,   524,   177,   178,   179,   342,   583,   309,
-   477,   586,   589,   160,   162,   561,   344,   455,   456,   593,
-    54,   659,   660,   599,   222,   347,   222,   415,   598,   381,
-   348,   207,    43,   115,   605,   385,   386,   527,    55,   352,
-   356,    56,   361,   611,   528,   364,   538,   378,   567,   569,
-   379,    25,   382,   383,   618,   601,   257,   387,   401,    14,
-   392,   260,   261,   525,   394,   397,   266,   267,   268,   269,
-   270,   271,   272,   273,   274,   275,   276,   277,   411,   116,
-   120,   413,    48,   426,  -295,   482,   -31,   490,   117,   109,
-   586,   491,   -27,   -27,   -27,   -27,   492,   508,   524,   539,
-   -27,   -27,   -27,   457,   458,   459,   546,   461,   462,   547,
-   -32,    43,   398,   549,   662,   110,   -27,   552,  -162,   553,
-   586,   555,   556,   557,  -162,   562,   570,   564,   297,   565,
-   474,     5,     6,     7,     8,   579,   326,   299,    14,     9,
-    10,    11,     5,   566,     7,   196,   581,   111,   112,   584,
-     9,    10,    11,   128,   129,    13,   592,    14,   497,     9,
-    10,    11,   345,   346,   594,  -162,    13,    45,   595,  -162,
-   -27,   610,   217,   505,  -114,  -114,  -114,  -114,  -114,  -114,
-  -114,   612,  -114,  -114,  -114,  -114,  -114,   615,  -114,  -114,
-  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
-  -114,  -114,  -114,  -376,  -114,  -114,   614,   548,   617,   626,
-   627,  -114,   629,   645,  -114,  -261,  -261,   639,   649,  -114,
-  -114,  -114,   654,   658,   655,  -114,  -114,   664,   667,   670,
-  -114,   673,   230,   678,   681,   -19,   -19,   -19,   -19,   682,
-   359,   587,   393,   -19,   -19,   -19,   313,   479,  -114,  -114,
-  -114,  -114,   576,  -114,   126,   467,   292,   357,   110,   -19,
-   471,  -162,   217,   246,  -316,  -316,   333,  -162,   329,  -316,
-  -316,   241,  -316,   427,   421,   327,  -316,   480,  -316,  -316,
-  -316,  -316,  -316,  -316,  -316,  -316,  -316,  -316,  -316,   447,
-  -316,   440,  -316,   485,  -316,  -316,   624,     5,     6,     7,
-     8,  -316,   663,   665,  -316,     9,    10,    11,  -162,  -316,
-  -316,  -316,  -162,   -19,   410,  -316,  -316,   625,     0,   353,
-  -316,    13,   421,    14,   139,     0,   472,     5,     0,     7,
-    97,     0,     0,     0,     0,     9,    10,    11,  -316,  -291,
-  -316,  -316,   488,  -316,    32,    33,   199,   200,   201,   494,
-   152,    13,    69,     5,    15,     7,    97,    70,    71,     0,
-    72,     9,    10,    11,     5,     6,     7,     8,   447,     0,
-   568,   506,     9,    10,    11,     0,     0,    13,    73,     0,
-    15,     0,    74,    75,     0,     0,     0,   447,    13,    76,
-   447,     0,    77,     0,     0,     0,     0,    78,    79,    80,
-     0,     0,     0,    81,    82,     0,     0,   297,    83,   298,
-     5,     6,     7,     8,   554,     0,   299,     0,     9,    10,
-    11,   180,   181,     0,   182,   183,   184,   185,    84,    85,
-     0,   -91,     0,     0,    13,     0,    14,     0,   578,     0,
-     0,   447,     0,   613,   432,     0,  -316,  -316,  -316,  -316,
-  -316,  -316,  -316,     0,  -316,  -316,  -316,  -316,  -316,     0,
-  -316,  -316,  -316,  -316,  -316,  -316,  -316,  -316,  -316,  -316,
-  -316,  -316,  -316,  -316,  -316,   447,  -316,  -316,   447,     0,
-     0,   110,  -376,  -316,  -162,     0,  -316,     0,   616,     0,
-  -162,  -316,  -316,  -316,     0,     0,     0,  -316,  -316,     0,
-     0,     0,  -316,     0,     0,     0,   447,   175,   176,   177,
-   178,   179,     0,   111,   112,     0,     0,     0,     0,     0,
-  -316,     0,  -316,  -316,     0,  -316,   571,     0,  -316,  -316,
-     0,  -162,     0,  -316,  -316,  -162,  -316,     0,   447,     0,
-  -316,     0,  -316,  -316,  -316,  -316,  -316,  -316,  -316,  -316,
-  -316,  -316,  -316,     0,  -316,     0,  -316,     0,  -316,  -316,
-     0,     5,     6,     7,     8,  -316,     0,   409,  -316,     9,
-    10,    11,     0,  -316,  -316,  -316,     0,     0,     0,  -316,
-  -316,     0,     0,     0,  -316,    13,     0,    14,     0,     0,
-     0,     5,     6,     7,     8,     0,     0,     0,     0,     9,
-    10,    11,  -316,     0,  -316,  -316,   602,  -316,  -326,  -326,
-     0,     0,     0,  -326,  -326,    13,  -326,    14,     0,     0,
-  -326,     0,  -326,  -326,  -326,  -326,  -326,  -326,  -326,  -326,
-  -326,  -326,  -326,     0,  -326,     0,  -326,     0,  -326,  -326,
-     0,     0,   127,   128,   129,  -326,     0,     0,  -326,     9,
-    10,    11,     0,  -326,  -326,  -326,     0,     0,     0,  -326,
-  -326,     0,     0,   441,  -326,   442,    33,    14,     0,     0,
-    70,    71,     0,    72,   172,   173,   174,   175,   176,   177,
-   178,   179,  -326,     0,  -326,  -326,     0,  -326,     0,     0,
-     0,    73,     0,    15,     0,    74,    75,     0,     0,     0,
-     0,     0,    76,     0,     0,    77,     0,     0,     0,     0,
-    78,    79,    80,     0,     0,     0,    81,    82,     0,     0,
-   443,    83,   444,   441,     0,   442,    33,     0,     0,     0,
-    70,    71,     0,    72,     0,     0,     0,     0,     0,     0,
-  -190,    84,    85,     0,   445,     0,     0,     0,     0,     0,
-     0,    73,     0,    15,     0,    74,    75,     0,     0,     0,
-     0,     0,    76,     0,     0,    77,     0,     0,     0,     0,
-    78,    79,    80,     0,     0,     0,    81,    82,     0,     0,
-   443,    83,   444,   441,     0,   442,    33,     0,     0,     0,
-    70,    71,     0,    72,     0,     0,     0,     0,     0,     0,
-  -250,    84,    85,     0,   445,     0,     0,     0,     0,     0,
-     0,    73,     0,    15,     0,    74,    75,     0,     0,     0,
-     0,     0,    76,     0,     0,    77,     0,     0,     0,     0,
-    78,    79,    80,     0,     0,     0,    81,    82,     0,     0,
-   443,    83,   444,   419,     0,    69,     0,     0,     0,     0,
-    70,    71,     0,    72,   236,     0,     0,   -23,   -23,   -23,
-   -23,    84,    85,     0,   445,   -23,   -23,   -23,     0,     0,
-     0,    73,     0,    15,     0,    74,    75,     0,     0,     0,
-   110,   -23,    76,  -162,     0,    77,     0,     0,     0,  -162,
-    78,    79,    80,     0,     0,     0,    81,    82,     0,     0,
-     0,    83,   173,   174,   175,   176,   177,   178,   179,     0,
-    69,     0,   111,   112,     0,    70,    71,     0,    72,     0,
-     0,    84,    85,    69,   420,     0,     0,     0,    70,    71,
-  -162,    72,     0,     0,  -162,   -23,    73,     0,    15,     0,
-    74,    75,     0,     0,     0,     0,     0,    76,     0,    73,
-    77,    15,     0,    74,    75,    78,    79,    80,     0,     0,
-    76,    81,    82,    77,     0,     0,    83,     0,    78,    79,
-    80,     0,     0,     0,    81,    82,    69,     0,     0,    83,
-     0,    70,    71,     0,    72,     0,    84,    85,     0,    69,
-   215,     0,     0,     0,    70,    71,     0,    72,     0,    84,
-    85,     0,    73,   287,    15,     0,    74,    75,     0,     0,
-     0,     0,     0,    76,     0,    73,    77,    15,     0,    74,
-    75,    78,    79,    80,     0,     0,    76,    81,    82,    77,
-     0,     0,    83,     0,    78,    79,    80,     0,     0,     0,
-    81,    82,    69,     0,     0,    83,     0,    70,    71,     0,
-    72,     0,    84,    85,     0,     0,   323,     0,     0,     0,
-     0,     0,     0,     0,     0,    84,    85,     0,    73,   354,
-    15,     0,    74,    75,   590,     0,     0,     0,     0,    76,
-     0,     0,    77,     0,     0,     0,     0,    78,    79,    80,
-     0,     0,     0,    81,    82,     0,     0,     0,    83,   163,
-   164,   165,   591,   166,   167,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,   177,   178,   179,     0,    84,    85,
-     0,     0,   500,   442,   510,     6,     7,     8,    70,    71,
-     0,    72,     9,    10,    11,   511,     0,   512,   513,   514,
-   515,   516,   517,   518,   519,   520,   521,   522,    13,    73,
-    14,    15,     0,    74,    75,     0,     0,     0,     0,     0,
-    76,     0,     0,    77,     0,     0,     0,     0,    78,    79,
-    80,    14,     0,     0,    81,    82,   163,   164,   165,    83,
-   166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
-   176,   177,   178,   179,     0,     0,     0,   523,     0,    84,
-    85,     0,   252,   442,    33,     0,     0,     0,    70,    71,
-     0,    72,     0,     0,     0,   511,     0,   512,   513,   514,
-   515,   516,   517,   518,   519,   520,   521,   522,     0,    73,
-     0,    15,     0,    74,    75,     0,     0,     0,     0,     0,
-    76,     0,     0,    77,     0,     0,     0,     0,    78,    79,
-    80,     0,     0,     0,    81,    82,     0,    69,     0,    83,
-     0,     0,    70,    71,     0,    72,   169,   170,   171,   172,
-   173,   174,   175,   176,   177,   178,   179,   523,     0,    84,
-    85,     0,   252,    73,     0,    15,     0,    74,    75,     0,
-     0,     0,     0,     0,    76,     0,     0,    77,     0,     0,
-     0,     0,    78,    79,    80,     0,     0,     0,    81,    82,
-     0,     0,     0,    83,    69,     5,     6,     7,     8,    70,
-    71,     0,    72,     9,    10,    11,     0,     0,     0,     0,
-     0,     0,     0,    84,    85,     0,   339,     0,     0,    13,
-    73,    14,    15,     0,    74,    75,     0,     0,     0,     0,
-     0,    76,     0,     0,    77,     0,     0,     0,     0,    78,
-    79,    80,     0,     0,     0,    81,    82,     0,    69,     5,
-    83,     7,    97,    70,    71,     0,    72,     9,    10,    11,
-     0,    69,     0,     0,     0,     0,    70,    71,     0,    72,
-    84,    85,     0,    13,    73,     0,    15,     0,    74,    75,
-     0,     0,     0,     0,     0,    76,     0,    73,    77,    15,
-     0,    74,    75,    78,    79,    80,     0,     0,    76,    81,
-    82,    77,     0,     0,    83,     0,    78,    79,    80,     0,
-     0,     0,    81,    82,    69,     0,     0,    83,     0,    70,
-    71,     0,    72,     0,    84,    85,   171,   172,   173,   174,
-   175,   176,   177,   178,   179,   558,     0,    84,    85,     0,
-    73,    69,    15,     0,    74,    75,    70,    71,     0,    72,
-     0,    76,     0,     0,    77,     0,     0,     0,     0,    78,
-    79,    80,     0,     0,     0,    81,    82,    73,    69,    15,
-    83,    74,    75,    70,    71,     0,    72,     0,    76,     0,
-     0,    77,     0,     0,     0,     0,    78,    79,    80,     0,
-    84,    85,    81,    82,    73,   358,    15,   159,    74,    75,
-    70,    71,     0,    72,     0,    76,     0,     0,    77,     0,
-     0,     0,     0,    78,    79,    80,     0,    84,    85,    81,
-    82,    73,     0,    15,   161,    74,    75,     0,     0,     0,
-     0,     0,    76,     0,     0,    77,     0,     0,     0,     0,
-    78,    79,    80,     0,    84,    85,    81,    82,     0,     0,
-     4,    83,  -118,     5,     6,     7,     8,     0,     0,     0,
-     0,     9,    10,    11,     0,     0,     0,     0,     0,     0,
-     0,    84,    85,     0,     0,     0,    12,    13,     0,    14,
-    15,   165,     0,   166,   167,   168,   169,   170,   171,   172,
-   173,   174,   175,   176,   177,   178,   179,     0,   540,  -118,
-     0,     0,     0,     0,     0,   163,   164,   165,  -118,   166,
-   167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
-   177,   178,   179,   163,   164,   165,    16,   166,   167,   168,
-   169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
-   179,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   163,   164,   165,   607,   166,   167,   168,   169,   170,   171,
-   172,   173,   174,   175,   176,   177,   178,   179,     0,     0,
-     0,   541,   163,   164,   165,   633,   166,   167,   168,   169,
-   170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
-   167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
-   177,   178,   179,   168,   169,   170,   171,   172,   173,   174,
-   175,   176,   177,   178,   179,   170,   171,   172,   173,   174,
-   175,   176,   177,   178,   179
+#define        YYLAST          2211
+
+
+static const short yytable[] = {    86,
+    97,   123,    62,    64,    66,   120,    47,    31,    31,    21,
+    21,   213,    25,    25,    22,    22,   216,   314,   223,    35,
+    36,    37,    52,   319,   290,   220,   248,   466,   131,   104,
+    46,   189,    54,   285,   316,   278,    31,   124,    21,   135,
+    53,    25,   200,    22,   427,   347,   402,    49,    51,  -102,
+   141,   275,   365,    46,   197,   146,   579,    99,   306,   119,
+   232,    46,   139,   140,   234,   177,   305,   130,   142,   180,
+   548,   217,   207,   640,   147,    32,   109,   193,   181,   182,
+   662,   277,    59,    60,   178,    59,    60,   110,   111,   198,
+    59,    60,    -1,   202,   649,   507,   131,   180,   674,   223,
+    99,   591,   104,    67,   199,   489,   181,   182,   110,   111,
+   213,   641,   240,    46,   580,   546,   119,    46,   663,   188,
+    14,   213,   587,   252,   672,   253,   119,   213,   509,    58,
+  -102,   345,   356,   246,   285,   130,   675,   276,   235,    58,
+    58,    58,   423,   282,   501,   425,    59,    60,   272,   273,
+    58,    99,   513,    -2,   629,   312,   131,   612,    58,    14,
+   615,    61,   232,    48,    63,   275,   234,   287,    99,    65,
+    99,   310,   288,   465,   315,   313,   644,   363,    14,   395,
+   320,   648,   364,   650,   396,   602,   318,   105,   326,   634,
+   218,   106,   659,   565,   219,     5,    55,     7,    56,   224,
+   225,    38,   198,     9,    10,    11,   202,   457,   458,    41,
+   114,   148,   325,   197,   327,    25,   311,   339,   240,    13,
+   379,   658,   379,    58,    39,   683,   119,   226,   498,   119,
+   119,   106,    14,   149,    58,   361,    14,   478,   336,   362,
+   235,   479,   610,   681,   439,   351,   412,   505,   682,    33,
+    34,   219,   188,    99,   278,   506,   115,   131,   321,   106,
+   323,   110,   111,   193,   251,   116,   471,   502,   415,   254,
+   255,    41,   454,    40,   260,   261,   262,   263,   264,   265,
+   266,   267,   268,   269,   270,   271,   102,   440,   404,   407,
+    25,   481,    59,    60,   486,    52,    41,   114,    14,   625,
+   455,   224,   225,   219,   240,    54,   462,   456,   370,   345,
+   627,   110,   111,    53,   106,   149,   345,   471,   405,    58,
+   358,   359,    55,    14,    56,   379,   371,   400,   182,    41,
+   114,   475,   428,   429,   177,   440,   430,   487,   134,     5,
+     6,     7,     8,   115,   403,   406,   136,     9,    10,    11,
+    41,   398,   116,   459,   460,   461,    14,   463,   464,   168,
+   169,   170,   432,    13,   138,    14,   467,   179,   401,    46,
+   533,   186,    25,   341,   342,   109,   115,    14,  -162,   283,
+   284,   203,   477,   476,  -162,   116,   104,   108,   417,   131,
+   -27,   -27,   -27,   -27,   533,   414,   416,   399,   -27,   -27,
+   -27,   549,   468,   244,    41,   398,   400,   182,   197,   229,
+    46,   237,    50,   109,   -27,   245,  -162,   249,    25,   504,
+   490,   642,  -162,   643,   119,  -162,    46,   510,   246,  -162,
+    41,    14,   283,   284,   197,   250,   239,   119,    59,    60,
+   131,   198,   202,   383,   -82,   110,   111,   289,   198,   346,
+   529,   399,  -265,  -265,   511,   393,   109,    14,    70,   552,
+   400,   182,   302,  -162,   528,   401,   401,  -162,   -27,   303,
+   480,   303,    46,   309,   529,   171,   172,    42,   173,   174,
+   175,   176,   457,   458,   322,   564,    43,   421,   528,    41,
+   328,   533,   329,   197,   542,   677,   531,   619,   332,    25,
+   566,   532,   223,   685,   588,    58,   449,   163,   164,   165,
+   166,   167,   168,   169,   170,   589,    14,   334,   592,   595,
+   151,   153,   337,   338,   605,   213,   599,   213,   604,   340,
+   374,   178,    52,   343,   344,   198,   405,   665,   666,   421,
+   352,   611,    54,   348,   357,   400,   182,   542,   360,   531,
+    53,   617,    25,   375,   532,   381,    41,   572,   574,   401,
+   607,   491,   624,   382,   387,   385,   392,   143,   497,    68,
+     5,   529,     7,    96,    69,    70,   394,    71,     9,    10,
+    11,   397,   119,    14,    46,   528,   411,   449,   413,   426,
+   508,   431,  -301,   485,    13,    72,   -31,    15,   592,    73,
+    74,   493,   494,    42,   495,   512,    75,   449,   543,    76,
+   449,   551,    43,   550,    77,    78,    79,   -32,   554,   557,
+    80,    81,   668,   558,   553,    82,   221,   560,   592,   -19,
+   -19,   -19,   -19,   561,   562,   559,   567,   -19,   -19,   -19,
+   569,     5,     6,     7,     8,    83,    84,   409,   -91,     9,
+    10,    11,   109,   -19,   570,  -162,   575,   571,   584,   583,
+   586,  -162,   449,   590,   598,    13,   208,    14,  -114,  -114,
+  -114,  -114,  -114,  -114,  -114,   600,  -114,  -114,  -114,  -114,
+  -114,   616,  -114,  -114,  -114,  -114,  -114,  -114,  -114,  -114,
+  -114,  -114,  -114,  -114,  -114,  -114,  -114,   449,  -114,  -114,
+   449,   601,  -162,   618,   620,  -114,  -162,   -19,  -114,   621,
+   632,   622,   623,  -114,  -114,  -114,   633,   635,   651,  -114,
+  -114,   645,   655,   660,  -114,   661,   687,   670,   208,   449,
+   664,  -105,  -105,  -105,  -105,   673,   676,  -105,   679,  -105,
+  -105,  -105,  -114,  -114,  -114,  -114,   434,  -114,  -322,  -322,
+  -322,  -322,  -322,  -322,  -322,  -105,  -322,  -322,  -322,  -322,
+  -322,   449,  -322,  -322,  -322,  -322,  -322,  -322,  -322,  -322,
+  -322,  -322,  -322,  -322,  -322,  -322,  -322,   684,  -322,  -322,
+   593,   688,   307,    41,   398,  -322,   355,   197,  -322,   470,
+   127,   128,   482,  -322,  -322,  -322,     9,    10,    11,  -322,
+  -322,   581,   125,   286,  -322,   353,   469,   473,   208,  -105,
+    14,  -322,  -322,  -322,  -322,   386,   324,   474,   380,  -322,
+  -322,  -322,  -322,   483,  -322,  -322,   208,  -322,  -322,  -322,
+   500,   331,   384,  -322,  -322,  -322,  -322,   442,   488,    43,
+  -322,   630,  -322,  -322,  -322,  -322,  -322,  -322,  -322,  -322,
+  -322,  -322,  -322,   631,  -322,   669,  -322,   349,  -322,  -322,
+   671,   410,   126,   127,   128,  -322,     0,     0,  -322,     9,
+    10,    11,     0,  -322,  -322,  -322,     0,     0,     0,  -322,
+  -322,     0,     0,     0,  -322,   230,     0,    14,     5,  -101,
+     7,    96,     0,     0,    41,   398,     9,    10,    11,     0,
+     0,     0,  -322,  -297,  -322,  -322,   576,  -322,  -322,  -322,
+     0,     0,    13,  -322,  -322,    15,  -322,     0,     0,     0,
+  -322,    14,  -322,  -322,  -322,  -322,  -322,  -322,  -322,  -322,
+  -322,  -322,  -322,     0,  -322,     0,  -322,     0,  -322,  -322,
+     0,   500,     0,     0,     0,  -322,     0,     0,  -322,     0,
+    43,     0,     0,  -322,  -322,  -322,     0,     0,     0,  -322,
+  -322,   231,  -259,   291,  -322,   292,     5,     6,     7,     8,
+     0,     0,   293,     0,     9,    10,    11,    59,    60,   190,
+   191,   192,  -322,     0,  -322,  -322,   608,  -322,  -332,  -332,
+    13,     0,    14,  -332,  -332,     0,  -332,     0,     0,     0,
+  -332,     0,  -332,  -332,  -332,  -332,  -332,  -332,  -332,  -332,
+  -332,  -332,  -332,     0,  -332,     0,  -332,     0,  -332,  -332,
+   166,   167,   168,   169,   170,  -332,     0,   109,  -332,     0,
+  -162,     0,     0,  -332,  -332,  -332,  -162,     0,  -382,  -332,
+  -332,   127,   128,   443,  -332,   444,    60,     9,    10,    11,
+    69,    70,     0,    71,     0,     0,     0,     0,     0,   110,
+   111,     0,  -332,     0,  -332,  -332,     0,  -332,     0,     0,
+     0,    72,     0,    15,     0,    73,    74,  -162,     0,     0,
+     0,  -162,    75,   171,   172,    76,   173,   174,   175,   176,
+    77,    78,    79,     0,     0,     0,    80,    81,     0,     0,
+   445,    82,   446,   443,     0,   444,    60,     0,     0,     0,
+    69,    70,     0,    71,     0,     0,     0,     0,     0,     0,
+  -190,    83,    84,     0,   447,     0,     0,     0,     0,     0,
+     0,    72,     0,    15,     0,    73,    74,     0,     0,     0,
+     0,     0,    75,     0,     0,    76,     0,     0,     0,     0,
+    77,    78,    79,     0,     0,     0,    80,    81,     0,     0,
+   445,    82,   446,   443,     0,   444,    60,     0,     0,     0,
+    69,    70,     0,    71,     0,     0,     0,     0,     0,     0,
+  -256,    83,    84,     0,   447,     0,     0,     0,     0,     0,
+     0,    72,     0,    15,     0,    73,    74,     0,     0,     0,
+     0,     0,    75,     0,     0,    76,     0,     0,     0,     0,
+    77,    78,    79,     0,     0,     0,    80,    81,     0,     0,
+   445,    82,   446,   419,     0,    68,     0,     0,     0,     0,
+    69,    70,     0,    71,   227,     0,     0,   -23,   -23,   -23,
+   -23,    83,    84,     0,   447,   -23,   -23,   -23,     0,     0,
+     0,    72,     0,    15,     0,    73,    74,     0,     0,     0,
+   109,   -23,    75,  -162,     0,    76,     0,     0,     0,  -162,
+    77,    78,    79,     0,     0,     0,    80,    81,     0,     0,
+     0,    82,   164,   165,   166,   167,   168,   169,   170,     0,
+    68,     0,   110,   111,     0,    69,    70,     0,    71,     0,
+     0,    83,    84,    68,   420,     0,     0,     0,    69,    70,
+  -162,    71,     0,     0,  -162,   -23,    72,     0,    15,     0,
+    73,    74,     0,     0,     0,     0,     0,    75,     0,    72,
+    76,    15,     0,    73,    74,    77,    78,    79,     0,     0,
+    75,    80,    81,    76,     0,     0,    82,     0,    77,    78,
+    79,     0,     0,     0,    80,    81,    68,     0,     0,    82,
+     0,    69,    70,     0,    71,     0,    83,    84,     0,    68,
+   206,     0,     0,     0,    69,    70,     0,    71,     0,    83,
+    84,     0,    72,   281,    15,     0,    73,    74,     0,     0,
+     0,     0,     0,    75,     0,    72,    76,    15,     0,    73,
+    74,    77,    78,    79,     0,     0,    75,    80,    81,    76,
+     0,     0,    82,     0,    77,    78,    79,     0,     0,     0,
+    80,    81,    68,     0,     0,    82,     0,    69,    70,     0,
+    71,     0,    83,    84,     0,     0,   317,     0,     0,     0,
+     0,     0,     0,     0,     0,    83,    84,     0,    72,   350,
+    15,     0,    73,    74,     0,     5,     6,     7,     8,    75,
+     0,     0,    76,     9,    10,    11,     0,    77,    78,    79,
+     0,     0,     0,    80,    81,     0,     0,     0,    82,    13,
+     0,    14,     0,     0,     0,     0,     5,     0,     7,   187,
+     0,     0,     0,     0,     9,    10,    11,     0,    83,    84,
+     0,     0,   503,   444,   514,     6,     7,     8,    69,    70,
+    13,    71,     9,    10,    11,   515,     0,   516,   517,   518,
+   519,   520,   521,   522,   523,   524,   525,   526,    13,    72,
+    14,    15,   180,    73,    74,     0,     5,     6,     7,     8,
+    75,   181,   182,    76,     9,    10,    11,     0,    77,    78,
+    79,     0,     0,     0,    80,    81,     0,     0,   291,    82,
+    13,     5,     6,     7,     8,     0,     0,   293,     0,     9,
+    10,    11,     0,     0,     0,     0,     0,   527,     0,    83,
+    84,     0,   246,   444,    60,    13,     0,    14,    69,    70,
+     0,    71,     0,     0,     0,   515,     0,   516,   517,   518,
+   519,   520,   521,   522,   523,   524,   525,   526,     0,    72,
+     0,    15,     0,    73,    74,     0,     0,     0,     0,     0,
+    75,     0,     0,    76,     0,     0,     0,     0,    77,    78,
+    79,     0,     0,  -382,    80,    81,     0,    68,     0,    82,
+     0,     0,    69,    70,     0,    71,   160,   161,   162,   163,
+   164,   165,   166,   167,   168,   169,   170,   527,     0,    83,
+    84,     0,   246,    72,     0,    15,     0,    73,    74,     0,
+     0,     0,     0,     0,    75,     0,     0,    76,     0,     0,
+     0,     0,    77,    78,    79,     0,     0,     0,    80,    81,
+     0,     0,     0,    82,    68,     5,     6,     7,     8,    69,
+    70,     0,    71,     9,    10,    11,     0,     0,     0,     0,
+     0,     0,     0,    83,    84,     0,   335,     0,     0,    13,
+    72,    14,    15,     0,    73,    74,     0,     0,     0,     0,
+     0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
+    78,    79,     0,     0,     0,    80,    81,     0,    68,     5,
+    82,     7,    96,    69,    70,     0,    71,     9,    10,    11,
+     0,    68,     0,     0,     0,     0,    69,    70,     0,    71,
+    83,    84,     0,    13,    72,     0,    15,     0,    73,    74,
+     0,     0,     0,     0,     0,    75,     0,    72,    76,    15,
+     0,    73,    74,    77,    78,    79,     0,     0,    75,    80,
+    81,    76,     0,     0,    82,     0,    77,    78,    79,     0,
+     0,     0,    80,    81,    68,     0,     0,    82,     0,    69,
+    70,     0,    71,     0,    83,    84,   162,   163,   164,   165,
+   166,   167,   168,   169,   170,   563,     0,    83,    84,     0,
+    72,    68,    15,     0,    73,    74,    69,    70,     0,    71,
+     0,    75,     0,     0,    76,     0,     0,     0,     0,    77,
+    78,    79,     0,     0,     0,    80,    81,    72,    68,    15,
+    82,    73,    74,    69,    70,     0,    71,     0,    75,     0,
+     0,    76,     0,     0,     0,     0,    77,    78,    79,     0,
+    83,    84,    80,    81,    72,   354,    15,   150,    73,    74,
+    69,    70,     0,    71,     0,    75,     0,     0,    76,     0,
+     0,     0,     0,    77,    78,    79,     0,    83,    84,    80,
+    81,    72,     0,    15,   152,    73,    74,     0,     0,     0,
+     0,     0,    75,     0,     0,    76,     0,     0,     0,     0,
+    77,    78,    79,     0,    83,    84,    80,    81,     0,     0,
+     4,    82,  -118,     5,     6,     7,     8,     5,     0,     7,
+   187,     9,    10,    11,     0,     9,    10,    11,     0,     0,
+     0,    83,    84,     0,     0,     0,    12,    13,     0,    14,
+    15,    13,     0,     0,     0,     5,     6,     7,     8,     0,
+     0,     0,     0,     9,    10,    11,     0,     0,     0,  -118,
+     0,     0,     0,     0,     0,     0,     0,   544,  -118,    13,
+   156,    14,   157,   158,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,   168,   169,   170,    16,     0,     0,     0,
+  -267,  -267,   154,   155,   156,     0,   157,   158,   159,   160,
+   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
+     0,     0,     0,     0,     0,   154,   155,   156,   573,   157,
+   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+   168,   169,   170,     0,     0,     0,    14,     0,     0,   596,
+   545,   154,   155,   156,     0,   157,   158,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,   168,   169,   170,     0,
+     0,     0,     0,   613,   154,   155,   156,   597,   157,   158,
+   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
+   169,   170,   230,     0,     0,     5,     0,     7,    96,     0,
+     0,     0,     0,     9,    10,    11,   158,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,   168,   169,   170,    13,
+     0,     0,    15,   154,   155,   156,   639,   157,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+   170,   154,   155,   156,     0,   157,   158,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,   168,   169,   170,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+   170,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+   170
 };
 
-static const short yycheck[] = {    40,
-    41,     2,     3,     9,    10,    11,    20,    53,     2,     3,
-     2,     3,    51,   121,    22,     2,     3,   113,    74,    75,
-   212,   120,   102,   231,    80,   154,   116,    28,    59,   237,
-    86,    45,    22,    20,    28,    22,    28,   233,   219,    53,
-    96,    28,    21,    22,   194,   332,   184,   414,   117,    65,
-   190,    41,   286,    65,   107,   551,    62,     1,    45,     1,
-     9,     1,     3,   362,    51,     0,    53,     3,    10,     3,
-    76,   112,    59,    65,   631,    65,    38,    25,    38,     3,
-     4,     0,   492,    83,    38,    38,     3,     4,    59,    30,
-   104,   470,    28,    83,   108,   126,    30,   103,   377,   189,
-    48,   380,   210,   117,   661,     3,     4,   603,    56,    50,
-   489,    77,   102,    59,    76,    81,    50,   104,    59,    59,
-   107,   108,    76,    76,   220,    59,    60,    76,   144,   625,
-   117,   137,   144,   543,   630,   231,   632,    59,    82,   126,
-    82,   237,   292,   283,   185,   641,     5,   243,     7,   245,
-   191,   438,   144,   143,   144,   454,   225,   295,    82,   159,
-   229,   161,   141,   194,   143,    82,    30,   577,    76,   159,
-   580,   161,   120,    81,   408,   228,   182,   183,   674,     3,
-     4,    27,    77,   131,    82,   145,    81,   147,    77,    77,
-     3,     4,    81,   234,     7,    59,    60,   484,   608,   255,
-   567,     3,     4,     3,     4,     7,    30,   388,    59,    60,
-    50,   225,    30,    59,    60,   229,    30,    30,     3,    59,
-    60,   262,     7,    59,    38,    76,    50,   214,    30,    76,
-   640,     3,     4,   239,    81,    59,    60,    50,   225,     3,
-   369,   228,   229,     7,    82,    30,    59,    60,    50,   290,
-    50,    82,   433,    27,    82,   436,    30,    59,   396,   455,
-   400,   292,    36,     3,     4,    50,    30,     1,   418,    78,
-     4,    30,     6,     7,    59,    60,   224,    78,    12,    13,
-    14,    76,   362,   363,    76,   572,    50,   383,   294,    81,
-    30,    81,   388,   301,    28,    59,     9,    31,    38,   286,
-    59,    60,   401,    77,     3,     4,   314,    81,     7,   399,
-    50,   301,    59,   453,   301,   405,     7,   467,    76,    59,
-   460,   300,   301,     1,   314,    76,     4,     5,     6,     7,
-    81,    30,    10,    77,    12,    13,    14,    81,   434,   138,
-   436,    59,    60,    77,    78,   384,    76,   146,   362,   363,
-    28,    50,    77,    36,    59,    60,    81,   486,    76,    50,
-    59,     1,    77,    78,     4,     5,     6,     7,    59,    60,
-   416,    76,    12,    13,    14,   362,   363,    81,    76,   366,
-   509,   387,    77,    81,   374,    77,   400,   418,    28,    81,
-    76,     5,     6,     7,   373,   374,    76,   384,    12,    13,
-    14,    77,   416,    82,    82,    81,    76,   497,     4,     5,
-     6,     7,   620,   400,   622,   456,    12,    13,    14,    54,
-    55,   408,    57,    58,    59,    60,    77,   414,    77,   416,
-    81,    77,    28,   232,    30,    81,   467,   443,    38,   453,
-   454,     4,    82,     6,     7,   486,   460,    59,    60,    12,
-    13,    14,    59,   401,     4,     5,     6,     7,     1,    83,
-     3,     4,    12,    13,    14,    28,   453,   454,   509,    27,
-   476,    59,    60,   460,     9,   604,   668,    78,    28,   520,
-   486,    77,   538,    77,   676,   486,    78,    50,    77,    78,
-   598,    36,   486,    78,   486,    78,    59,    60,    76,   486,
-    59,    60,    76,   509,    50,    51,    52,    76,   549,    77,
-    78,   552,   553,    90,    91,   521,    38,    59,    60,   560,
-   528,   650,   651,   569,   620,    76,   622,    77,   567,   328,
-    83,   545,     3,     4,   575,   334,   335,   538,   528,    83,
-    76,   528,    76,   584,   538,    76,   538,    36,   527,   528,
-    83,   538,    78,    81,   595,   569,   158,    32,   545,    30,
-    38,   163,   164,   604,    83,    76,   168,   169,   170,   171,
-   172,   173,   174,   175,   176,   177,   178,   179,     3,    50,
-   567,    77,   569,   382,    78,    78,    38,    38,    59,     1,
-   631,    78,     4,     5,     6,     7,    81,    78,   604,    36,
-    12,    13,    14,   402,   403,   404,    83,   406,   407,    78,
-    38,     3,     4,    59,   655,    27,    28,    59,    30,    59,
-   661,    38,    77,    77,    36,     7,    16,    38,     1,    77,
-   429,     4,     5,     6,     7,    36,   238,    10,    30,    12,
-    13,    14,     4,    77,     6,     7,    78,    59,    60,    59,
-    12,    13,    14,     6,     7,    28,    77,    30,    50,    12,
-    13,    14,   264,   265,    77,    77,    28,    59,    59,    81,
-    82,    76,     1,   472,     3,     4,     5,     6,     7,     8,
-     9,    17,    11,    12,    13,    14,    15,    76,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-    29,    30,    31,    76,    33,    34,    77,   506,    77,    76,
-    36,    40,    76,     9,    43,    77,    78,    77,    77,    48,
-    49,    50,    77,    81,    59,    54,    55,    77,    76,    76,
-    59,    77,     1,    77,     0,     4,     5,     6,     7,     0,
-   295,   552,   344,    12,    13,    14,   220,   434,    77,    78,
-    79,    80,   538,    82,    55,   417,   197,   294,    27,    28,
-   424,    30,     1,   144,     3,     4,   245,    36,   241,     8,
-     9,   137,    11,   383,   376,   239,    15,   434,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,   391,
-    29,   389,    31,   436,    33,    34,   604,     4,     5,     6,
-     7,    40,   656,   658,    43,    12,    13,    14,    77,    48,
-    49,    50,    81,    82,   366,    54,    55,   604,    -1,   289,
-    59,    28,   424,    30,     1,    -1,   428,     4,    -1,     6,
-     7,    -1,    -1,    -1,    -1,    12,    13,    14,    77,    78,
-    79,    80,   444,    82,     3,     4,     5,     6,     7,   451,
-     1,    28,     3,     4,    31,     6,     7,     8,     9,    -1,
-    11,    12,    13,    14,     4,     5,     6,     7,   470,    -1,
-    77,   473,    12,    13,    14,    -1,    -1,    28,    29,    -1,
-    31,    -1,    33,    34,    -1,    -1,    -1,   489,    28,    40,
-   492,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    -1,    -1,     1,    59,     3,
-     4,     5,     6,     7,   516,    -1,    10,    -1,    12,    13,
-    14,    54,    55,    -1,    57,    58,    59,    60,    79,    80,
-    -1,    82,    -1,    -1,    28,    -1,    30,    -1,   540,    -1,
-    -1,   543,    -1,    76,     1,    -1,     3,     4,     5,     6,
-     7,     8,     9,    -1,    11,    12,    13,    14,    15,    -1,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,    30,    31,   577,    33,    34,   580,    -1,
-    -1,    27,    76,    40,    30,    -1,    43,    -1,   590,    -1,
-    36,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-    -1,    -1,    59,    -1,    -1,    -1,   608,    48,    49,    50,
-    51,    52,    -1,    59,    60,    -1,    -1,    -1,    -1,    -1,
-    77,    -1,    79,    80,    -1,    82,     1,    -1,     3,     4,
-    -1,    77,    -1,     8,     9,    81,    11,    -1,   640,    -1,
-    15,    -1,    17,    18,    19,    20,    21,    22,    23,    24,
-    25,    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,
-    -1,     4,     5,     6,     7,    40,    -1,    10,    43,    12,
+static const short yycheck[] = {    38,
+    39,    51,    27,    28,    29,    49,    20,     2,     3,     2,
+     3,   112,     2,     3,     2,     3,   115,   222,   120,     9,
+    10,    11,    22,   228,   203,   119,   145,   414,    57,    43,
+    20,   101,    22,   185,   224,   181,    31,    51,    31,    63,
+    22,    31,   106,    31,   379,   280,   358,    21,    22,     1,
+    75,   175,     1,    43,     7,    82,     1,    39,    10,    49,
+   133,    51,    73,    74,   133,     9,   210,    57,    79,    50,
+   495,   116,   111,    38,    85,     3,    27,   102,    59,    60,
+    38,   180,     3,     4,    95,     3,     4,    59,    60,   103,
+     3,     4,     0,   107,   637,   472,   125,    50,    38,   201,
+    82,   556,   116,    31,    76,   440,    59,    60,    59,    60,
+   211,    76,   137,   103,    59,   492,   106,   107,    76,   101,
+    30,   222,   547,   150,   667,   152,   116,   228,    38,    25,
+    82,   277,    76,    82,   286,   125,    76,   176,   133,    35,
+    36,    37,   373,   182,   456,   376,     3,     4,   173,   174,
+    46,   133,   487,     0,   609,   219,   185,   582,    54,    30,
+   585,    82,   235,    77,    82,   289,   235,    76,   150,    82,
+   152,   216,    81,   408,   223,   220,   631,    76,    30,    76,
+   229,   636,    81,   638,    81,   572,   225,    77,   237,   614,
+    77,    81,   647,    50,    81,     4,     5,     6,     7,    59,
+    60,    59,   216,    12,    13,    14,   220,    59,    60,     3,
+     4,    76,   236,     7,   238,   205,    76,   256,   243,    28,
+   321,   646,   323,   119,    59,   680,   216,    77,    76,   219,
+   220,    81,    30,    81,   130,    77,    30,    77,   249,    81,
+   235,    81,   577,    76,   388,   284,   365,    77,    81,    77,
+    78,    81,   234,   235,   400,    77,    50,   286,   232,    81,
+   234,    59,    60,   288,   149,    59,   418,   457,    77,   154,
+   155,     3,   396,    59,   159,   160,   161,   162,   163,   164,
+   165,   166,   167,   168,   169,   170,    59,   388,   358,   359,
+   280,   435,     3,     4,   438,   295,     3,     4,    30,    77,
+   399,    59,    60,    81,   329,   295,   405,   401,   308,   455,
+    77,    59,    60,   295,    81,    81,   462,   469,    50,   215,
+   294,   295,     5,    30,     7,   426,   308,    59,    60,     3,
+     4,    38,   381,   382,     9,   436,   385,   438,    82,     4,
+     5,     6,     7,    50,   358,   359,    82,    12,    13,    14,
+     3,     4,    59,   402,   403,   404,    30,   406,   407,    50,
+    51,    52,   387,    28,    82,    30,   416,    76,   358,   359,
+   489,    76,   362,   258,   259,    27,    50,    30,    30,    59,
+    60,    59,   431,   427,    36,    59,   400,     1,   370,   418,
+     4,     5,     6,     7,   513,   369,   370,    50,    12,    13,
+    14,   500,   416,    76,     3,     4,    59,    60,     7,    78,
+   400,    78,    77,    27,    28,    76,    30,    76,   408,   458,
+   445,   626,    36,   628,   414,    77,   416,   476,    82,    81,
+     3,    30,    59,    60,     7,    77,     1,   427,     3,     4,
+   469,   455,   456,   328,    38,    59,    60,    59,   462,    76,
+   489,    50,    77,    78,   479,   340,    27,    30,     9,   508,
+    59,    60,    83,    77,   489,   455,   456,    81,    82,    77,
+    78,    77,   462,    36,   513,    54,    55,    50,    57,    58,
+    59,    60,    59,    60,    77,   524,    59,   372,   513,     3,
+    36,   610,    81,     7,   489,   674,   489,    76,    78,   489,
+   525,   489,   604,   682,   553,   401,   391,    45,    46,    47,
+    48,    49,    50,    51,    52,   554,    30,    76,   557,   558,
+    89,    90,    76,    76,   574,   626,   565,   628,   572,    38,
+    36,   542,   532,    76,    83,   549,    50,   656,   657,   424,
+    76,   580,   532,    83,    76,    59,    60,   542,    76,   542,
+   532,   590,   542,    83,   542,    78,     3,   531,   532,   549,
+   574,   446,   601,    78,    32,    78,    38,     1,   453,     3,
+     4,   610,     6,     7,     8,     9,    83,    11,    12,    13,
+    14,    76,   572,    30,   574,   610,     3,   472,    77,    81,
+   475,    78,    78,    78,    28,    29,    38,    31,   637,    33,
+    34,    38,    78,    50,    81,    78,    40,   492,    36,    43,
+   495,    78,    59,    83,    48,    49,    50,    38,    59,    59,
+    54,    55,   661,    59,   509,    59,     1,    38,   667,     4,
+     5,     6,     7,    77,    77,   520,     7,    12,    13,    14,
+    38,     4,     5,     6,     7,    79,    80,    10,    82,    12,
+    13,    14,    27,    28,    77,    30,    16,    77,    36,   544,
+    78,    36,   547,    59,    77,    28,     1,    30,     3,     4,
+     5,     6,     7,     8,     9,    77,    11,    12,    13,    14,
+    15,    76,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    28,    29,    30,    31,   582,    33,    34,
+   585,    59,    77,    17,    77,    40,    81,    82,    43,    76,
+    76,   596,    77,    48,    49,    50,    36,    76,     9,    54,
+    55,    77,    77,    77,    59,    59,     0,    77,     1,   614,
+    81,     4,     5,     6,     7,    76,    76,    10,    77,    12,
+    13,    14,    77,    78,    79,    80,     1,    82,     3,     4,
+     5,     6,     7,     8,     9,    28,    11,    12,    13,    14,
+    15,   646,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    28,    29,    30,    31,    77,    33,    34,
+   557,     0,   211,     3,     4,    40,   289,     7,    43,     5,
+     6,     7,   436,    48,    49,    50,    12,    13,    14,    54,
+    55,   542,    53,   188,    59,   288,   417,   424,     1,    82,
+    30,     4,     5,     6,     7,   331,   235,   426,   323,    12,
+    13,    14,    77,   436,    79,    80,     1,    82,     3,     4,
+    50,   243,   329,     8,     9,    28,    11,   389,   438,    59,
+    15,   610,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,   610,    29,   662,    31,   283,    33,    34,
+   664,   362,     5,     6,     7,    40,    -1,    -1,    43,    12,
     13,    14,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,    -1,    -1,    59,    28,    -1,    30,    -1,    -1,
-    -1,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
-    13,    14,    77,    -1,    79,    80,     1,    82,     3,     4,
-    -1,    -1,    -1,     8,     9,    28,    11,    30,    -1,    -1,
+    55,    -1,    -1,    -1,    59,     1,    -1,    30,     4,    82,
+     6,     7,    -1,    -1,     3,     4,    12,    13,    14,    -1,
+    -1,    -1,    77,    78,    79,    80,     1,    82,     3,     4,
+    -1,    -1,    28,     8,     9,    31,    11,    -1,    -1,    -1,
+    15,    30,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,
+    -1,    50,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
+    59,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
+    55,    77,    78,     1,    59,     3,     4,     5,     6,     7,
+    -1,    -1,    10,    -1,    12,    13,    14,     3,     4,     5,
+     6,     7,    77,    -1,    79,    80,     1,    82,     3,     4,
+    28,    -1,    30,     8,     9,    -1,    11,    -1,    -1,    -1,
     15,    -1,    17,    18,    19,    20,    21,    22,    23,    24,
     25,    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,
-    -1,    -1,     5,     6,     7,    40,    -1,    -1,    43,    12,
-    13,    14,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,    -1,     1,    59,     3,     4,    30,    -1,    -1,
-     8,     9,    -1,    11,    45,    46,    47,    48,    49,    50,
-    51,    52,    77,    -1,    79,    80,    -1,    82,    -1,    -1,
-    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
-    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    51,    52,    40,    -1,    27,    43,    -1,
+    30,    -1,    -1,    48,    49,    50,    36,    -1,    76,    54,
+    55,     6,     7,     1,    59,     3,     4,    12,    13,    14,
+     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    59,
+    60,    -1,    77,    -1,    79,    80,    -1,    82,    -1,    -1,
+    -1,    29,    -1,    31,    -1,    33,    34,    77,    -1,    -1,
+    -1,    81,    40,    54,    55,    43,    57,    58,    59,    60,
     48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
     58,    59,    60,     1,    -1,     3,     4,    -1,    -1,    -1,
      8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1093,25 +1085,25 @@ static const short yycheck[] = {    40,
     54,    55,     3,    -1,    -1,    59,    -1,     8,     9,    -1,
     11,    -1,    79,    80,    -1,    -1,    83,    -1,    -1,    -1,
     -1,    -1,    -1,    -1,    -1,    79,    80,    -1,    29,    83,
-    31,    -1,    33,    34,    10,    -1,    -1,    -1,    -1,    40,
-    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    35,
-    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    -1,    79,    80,
+    31,    -1,    33,    34,    -1,     4,     5,     6,     7,    40,
+    -1,    -1,    43,    12,    13,    14,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    28,
+    -1,    30,    -1,    -1,    -1,    -1,     4,    -1,     6,     7,
+    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    79,    80,
     -1,    -1,    83,     3,     4,     5,     6,     7,     8,     9,
-    -1,    11,    12,    13,    14,    15,    -1,    17,    18,    19,
+    28,    11,    12,    13,    14,    15,    -1,    17,    18,    19,
     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-    30,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
-    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    30,    -1,    -1,    54,    55,    35,    36,    37,    59,
-    39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-    49,    50,    51,    52,    -1,    -1,    -1,    77,    -1,    79,
-    80,    -1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
+    30,    31,    50,    33,    34,    -1,     4,     5,     6,     7,
+    40,    59,    60,    43,    12,    13,    14,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,     1,    59,
+    28,     4,     5,     6,     7,    -1,    -1,    10,    -1,    12,
+    13,    14,    -1,    -1,    -1,    -1,    -1,    77,    -1,    79,
+    80,    -1,    82,     3,     4,    28,    -1,    30,     8,     9,
     -1,    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,
     20,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
     -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
     40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
-    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,
+    50,    -1,    -1,    76,    54,    55,    -1,     3,    -1,    59,
     -1,    -1,     8,     9,    -1,    11,    42,    43,    44,    45,
     46,    47,    48,    49,    50,    51,    52,    77,    -1,    79,
     80,    -1,    82,    29,    -1,    31,    -1,    33,    34,    -1,
@@ -1143,27 +1135,36 @@ static const short yycheck[] = {    40,
     55,    29,    -1,    31,    59,    33,    34,    -1,    -1,    -1,
     -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
     48,    49,    50,    -1,    79,    80,    54,    55,    -1,    -1,
-     1,    59,     3,     4,     5,     6,     7,    -1,    -1,    -1,
-    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
+     1,    59,     3,     4,     5,     6,     7,     4,    -1,     6,
+     7,    12,    13,    14,    -1,    12,    13,    14,    -1,    -1,
     -1,    79,    80,    -1,    -1,    -1,    27,    28,    -1,    30,
-    31,    37,    -1,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    -1,    10,    50,
-    -1,    -1,    -1,    -1,    -1,    35,    36,    37,    59,    39,
-    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-    50,    51,    52,    35,    36,    37,    77,    39,    40,    41,
-    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-    52,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    35,    36,    37,    83,    39,    40,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
-    -1,    83,    35,    36,    37,    38,    39,    40,    41,    42,
+    31,    28,    -1,    -1,    -1,     4,     5,     6,     7,    -1,
+    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    50,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    59,    28,
+    37,    30,    39,    40,    41,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    77,    -1,    -1,    -1,
+    77,    78,    35,    36,    37,    -1,    39,    40,    41,    42,
     43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+    -1,    -1,    -1,    -1,    -1,    35,    36,    37,    77,    39,
     40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-    50,    51,    52,    41,    42,    43,    44,    45,    46,    47,
-    48,    49,    50,    51,    52,    43,    44,    45,    46,    47,
-    48,    49,    50,    51,    52
+    50,    51,    52,    -1,    -1,    -1,    30,    -1,    -1,    10,
+    83,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    -1,
+    -1,    -1,    -1,    83,    35,    36,    37,    38,    39,    40,
+    41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+    51,    52,     1,    -1,    -1,     4,    -1,     6,     7,    -1,
+    -1,    -1,    -1,    12,    13,    14,    40,    41,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    28,
+    -1,    -1,    31,    35,    36,    37,    38,    39,    40,    41,
+    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
+    44,    45,    46,    47,    48,    49,    50,    51,    52,    41,
+    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+    52
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/share/bison.simple"
+#line 3 "/usr/cygnus/progressive-98r1/share/bison.simple"
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -1356,7 +1357,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/share/bison.simple"
+#line 196 "/usr/cygnus/progressive-98r1/share/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 *.
@@ -1661,14 +1662,14 @@ yyreduce:
   switch (yyn) {
 
 case 1:
-#line 233 "c-parse.y"
+#line 234 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids an empty source file");
                  finish_file ();
                ;
     break;}
 case 2:
-#line 238 "c-parse.y"
+#line 239 "c-parse.y"
 {
                  /* In case there were missing closebraces,
                     get us back to the global binding level.  */
@@ -1678,15 +1679,15 @@ case 2:
                ;
     break;}
 case 3:
-#line 252 "c-parse.y"
+#line 253 "c-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 5:
-#line 253 "c-parse.y"
+#line 254 "c-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 9:
-#line 260 "c-parse.y"
+#line 261 "c-parse.y"
 { STRIP_NOPS (yyvsp[-2].ttype);
                  if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
                       && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
@@ -1696,11 +1697,11 @@ case 9:
                    error ("argument of `asm' is not a constant string"); ;
     break;}
 case 10:
-#line 268 "c-parse.y"
+#line 269 "c-parse.y"
 { pedantic = yyvsp[-1].itype; ;
     break;}
 case 11:
-#line 273 "c-parse.y"
+#line 274 "c-parse.y"
 { if (pedantic)
                    error ("ANSI C forbids data definition with no type or storage class");
                  else if (!flag_traditional)
@@ -1712,45 +1713,45 @@ case 11:
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 12:
-#line 283 "c-parse.y"
+#line 284 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 13:
-#line 288 "c-parse.y"
+#line 289 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
 case 14:
-#line 293 "c-parse.y"
+#line 294 "c-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 15:
-#line 295 "c-parse.y"
+#line 296 "c-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 18:
-#line 299 "c-parse.y"
+#line 300 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
     break;}
 case 19:
-#line 305 "c-parse.y"
+#line 306 "c-parse.y"
 { if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 0))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
 case 20:
-#line 310 "c-parse.y"
+#line 311 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 21:
-#line 312 "c-parse.y"
+#line 313 "c-parse.y"
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -1758,25 +1759,25 @@ case 21:
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 22:
-#line 318 "c-parse.y"
+#line 319 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 23:
-#line 323 "c-parse.y"
+#line 324 "c-parse.y"
 { if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 0))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
 case 24:
-#line 328 "c-parse.y"
+#line 329 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 25:
-#line 330 "c-parse.y"
+#line 331 "c-parse.y"
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -1784,25 +1785,25 @@ case 25:
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 26:
-#line 336 "c-parse.y"
+#line 337 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 27:
-#line 341 "c-parse.y"
+#line 342 "c-parse.y"
 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 0))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
 case 28:
-#line 346 "c-parse.y"
+#line 347 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 29:
-#line 348 "c-parse.y"
+#line 349 "c-parse.y"
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -1810,72 +1811,72 @@ case 29:
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 30:
-#line 354 "c-parse.y"
+#line 355 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 33:
-#line 366 "c-parse.y"
+#line 367 "c-parse.y"
 { yyval.code = ADDR_EXPR; ;
     break;}
 case 34:
-#line 368 "c-parse.y"
+#line 369 "c-parse.y"
 { yyval.code = NEGATE_EXPR; ;
     break;}
 case 35:
-#line 370 "c-parse.y"
+#line 371 "c-parse.y"
 { yyval.code = CONVERT_EXPR; ;
     break;}
 case 36:
-#line 372 "c-parse.y"
+#line 373 "c-parse.y"
 { yyval.code = PREINCREMENT_EXPR; ;
     break;}
 case 37:
-#line 374 "c-parse.y"
+#line 375 "c-parse.y"
 { yyval.code = PREDECREMENT_EXPR; ;
     break;}
 case 38:
-#line 376 "c-parse.y"
+#line 377 "c-parse.y"
 { yyval.code = BIT_NOT_EXPR; ;
     break;}
 case 39:
-#line 378 "c-parse.y"
+#line 379 "c-parse.y"
 { yyval.code = TRUTH_NOT_EXPR; ;
     break;}
 case 40:
-#line 382 "c-parse.y"
+#line 383 "c-parse.y"
 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
     break;}
 case 41:
-#line 387 "c-parse.y"
+#line 388 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 43:
-#line 393 "c-parse.y"
+#line 394 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 44:
-#line 395 "c-parse.y"
+#line 396 "c-parse.y"
 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 46:
-#line 401 "c-parse.y"
+#line 402 "c-parse.y"
 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
     break;}
 case 47:
-#line 404 "c-parse.y"
+#line 405 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  pedantic = yyvsp[-1].itype; ;
     break;}
 case 48:
-#line 407 "c-parse.y"
+#line 408 "c-parse.y"
 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
                  overflow_warning (yyval.ttype); ;
     break;}
 case 49:
-#line 411 "c-parse.y"
+#line 412 "c-parse.y"
 { tree label = lookup_label (yyvsp[0].ttype);
                  if (pedantic)
                    pedwarn ("ANSI C forbids `&&'");
@@ -1890,7 +1891,7 @@ case 49:
                ;
     break;}
 case 50:
-#line 439 "c-parse.y"
+#line 440 "c-parse.y"
 { skip_evaluation--;
                  if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
                      && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
@@ -1898,49 +1899,49 @@ case 50:
                  yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
     break;}
 case 51:
-#line 445 "c-parse.y"
+#line 446 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 52:
-#line 448 "c-parse.y"
+#line 449 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
     break;}
 case 53:
-#line 451 "c-parse.y"
+#line 452 "c-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 54:
-#line 454 "c-parse.y"
+#line 455 "c-parse.y"
 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
     break;}
 case 55:
-#line 456 "c-parse.y"
+#line 457 "c-parse.y"
 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
     break;}
 case 56:
-#line 460 "c-parse.y"
+#line 461 "c-parse.y"
 { skip_evaluation++; ;
     break;}
 case 57:
-#line 464 "c-parse.y"
+#line 465 "c-parse.y"
 { skip_evaluation++; ;
     break;}
 case 59:
-#line 470 "c-parse.y"
+#line 471 "c-parse.y"
 { tree type = groktypename (yyvsp[-2].ttype);
                  yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
     break;}
 case 60:
-#line 473 "c-parse.y"
+#line 474 "c-parse.y"
 { start_init (NULL_TREE, NULL, 0);
                  yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
                  really_start_incremental_init (yyvsp[-2].ttype); ;
     break;}
 case 61:
-#line 477 "c-parse.y"
+#line 478 "c-parse.y"
 { char *name;
                  tree result = pop_init_level (0);
                  tree type = yyvsp[-5].ttype;
@@ -1967,90 +1968,90 @@ case 61:
                ;
     break;}
 case 63:
-#line 506 "c-parse.y"
+#line 507 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 64:
-#line 508 "c-parse.y"
+#line 509 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 65:
-#line 510 "c-parse.y"
+#line 511 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 66:
-#line 512 "c-parse.y"
+#line 513 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 67:
-#line 514 "c-parse.y"
+#line 515 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 68:
-#line 516 "c-parse.y"
+#line 517 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 69:
-#line 518 "c-parse.y"
+#line 519 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 70:
-#line 520 "c-parse.y"
+#line 521 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 71:
-#line 522 "c-parse.y"
+#line 523 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 72:
-#line 524 "c-parse.y"
+#line 525 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 73:
-#line 526 "c-parse.y"
+#line 527 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 74:
-#line 528 "c-parse.y"
+#line 529 "c-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 75:
-#line 530 "c-parse.y"
+#line 531 "c-parse.y"
 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
                  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
     break;}
 case 76:
-#line 533 "c-parse.y"
+#line 534 "c-parse.y"
 { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
                  yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
     break;}
 case 77:
-#line 536 "c-parse.y"
+#line 537 "c-parse.y"
 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
                  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
     break;}
 case 78:
-#line 539 "c-parse.y"
+#line 540 "c-parse.y"
 { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
                  yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
     break;}
 case 79:
-#line 542 "c-parse.y"
+#line 543 "c-parse.y"
 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
                  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
     break;}
 case 80:
-#line 545 "c-parse.y"
+#line 546 "c-parse.y"
 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
                                      - (yyvsp[-4].ttype == boolean_false_node)); ;
     break;}
 case 81:
-#line 548 "c-parse.y"
+#line 549 "c-parse.y"
 { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
                  yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
     break;}
 case 82:
-#line 551 "c-parse.y"
+#line 552 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
                  /* Make sure first operand is calculated only once.  */
@@ -2059,23 +2060,23 @@ case 82:
                  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
     break;}
 case 83:
-#line 558 "c-parse.y"
+#line 559 "c-parse.y"
 { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
                  yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
     break;}
 case 84:
-#line 561 "c-parse.y"
+#line 562 "c-parse.y"
 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
                  C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
     break;}
 case 85:
-#line 564 "c-parse.y"
+#line 565 "c-parse.y"
 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
                  /* This inhibits warnings in truthvalue_conversion.  */
                  C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
     break;}
 case 86:
-#line 571 "c-parse.y"
+#line 572 "c-parse.y"
 {
                  yyval.ttype = lastiddecl;
                  if (!yyval.ttype || yyval.ttype == error_mark_node)
@@ -2175,11 +2176,11 @@ case 86:
                ;
     break;}
 case 88:
-#line 670 "c-parse.y"
+#line 671 "c-parse.y"
 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
     break;}
 case 89:
-#line 672 "c-parse.y"
+#line 673 "c-parse.y"
 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
                  if (class == 'e' || class == '1'
                      || class == '2' || class == '<')
@@ -2187,11 +2188,11 @@ case 89:
                  yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 90:
-#line 678 "c-parse.y"
+#line 679 "c-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 91:
-#line 680 "c-parse.y"
+#line 681 "c-parse.y"
 { if (current_function_decl == 0)
                    {
                      error ("braced-group within expression allowed only inside a function");
@@ -2207,7 +2208,7 @@ case 91:
                  yyval.ttype = expand_start_stmt_expr (); ;
     break;}
 case 92:
-#line 694 "c-parse.y"
+#line 695 "c-parse.y"
 { tree rtl_exp;
                  if (pedantic)
                    pedwarn ("ANSI C forbids braced-groups within expressions");
@@ -2232,21 +2233,21 @@ case 92:
                ;
     break;}
 case 93:
-#line 717 "c-parse.y"
+#line 718 "c-parse.y"
 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 94:
-#line 719 "c-parse.y"
+#line 720 "c-parse.y"
 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 95:
-#line 721 "c-parse.y"
+#line 722 "c-parse.y"
 {
                    yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
 case 96:
-#line 725 "c-parse.y"
+#line 726 "c-parse.y"
 {
                   tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
 
@@ -2254,56 +2255,56 @@ case 96:
                ;
     break;}
 case 97:
-#line 731 "c-parse.y"
+#line 732 "c-parse.y"
 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
 case 98:
-#line 733 "c-parse.y"
+#line 734 "c-parse.y"
 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
 case 100:
-#line 740 "c-parse.y"
+#line 741 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 103:
-#line 749 "c-parse.y"
+#line 750 "c-parse.y"
 { c_mark_varargs ();
                  if (pedantic)
                    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
     break;}
 case 104:
-#line 759 "c-parse.y"
+#line 760 "c-parse.y"
 { ;
     break;}
 case 109:
-#line 775 "c-parse.y"
+#line 776 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 110:
-#line 780 "c-parse.y"
+#line 781 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);     
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 111:
-#line 785 "c-parse.y"
+#line 786 "c-parse.y"
 { shadow_tag_warned (yyvsp[-1].ttype, 1);
                  pedwarn ("empty declaration"); ;
     break;}
 case 112:
-#line 788 "c-parse.y"
+#line 789 "c-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 113:
-#line 797 "c-parse.y"
+#line 798 "c-parse.y"
 { ;
     break;}
 case 118:
-#line 812 "c-parse.y"
+#line 813 "c-parse.y"
 { yyval.itype = suspend_momentary ();
                  pending_xref_error ();
                  declspec_stack = tree_cons (prefix_attributes,
@@ -2313,131 +2314,131 @@ case 118:
                                     &current_declspecs, &prefix_attributes); ;
     break;}
 case 119:
-#line 823 "c-parse.y"
+#line 824 "c-parse.y"
 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
     break;}
 case 120:
-#line 828 "c-parse.y"
+#line 829 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 121:
-#line 833 "c-parse.y"
+#line 834 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 122:
-#line 838 "c-parse.y"
+#line 839 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 123:
-#line 843 "c-parse.y"
+#line 844 "c-parse.y"
 { current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
 case 124:
-#line 848 "c-parse.y"
+#line 849 "c-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 125:
-#line 850 "c-parse.y"
+#line 851 "c-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 126:
-#line 852 "c-parse.y"
+#line 853 "c-parse.y"
 { pedantic = yyvsp[-1].itype; ;
     break;}
 case 127:
-#line 862 "c-parse.y"
+#line 863 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 128:
-#line 864 "c-parse.y"
+#line 865 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 129:
-#line 868 "c-parse.y"
+#line 869 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 130:
-#line 870 "c-parse.y"
+#line 871 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 131:
-#line 872 "c-parse.y"
+#line 873 "c-parse.y"
 { if (extra_warnings)
                    warning ("`%s' is not at beginning of declaration",
                             IDENTIFIER_POINTER (yyvsp[0].ttype));
                  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 132:
-#line 877 "c-parse.y"
+#line 878 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 133:
-#line 882 "c-parse.y"
+#line 883 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 134:
-#line 884 "c-parse.y"
+#line 885 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 135:
-#line 889 "c-parse.y"
+#line 890 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 136:
-#line 891 "c-parse.y"
+#line 892 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 137:
-#line 893 "c-parse.y"
+#line 894 "c-parse.y"
 { if (extra_warnings)
                    warning ("`%s' is not at beginning of declaration",
                             IDENTIFIER_POINTER (yyvsp[0].ttype));
                  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 138:
-#line 906 "c-parse.y"
+#line 907 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 139:
-#line 908 "c-parse.y"
+#line 909 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
     break;}
 case 140:
-#line 910 "c-parse.y"
+#line 911 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 141:
-#line 912 "c-parse.y"
+#line 913 "c-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 142:
-#line 917 "c-parse.y"
+#line 918 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
 case 143:
-#line 920 "c-parse.y"
+#line 921 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 144:
-#line 922 "c-parse.y"
+#line 923 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
 case 145:
-#line 925 "c-parse.y"
+#line 926 "c-parse.y"
 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
                    warning ("`%s' is not at beginning of declaration",
                             IDENTIFIER_POINTER (yyvsp[0].ttype));
@@ -2445,138 +2446,138 @@ case 145:
                  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
     break;}
 case 146:
-#line 939 "c-parse.y"
+#line 940 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 147:
-#line 941 "c-parse.y"
+#line 942 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 148:
-#line 945 "c-parse.y"
+#line 946 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 149:
-#line 947 "c-parse.y"
+#line 948 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 152:
-#line 957 "c-parse.y"
+#line 958 "c-parse.y"
 { /* For a typedef name, record the meaning, not the name.
                     In case of `foo foo, bar;'.  */
                  yyval.ttype = lookup_name (yyvsp[0].ttype); ;
     break;}
 case 153:
-#line 961 "c-parse.y"
+#line 962 "c-parse.y"
 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
     break;}
 case 154:
-#line 963 "c-parse.y"
+#line 964 "c-parse.y"
 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
     break;}
 case 162:
-#line 985 "c-parse.y"
+#line 986 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 163:
-#line 987 "c-parse.y"
+#line 988 "c-parse.y"
 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
 case 164:
-#line 994 "c-parse.y"
+#line 995 "c-parse.y"
 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
                                          yyvsp[-1].ttype, prefix_attributes);
                  start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
     break;}
 case 165:
-#line 999 "c-parse.y"
+#line 1000 "c-parse.y"
 { finish_init ();
                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
     break;}
 case 166:
-#line 1002 "c-parse.y"
+#line 1003 "c-parse.y"
 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
                                       yyvsp[0].ttype, prefix_attributes);
                  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); 
                 ;
     break;}
 case 167:
-#line 1010 "c-parse.y"
+#line 1011 "c-parse.y"
 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
                                          yyvsp[-1].ttype, prefix_attributes);
                  start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
     break;}
 case 168:
-#line 1015 "c-parse.y"
+#line 1016 "c-parse.y"
 { finish_init ();
                  decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
     break;}
 case 169:
-#line 1019 "c-parse.y"
+#line 1020 "c-parse.y"
 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
                                       yyvsp[0].ttype, prefix_attributes);
                  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 170:
-#line 1027 "c-parse.y"
+#line 1028 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 171:
-#line 1029 "c-parse.y"
+#line 1030 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 172:
-#line 1034 "c-parse.y"
+#line 1035 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 173:
-#line 1036 "c-parse.y"
+#line 1037 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 174:
-#line 1041 "c-parse.y"
+#line 1042 "c-parse.y"
 { yyval.ttype = yyvsp[-2].ttype; ;
     break;}
 case 175:
-#line 1046 "c-parse.y"
+#line 1047 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 176:
-#line 1048 "c-parse.y"
+#line 1049 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 177:
-#line 1053 "c-parse.y"
+#line 1054 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 178:
-#line 1055 "c-parse.y"
+#line 1056 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 179:
-#line 1057 "c-parse.y"
+#line 1058 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
     break;}
 case 180:
-#line 1059 "c-parse.y"
+#line 1060 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
     break;}
 case 181:
-#line 1061 "c-parse.y"
+#line 1062 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 187:
-#line 1079 "c-parse.y"
+#line 1080 "c-parse.y"
 { really_start_incremental_init (NULL_TREE);
                  /* Note that the call to clear_momentary
                     is in process_init_element.  */
                  push_momentary (); ;
     break;}
 case 188:
-#line 1084 "c-parse.y"
+#line 1085 "c-parse.y"
 { yyval.ttype = pop_init_level (0);
                  if (yyval.ttype == error_mark_node
                      && ! (yychar == STRING || yychar == CONSTANT))
@@ -2585,48 +2586,48 @@ case 188:
                    pop_momentary_nofree (); ;
     break;}
 case 189:
-#line 1092 "c-parse.y"
+#line 1093 "c-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 190:
-#line 1098 "c-parse.y"
+#line 1099 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids empty initializer braces"); ;
     break;}
 case 194:
-#line 1112 "c-parse.y"
+#line 1113 "c-parse.y"
 { process_init_element (yyvsp[0].ttype); ;
     break;}
 case 195:
-#line 1114 "c-parse.y"
+#line 1115 "c-parse.y"
 { push_init_level (0); ;
     break;}
 case 196:
-#line 1116 "c-parse.y"
+#line 1117 "c-parse.y"
 { process_init_element (pop_init_level (0)); ;
     break;}
 case 198:
-#line 1122 "c-parse.y"
+#line 1123 "c-parse.y"
 { set_init_index (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
     break;}
 case 200:
-#line 1125 "c-parse.y"
+#line 1126 "c-parse.y"
 { set_init_index (yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 202:
-#line 1128 "c-parse.y"
+#line 1129 "c-parse.y"
 { set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
     break;}
 case 204:
-#line 1131 "c-parse.y"
+#line 1132 "c-parse.y"
 { set_init_label (yyvsp[-1].ttype); ;
     break;}
 case 206:
-#line 1134 "c-parse.y"
+#line 1135 "c-parse.y"
 { set_init_label (yyvsp[-1].ttype); ;
     break;}
 case 208:
-#line 1140 "c-parse.y"
+#line 1141 "c-parse.y"
 { push_c_function_context ();
                  if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 1))
@@ -2637,16 +2638,16 @@ case 208:
                  reinit_parse_for_function (); ;
     break;}
 case 209:
-#line 1149 "c-parse.y"
+#line 1150 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 210:
-#line 1157 "c-parse.y"
+#line 1158 "c-parse.y"
 { finish_function (1);
                  pop_c_function_context (); ;
     break;}
 case 211:
-#line 1163 "c-parse.y"
+#line 1164 "c-parse.y"
 { push_c_function_context ();
                  if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 1))
@@ -2657,328 +2658,352 @@ case 211:
                  reinit_parse_for_function (); ;
     break;}
 case 212:
-#line 1172 "c-parse.y"
+#line 1173 "c-parse.y"
 { store_parm_decls (); ;
     break;}
 case 213:
-#line 1180 "c-parse.y"
+#line 1181 "c-parse.y"
 { finish_function (1);
                  pop_c_function_context (); ;
     break;}
 case 216:
-#line 1196 "c-parse.y"
+#line 1197 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 217:
-#line 1198 "c-parse.y"
+#line 1199 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 218:
-#line 1203 "c-parse.y"
+#line 1204 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 219:
-#line 1205 "c-parse.y"
+#line 1206 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 220:
-#line 1207 "c-parse.y"
+#line 1208 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 221:
-#line 1214 "c-parse.y"
+#line 1215 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 223:
-#line 1225 "c-parse.y"
+#line 1226 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 224:
-#line 1230 "c-parse.y"
+#line 1231 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 225:
-#line 1232 "c-parse.y"
+#line 1233 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 226:
-#line 1234 "c-parse.y"
+#line 1235 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 227:
-#line 1241 "c-parse.y"
+#line 1242 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 229:
-#line 1250 "c-parse.y"
+#line 1251 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 230:
-#line 1255 "c-parse.y"
+#line 1256 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 231:
-#line 1257 "c-parse.y"
+#line 1258 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 232:
-#line 1259 "c-parse.y"
+#line 1260 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 233:
-#line 1261 "c-parse.y"
+#line 1262 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 234:
-#line 1268 "c-parse.y"
+#line 1269 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 236:
-#line 1274 "c-parse.y"
-{ yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
-                 /* Start scope of tag before parsing components.  */
-               ;
+#line 1275 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 237:
-#line 1278 "c-parse.y"
-{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+#line 1277 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 238:
-#line 1280 "c-parse.y"
-{ yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
-                                     yyvsp[-2].ttype, yyvsp[0].ttype);
-               ;
+#line 1282 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 239:
 #line 1284 "c-parse.y"
-{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 240:
-#line 1286 "c-parse.y"
-{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
+#line 1289 "c-parse.y"
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 241:
-#line 1288 "c-parse.y"
-{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+#line 1291 "c-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 242:
-#line 1290 "c-parse.y"
-{ yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
-                                     yyvsp[-2].ttype, yyvsp[0].ttype);
+#line 1296 "c-parse.y"
+{ yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
+                 /* Start scope of tag before parsing components.  */
                ;
     break;}
 case 243:
-#line 1294 "c-parse.y"
-{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
+#line 1300 "c-parse.y"
+{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
     break;}
 case 244:
-#line 1296 "c-parse.y"
+#line 1302 "c-parse.y"
+{ yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
+                                     yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
+               ;
+    break;}
+case 245:
+#line 1306 "c-parse.y"
+{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
+    break;}
+case 246:
+#line 1308 "c-parse.y"
+{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
+    break;}
+case 247:
+#line 1310 "c-parse.y"
+{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
+    break;}
+case 248:
+#line 1312 "c-parse.y"
+{ yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
+                                     yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
+               ;
+    break;}
+case 249:
+#line 1316 "c-parse.y"
+{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
+    break;}
+case 250:
+#line 1318 "c-parse.y"
 { yyvsp[0].itype = suspend_momentary ();
                  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
     break;}
-case 245:
-#line 1299 "c-parse.y"
-{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
+case 251:
+#line 1321 "c-parse.y"
+{ yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-7].ttype, yyvsp[0].ttype));
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
-case 246:
-#line 1302 "c-parse.y"
+case 252:
+#line 1324 "c-parse.y"
 { yyvsp[0].itype = suspend_momentary ();
                  yyval.ttype = start_enum (NULL_TREE); ;
     break;}
-case 247:
-#line 1305 "c-parse.y"
-{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
+case 253:
+#line 1327 "c-parse.y"
+{ yyval.ttype= finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), chainon (yyvsp[-6].ttype, yyvsp[0].ttype));
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
-case 248:
-#line 1308 "c-parse.y"
+case 254:
+#line 1330 "c-parse.y"
 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
     break;}
-case 252:
-#line 1319 "c-parse.y"
+case 258:
+#line 1341 "c-parse.y"
 { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
     break;}
-case 253:
-#line 1324 "c-parse.y"
+case 259:
+#line 1346 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 254:
-#line 1326 "c-parse.y"
+case 260:
+#line 1348 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                  pedwarn ("no semicolon at end of struct or union"); ;
     break;}
-case 255:
-#line 1331 "c-parse.y"
+case 261:
+#line 1353 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 256:
-#line 1333 "c-parse.y"
+case 262:
+#line 1355 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
     break;}
-case 257:
-#line 1335 "c-parse.y"
+case 263:
+#line 1357 "c-parse.y"
 { if (pedantic)
                    pedwarn ("extra semicolon in struct or union specified"); ;
     break;}
-case 258:
-#line 1350 "c-parse.y"
+case 264:
+#line 1372 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
-case 259:
-#line 1356 "c-parse.y"
+case 265:
+#line 1378 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids member declarations with no members");
                  shadow_tag(yyvsp[0].ttype);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 260:
-#line 1361 "c-parse.y"
+case 266:
+#line 1383 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-1].itype); ;
     break;}
-case 261:
-#line 1367 "c-parse.y"
+case 267:
+#line 1389 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids member declarations with no members");
                  shadow_tag(yyvsp[0].ttype);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 262:
-#line 1372 "c-parse.y"
+case 268:
+#line 1394 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 263:
-#line 1374 "c-parse.y"
+case 269:
+#line 1396 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  pedantic = yyvsp[-1].itype; ;
     break;}
-case 265:
-#line 1381 "c-parse.y"
+case 271:
+#line 1403 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 266:
-#line 1386 "c-parse.y"
+case 272:
+#line 1408 "c-parse.y"
 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
                  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
-case 267:
-#line 1390 "c-parse.y"
+case 273:
+#line 1412 "c-parse.y"
 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
                  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
-case 268:
-#line 1393 "c-parse.y"
+case 274:
+#line 1415 "c-parse.y"
 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
                  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
     break;}
-case 270:
-#line 1405 "c-parse.y"
+case 276:
+#line 1427 "c-parse.y"
 { if (yyvsp[-2].ttype == error_mark_node)
                    yyval.ttype = yyvsp[-2].ttype;
                  else
                    yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
     break;}
-case 271:
-#line 1410 "c-parse.y"
+case 277:
+#line 1432 "c-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
-case 272:
-#line 1416 "c-parse.y"
+case 278:
+#line 1438 "c-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 273:
-#line 1418 "c-parse.y"
+case 279:
+#line 1440 "c-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 274:
-#line 1423 "c-parse.y"
+case 280:
+#line 1445 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 275:
-#line 1425 "c-parse.y"
+case 281:
+#line 1447 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 276:
-#line 1430 "c-parse.y"
+case 282:
+#line 1452 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 278:
-#line 1436 "c-parse.y"
+case 284:
+#line 1458 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 279:
-#line 1438 "c-parse.y"
+case 285:
+#line 1460 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 280:
-#line 1443 "c-parse.y"
+case 286:
+#line 1465 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 281:
-#line 1445 "c-parse.y"
+case 287:
+#line 1467 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 282:
-#line 1450 "c-parse.y"
+case 288:
+#line 1472 "c-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
-case 283:
-#line 1453 "c-parse.y"
+case 289:
+#line 1475 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 284:
-#line 1455 "c-parse.y"
+case 290:
+#line 1477 "c-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 285:
-#line 1457 "c-parse.y"
+case 291:
+#line 1479 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 286:
-#line 1459 "c-parse.y"
+case 292:
+#line 1481 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 287:
-#line 1461 "c-parse.y"
+case 293:
+#line 1483 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
-case 288:
-#line 1463 "c-parse.y"
+case 294:
+#line 1485 "c-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 289:
-#line 1465 "c-parse.y"
+case 295:
+#line 1487 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 290:
-#line 1467 "c-parse.y"
+case 296:
+#line 1489 "c-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
     break;}
-case 291:
-#line 1478 "c-parse.y"
+case 297:
+#line 1500 "c-parse.y"
 {
                  if (pedantic && yyvsp[0].ends_in_label)
                    pedwarn ("ANSI C forbids label at end of compound statement");
                ;
     break;}
-case 293:
-#line 1487 "c-parse.y"
+case 299:
+#line 1509 "c-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
-case 294:
-#line 1489 "c-parse.y"
+case 300:
+#line 1511 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 298:
-#line 1501 "c-parse.y"
+case 304:
+#line 1523 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  pushlevel (0);
                  clear_last_expr ();
@@ -2986,13 +3011,13 @@ case 298:
                  expand_start_bindings (0);
                ;
     break;}
-case 300:
-#line 1514 "c-parse.y"
+case 306:
+#line 1536 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids label declarations"); ;
     break;}
-case 303:
-#line 1525 "c-parse.y"
+case 309:
+#line 1547 "c-parse.y"
 { tree link;
                  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
                    {
@@ -3002,20 +3027,20 @@ case 303:
                    }
                ;
     break;}
-case 304:
-#line 1539 "c-parse.y"
+case 310:
+#line 1561 "c-parse.y"
 {;
     break;}
-case 306:
-#line 1543 "c-parse.y"
+case 312:
+#line 1565 "c-parse.y"
 { compstmt_count++; ;
     break;}
-case 307:
-#line 1546 "c-parse.y"
+case 313:
+#line 1568 "c-parse.y"
 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
     break;}
-case 308:
-#line 1548 "c-parse.y"
+case 314:
+#line 1570 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), 1, 0);
                  yyval.ttype = poplevel (1, 1, 0);
@@ -3024,8 +3049,8 @@ case 308:
                  else
                    pop_momentary (); ;
     break;}
-case 309:
-#line 1556 "c-parse.y"
+case 315:
+#line 1578 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3034,8 +3059,8 @@ case 309:
                  else
                    pop_momentary (); ;
     break;}
-case 310:
-#line 1564 "c-parse.y"
+case 316:
+#line 1586 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
@@ -3044,8 +3069,8 @@ case 310:
                  else
                    pop_momentary (); ;
     break;}
-case 313:
-#line 1584 "c-parse.y"
+case 319:
+#line 1606 "c-parse.y"
 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, 
                                       compstmt_count);
@@ -3054,8 +3079,8 @@ case 313:
                  if_stmt_line = yyvsp[-4].lineno;
                  position_after_white_space (); ;
     break;}
-case 314:
-#line 1598 "c-parse.y"
+case 320:
+#line 1620 "c-parse.y"
 { stmt_count++;
                  compstmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
@@ -3064,44 +3089,44 @@ case 314:
                  expand_start_loop_continue_elsewhere (1);
                  position_after_white_space (); ;
     break;}
-case 315:
-#line 1606 "c-parse.y"
+case 321:
+#line 1628 "c-parse.y"
 { expand_loop_continue_here (); ;
     break;}
-case 316:
-#line 1610 "c-parse.y"
+case 322:
+#line 1632 "c-parse.y"
 { yyval.filename = input_filename; ;
     break;}
-case 317:
-#line 1614 "c-parse.y"
+case 323:
+#line 1636 "c-parse.y"
 { yyval.lineno = lineno; ;
     break;}
-case 318:
-#line 1619 "c-parse.y"
+case 324:
+#line 1641 "c-parse.y"
 { ;
     break;}
-case 319:
-#line 1624 "c-parse.y"
+case 325:
+#line 1646 "c-parse.y"
 { ;
     break;}
-case 320:
-#line 1629 "c-parse.y"
+case 326:
+#line 1651 "c-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
-case 321:
-#line 1634 "c-parse.y"
+case 327:
+#line 1656 "c-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 322:
-#line 1636 "c-parse.y"
+case 328:
+#line 1658 "c-parse.y"
 { yyval.ends_in_label = 1; ;
     break;}
-case 323:
-#line 1642 "c-parse.y"
+case 329:
+#line 1664 "c-parse.y"
 { stmt_count++; ;
     break;}
-case 325:
-#line 1645 "c-parse.y"
+case 331:
+#line 1667 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
 /* It appears that this should not be done--that a non-lvalue array
@@ -3119,20 +3144,20 @@ case 325:
                  iterator_expand (yyvsp[-1].ttype);
                  clear_momentary (); ;
     break;}
-case 326:
-#line 1662 "c-parse.y"
+case 332:
+#line 1684 "c-parse.y"
 { c_expand_start_else ();
                  yyvsp[-1].itype = stmt_count;
                  position_after_white_space (); ;
     break;}
-case 327:
-#line 1666 "c-parse.y"
+case 333:
+#line 1688 "c-parse.y"
 { c_expand_end_cond ();
                  if (extra_warnings && stmt_count == yyvsp[-3].itype)
                    warning ("empty body in an else-statement"); ;
     break;}
-case 328:
-#line 1670 "c-parse.y"
+case 334:
+#line 1692 "c-parse.y"
 { c_expand_end_cond ();
                  /* This warning is here instead of in simple_if, because we
                     do not want a warning if an empty if is followed by an
@@ -3142,12 +3167,12 @@ case 328:
                    warning_with_file_and_line (if_stmt_file, if_stmt_line,
                                                "empty body in an if-statement"); ;
     break;}
-case 329:
-#line 1682 "c-parse.y"
+case 335:
+#line 1704 "c-parse.y"
 { c_expand_end_cond (); ;
     break;}
-case 330:
-#line 1684 "c-parse.y"
+case 336:
+#line 1706 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
                  /* The emit_nop used to come before emit_line_note,
@@ -3158,8 +3183,8 @@ case 330:
                     We will see.  --rms, July 15, 1991.  */
                  emit_nop (); ;
     break;}
-case 331:
-#line 1694 "c-parse.y"
+case 337:
+#line 1716 "c-parse.y"
 { /* Don't start the loop till we have succeeded
                     in parsing the end test.  This is to make sure
                     that we end every loop we start.  */
@@ -3169,25 +3194,25 @@ case 331:
                                             truthvalue_conversion (yyvsp[-1].ttype));
                  position_after_white_space (); ;
     break;}
-case 332:
-#line 1703 "c-parse.y"
+case 338:
+#line 1725 "c-parse.y"
 { expand_end_loop (); ;
     break;}
-case 333:
-#line 1706 "c-parse.y"
+case 339:
+#line 1728 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_exit_loop_if_false (NULL_PTR,
                                             truthvalue_conversion (yyvsp[-2].ttype));
                  expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 334:
-#line 1713 "c-parse.y"
+case 340:
+#line 1735 "c-parse.y"
 { expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 335:
-#line 1717 "c-parse.y"
+case 341:
+#line 1739 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  /* See comment in `while' alternative, above.  */
@@ -3199,13 +3224,13 @@ case 335:
                     fn without calling expand_end_loop.  */
                ;
     break;}
-case 336:
-#line 1729 "c-parse.y"
+case 342:
+#line 1751 "c-parse.y"
 { yyvsp[0].lineno = lineno;
                  yyval.filename = input_filename; ;
     break;}
-case 337:
-#line 1732 "c-parse.y"
+case 343:
+#line 1754 "c-parse.y"
 { 
                  /* Start the loop.  Doing this after parsing
                     all the expressions ensures we will end the loop.  */
@@ -3222,8 +3247,8 @@ case 337:
                  yyvsp[-2].filename = input_filename;
                  position_after_white_space (); ;
     break;}
-case 338:
-#line 1748 "c-parse.y"
+case 344:
+#line 1770 "c-parse.y"
 { /* Emit the increment expression, with a line number.  */
                  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
                  expand_loop_continue_here ();
@@ -3235,8 +3260,8 @@ case 338:
                    pop_momentary ();
                  expand_end_loop (); ;
     break;}
-case 339:
-#line 1759 "c-parse.y"
+case 345:
+#line 1781 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_case (yyvsp[-1].ttype);
@@ -3245,42 +3270,42 @@ case 339:
                  push_momentary ();
                  position_after_white_space (); ;
     break;}
-case 340:
-#line 1767 "c-parse.y"
+case 346:
+#line 1789 "c-parse.y"
 { expand_end_case (yyvsp[-3].ttype);
                  if (yychar == CONSTANT || yychar == STRING)
                    pop_momentary_nofree ();
                  else
                    pop_momentary (); ;
     break;}
-case 341:
-#line 1773 "c-parse.y"
+case 347:
+#line 1795 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  if ( ! expand_exit_something ())
                    error ("break statement not within loop or switch"); ;
     break;}
-case 342:
-#line 1778 "c-parse.y"
+case 348:
+#line 1800 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  if (! expand_continue_loop (NULL_PTR))
                    error ("continue statement not within a loop"); ;
     break;}
-case 343:
-#line 1783 "c-parse.y"
+case 349:
+#line 1805 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  c_expand_return (NULL_TREE); ;
     break;}
-case 344:
-#line 1787 "c-parse.y"
+case 350:
+#line 1809 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
                  c_expand_return (yyvsp[-1].ttype); ;
     break;}
-case 345:
-#line 1791 "c-parse.y"
+case 351:
+#line 1813 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
                  STRIP_NOPS (yyvsp[-2].ttype);
@@ -3291,32 +3316,32 @@ case 345:
                  else
                    error ("argument of `asm' is not a constant string"); ;
     break;}
-case 346:
-#line 1802 "c-parse.y"
+case 352:
+#line 1824 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
                  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
                                         yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 347:
-#line 1809 "c-parse.y"
+case 353:
+#line 1831 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
                  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
                                         yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 348:
-#line 1817 "c-parse.y"
+case 354:
+#line 1839 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
                  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
                                         yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
                                         input_filename, lineno); ;
     break;}
-case 349:
-#line 1823 "c-parse.y"
+case 355:
+#line 1845 "c-parse.y"
 { tree decl;
                  stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -3328,16 +3353,16 @@ case 349:
                    }
                ;
     break;}
-case 350:
-#line 1834 "c-parse.y"
+case 356:
+#line 1856 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids `goto *expr;'");
                  stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
     break;}
-case 353:
-#line 1849 "c-parse.y"
+case 359:
+#line 1871 "c-parse.y"
 {
            /* The value returned by this action is  */
            /*      1 if everything is OK */ 
@@ -3359,15 +3384,15 @@ case 353:
              }
          ;
     break;}
-case 354:
-#line 1870 "c-parse.y"
+case 360:
+#line 1892 "c-parse.y"
 {
            if (yyvsp[-1].itype)
              iterator_for_loop_end (yyvsp[-3].ttype);
          ;
     break;}
-case 355:
-#line 1905 "c-parse.y"
+case 361:
+#line 1927 "c-parse.y"
 { register tree value = check_case_value (yyvsp[-1].ttype);
                  register tree label
                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
@@ -3399,8 +3424,8 @@ case 355:
                    }
                  position_after_white_space (); ;
     break;}
-case 356:
-#line 1936 "c-parse.y"
+case 362:
+#line 1958 "c-parse.y"
 { register tree value1 = check_case_value (yyvsp[-3].ttype);
                  register tree value2 = check_case_value (yyvsp[-1].ttype);
                  register tree label
@@ -3432,8 +3457,8 @@ case 356:
                    }
                  position_after_white_space (); ;
     break;}
-case 357:
-#line 1967 "c-parse.y"
+case 363:
+#line 1989 "c-parse.y"
 {
                  tree duplicate;
                  register tree label
@@ -3449,8 +3474,8 @@ case 357:
                    }
                  position_after_white_space (); ;
     break;}
-case 358:
-#line 1982 "c-parse.y"
+case 364:
+#line 2004 "c-parse.y"
 { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
                  stmt_count++;
                  emit_nop ();
@@ -3458,53 +3483,53 @@ case 358:
                    expand_label (label);
                  position_after_white_space (); ;
     break;}
-case 359:
-#line 1994 "c-parse.y"
+case 365:
+#line 2016 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 360:
-#line 1997 "c-parse.y"
+case 366:
+#line 2019 "c-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
-case 361:
-#line 2002 "c-parse.y"
+case 367:
+#line 2024 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 363:
-#line 2009 "c-parse.y"
+case 369:
+#line 2031 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 366:
-#line 2016 "c-parse.y"
+case 372:
+#line 2038 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 367:
-#line 2021 "c-parse.y"
+case 373:
+#line 2043 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 368:
-#line 2026 "c-parse.y"
+case 374:
+#line 2048 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
-case 369:
-#line 2028 "c-parse.y"
+case 375:
+#line 2050 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
     break;}
-case 370:
-#line 2034 "c-parse.y"
+case 376:
+#line 2056 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (0); ;
     break;}
-case 371:
-#line 2038 "c-parse.y"
+case 377:
+#line 2060 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 373:
-#line 2046 "c-parse.y"
+case 379:
+#line 2068 "c-parse.y"
 { tree parm;
                  if (pedantic)
                    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -3513,20 +3538,20 @@ case 373:
                    TREE_ASM_WRITTEN (parm) = 1;
                  clear_parm_order (); ;
     break;}
-case 374:
-#line 2054 "c-parse.y"
+case 380:
+#line 2076 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 375:
-#line 2056 "c-parse.y"
+case 381:
+#line 2078 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
-case 376:
-#line 2062 "c-parse.y"
+case 382:
+#line 2084 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
-case 377:
-#line 2064 "c-parse.y"
+case 383:
+#line 2086 "c-parse.y"
 { yyval.ttype = get_parm_info (0);
                  /* Gcc used to allow this as an extension.  However, it does
                     not work for all targets, and thus has been disabled.
@@ -3537,24 +3562,24 @@ case 377:
                  error ("ANSI C requires a named argument before `...'");
                ;
     break;}
-case 378:
-#line 2074 "c-parse.y"
+case 384:
+#line 2096 "c-parse.y"
 { yyval.ttype = get_parm_info (1); ;
     break;}
-case 379:
-#line 2076 "c-parse.y"
+case 385:
+#line 2098 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
-case 380:
-#line 2081 "c-parse.y"
+case 386:
+#line 2103 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 381:
-#line 2083 "c-parse.y"
+case 387:
+#line 2105 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 382:
-#line 2090 "c-parse.y"
+case 388:
+#line 2112 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3564,8 +3589,8 @@ case 382:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 383:
-#line 2099 "c-parse.y"
+case 389:
+#line 2121 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3575,8 +3600,8 @@ case 383:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 384:
-#line 2108 "c-parse.y"
+case 390:
+#line 2130 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3586,8 +3611,8 @@ case 384:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 385:
-#line 2117 "c-parse.y"
+case 391:
+#line 2139 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3597,8 +3622,8 @@ case 385:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 386:
-#line 2127 "c-parse.y"
+case 392:
+#line 2149 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3608,50 +3633,50 @@ case 386:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 387:
-#line 2141 "c-parse.y"
+case 393:
+#line 2163 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (1); ;
     break;}
-case 388:
-#line 2145 "c-parse.y"
+case 394:
+#line 2167 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 390:
-#line 2153 "c-parse.y"
+case 396:
+#line 2175 "c-parse.y"
 { tree t;
                  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
                    if (TREE_VALUE (t) == NULL_TREE)
                      error ("`...' in old-style identifier list");
                  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 391:
-#line 2163 "c-parse.y"
+case 397:
+#line 2185 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 392:
-#line 2165 "c-parse.y"
+case 398:
+#line 2187 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
-case 393:
-#line 2171 "c-parse.y"
+case 399:
+#line 2193 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 394:
-#line 2173 "c-parse.y"
+case 400:
+#line 2195 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
-case 395:
-#line 2178 "c-parse.y"
+case 401:
+#line 2200 "c-parse.y"
 { yyval.itype = pedantic;
                  pedantic = 0; ;
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/share/bison.simple"
+#line 498 "/usr/cygnus/progressive-98r1/share/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -3847,5 +3872,5 @@ yyerrhandle:
   yystate = yyn;
   goto yynewstate;
 }
-#line 2182 "c-parse.y"
+#line 2204 "c-parse.y"
 
index d7725e5ca5780c58b4eb8b608b0ddc29fca74a9c..16500c5fe35dbe76c72c1b17abc672d4801f2d77 100644 (file)
@@ -197,6 +197,7 @@ end ifc
 %type <ttype> structsp component_decl_list component_decl_list2
 %type <ttype> component_decl components component_declarator
 %type <ttype> enumlist enumerator
+%type <ttype> struct_head union_head enum_head
 %type <ttype> typename absdcl absdcl1 type_quals
 %type <ttype> xexpr parms parm identifiers
 
@@ -1440,42 +1441,63 @@ notype_declarator:
        | IDENTIFIER
        ;
 
+struct_head:
+         STRUCT
+               { $$ = NULL_TREE; }
+       | STRUCT attributes
+               { $$ = $2; }
+       ;
+
+union_head:
+         UNION
+               { $$ = NULL_TREE; }
+       | UNION attributes
+               { $$ = $2; }
+       ;
+
+enum_head:
+         ENUM
+               { $$ = NULL_TREE; }
+       | ENUM attributes
+               { $$ = $2; }
+       ;
+
 structsp:
-         STRUCT identifier '{'
+         struct_head identifier '{'
                { $$ = start_struct (RECORD_TYPE, $2);
                  /* Start scope of tag before parsing components.  */
                }
          component_decl_list '}' maybe_attribute 
-               { $$ = finish_struct ($<ttype>4, $5, $7); }
-       | STRUCT '{' component_decl_list '}' maybe_attribute
+               { $$ = finish_struct ($<ttype>4, $5, chainon ($1, $7)); }
+       | struct_head '{' component_decl_list '}' maybe_attribute
                { $$ = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
-                                     $3, $5);
+                                     $3, chainon ($1, $5));
                }
-       | STRUCT identifier
+       | struct_head identifier
                { $$ = xref_tag (RECORD_TYPE, $2); }
-       | UNION identifier '{'
+       | union_head identifier '{'
                { $$ = start_struct (UNION_TYPE, $2); }
          component_decl_list '}' maybe_attribute
-               { $$ = finish_struct ($<ttype>4, $5, $7); }
-       | UNION '{' component_decl_list '}' maybe_attribute
+               { $$ = finish_struct ($<ttype>4, $5, chainon ($1, $7)); }
+       | union_head '{' component_decl_list '}' maybe_attribute
                { $$ = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
-                                     $3, $5);
+                                     $3, chainon ($1, $5));
                }
-       | UNION identifier
+       | union_head identifier
                { $$ = xref_tag (UNION_TYPE, $2); }
-       | ENUM identifier '{'
+       | enum_head identifier '{'
                { $<itype>3 = suspend_momentary ();
                  $$ = start_enum ($2); }
          enumlist maybecomma_warn '}' maybe_attribute
-               { $$ = finish_enum ($<ttype>4, nreverse ($5), $8);
+               { $$= finish_enum ($<ttype>4, nreverse ($5), chainon ($1, $8));
                  resume_momentary ($<itype>3); }
-       | ENUM '{'
+       | enum_head '{'
                { $<itype>2 = suspend_momentary ();
                  $$ = start_enum (NULL_TREE); }
          enumlist maybecomma_warn '}' maybe_attribute
-               { $$ = finish_enum ($<ttype>3, nreverse ($4), $7);
+               { $$= finish_enum ($<ttype>3, nreverse ($4), chainon ($1, $7));
                  resume_momentary ($<itype>2); }
-       | ENUM identifier
+       | enum_head identifier
                { $$ = xref_tag (ENUMERAL_TYPE, $2); }
        ;
 
index a67718984cbd1826012bd473b09345af6cc03aab..ab0d7d16b9d0d8da6130cee0c735ef006539baad 100644 (file)
@@ -185,6 +185,7 @@ char *language_string = "GNU C";
 %type <ttype> structsp component_decl_list component_decl_list2
 %type <ttype> component_decl components component_declarator
 %type <ttype> enumlist enumerator
+%type <ttype> struct_head union_head enum_head
 %type <ttype> typename absdcl absdcl1 type_quals
 %type <ttype> xexpr parms parm identifiers
 
@@ -1269,42 +1270,63 @@ notype_declarator:
        | IDENTIFIER
        ;
 
+struct_head:
+         STRUCT
+               { $$ = NULL_TREE; }
+       | STRUCT attributes
+               { $$ = $2; }
+       ;
+
+union_head:
+         UNION
+               { $$ = NULL_TREE; }
+       | UNION attributes
+               { $$ = $2; }
+       ;
+
+enum_head:
+         ENUM
+               { $$ = NULL_TREE; }
+       | ENUM attributes
+               { $$ = $2; }
+       ;
+
 structsp:
-         STRUCT identifier '{'
+         struct_head identifier '{'
                { $$ = start_struct (RECORD_TYPE, $2);
                  /* Start scope of tag before parsing components.  */
                }
          component_decl_list '}' maybe_attribute 
-               { $$ = finish_struct ($<ttype>4, $5, $7); }
-       | STRUCT '{' component_decl_list '}' maybe_attribute
+               { $$ = finish_struct ($<ttype>4, $5, chainon ($1, $7)); }
+       | struct_head '{' component_decl_list '}' maybe_attribute
                { $$ = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
-                                     $3, $5);
+                                     $3, chainon ($1, $5));
                }
-       | STRUCT identifier
+       | struct_head identifier
                { $$ = xref_tag (RECORD_TYPE, $2); }
-       | UNION identifier '{'
+       | union_head identifier '{'
                { $$ = start_struct (UNION_TYPE, $2); }
          component_decl_list '}' maybe_attribute
-               { $$ = finish_struct ($<ttype>4, $5, $7); }
-       | UNION '{' component_decl_list '}' maybe_attribute
+               { $$ = finish_struct ($<ttype>4, $5, chainon ($1, $7)); }
+       | union_head '{' component_decl_list '}' maybe_attribute
                { $$ = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
-                                     $3, $5);
+                                     $3, chainon ($1, $5));
                }
-       | UNION identifier
+       | union_head identifier
                { $$ = xref_tag (UNION_TYPE, $2); }
-       | ENUM identifier '{'
+       | enum_head identifier '{'
                { $<itype>3 = suspend_momentary ();
                  $$ = start_enum ($2); }
          enumlist maybecomma_warn '}' maybe_attribute
-               { $$ = finish_enum ($<ttype>4, nreverse ($5), $8);
+               { $$= finish_enum ($<ttype>4, nreverse ($5), chainon ($1, $8));
                  resume_momentary ($<itype>3); }
-       | ENUM '{'
+       | enum_head '{'
                { $<itype>2 = suspend_momentary ();
                  $$ = start_enum (NULL_TREE); }
          enumlist maybecomma_warn '}' maybe_attribute
-               { $$ = finish_enum ($<ttype>3, nreverse ($4), $7);
+               { $$= finish_enum ($<ttype>3, nreverse ($4), chainon ($1, $7));
                  resume_momentary ($<itype>2); }
-       | ENUM identifier
+       | enum_head identifier
                { $$ = xref_tag (ENUMERAL_TYPE, $2); }
        ;
 
index a7c0766bd2408d5661f8327e71d1d77b02512415..5cf1b24f2efdf64129a7d0fbf16e090c9192f52a 100644 (file)
@@ -2015,6 +2015,9 @@ closing curly brace of a complete enum, struct or union type
 @emph{definition} and the @code{packed} attribute only past the closing
 brace of a definition.
 
+You may also specify attributes between the enum, struct or union
+tag and the name of the type rather than after the closing brace.
+
 @table @code
 @cindex @code{aligned} attribute
 @item aligned (@var{alignment})
index ad06cf6ac26c91599598aad7c1e93722a983d00c..81daef3b8f793e05ef4ecb1efb194417b6e832db 100644 (file)
@@ -98,7 +98,7 @@ char *language_string = "GNU Obj-C";
 #line 65 "objc-parse.y"
 typedef union {long itype; tree ttype; enum tree_code code;
        char *filename; int lineno; int ends_in_label; } YYSTYPE;
-#line 192 "objc-parse.y"
+#line 193 "objc-parse.y"
 
 /* Number of statements (loosely speaking) and compound statements 
    seen so far.  */
@@ -146,11 +146,11 @@ extern void yyprint                       PROTO ((FILE *, int, YYSTYPE));
 
 
 
-#define        YYFINAL         941
+#define        YYFINAL         947
 #define        YYFLAG          -32768
 #define        YYNTBASE        84
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 306)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 309)
 
 static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -213,59 +213,60 @@ static const short yyprhs[] = {     0,
    630,   631,   636,   637,   643,   644,   645,   651,   652,   653,
    659,   661,   663,   667,   671,   676,   680,   684,   688,   690,
    692,   696,   701,   705,   709,   713,   715,   719,   723,   727,
-   732,   736,   740,   742,   743,   751,   757,   760,   761,   769,
-   775,   778,   779,   788,   789,   797,   800,   801,   803,   804,
-   806,   808,   811,   812,   816,   819,   824,   828,   830,   834,
-   836,   838,   841,   843,   847,   852,   859,   865,   867,   871,
-   873,   875,   879,   882,   885,   886,   888,   890,   893,   894,
-   897,   901,   905,   908,   912,   917,   921,   924,   928,   931,
-   933,   935,   938,   941,   942,   944,   947,   948,   949,   951,
-   953,   956,   960,   962,   965,   967,   970,   977,   983,   989,
-   992,   995,  1000,  1001,  1006,  1007,  1008,  1012,  1017,  1021,
-  1023,  1025,  1027,  1029,  1032,  1033,  1038,  1040,  1044,  1045,
-  1046,  1054,  1060,  1063,  1064,  1065,  1066,  1079,  1080,  1087,
-  1090,  1093,  1096,  1100,  1107,  1116,  1127,  1140,  1144,  1149,
-  1151,  1153,  1154,  1161,  1165,  1171,  1174,  1177,  1178,  1180,
-  1181,  1183,  1184,  1186,  1188,  1192,  1197,  1199,  1203,  1204,
-  1207,  1210,  1211,  1216,  1219,  1220,  1222,  1224,  1228,  1230,
-  1234,  1239,  1244,  1249,  1254,  1259,  1260,  1263,  1265,  1268,
-  1270,  1274,  1276,  1280,  1282,  1284,  1286,  1288,  1290,  1292,
-  1294,  1296,  1300,  1304,  1309,  1310,  1311,  1322,  1323,  1330,
-  1331,  1332,  1345,  1346,  1355,  1356,  1363,  1366,  1367,  1376,
-  1381,  1382,  1392,  1398,  1399,  1406,  1407,  1409,  1413,  1417,
-  1419,  1421,  1423,  1425,  1426,  1430,  1433,  1437,  1441,  1443,
-  1444,  1446,  1450,  1452,  1456,  1459,  1460,  1461,  1462,  1470,
-  1471,  1472,  1473,  1481,  1482,  1483,  1486,  1488,  1490,  1493,
-  1494,  1498,  1500,  1502,  1503,  1504,  1510,  1511,  1512,  1518,
-  1523,  1525,  1531,  1534,  1535,  1538,  1539,  1541,  1543,  1545,
-  1548,  1551,  1556,  1559,  1562,  1564,  1568,  1571,  1574,  1577,
-  1578,  1581,  1582,  1586,  1588,  1590,  1593,  1595,  1597,  1599,
-  1601,  1603,  1605,  1607,  1609,  1611,  1613,  1615,  1617,  1619,
-  1621,  1623,  1625,  1627,  1629,  1631,  1633,  1635,  1637,  1639,
-  1641,  1643,  1650,  1654,  1660,  1663,  1665,  1667,  1669,  1672,
-  1674,  1678,  1681,  1683,  1685,  1686,  1687,  1694,  1696,  1698,
-  1700,  1703,  1706,  1708,  1713,  1718
+   732,   736,   740,   742,   744,   747,   749,   752,   754,   757,
+   758,   766,   772,   775,   776,   784,   790,   793,   794,   803,
+   804,   812,   815,   816,   818,   819,   821,   823,   826,   827,
+   831,   834,   839,   843,   845,   849,   851,   853,   856,   858,
+   862,   867,   874,   880,   882,   886,   888,   890,   894,   897,
+   900,   901,   903,   905,   908,   909,   912,   916,   920,   923,
+   927,   932,   936,   939,   943,   946,   948,   950,   953,   956,
+   957,   959,   962,   963,   964,   966,   968,   971,   975,   977,
+   980,   982,   985,   992,   998,  1004,  1007,  1010,  1015,  1016,
+  1021,  1022,  1023,  1027,  1032,  1036,  1038,  1040,  1042,  1044,
+  1047,  1048,  1053,  1055,  1059,  1060,  1061,  1069,  1075,  1078,
+  1079,  1080,  1081,  1094,  1095,  1102,  1105,  1108,  1111,  1115,
+  1122,  1131,  1142,  1155,  1159,  1164,  1166,  1168,  1169,  1176,
+  1180,  1186,  1189,  1192,  1193,  1195,  1196,  1198,  1199,  1201,
+  1203,  1207,  1212,  1214,  1218,  1219,  1222,  1225,  1226,  1231,
+  1234,  1235,  1237,  1239,  1243,  1245,  1249,  1254,  1259,  1264,
+  1269,  1274,  1275,  1278,  1280,  1283,  1285,  1289,  1291,  1295,
+  1297,  1299,  1301,  1303,  1305,  1307,  1309,  1311,  1315,  1319,
+  1324,  1325,  1326,  1337,  1338,  1345,  1346,  1347,  1360,  1361,
+  1370,  1371,  1378,  1381,  1382,  1391,  1396,  1397,  1407,  1413,
+  1414,  1421,  1422,  1424,  1428,  1432,  1434,  1436,  1438,  1440,
+  1441,  1445,  1448,  1452,  1456,  1458,  1459,  1461,  1465,  1467,
+  1471,  1474,  1475,  1476,  1477,  1485,  1486,  1487,  1488,  1496,
+  1497,  1498,  1501,  1503,  1505,  1508,  1509,  1513,  1515,  1517,
+  1518,  1519,  1525,  1526,  1527,  1533,  1538,  1540,  1546,  1549,
+  1550,  1553,  1554,  1556,  1558,  1560,  1563,  1566,  1571,  1574,
+  1577,  1579,  1583,  1586,  1589,  1592,  1593,  1596,  1597,  1601,
+  1603,  1605,  1608,  1610,  1612,  1614,  1616,  1618,  1620,  1622,
+  1624,  1626,  1628,  1630,  1632,  1634,  1636,  1638,  1640,  1642,
+  1644,  1646,  1648,  1650,  1652,  1654,  1656,  1658,  1665,  1669,
+  1675,  1678,  1680,  1682,  1684,  1687,  1689,  1693,  1696,  1698,
+  1700,  1701,  1702,  1709,  1711,  1713,  1715,  1718,  1721,  1723,
+  1728,  1733
 };
 
 static const short yyrhs[] = {    -1,
     85,     0,     0,    86,    88,     0,     0,    85,    87,    88,
-     0,    90,     0,    89,     0,   237,     0,    27,    59,    99,
-    76,    77,     0,   236,    88,     0,   123,   137,    77,     0,
+     0,    90,     0,    89,     0,   240,     0,    27,    59,    99,
+    76,    77,     0,   239,    88,     0,   123,   137,    77,     0,
    130,   123,   137,    77,     0,   126,   123,   136,    77,     0,
    130,    77,     0,   126,    77,     0,     1,    77,     0,     1,
     78,     0,    77,     0,     0,     0,   126,   123,   163,    91,
-   117,    92,   194,     0,   126,   123,   163,     1,     0,     0,
-     0,   130,   123,   166,    93,   117,    94,   194,     0,   130,
+   117,    92,   197,     0,   126,   123,   163,     1,     0,     0,
+     0,   130,   123,   166,    93,   117,    94,   197,     0,   130,
    123,   166,     1,     0,     0,     0,   123,   166,    95,   117,
-    96,   194,     0,   123,   166,     1,     0,     3,     0,     4,
+    96,   197,     0,   123,   166,     1,     0,     3,     0,     4,
      0,    72,     0,    67,     0,    43,     0,    49,     0,    48,
      0,    54,     0,    55,     0,    79,     0,    80,     0,   101,
      0,     0,   101,     0,   107,     0,   101,    81,   107,     0,
-   113,     0,    50,   105,     0,   236,   105,     0,    98,   105,
-     0,    40,    97,     0,   103,   102,     0,   103,    59,   181,
-    76,     0,   104,   102,     0,   104,    59,   181,    76,     0,
+   113,     0,    50,   105,     0,   239,   105,     0,    98,   105,
+     0,    40,    97,     0,   103,   102,     0,   103,    59,   184,
+    76,     0,   104,   102,     0,   104,    59,   184,    76,     0,
     33,   105,     0,    34,   105,     0,    11,     0,    29,     0,
-   102,     0,    59,   181,    76,   105,     0,     0,    59,   181,
+   102,     0,    59,   184,    76,   105,     0,     0,    59,   184,
     76,    82,   106,   151,    78,     0,   105,     0,   107,    48,
    107,     0,   107,    49,   107,     0,   107,    50,   107,     0,
    107,    51,   107,     0,   107,    52,   107,     0,   107,    46,
@@ -277,28 +278,28 @@ static const short yyrhs[] = {    -1,
     37,   112,    38,   107,     0,   107,    36,   107,     0,   107,
     35,   107,     0,     3,     0,     8,     0,   115,     0,    59,
     99,    76,     0,    59,     1,    76,     0,     0,    59,   114,
-   196,    76,     0,   113,    59,   100,    76,     0,   113,    60,
+   199,    76,     0,   113,    59,   100,    76,     0,   113,    60,
     99,    83,     0,   113,    58,    97,     0,   113,    57,    97,
-     0,   113,    54,     0,   113,    55,     0,   297,     0,   303,
-     0,   304,     0,   305,     0,   116,     0,     9,     0,   115,
+     0,   113,    54,     0,   113,    55,     0,   300,     0,   306,
+     0,   307,     0,   308,     0,   116,     0,     9,     0,   115,
      9,     0,    75,     0,   116,    75,     0,     0,   119,     0,
-   119,    10,     0,   201,   202,   120,     0,   118,     0,   189,
-     0,   119,   118,     0,   118,   189,     0,   128,   123,   136,
+   119,    10,     0,   204,   205,   120,     0,   118,     0,   192,
+     0,   119,   118,     0,   118,   192,     0,   128,   123,   136,
     77,     0,   131,   123,   137,    77,     0,   128,    77,     0,
-   131,    77,     0,   201,   202,   125,     0,   121,     0,   189,
-     0,   122,   121,     0,   121,   189,     0,     0,     0,   126,
+   131,    77,     0,   204,   205,   125,     0,   121,     0,   192,
+     0,   122,   121,     0,   121,   192,     0,     0,     0,   126,
    123,   136,    77,     0,   130,   123,   137,    77,     0,   126,
    123,   157,     0,   130,   123,   160,     0,   126,    77,     0,
-   130,    77,     0,   236,   125,     0,   134,   127,     0,   130,
+   130,    77,     0,   239,   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,
-   183,   134,   133,     0,     0,   133,   135,     0,     6,     0,
-   167,     0,     4,     0,    67,   253,     0,    72,   253,     0,
-   254,     0,    28,    59,    99,    76,     0,    28,    59,   181,
-    76,     0,     6,     0,     7,     0,   167,     0,   139,     0,
+   186,   134,   133,     0,     0,   133,   135,     0,     6,     0,
+   170,     0,     4,     0,    67,   256,     0,    72,   256,     0,
+   257,     0,    28,    59,    99,    76,     0,    28,    59,   184,
+    76,     0,     6,     0,     7,     0,   170,     0,   139,     0,
    136,    81,   139,     0,   141,     0,   137,    81,   139,     0,
      0,    27,    59,   115,    76,     0,     0,   163,   138,   143,
     36,   140,   149,     0,   163,   138,   143,     0,     0,   166,
@@ -309,180 +310,182 @@ static const short yyrhs[] = {    -1,
     59,     3,    81,   101,    76,     0,   148,    59,   100,    76,
      0,    97,     0,     5,     0,     6,     0,     7,     0,   107,
      0,     0,    82,   150,   151,    78,     0,     1,     0,     0,
-   152,   172,     0,   153,     0,   152,    81,   153,     0,   107,
+   152,   175,     0,   153,     0,   152,    81,   153,     0,   107,
      0,     0,    82,   154,   151,    78,     0,     1,     0,     0,
     97,    38,   155,   153,     0,     0,    58,    97,    36,   156,
-   153,     0,     0,     0,   163,   158,   117,   159,   196,     0,
-     0,     0,   166,   161,   117,   162,   196,     0,   164,     0,
-   166,     0,    59,   164,    76,     0,   164,    59,   231,     0,
+   153,     0,     0,     0,   163,   158,   117,   159,   199,     0,
+     0,     0,   166,   161,   117,   162,   199,     0,   164,     0,
+   166,     0,    59,   164,    76,     0,   164,    59,   234,     0,
    164,    60,    99,    83,     0,   164,    60,    83,     0,    50,
-   184,   164,     0,   144,   124,   164,     0,     4,     0,    72,
-     0,   165,    59,   231,     0,   165,    60,    99,    83,     0,
-   165,    60,    83,     0,    50,   184,   165,     0,   144,   124,
-   165,     0,     4,     0,   166,    59,   231,     0,    59,   166,
-    76,     0,    50,   184,   166,     0,   166,    60,    99,    83,
+   187,   164,     0,   144,   124,   164,     0,     4,     0,    72,
+     0,   165,    59,   234,     0,   165,    60,    99,    83,     0,
+   165,    60,    83,     0,    50,   187,   165,     0,   144,   124,
+   165,     0,     4,     0,   166,    59,   234,     0,    59,   166,
+    76,     0,    50,   187,   166,     0,   166,    60,    99,    83,
      0,   166,    60,    83,     0,   144,   124,   166,     0,     3,
-     0,     0,    13,    97,    82,   168,   174,    78,   143,     0,
-    13,    82,   174,    78,   143,     0,    13,    97,     0,     0,
-    14,    97,    82,   169,   174,    78,   143,     0,    14,    82,
-   174,    78,   143,     0,    14,    97,     0,     0,    12,    97,
-    82,   170,   179,   173,    78,   143,     0,     0,    12,    82,
-   171,   179,   173,    78,   143,     0,    12,    97,     0,     0,
-    81,     0,     0,    81,     0,   175,     0,   175,   176,     0,
-     0,   175,   176,    77,     0,   175,    77,     0,    65,    59,
-    67,    76,     0,   132,   123,   177,     0,   132,     0,   183,
-   123,   177,     0,   183,     0,     1,     0,   236,   176,     0,
-   178,     0,   177,    81,   178,     0,   201,   202,   163,   143,
-     0,   201,   202,   163,    38,   107,   143,     0,   201,   202,
-    38,   107,   143,     0,   180,     0,   179,    81,   180,     0,
-     1,     0,    97,     0,    97,    36,   107,     0,   132,   182,
-     0,   183,   182,     0,     0,   185,     0,     7,     0,   183,
-     7,     0,     0,   184,     7,     0,    59,   185,    76,     0,
-    50,   184,   185,     0,    50,   184,     0,   185,    59,   224,
-     0,   185,    60,    99,    83,     0,   185,    60,    83,     0,
-    59,   224,     0,    60,    99,    83,     0,    60,    83,     0,
-   187,     0,   204,     0,   187,   204,     0,   187,   189,     0,
-     0,   186,     0,     1,    77,     0,     0,     0,   192,     0,
-   193,     0,   192,   193,     0,    32,   235,    77,     0,   196,
-     0,     1,   196,     0,    82,     0,   195,    78,     0,   195,
-   190,   191,   122,   188,    78,     0,   195,   190,   191,     1,
-    78,     0,   195,   190,   191,   186,    78,     0,   198,   203,
-     0,   198,     1,     0,    15,    59,    99,    76,     0,     0,
-    18,   200,   203,    17,     0,     0,     0,   201,   202,   206,
-     0,   201,   202,   217,   203,     0,   201,   202,   205,     0,
-   206,     0,   217,     0,   196,     0,   214,     0,    99,    77,
-     0,     0,   197,    16,   207,   203,     0,   197,     0,   197,
-    16,     1,     0,     0,     0,    17,   208,    59,    99,    76,
-   209,   203,     0,   199,    59,    99,    76,    77,     0,   199,
-     1,     0,     0,     0,     0,    19,    59,   219,    77,   210,
-   219,    77,   211,   219,    76,   212,   203,     0,     0,    20,
-    59,    99,    76,   213,   203,     0,    23,    77,     0,    24,
-    77,     0,    25,    77,     0,    25,    99,    77,     0,    27,
-   218,    59,    99,    76,    77,     0,    27,   218,    59,    99,
-    38,   220,    76,    77,     0,    27,   218,    59,    99,    38,
-   220,    38,   220,    76,    77,     0,    27,   218,    59,    99,
-    38,   220,    38,   220,    38,   223,    76,    77,     0,    26,
-    97,    77,     0,    26,    50,    99,    77,     0,    77,     0,
-   215,     0,     0,    19,    59,   113,    76,   216,   203,     0,
-    21,   107,    38,     0,    21,   107,    10,   107,    38,     0,
-    22,    38,     0,    97,    38,     0,     0,     7,     0,     0,
-    99,     0,     0,   221,     0,   222,     0,   221,    81,   222,
-     0,     9,    59,    99,    76,     0,   115,     0,   223,    81,
-   115,     0,     0,   225,   226,     0,   228,    76,     0,     0,
-   229,    77,   227,   226,     0,     1,    76,     0,     0,    10,
-     0,   229,     0,   229,    81,    10,     0,   230,     0,   229,
-    81,   230,     0,   126,   123,   165,   143,     0,   126,   123,
-   166,   143,     0,   126,   123,   182,   143,     0,   130,   123,
-   166,   143,     0,   130,   123,   182,   143,     0,     0,   232,
-   233,     0,   226,     0,   234,    76,     0,     3,     0,   234,
-    81,     3,     0,    97,     0,   235,    81,    97,     0,    31,
-     0,   241,     0,   239,     0,   240,     0,   251,     0,   261,
-     0,    63,     0,    97,     0,   238,    81,    97,     0,    73,
-   238,    77,     0,    74,    97,    97,    77,     0,     0,     0,
-    61,    97,   253,    82,   242,   255,    78,   243,   268,    63,
-     0,     0,    61,    97,   253,   244,   268,    63,     0,     0,
-     0,    61,    97,    38,    97,   253,    82,   245,   255,    78,
-   246,   268,    63,     0,     0,    61,    97,    38,    97,   253,
-   247,   268,    63,     0,     0,    62,    97,    82,   248,   255,
-    78,     0,    62,    97,     0,     0,    62,    97,    38,    97,
-    82,   249,   255,    78,     0,    62,    97,    38,    97,     0,
-     0,    61,    97,    59,    97,    76,   253,   250,   268,    63,
-     0,    62,    97,    59,    97,    76,     0,     0,    71,    97,
-   253,   252,   268,    63,     0,     0,   254,     0,    45,   238,
-    45,     0,   255,   256,   257,     0,   257,     0,    69,     0,
-    70,     0,    68,     0,     0,   257,   258,    77,     0,   257,
-    77,     0,   132,   123,   259,     0,   183,   123,   259,     0,
-     1,     0,     0,   260,     0,   259,    81,   260,     0,   163,
-     0,   163,    38,   107,     0,    38,   107,     0,     0,     0,
-     0,    48,   262,   278,   263,   279,   264,   194,     0,     0,
-     0,     0,    49,   265,   278,   266,   279,   267,   194,     0,
-     0,     0,   269,   270,     0,   273,     0,    89,     0,   270,
-   273,     0,     0,   270,   271,    89,     0,    77,     0,     1,
-     0,     0,     0,    48,   274,   278,   275,   272,     0,     0,
-     0,    49,   276,   278,   277,   272,     0,    59,   181,    76,
-   287,     0,   287,     0,    59,   181,    76,   288,   285,     0,
-   288,   285,     0,     0,    77,   280,     0,     0,   281,     0,
-   282,     0,   189,     0,   281,   282,     0,   282,   189,     0,
-   126,   123,   283,    77,     0,   126,    77,     0,   130,    77,
-     0,   284,     0,   283,    81,   284,     0,   165,   143,     0,
-   166,   143,     0,   182,   143,     0,     0,    81,    10,     0,
-     0,    81,   286,   228,     0,   289,     0,   291,     0,   288,
-   291,     0,     3,     0,     4,     0,    72,     0,   290,     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,   289,    38,    59,   181,    76,    97,     0,   289,
-    38,    97,     0,    38,    59,   181,    76,    97,     0,    38,
-    97,     0,   289,     0,   293,     0,   295,     0,   293,   295,
-     0,   101,     0,   289,    38,   294,     0,    38,   294,     0,
-    99,     0,    67,     0,     0,     0,    60,   298,   296,   299,
-   292,    83,     0,   289,     0,   301,     0,   302,     0,   301,
-   302,     0,   289,    38,     0,    38,     0,    64,    59,   300,
-    76,     0,    71,    59,    97,    76,     0,    66,    59,   181,
-    76,     0
+     0,    13,     0,    13,   144,     0,    14,     0,    14,   144,
+     0,    12,     0,    12,   144,     0,     0,   167,    97,    82,
+   171,   177,    78,   143,     0,   167,    82,   177,    78,   143,
+     0,   167,    97,     0,     0,   168,    97,    82,   172,   177,
+    78,   143,     0,   168,    82,   177,    78,   143,     0,   168,
+    97,     0,     0,   169,    97,    82,   173,   182,   176,    78,
+   143,     0,     0,   169,    82,   174,   182,   176,    78,   143,
+     0,   169,    97,     0,     0,    81,     0,     0,    81,     0,
+   178,     0,   178,   179,     0,     0,   178,   179,    77,     0,
+   178,    77,     0,    65,    59,    67,    76,     0,   132,   123,
+   180,     0,   132,     0,   186,   123,   180,     0,   186,     0,
+     1,     0,   239,   179,     0,   181,     0,   180,    81,   181,
+     0,   204,   205,   163,   143,     0,   204,   205,   163,    38,
+   107,   143,     0,   204,   205,    38,   107,   143,     0,   183,
+     0,   182,    81,   183,     0,     1,     0,    97,     0,    97,
+    36,   107,     0,   132,   185,     0,   186,   185,     0,     0,
+   188,     0,     7,     0,   186,     7,     0,     0,   187,     7,
+     0,    59,   188,    76,     0,    50,   187,   188,     0,    50,
+   187,     0,   188,    59,   227,     0,   188,    60,    99,    83,
+     0,   188,    60,    83,     0,    59,   227,     0,    60,    99,
+    83,     0,    60,    83,     0,   190,     0,   207,     0,   190,
+   207,     0,   190,   192,     0,     0,   189,     0,     1,    77,
+     0,     0,     0,   195,     0,   196,     0,   195,   196,     0,
+    32,   238,    77,     0,   199,     0,     1,   199,     0,    82,
+     0,   198,    78,     0,   198,   193,   194,   122,   191,    78,
+     0,   198,   193,   194,     1,    78,     0,   198,   193,   194,
+   189,    78,     0,   201,   206,     0,   201,     1,     0,    15,
+    59,    99,    76,     0,     0,    18,   203,   206,    17,     0,
+     0,     0,   204,   205,   209,     0,   204,   205,   220,   206,
+     0,   204,   205,   208,     0,   209,     0,   220,     0,   199,
+     0,   217,     0,    99,    77,     0,     0,   200,    16,   210,
+   206,     0,   200,     0,   200,    16,     1,     0,     0,     0,
+    17,   211,    59,    99,    76,   212,   206,     0,   202,    59,
+    99,    76,    77,     0,   202,     1,     0,     0,     0,     0,
+    19,    59,   222,    77,   213,   222,    77,   214,   222,    76,
+   215,   206,     0,     0,    20,    59,    99,    76,   216,   206,
+     0,    23,    77,     0,    24,    77,     0,    25,    77,     0,
+    25,    99,    77,     0,    27,   221,    59,    99,    76,    77,
+     0,    27,   221,    59,    99,    38,   223,    76,    77,     0,
+    27,   221,    59,    99,    38,   223,    38,   223,    76,    77,
+     0,    27,   221,    59,    99,    38,   223,    38,   223,    38,
+   226,    76,    77,     0,    26,    97,    77,     0,    26,    50,
+    99,    77,     0,    77,     0,   218,     0,     0,    19,    59,
+   113,    76,   219,   206,     0,    21,   107,    38,     0,    21,
+   107,    10,   107,    38,     0,    22,    38,     0,    97,    38,
+     0,     0,     7,     0,     0,    99,     0,     0,   224,     0,
+   225,     0,   224,    81,   225,     0,     9,    59,    99,    76,
+     0,   115,     0,   226,    81,   115,     0,     0,   228,   229,
+     0,   231,    76,     0,     0,   232,    77,   230,   229,     0,
+     1,    76,     0,     0,    10,     0,   232,     0,   232,    81,
+    10,     0,   233,     0,   232,    81,   233,     0,   126,   123,
+   165,   143,     0,   126,   123,   166,   143,     0,   126,   123,
+   185,   143,     0,   130,   123,   166,   143,     0,   130,   123,
+   185,   143,     0,     0,   235,   236,     0,   229,     0,   237,
+    76,     0,     3,     0,   237,    81,     3,     0,    97,     0,
+   238,    81,    97,     0,    31,     0,   244,     0,   242,     0,
+   243,     0,   254,     0,   264,     0,    63,     0,    97,     0,
+   241,    81,    97,     0,    73,   241,    77,     0,    74,    97,
+    97,    77,     0,     0,     0,    61,    97,   256,    82,   245,
+   258,    78,   246,   271,    63,     0,     0,    61,    97,   256,
+   247,   271,    63,     0,     0,     0,    61,    97,    38,    97,
+   256,    82,   248,   258,    78,   249,   271,    63,     0,     0,
+    61,    97,    38,    97,   256,   250,   271,    63,     0,     0,
+    62,    97,    82,   251,   258,    78,     0,    62,    97,     0,
+     0,    62,    97,    38,    97,    82,   252,   258,    78,     0,
+    62,    97,    38,    97,     0,     0,    61,    97,    59,    97,
+    76,   256,   253,   271,    63,     0,    62,    97,    59,    97,
+    76,     0,     0,    71,    97,   256,   255,   271,    63,     0,
+     0,   257,     0,    45,   241,    45,     0,   258,   259,   260,
+     0,   260,     0,    69,     0,    70,     0,    68,     0,     0,
+   260,   261,    77,     0,   260,    77,     0,   132,   123,   262,
+     0,   186,   123,   262,     0,     1,     0,     0,   263,     0,
+   262,    81,   263,     0,   163,     0,   163,    38,   107,     0,
+    38,   107,     0,     0,     0,     0,    48,   265,   281,   266,
+   282,   267,   197,     0,     0,     0,     0,    49,   268,   281,
+   269,   282,   270,   197,     0,     0,     0,   272,   273,     0,
+   276,     0,    89,     0,   273,   276,     0,     0,   273,   274,
+    89,     0,    77,     0,     1,     0,     0,     0,    48,   277,
+   281,   278,   275,     0,     0,     0,    49,   279,   281,   280,
+   275,     0,    59,   184,    76,   290,     0,   290,     0,    59,
+   184,    76,   291,   288,     0,   291,   288,     0,     0,    77,
+   283,     0,     0,   284,     0,   285,     0,   192,     0,   284,
+   285,     0,   285,   192,     0,   126,   123,   286,    77,     0,
+   126,    77,     0,   130,    77,     0,   287,     0,   286,    81,
+   287,     0,   165,   143,     0,   166,   143,     0,   185,   143,
+     0,     0,    81,    10,     0,     0,    81,   289,   231,     0,
+   292,     0,   294,     0,   291,   294,     0,     3,     0,     4,
+     0,    72,     0,   293,     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,   292,    38,    59,
+   184,    76,    97,     0,   292,    38,    97,     0,    38,    59,
+   184,    76,    97,     0,    38,    97,     0,   292,     0,   296,
+     0,   298,     0,   296,   298,     0,   101,     0,   292,    38,
+   297,     0,    38,   297,     0,    99,     0,    67,     0,     0,
+     0,    60,   301,   299,   302,   295,    83,     0,   292,     0,
+   304,     0,   305,     0,   304,   305,     0,   292,    38,     0,
+    38,     0,    64,    59,   303,    76,     0,    71,    59,    97,
+    76,     0,    66,    59,   184,    76,     0
 };
 
 #endif
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   232,   237,   251,   253,   253,   254,   256,   258,   259,   260,
-   268,   272,   283,   288,   293,   295,   297,   298,   299,   304,
-   311,   313,   318,   323,   329,   331,   336,   341,   347,   349,
-   354,   361,   363,   364,   365,   368,   370,   372,   374,   376,
-   378,   380,   384,   388,   391,   394,   397,   401,   403,   406,
-   409,   413,   441,   447,   450,   453,   456,   458,   462,   466,
-   470,   472,   475,   479,   506,   508,   510,   512,   514,   516,
-   518,   520,   522,   524,   526,   528,   530,   532,   536,   538,
-   542,   544,   547,   551,   553,   560,   563,   566,   572,   732,
-   733,   735,   741,   743,   757,   780,   782,   784,   796,   810,
-   812,   814,   816,   818,   820,   822,   827,   829,   835,   837,
-   841,   843,   844,   854,   859,   861,   862,   863,   870,   876,
-   881,   884,   892,   897,   899,   900,   901,   908,   919,   923,
-   929,   934,   939,   944,   946,   948,   957,   960,   964,   966,
-   968,   973,   977,   980,   984,   987,   989,  1001,  1004,  1006,
-  1008,  1012,  1016,  1018,  1021,  1034,  1037,  1041,  1043,  1051,
-  1052,  1053,  1057,  1059,  1064,  1066,  1068,  1074,  1075,  1076,
-  1079,  1081,  1084,  1086,  1089,  1092,  1098,  1105,  1107,  1114,
-  1121,  1124,  1131,  1134,  1138,  1141,  1145,  1150,  1153,  1157,
-  1160,  1162,  1164,  1166,  1173,  1175,  1176,  1177,  1182,  1184,
-  1189,  1197,  1202,  1206,  1209,  1211,  1216,  1219,  1221,  1223,
-  1227,  1230,  1230,  1233,  1235,  1246,  1254,  1258,  1269,  1277,
-  1284,  1286,  1291,  1294,  1299,  1301,  1303,  1310,  1312,  1313,
-  1321,  1327,  1329,  1331,  1338,  1340,  1346,  1352,  1354,  1356,
-  1358,  1365,  1367,  1370,  1375,  1377,  1381,  1383,  1385,  1387,
-  1391,  1393,  1396,  1399,  1402,  1405,  1409,  1411,  1414,  1416,
-  1420,  1423,  1428,  1430,  1432,  1436,  1460,  1467,  1472,  1478,
-  1483,  1485,  1490,  1492,  1496,  1500,  1504,  1514,  1516,  1521,
-  1526,  1529,  1533,  1536,  1540,  1543,  1546,  1549,  1553,  1556,
-  1560,  1564,  1566,  1568,  1570,  1572,  1574,  1576,  1578,  1588,
-  1596,  1598,  1600,  1604,  1606,  1609,  1612,  1625,  1627,  1632,
-  1634,  1637,  1651,  1654,  1657,  1659,  1661,  1669,  1677,  1688,
-  1693,  1696,  1710,  1719,  1723,  1727,  1731,  1737,  1741,  1746,
-  1749,  1754,  1757,  1758,  1775,  1780,  1783,  1795,  1797,  1807,
-  1817,  1818,  1826,  1829,  1841,  1845,  1862,  1872,  1881,  1886,
-  1891,  1896,  1900,  1904,  1915,  1922,  1929,  1936,  1947,  1953,
-  1956,  1961,  1984,  2018,  2049,  2080,  2095,  2106,  2110,  2114,
-  2117,  2122,  2124,  2127,  2129,  2133,  2138,  2141,  2147,  2152,
-  2157,  2159,  2168,  2169,  2175,  2177,  2187,  2189,  2193,  2196,
-  2202,  2212,  2221,  2230,  2240,  2254,  2259,  2264,  2266,  2275,
-  2278,  2283,  2286,  2290,  2298,  2300,  2301,  2302,  2303,  2304,
-  2318,  2321,  2325,  2331,  2337,  2344,  2349,  2355,  2362,  2368,
-  2374,  2379,  2385,  2392,  2398,  2404,  2410,  2418,  2424,  2430,
-  2438,  2445,  2451,  2460,  2467,  2475,  2480,  2483,  2493,  2495,
-  2498,  2500,  2501,  2504,  2509,  2510,  2527,  2534,  2540,  2544,
-  2547,  2548,  2551,  2559,  2565,  2574,  2584,  2591,  2595,  2600,
-  2609,  2616,  2620,  2630,  2632,  2633,  2635,  2637,  2638,  2639,
-  2640,  2642,  2644,  2647,  2655,  2662,  2662,  2669,  2675,  2677,
-  2683,  2688,  2693,  2702,  2704,  2710,  2712,  2715,  2717,  2718,
-  2719,  2722,  2728,  2730,  2734,  2737,  2744,  2750,  2755,  2762,
-  2767,  2772,  2777,  2784,  2788,  2791,  2797,  2799,  2800,  2801,
-  2804,  2806,  2807,  2808,  2809,  2810,  2811,  2812,  2813,  2814,
-  2815,  2816,  2817,  2818,  2819,  2820,  2821,  2822,  2823,  2824,
-  2824,  2827,  2833,  2838,  2843,  2849,  2851,  2854,  2856,  2863,
-  2875,  2880,  2886,  2888,  2894,  2898,  2899,  2905,  2907,  2910,
-  2912,  2918,  2923,  2929,  2936,  2945
+   233,   238,   252,   254,   254,   255,   257,   259,   260,   261,
+   269,   273,   284,   289,   294,   296,   298,   299,   300,   305,
+   312,   314,   319,   324,   330,   332,   337,   342,   348,   350,
+   355,   362,   364,   365,   366,   369,   371,   373,   375,   377,
+   379,   381,   385,   389,   392,   395,   398,   402,   404,   407,
+   410,   414,   442,   448,   451,   454,   457,   459,   463,   467,
+   471,   473,   476,   480,   507,   509,   511,   513,   515,   517,
+   519,   521,   523,   525,   527,   529,   531,   533,   537,   539,
+   543,   545,   548,   552,   554,   561,   564,   567,   573,   733,
+   734,   736,   742,   744,   758,   781,   783,   785,   797,   811,
+   813,   815,   817,   819,   821,   823,   828,   830,   836,   838,
+   842,   844,   845,   855,   860,   862,   863,   864,   871,   877,
+   882,   885,   893,   898,   900,   901,   902,   909,   920,   924,
+   930,   935,   940,   945,   947,   949,   958,   961,   965,   967,
+   969,   974,   978,   981,   985,   988,   990,  1002,  1005,  1007,
+  1009,  1013,  1017,  1019,  1022,  1035,  1038,  1042,  1044,  1052,
+  1053,  1054,  1058,  1060,  1065,  1067,  1069,  1075,  1076,  1077,
+  1080,  1082,  1085,  1087,  1090,  1093,  1099,  1106,  1108,  1115,
+  1122,  1125,  1132,  1135,  1139,  1142,  1146,  1151,  1154,  1158,
+  1161,  1163,  1165,  1167,  1174,  1176,  1177,  1178,  1183,  1185,
+  1190,  1198,  1203,  1207,  1210,  1212,  1217,  1220,  1222,  1224,
+  1228,  1231,  1231,  1234,  1236,  1247,  1255,  1259,  1270,  1278,
+  1285,  1287,  1292,  1295,  1300,  1302,  1304,  1311,  1313,  1314,
+  1322,  1328,  1330,  1332,  1339,  1341,  1347,  1353,  1355,  1357,
+  1359,  1366,  1368,  1371,  1374,  1378,  1381,  1385,  1388,  1392,
+  1397,  1399,  1403,  1405,  1407,  1409,  1413,  1415,  1418,  1421,
+  1424,  1427,  1431,  1433,  1436,  1438,  1442,  1445,  1450,  1452,
+  1454,  1458,  1482,  1489,  1494,  1500,  1505,  1507,  1512,  1514,
+  1518,  1522,  1526,  1536,  1538,  1543,  1548,  1551,  1555,  1558,
+  1562,  1565,  1568,  1571,  1575,  1578,  1582,  1586,  1588,  1590,
+  1592,  1594,  1596,  1598,  1600,  1610,  1618,  1620,  1622,  1626,
+  1628,  1631,  1634,  1647,  1649,  1654,  1656,  1659,  1673,  1676,
+  1679,  1681,  1683,  1691,  1699,  1710,  1715,  1718,  1732,  1741,
+  1745,  1749,  1753,  1759,  1763,  1768,  1771,  1776,  1779,  1780,
+  1797,  1802,  1805,  1817,  1819,  1829,  1839,  1840,  1848,  1851,
+  1863,  1867,  1884,  1894,  1903,  1908,  1913,  1918,  1922,  1926,
+  1937,  1944,  1951,  1958,  1969,  1975,  1978,  1983,  2006,  2040,
+  2071,  2102,  2117,  2128,  2132,  2136,  2139,  2144,  2146,  2149,
+  2151,  2155,  2160,  2163,  2169,  2174,  2179,  2181,  2190,  2191,
+  2197,  2199,  2209,  2211,  2215,  2218,  2224,  2234,  2243,  2252,
+  2262,  2276,  2281,  2286,  2288,  2297,  2300,  2305,  2308,  2312,
+  2320,  2322,  2323,  2324,  2325,  2326,  2340,  2343,  2347,  2353,
+  2359,  2366,  2371,  2377,  2384,  2390,  2396,  2401,  2407,  2414,
+  2420,  2426,  2432,  2440,  2446,  2452,  2460,  2467,  2473,  2482,
+  2489,  2497,  2502,  2505,  2515,  2517,  2520,  2522,  2523,  2526,
+  2531,  2532,  2549,  2556,  2562,  2566,  2569,  2570,  2573,  2581,
+  2587,  2596,  2606,  2613,  2617,  2622,  2631,  2638,  2642,  2652,
+  2654,  2655,  2657,  2659,  2660,  2661,  2662,  2664,  2666,  2669,
+  2677,  2684,  2684,  2691,  2697,  2699,  2705,  2710,  2715,  2724,
+  2726,  2732,  2734,  2737,  2739,  2740,  2741,  2744,  2750,  2752,
+  2756,  2759,  2766,  2772,  2777,  2784,  2789,  2794,  2799,  2806,
+  2810,  2813,  2819,  2821,  2822,  2823,  2826,  2828,  2829,  2830,
+  2831,  2832,  2833,  2834,  2835,  2836,  2837,  2838,  2839,  2840,
+  2841,  2842,  2843,  2844,  2845,  2846,  2846,  2849,  2855,  2860,
+  2865,  2871,  2873,  2876,  2878,  2885,  2897,  2902,  2908,  2910,
+  2916,  2920,  2921,  2927,  2929,  2932,  2934,  2940,  2945,  2951,
+  2958,  2967
 };
 #endif
 
@@ -511,21 +514,22 @@ static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER"
 "attribute_list","attrib","any_word","init","@18","initlist_maybe_comma","initlist1",
 "initelt","@19","@20","@21","nested_function","@22","@23","notype_nested_function",
 "@24","@25","declarator","after_type_declarator","parm_declarator","notype_declarator",
-"structsp","@26","@27","@28","@29","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","@30","save_filename","save_lineno","lineno_labeled_stmt",
-"lineno_stmt_or_label","stmt_or_label","stmt","@31","@32","@33","@34","@35",
-"@36","@37","all_iter_stmt","all_iter_stmt_simple","@38","label","maybe_type_qual",
-"xexpr","asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
-"@39","parmlist_1","@40","parmlist_2","parms","parm","parmlist_or_identifiers",
-"@41","parmlist_or_identifiers_1","identifiers","identifiers_or_typenames","extension",
-"objcdef","identifier_list","classdecl","aliasdecl","classdef","@42","@43","@44",
-"@45","@46","@47","@48","@49","@50","protocoldef","@51","protocolrefs","non_empty_protocolrefs",
-"ivar_decl_list","visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator",
-"methoddef","@52","@53","@54","@55","@56","@57","methodprotolist","@58","methodprotolist2",
+"struct_head","union_head","enum_head","structsp","@26","@27","@28","@29","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",
+"@30","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
+"stmt_or_label","stmt","@31","@32","@33","@34","@35","@36","@37","all_iter_stmt",
+"all_iter_stmt_simple","@38","label","maybe_type_qual","xexpr","asm_operands",
+"nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@39","parmlist_1",
+"@40","parmlist_2","parms","parm","parmlist_or_identifiers","@41","parmlist_or_identifiers_1",
+"identifiers","identifiers_or_typenames","extension","objcdef","identifier_list",
+"classdecl","aliasdecl","classdef","@42","@43","@44","@45","@46","@47","@48",
+"@49","@50","protocoldef","@51","protocolrefs","non_empty_protocolrefs","ivar_decl_list",
+"visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator","methoddef",
+"@52","@53","@54","@55","@56","@57","methodprotolist","@58","methodprotolist2",
 "@59","semi_or_error","methodproto","@60","@61","@62","@63","methoddecl","optarglist",
 "myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@64","unaryselector",
 "keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
@@ -559,38 +563,39 @@ static const short yyr1[] = {     0,
    155,   153,   156,   153,   158,   159,   157,   161,   162,   160,
    163,   163,   164,   164,   164,   164,   164,   164,   164,   164,
    165,   165,   165,   165,   165,   165,   166,   166,   166,   166,
-   166,   166,   166,   168,   167,   167,   167,   169,   167,   167,
-   167,   170,   167,   171,   167,   167,   172,   172,   173,   173,
-   174,   174,   175,   175,   175,   175,   176,   176,   176,   176,
-   176,   176,   177,   177,   178,   178,   178,   179,   179,   179,
-   180,   180,   181,   181,   182,   182,   183,   183,   184,   184,
-   185,   185,   185,   185,   185,   185,   185,   185,   185,   186,
-   187,   187,   187,   188,   188,   189,   190,   191,   191,   192,
-   192,   193,   194,   194,   195,   196,   196,   196,   196,   197,
-   197,   198,   200,   199,   201,   202,   203,   203,   204,   205,
-   205,   206,   206,   206,   207,   206,   206,   206,   208,   209,
-   206,   206,   206,   210,   211,   212,   206,   213,   206,   206,
-   206,   206,   206,   206,   206,   206,   206,   206,   206,   206,
-   214,   216,   215,   217,   217,   217,   217,   218,   218,   219,
-   219,   220,   220,   221,   221,   222,   223,   223,   225,   224,
-   226,   227,   226,   226,   228,   228,   228,   228,   229,   229,
-   230,   230,   230,   230,   230,   232,   231,   233,   233,   234,
-   234,   235,   235,   236,   237,   237,   237,   237,   237,   237,
-   238,   238,   239,   240,   242,   243,   241,   244,   241,   245,
-   246,   241,   247,   241,   248,   241,   241,   249,   241,   241,
-   250,   241,   241,   252,   251,   253,   253,   254,   255,   255,
-   256,   256,   256,   257,   257,   257,   258,   258,   258,   259,
-   259,   259,   260,   260,   260,   262,   263,   264,   261,   265,
-   266,   267,   261,   268,   269,   268,   270,   270,   270,   271,
-   270,   272,   272,   274,   275,   273,   276,   277,   273,   278,
-   278,   278,   278,   279,   279,   280,   280,   281,   281,   281,
-   281,   282,   282,   282,   283,   283,   284,   284,   284,   285,
-   285,   286,   285,   287,   288,   288,   289,   289,   289,   289,
-   290,   290,   290,   290,   290,   290,   290,   290,   290,   290,
-   290,   290,   290,   290,   290,   290,   290,   290,   290,   290,
-   290,   291,   291,   291,   291,   292,   292,   293,   293,   294,
-   295,   295,   296,   296,   298,   299,   297,   300,   300,   301,
-   301,   302,   302,   303,   304,   305
+   166,   166,   166,   167,   167,   168,   168,   169,   169,   171,
+   170,   170,   170,   172,   170,   170,   170,   173,   170,   174,
+   170,   170,   175,   175,   176,   176,   177,   177,   178,   178,
+   178,   178,   179,   179,   179,   179,   179,   179,   180,   180,
+   181,   181,   181,   182,   182,   182,   183,   183,   184,   184,
+   185,   185,   186,   186,   187,   187,   188,   188,   188,   188,
+   188,   188,   188,   188,   188,   189,   190,   190,   190,   191,
+   191,   192,   193,   194,   194,   195,   195,   196,   197,   197,
+   198,   199,   199,   199,   199,   200,   200,   201,   203,   202,
+   204,   205,   206,   206,   207,   208,   208,   209,   209,   209,
+   210,   209,   209,   209,   211,   212,   209,   209,   209,   213,
+   214,   215,   209,   216,   209,   209,   209,   209,   209,   209,
+   209,   209,   209,   209,   209,   209,   217,   219,   218,   220,
+   220,   220,   220,   221,   221,   222,   222,   223,   223,   224,
+   224,   225,   226,   226,   228,   227,   229,   230,   229,   229,
+   231,   231,   231,   231,   232,   232,   233,   233,   233,   233,
+   233,   235,   234,   236,   236,   237,   237,   238,   238,   239,
+   240,   240,   240,   240,   240,   240,   241,   241,   242,   243,
+   245,   246,   244,   247,   244,   248,   249,   244,   250,   244,
+   251,   244,   244,   252,   244,   244,   253,   244,   244,   255,
+   254,   256,   256,   257,   258,   258,   259,   259,   259,   260,
+   260,   260,   261,   261,   261,   262,   262,   262,   263,   263,
+   263,   265,   266,   267,   264,   268,   269,   270,   264,   271,
+   272,   271,   273,   273,   273,   274,   273,   275,   275,   277,
+   278,   276,   279,   280,   276,   281,   281,   281,   281,   282,
+   282,   283,   283,   284,   284,   284,   284,   285,   285,   285,
+   286,   286,   287,   287,   287,   288,   288,   289,   288,   290,
+   291,   291,   292,   292,   292,   292,   293,   293,   293,   293,
+   293,   293,   293,   293,   293,   293,   293,   293,   293,   293,
+   293,   293,   293,   293,   293,   293,   293,   294,   294,   294,
+   294,   295,   295,   296,   296,   297,   298,   298,   299,   299,
+   301,   302,   300,   303,   303,   304,   304,   305,   305,   306,
+   307,   308
 };
 
 static const short yyr2[] = {     0,
@@ -618,1013 +623,1032 @@ static const short yyr2[] = {     0,
      0,     4,     0,     5,     0,     0,     5,     0,     0,     5,
      1,     1,     3,     3,     4,     3,     3,     3,     1,     1,
      3,     4,     3,     3,     3,     1,     3,     3,     3,     4,
-     3,     3,     1,     0,     7,     5,     2,     0,     7,     5,
-     2,     0,     8,     0,     7,     2,     0,     1,     0,     1,
-     1,     2,     0,     3,     2,     4,     3,     1,     3,     1,
-     1,     2,     1,     3,     4,     6,     5,     1,     3,     1,
-     1,     3,     2,     2,     0,     1,     1,     2,     0,     2,
-     3,     3,     2,     3,     4,     3,     2,     3,     2,     1,
-     1,     2,     2,     0,     1,     2,     0,     0,     1,     1,
-     2,     3,     1,     2,     1,     2,     6,     5,     5,     2,
-     2,     4,     0,     4,     0,     0,     3,     4,     3,     1,
-     1,     1,     1,     2,     0,     4,     1,     3,     0,     0,
-     7,     5,     2,     0,     0,     0,    12,     0,     6,     2,
-     2,     2,     3,     6,     8,    10,    12,     3,     4,     1,
-     1,     0,     6,     3,     5,     2,     2,     0,     1,     0,
-     1,     0,     1,     1,     3,     4,     1,     3,     0,     2,
-     2,     0,     4,     2,     0,     1,     1,     3,     1,     3,
-     4,     4,     4,     4,     4,     0,     2,     1,     2,     1,
-     3,     1,     3,     1,     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,
+     3,     3,     1,     1,     2,     1,     2,     1,     2,     0,
+     7,     5,     2,     0,     7,     5,     2,     0,     8,     0,
+     7,     2,     0,     1,     0,     1,     1,     2,     0,     3,
+     2,     4,     3,     1,     3,     1,     1,     2,     1,     3,
+     4,     6,     5,     1,     3,     1,     1,     3,     2,     2,
+     0,     1,     1,     2,     0,     2,     3,     3,     2,     3,
+     4,     3,     2,     3,     2,     1,     1,     2,     2,     0,
+     1,     2,     0,     0,     1,     1,     2,     3,     1,     2,
+     1,     2,     6,     5,     5,     2,     2,     4,     0,     4,
+     0,     0,     3,     4,     3,     1,     1,     1,     1,     2,
+     0,     4,     1,     3,     0,     0,     7,     5,     2,     0,
+     0,     0,    12,     0,     6,     2,     2,     2,     3,     6,
+     8,    10,    12,     3,     4,     1,     1,     0,     6,     3,
+     5,     2,     2,     0,     1,     0,     1,     0,     1,     1,
+     3,     4,     1,     3,     0,     2,     2,     0,     4,     2,
+     0,     1,     1,     3,     1,     3,     4,     4,     4,     4,
+     4,     0,     2,     1,     2,     1,     3,     1,     3,     1,
+     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,     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,     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,   162,   153,   160,   152,     0,     0,
-     0,     0,     0,     0,   404,     0,   456,   460,     0,     0,
-   410,   436,     0,   436,     0,     0,    19,     4,     8,     7,
-     0,   128,   128,   148,   139,   149,   185,   161,     0,     9,
-   406,   407,   405,   408,   165,   409,     6,    17,    18,    32,
-    33,    35,    34,   254,   256,   263,   247,   263,   251,     0,
-     0,     0,   411,     0,     0,     0,   436,   427,   163,   437,
-   436,   164,     0,     0,   243,   289,     0,     0,   173,   129,
+     5,     0,     0,     0,   162,   153,   160,   152,   248,   244,
+   246,     0,     0,     0,   410,     0,   462,   466,     0,     0,
+   416,   442,     0,   442,     0,     0,    19,     4,     8,     7,
+     0,   128,   128,   148,   139,   149,   185,     0,     0,     0,
+   161,     0,     9,   412,   413,   411,   414,   165,   415,     6,
+    17,    18,   249,   245,   247,     0,     0,     0,    32,    33,
+    35,    34,   417,     0,     0,     0,   442,   433,   163,   443,
+   442,   164,     0,     0,   243,   295,     0,     0,   173,   129,
      0,    16,     0,    15,     0,   150,   139,   151,   155,   154,
-   137,   186,    11,     0,   252,     0,     0,     0,   244,     0,
-   248,    89,    90,   107,    59,    60,     0,     0,     0,    36,
-    38,    37,     0,    39,    40,     0,   545,     0,     0,     0,
-   109,    41,    42,     0,     0,    43,    61,     0,     0,    65,
-    46,    48,    91,   106,     0,   102,   103,   104,   105,   287,
-     0,   285,   158,     0,   285,   190,   438,     0,   507,   508,
-   530,   531,   527,   511,   512,   513,   514,   515,   516,   517,
-   518,   519,   520,   521,   522,   523,   524,   525,   526,   528,
-   529,     0,     0,   509,   457,   481,   500,   504,   510,   505,
-   461,     0,     0,   418,     0,     0,   425,   434,   413,     0,
-     0,     0,    12,     0,     0,    31,     0,   396,     0,     0,
-   183,   229,   289,     0,   230,     0,   171,   129,     0,   221,
-   222,     0,     0,   138,   141,   168,   169,   140,   142,   170,
-   280,   281,   259,   278,     0,     0,   183,   271,   265,   128,
-   262,   128,     0,   263,   183,   263,    57,    58,    52,    49,
+   137,   186,   269,   253,   269,   257,   260,   262,    11,    89,
+    90,   107,    59,    60,     0,     0,     0,    36,    38,    37,
+     0,    39,    40,     0,   551,     0,     0,     0,   109,    41,
+    42,     0,     0,    43,    61,     0,     0,    65,    46,    48,
+    91,   106,     0,   102,   103,   104,   105,   293,     0,   291,
+   158,     0,   291,   190,   444,     0,   513,   514,   536,   537,
+   533,   517,   518,   519,   520,   521,   522,   523,   524,   525,
+   526,   527,   528,   529,   530,   531,   532,   534,   535,     0,
+     0,   515,   463,   487,   506,   510,   516,   511,   467,     0,
+     0,   424,     0,     0,   431,   440,   419,     0,     0,     0,
+    12,     0,     0,    31,     0,   402,     0,     0,   183,   229,
+   295,     0,   230,     0,   171,   129,     0,   221,   222,     0,
+     0,   138,   141,   168,   169,   140,   142,   170,     0,     0,
+     0,   250,     0,   254,     0,   258,    57,    58,    52,    49,
      0,     0,     0,     0,     0,     0,     0,     0,    51,     0,
      0,     0,    53,     0,    55,     0,     0,    82,    80,    78,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,   100,   101,     0,     0,    44,     0,   108,   110,
-    50,   166,   289,   379,     0,   283,   286,   156,   167,   288,
-   158,   284,   196,   197,   198,   195,     0,   188,   191,   412,
-     0,   535,     0,   484,   502,   483,     0,   506,     0,   484,
-   436,     0,   415,   465,   430,     0,   444,   465,   414,   290,
+    50,   166,   295,   385,     0,   289,   292,   156,   167,   294,
+   158,   290,   196,   197,   198,   195,     0,   188,   191,   418,
+     0,   541,     0,   490,   508,   489,     0,   512,     0,   490,
+   442,     0,   421,   471,   436,     0,   450,   471,   420,   296,
    239,   238,   174,   175,   242,     0,   237,     0,   241,     0,
-     0,    29,     0,   325,   116,   326,   182,   184,     0,     0,
-    14,     0,     0,    23,     0,   183,   396,     0,    13,    27,
-     0,     0,   260,     0,   259,     0,   246,   325,   264,   325,
-   272,     0,   250,     0,    93,    92,   315,   307,     0,     0,
-   544,   543,   546,   553,   548,     0,   549,   550,     0,     0,
-    10,    47,     0,     0,    88,    87,     0,     0,     0,     0,
-    76,    77,    75,    74,    73,    71,    72,    66,    67,    68,
-    69,    70,    99,    98,     0,    45,     0,   293,     0,   297,
-     0,   299,     0,   379,     0,   159,   157,     0,   190,    44,
-     0,     0,     0,   458,   501,   385,     0,   533,   462,   423,
-   436,   444,     0,     0,   428,   433,     0,     0,     0,     0,
-     0,   400,   386,   128,   128,   398,     0,   387,   389,   397,
-     0,   240,   306,     0,   118,   113,   117,     0,   180,   227,
-   223,   172,   228,    21,   179,   224,   226,     0,    25,   282,
-   279,   183,     0,   266,   267,   273,   326,   269,   183,   183,
-   316,   308,    95,    63,    62,     0,   552,   554,     0,   551,
-   556,   555,    54,    56,     0,     0,    81,    79,    96,    97,
-   292,   291,   380,   298,   294,   296,     0,   187,   189,    89,
-     0,     0,   480,   500,   128,     0,   489,   485,   487,     0,
-     0,   503,   387,     0,     0,   420,   465,   431,     0,   419,
-   474,   477,   468,     0,   128,   128,   470,   467,   444,   443,
-   441,   442,   426,   444,   449,   446,   128,   128,     0,   435,
-   176,   384,   285,   285,   381,   382,     0,   399,     0,     0,
-    30,   313,   114,   128,   128,   145,     0,     0,   177,   225,
-     0,   255,   183,   325,     0,   245,   249,     0,     0,   309,
-   310,     0,     0,   536,     0,   537,   538,    83,    86,   295,
-   192,     0,   194,   534,   482,   493,   285,   494,   490,   491,
-   459,     0,   463,   444,     0,   465,   416,     0,     0,   175,
-     0,     0,     0,   469,     0,     0,   450,   450,   445,   236,
-   289,   379,   129,   183,   183,   183,   289,   183,   183,     0,
-   388,   390,   401,   314,   121,     0,   122,     0,   145,   143,
-   202,   200,   199,   181,    22,     0,    26,   253,   274,     0,
-   183,   402,     0,     0,     0,   325,     0,     0,   125,   326,
-   301,   311,   210,    89,     0,   208,     0,   207,     0,   257,
-   205,   540,   542,     0,   547,     0,   539,     0,     0,   183,
-   183,   183,     0,   495,   532,     0,   424,     0,   465,   475,
-   478,   471,   429,     0,   453,   447,   451,   448,   293,     0,
-   396,     0,   391,   392,   393,   293,   394,   395,   383,     0,
-     0,   144,   147,   146,     0,   178,   183,     0,   275,   312,
-     0,   318,   127,   126,   305,     0,   319,   303,   326,   302,
-     0,     0,     0,   211,    64,     0,   204,   541,    84,   193,
-   497,   498,   499,   492,   285,   421,   432,     0,     0,     0,
-   455,     0,     0,   234,   289,   235,   231,   233,     0,   119,
-   120,     0,   277,   183,   403,   317,     0,   162,     0,   339,
-   323,     0,     0,     0,     0,     0,     0,     0,     0,   368,
-   436,   436,   360,     0,     0,   123,   128,   128,   332,   337,
-     0,     0,   329,   330,   333,   361,   331,     0,   213,     0,
-     0,   206,   496,   465,   417,   473,   472,   476,   479,   454,
-   452,     0,   232,   201,   276,     0,     0,   325,   370,     0,
-     0,   366,   350,   351,   352,     0,     0,     0,   369,     0,
-   367,   334,   134,     0,   135,     0,     0,   321,   326,   320,
-   343,     0,   136,     0,   209,   212,     0,     0,     0,     0,
-   371,    48,     0,     0,     0,   364,   353,     0,   358,     0,
-     0,   132,   215,     0,   133,   218,   338,   325,     0,     0,
-   214,   422,   322,     0,   324,   362,   344,   348,     0,   359,
-     0,   130,     0,   131,     0,   336,   327,   325,     0,   340,
-   325,   370,   325,   365,   372,     0,   216,   219,   328,   342,
-   325,   363,     0,   349,     0,     0,   373,   374,   354,     0,
-     0,   341,   345,     0,   372,     0,     0,   217,   220,   370,
-     0,     0,   355,   375,     0,   376,     0,     0,   346,   377,
-     0,   356,   325,     0,     0,   347,   357,   378,     0,     0,
-     0
+     0,    29,     0,   331,   116,   332,   182,   184,     0,     0,
+    14,     0,     0,    23,     0,   183,   402,     0,    13,    27,
+     0,     0,   183,   277,   271,   128,   268,   128,     0,   269,
+   183,   269,   286,   287,   265,   284,     0,    93,    92,   321,
+   313,     0,     0,   550,   549,   552,   559,   554,     0,   555,
+   556,     0,     0,    10,    47,     0,     0,    88,    87,     0,
+     0,     0,     0,    76,    77,    75,    74,    73,    71,    72,
+    66,    67,    68,    69,    70,    99,    98,     0,    45,     0,
+   299,     0,   303,     0,   305,     0,   385,     0,   159,   157,
+     0,   190,    44,     0,     0,     0,   464,   507,   391,     0,
+   539,   468,   429,   442,   450,     0,     0,   434,   439,     0,
+     0,     0,     0,     0,   406,   392,   128,   128,   404,     0,
+   393,   395,   403,     0,   240,   312,     0,   118,   113,   117,
+     0,   180,   227,   223,   172,   228,    21,   179,   224,   226,
+     0,    25,     0,   252,   331,   270,   331,   278,     0,   256,
+     0,     0,   266,     0,   265,   322,   314,    95,    63,    62,
+     0,   558,   560,     0,   557,   562,   561,    54,    56,     0,
+     0,    81,    79,    96,    97,   298,   297,   386,   304,   300,
+   302,     0,   187,   189,    89,     0,     0,   486,   506,   128,
+     0,   495,   491,   493,     0,     0,   509,   393,     0,     0,
+   426,   471,   437,     0,   425,   480,   483,   474,     0,   128,
+   128,   476,   473,   450,   449,   447,   448,   432,   450,   455,
+   452,   128,   128,     0,   441,   176,   390,   291,   291,   387,
+   388,     0,   405,     0,     0,    30,   319,   114,   128,   128,
+   145,     0,     0,   177,   225,     0,   272,   273,   279,   332,
+   275,   183,   183,   288,   285,   183,     0,     0,     0,   315,
+   316,     0,     0,   542,     0,   543,   544,    83,    86,   301,
+   192,     0,   194,   540,   488,   499,   291,   500,   496,   497,
+   465,     0,   469,   450,     0,   471,   422,     0,     0,   175,
+     0,     0,     0,   475,     0,     0,   456,   456,   451,   236,
+   295,   385,   129,   183,   183,   183,   295,   183,   183,     0,
+   394,   396,   407,   320,   121,     0,   122,     0,   145,   143,
+   202,   200,   199,   181,    22,     0,    26,   331,     0,   251,
+   255,   261,   183,   408,     0,     0,     0,   331,     0,     0,
+   125,   332,   307,   317,   210,    89,     0,   208,     0,   207,
+     0,   263,   205,   546,   548,     0,   553,     0,   545,     0,
+     0,   183,   183,   183,     0,   501,   538,     0,   430,     0,
+   471,   481,   484,   477,   435,     0,   459,   453,   457,   454,
+   299,     0,   402,     0,   397,   398,   399,   299,   400,   401,
+   389,     0,     0,   144,   147,   146,     0,   178,   280,     0,
+   183,   259,   318,     0,   324,   127,   126,   311,     0,   325,
+   309,   332,   308,     0,     0,     0,   211,    64,     0,   204,
+   547,    84,   193,   503,   504,   505,   498,   291,   427,   438,
+     0,     0,     0,   461,     0,     0,   234,   295,   235,   231,
+   233,     0,   119,   120,     0,   183,     0,   281,   409,   323,
+     0,   162,     0,   345,   329,     0,     0,     0,     0,     0,
+     0,     0,     0,   374,   442,   442,   366,     0,     0,   123,
+   128,   128,   338,   343,     0,     0,   335,   336,   339,   367,
+   337,     0,   213,     0,     0,   206,   502,   471,   423,   479,
+   478,   482,   485,   460,   458,     0,   232,   201,   283,   183,
+     0,     0,   331,   376,     0,     0,   372,   356,   357,   358,
+     0,     0,     0,   375,     0,   373,   340,   134,     0,   135,
+     0,     0,   327,   332,   326,   349,     0,   136,     0,   209,
+   212,     0,   282,     0,     0,     0,   377,    48,     0,     0,
+     0,   370,   359,     0,   364,     0,     0,   132,   215,     0,
+   133,   218,   344,   331,     0,     0,   214,   428,   328,     0,
+   330,   368,   350,   354,     0,   365,     0,   130,     0,   131,
+     0,   342,   333,   331,     0,   346,   331,   376,   331,   371,
+   378,     0,   216,   219,   334,   348,   331,   369,     0,   355,
+     0,     0,   379,   380,   360,     0,     0,   347,   351,     0,
+   378,     0,     0,   217,   220,   376,     0,     0,   361,   381,
+     0,   382,     0,     0,   352,   383,     0,   362,   331,     0,
+     0,   353,   363,   384,     0,     0,     0
 };
 
-static const short yydefgoto[] = {   939,
-     1,     2,     3,    28,    29,    30,   345,   568,   351,   571,
-   200,   454,   667,   124,   242,   405,   126,   127,   128,   129,
-   130,   582,   131,   390,   389,   387,   678,   388,   132,   243,
-   133,   134,   332,   333,   334,   563,   655,   656,    31,   195,
-   786,   444,    91,   564,   640,   445,    34,   142,   288,    35,
-   218,   206,    78,   201,   207,   646,    79,   567,   337,   338,
-    37,   297,   298,   299,   644,   715,   669,   670,   671,   733,
-   801,   844,   862,   883,   910,   865,   885,   911,   324,   210,
-   680,   211,    38,   234,   236,   225,    94,   737,   354,    97,
-    98,   231,   475,   476,   223,   224,   144,   682,   145,   191,
-   287,   657,   658,   726,   335,   482,   579,   580,   581,   561,
-   368,   562,   790,   791,   792,   818,   839,   458,   840,   661,
-   793,   794,   868,   817,   901,   892,   920,   933,   893,   795,
-   796,   891,   797,   830,   853,   906,   907,   908,   931,   410,
-   411,   446,   630,   447,   448,   449,   327,   328,   450,   451,
-   653,   135,    40,    64,    41,    42,    43,   432,   689,   314,
-   604,   804,   527,   317,   539,   606,    44,   318,    69,    45,
-   437,   544,   438,   549,   696,   697,    46,    65,   304,   521,
-    66,   310,   525,   433,   434,   537,   613,   808,   538,   608,
-   749,   609,   750,   175,   424,   518,   519,   520,   683,   684,
-   306,   426,   176,   177,   178,   179,   180,   585,   586,   673,
-   587,   373,   136,   245,   486,   376,   377,   378,   137,   138,
-   139
+static const short yydefgoto[] = {   945,
+     1,     2,     3,    28,    29,    30,   335,   563,   341,   566,
+   198,   447,   669,   122,   232,   398,   124,   125,   126,   127,
+   128,   582,   129,   383,   382,   380,   680,   381,   130,   233,
+   131,   132,   322,   323,   324,   558,   657,   658,    31,   193,
+   790,   437,    91,   559,   640,   438,    34,   140,   278,    35,
+   216,   204,    78,   199,   205,   646,    79,   562,   327,   328,
+    37,   287,   288,   289,   644,   717,   671,   672,   673,   736,
+   805,   849,   868,   889,   916,   871,   891,   917,   314,   208,
+   682,   209,    38,    39,    40,    41,   350,   352,   357,   225,
+   740,   474,   220,   221,   347,   568,   569,   355,   356,   142,
+   684,   143,   189,   277,   659,   660,   729,   325,   477,   579,
+   580,   581,   556,   361,   557,   794,   795,   796,   823,   844,
+   451,   845,   663,   797,   798,   874,   822,   907,   898,   926,
+   939,   899,   799,   800,   897,   801,   835,   859,   912,   913,
+   914,   937,   403,   404,   439,   630,   440,   441,   442,   317,
+   318,   443,   444,   655,   133,    43,    64,    44,    45,    46,
+   425,   691,   304,   604,   808,   522,   307,   534,   606,    47,
+   308,    69,    48,   430,   539,   431,   544,   698,   699,    49,
+    65,   294,   516,    66,   300,   520,   426,   427,   532,   613,
+   812,   533,   608,   752,   609,   753,   173,   417,   513,   514,
+   515,   685,   686,   296,   419,   174,   175,   176,   177,   178,
+   585,   586,   675,   587,   366,   134,   235,   481,   369,   370,
+   371,   135,   136,   137
 };
 
-static const short yypact[] = {   120,
-   131,  2895,  2895,   468,-32768,-32768,-32768,-32768,    98,   118,
-   257,   110,   122,   132,-32768,   266,-32768,-32768,   266,   266,
--32768,   158,   266,   158,   266,   266,-32768,-32768,-32768,-32768,
-   234,   153,  2375,   497,-32768,   218,-32768,-32768,  2895,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   172,   210,   203,   210,   221,  2604,
-  2442,   254,-32768,    61,  3182,  3182,    81,   133,-32768,-32768,
-   158,-32768,   151,   266,-32768,-32768,   234,   253,-32768,   218,
-  1662,-32768,   540,-32768,   234,   497,-32768,   218,-32768,-32768,
-   879,-32768,-32768,    94,-32768,   263,   289,  1593,-32768,   298,
--32768,-32768,-32768,-32768,-32768,-32768,  2604,  2604,   266,-32768,
--32768,-32768,  2604,-32768,-32768,   933,-32768,   278,   323,   326,
--32768,-32768,-32768,  2604,   331,   361,-32768,  2658,  2712,-32768,
-  3553,  1169,   403,   370,  2604,-32768,-32768,-32768,-32768,-32768,
-   396,   267,-32768,   402,  3336,   302,-32768,   266,-32768,-32768,
+static const short yypact[] = {   146,
+   163,  3062,  3062,   133,-32768,-32768,-32768,-32768,   205,   205,
+   205,   182,   209,   215,-32768,   282,-32768,-32768,   282,   282,
+-32768,   235,   282,   235,   282,   282,-32768,-32768,-32768,-32768,
+    77,   206,  2542,   195,-32768,   205,-32768,    95,   125,   150,
+-32768,  3062,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   205,   205,   205,  2771,  2609,   246,-32768,-32768,
+-32768,-32768,-32768,   105,  3331,  3331,   211,    49,-32768,-32768,
+   235,-32768,    23,   282,-32768,-32768,    77,    25,-32768,   205,
+  1765,-32768,   464,-32768,    77,   195,-32768,   205,-32768,-32768,
+   593,-32768,   248,   247,   248,   265,-32768,   274,-32768,-32768,
+-32768,-32768,-32768,-32768,  2771,  2771,   282,-32768,-32768,-32768,
+  2771,-32768,-32768,  1370,-32768,   257,   279,   307,-32768,-32768,
+-32768,  2771,   301,   302,-32768,  2825,  2879,-32768,  3643,   773,
+   371,   336,  2771,-32768,-32768,-32768,-32768,-32768,   362,   322,
+-32768,   387,  3451,   259,-32768,   282,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,   129,  3459,-32768,-32768,-32768,  2336,   457,-32768,-32768,
--32768,   266,   266,   449,   266,   266,-32768,-32768,-32768,   461,
-   642,    54,-32768,   540,   234,-32768,   474,-32768,  1805,   683,
-   218,-32768,-32768,   540,-32768,   259,-32768,   218,  1760,   526,
-   529,   318,  1681,   879,-32768,-32768,-32768,-32768,   218,-32768,
--32768,   505,   470,-32768,    94,   491,   218,-32768,-32768,   525,
-   486,  3078,   374,   210,   218,   210,-32768,-32768,-32768,-32768,
-   490,   499,   495,   503,  2496,  3244,  3459,   266,-32768,   517,
-  2604,   933,-32768,   933,-32768,  2604,  2604,   558,-32768,-32768,
-  2604,  2604,  2604,  2604,  2604,  2604,  2604,  2604,  2604,  2604,
-  2604,  2604,-32768,-32768,   266,   266,  2604,  2604,-32768,-32768,
--32768,-32768,-32768,   267,  1864,-32768,   547,   711,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,    29,-32768,   539,-32768,
-  3459,-32768,   537,   542,   618,-32768,   457,-32768,   147,   542,
-   158,   559,-32768,   574,   573,   585,-32768,   574,-32768,-32768,
-   529,-32768,-32768,   635,   529,   654,-32768,  3048,-32768,   582,
-   589,-32768,   276,    82,-32768,-32768,   631,   218,   269,   219,
--32768,   540,   540,-32768,   683,   218,-32768,  1923,-32768,-32768,
-   683,  2604,   266,   591,   470,   595,-32768,-32768,-32768,-32768,
--32768,   592,-32768,   596,-32768,-32768,-32768,   599,   597,  2256,
--32768,-32768,-32768,-32768,   640,   606,  3244,-32768,   607,   610,
--32768,  3553,   615,   617,  3553,  3553,  2604,   656,  2604,  2604,
-  2834,  2942,   880,   784,  1653,   900,   900,   478,   478,-32768,
--32768,-32768,-32768,-32768,   622,   361,   616,   456,   242,-32768,
-  3067,-32768,   621,-32768,  1982,-32768,   711,   624,   302,  2766,
-   632,  3272,   851,-32768,-32768,  3347,  3459,-32768,-32768,   628,
-   158,-32768,   658,  2970,-32768,-32768,   347,  2843,   666,    84,
-   643,-32768,-32768,-32768,  3422,-32768,   659,   327,-32768,-32768,
-   176,-32768,-32768,    86,-32768,-32768,-32768,  3441,-32768,   526,
--32768,-32768,   526,-32768,   701,-32768,-32768,   660,-32768,  3553,
--32768,   218,   663,-32768,   661,-32768,-32768,   661,   218,   218,
--32768,   713,-32768,-32768,-32768,  3308,-32768,-32768,   640,-32768,
--32768,-32768,-32768,-32768,   708,  2604,  2417,  1396,-32768,-32768,
-   547,-32768,-32768,-32768,-32768,-32768,   668,-32768,-32768,   211,
-   681,   266,-32768,  2336,   676,  3097,-32768,-32768,  3422,  1779,
-    86,-32768,   679,   700,    86,-32768,   574,-32768,   352,-32768,
--32768,-32768,-32768,   234,   153,  2375,   262,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,  3478,   705,-32768,
--32768,-32768,   464,    93,-32768,-32768,  3411,-32768,   780,   495,
--32768,-32768,-32768,   707,   726,-32768,   840,    86,-32768,-32768,
-    86,-32768,   218,-32768,   368,-32768,-32768,   266,  1102,   713,
--32768,  1422,  2604,   750,   706,  3308,-32768,-32768,  1475,-32768,
--32768,  2604,-32768,-32768,-32768,-32768,   464,-32768,-32768,-32768,
--32768,   266,-32768,-32768,   729,   574,-32768,  3182,  3182,    76,
-   540,   234,  2998,-32768,   430,  2861,  1377,  1377,-32768,-32768,
--32768,    93,   218,   238,   330,   218,-32768,   330,   218,  3067,
--32768,-32768,-32768,-32768,-32768,   540,-32768,   234,-32768,   767,
--32768,-32768,  3553,-32768,-32768,   840,-32768,-32768,-32768,  2604,
-   212,-32768,   377,   545,  1022,   716,   717,  1182,-32768,-32768,
--32768,-32768,-32768,   758,   266,-32768,   762,  3553,   735,   737,
--32768,   361,-32768,  2604,-32768,   750,-32768,  2604,   273,   238,
-   330,   218,   383,-32768,-32768,   442,-32768,   760,   574,-32768,
--32768,-32768,-32768,  2604,   789,   757,-32768,   757,   588,   677,
--32768,  2041,-32768,-32768,-32768,   594,-32768,-32768,-32768,   389,
-   416,   767,-32768,-32768,  1422,-32768,  3186,  2604,-32768,-32768,
-   266,-32768,-32768,-32768,-32768,   764,-32768,-32768,-32768,-32768,
-  2122,   808,  1422,-32768,-32768,  1502,-32768,-32768,  1475,-32768,
--32768,-32768,-32768,-32768,   464,-32768,-32768,   782,    72,    72,
-  3553,  2604,  1377,   583,-32768,   583,-32768,-32768,   763,-32768,
--32768,   775,-32768,  3186,-32768,-32768,  2202,   816,   800,-32768,
--32768,   802,   813,  2604,   829,   798,   805,  2550,   429,   890,
-    79,   141,-32768,   849,   824,-32768,   825,  3147,-32768,   887,
-  1262,   103,-32768,-32768,-32768,-32768,-32768,  2364,-32768,   827,
-  1582,-32768,-32768,   574,-32768,-32768,-32768,-32768,-32768,  3553,
--32768,   601,-32768,-32768,-32768,  2604,   848,-32768,  2604,  2604,
-  3517,-32768,-32768,-32768,-32768,   831,  2604,   833,-32768,   853,
--32768,-32768,-32768,   540,-32768,   234,  1342,-32768,-32768,-32768,
--32768,  2604,-32768,  1582,-32768,-32768,   854,   845,  2604,   899,
--32768,   752,   866,   878,  2604,-32768,-32768,   881,-32768,  2604,
-   432,-32768,   320,   440,-32768,   332,-32768,-32768,  2202,   883,
--32768,-32768,-32768,   889,-32768,-32768,-32768,-32768,  3535,-32768,
-    52,-32768,   683,-32768,   683,-32768,-32768,-32768,   886,-32768,
--32768,  2604,-32768,-32768,   946,   891,-32768,-32768,-32768,-32768,
--32768,-32768,   892,-32768,   898,    69,   893,-32768,-32768,   495,
-   495,-32768,-32768,  2604,   946,   894,   946,-32768,-32768,  2604,
-   901,   145,-32768,-32768,   903,-32768,   654,   907,-32768,   403,
-   303,-32768,-32768,   908,   654,-32768,-32768,   403,   970,   975,
--32768
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   225,
+   837,-32768,-32768,-32768,  2503,   409,-32768,-32768,-32768,   282,
+   282,   391,   282,   282,-32768,-32768,-32768,   388,   292,   144,
+-32768,   464,    77,-32768,   416,-32768,  1972,  1176,   205,-32768,
+-32768,   464,-32768,    39,-32768,   205,  1863,   234,   299,   263,
+  1784,   593,-32768,-32768,-32768,-32768,   205,-32768,   426,   419,
+  1696,-32768,   437,-32768,   239,-32768,-32768,-32768,-32768,-32768,
+   449,   469,   465,   477,  2663,  3359,   837,   282,-32768,   450,
+  2771,  1370,-32768,  1370,-32768,  2771,  2771,   518,-32768,-32768,
+  2771,  2771,  2771,  2771,  2771,  2771,  2771,  2771,  2771,  2771,
+  2771,  2771,-32768,-32768,   282,   282,  2771,  2771,-32768,-32768,
+-32768,-32768,-32768,   322,  2031,-32768,   337,   670,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,   157,-32768,   498,-32768,
+   837,-32768,   484,   485,   554,-32768,   409,-32768,   256,   485,
+   235,   493,-32768,   509,   491,   502,-32768,   509,-32768,-32768,
+   299,-32768,-32768,   558,   299,   582,-32768,  3215,-32768,   511,
+   515,-32768,   879,    84,-32768,-32768,   561,   205,   372,   155,
+-32768,   464,   464,-32768,  1176,   205,-32768,  2090,-32768,-32768,
+  1176,   534,   205,-32768,-32768,   326,   525,  1910,   717,   248,
+   205,   248,-32768,   572,   529,-32768,   239,-32768,-32768,-32768,
+   536,   552,  2423,-32768,-32768,-32768,-32768,   595,   560,  3359,
+-32768,   564,   570,-32768,  3643,   577,   580,  3643,  3643,  2771,
+   620,  2771,  2771,  1580,   959,  1151,  1757,  1854,   658,   658,
+   489,   489,-32768,-32768,-32768,-32768,-32768,   583,   302,   584,
+   177,   213,-32768,  3234,-32768,   588,-32768,  2149,-32768,   670,
+   587,   259,  2933,   590,  3395,  1882,-32768,-32768,  3464,   837,
+-32768,-32768,   578,   235,-32768,   611,  3137,-32768,-32768,   421,
+  3010,   624,    75,   612,-32768,-32768,-32768,  3521,-32768,   626,
+   360,-32768,-32768,   254,-32768,-32768,    92,-32768,-32768,-32768,
+  3533,-32768,   234,-32768,-32768,   234,-32768,   668,-32768,-32768,
+   628,-32768,   638,-32768,-32768,-32768,-32768,-32768,   647,-32768,
+   650,  2771,   282,   654,   529,-32768,   703,-32768,-32768,-32768,
+  3423,-32768,-32768,   595,-32768,-32768,-32768,-32768,-32768,   698,
+  2771,  1345,  1501,-32768,-32768,   337,-32768,-32768,-32768,-32768,
+-32768,   655,-32768,-32768,   287,   663,   282,-32768,  2503,   665,
+  3245,-32768,-32768,  3521,  1946,    92,-32768,   662,   671,    92,
+-32768,   509,-32768,   543,-32768,-32768,-32768,-32768,    77,   206,
+  2542,   228,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,  3546,   667,-32768,-32768,-32768,   592,   357,-32768,
+-32768,  3476,-32768,   743,   465,-32768,-32768,-32768,   672,   833,
+-32768,  1685,    92,-32768,-32768,    92,-32768,   674,-32768,-32768,
+   674,   205,   205,  3643,-32768,   205,   673,   282,  1011,   703,
+-32768,  1450,  2771,   715,   675,  3423,-32768,-32768,  1423,-32768,
+-32768,  2771,-32768,-32768,-32768,-32768,   592,-32768,-32768,-32768,
+-32768,   282,-32768,-32768,   693,   509,-32768,  3331,  3331,    62,
+   464,    77,  3165,-32768,   549,  3028,   405,   405,-32768,-32768,
+-32768,   357,   205,   260,   273,   205,-32768,   273,   205,  3234,
+-32768,-32768,-32768,-32768,-32768,   464,-32768,    77,-32768,   625,
+-32768,-32768,  3643,-32768,-32768,  1685,-32768,-32768,   446,-32768,
+-32768,-32768,   205,-32768,   411,   348,   914,   679,   682,  1091,
+-32768,-32768,-32768,-32768,-32768,   723,   282,-32768,   725,  3643,
+   686,   689,-32768,   302,-32768,  2771,-32768,   715,-32768,  2771,
+   318,   260,   273,   205,   427,-32768,-32768,   556,-32768,   704,
+   509,-32768,-32768,-32768,-32768,  2771,   737,   697,-32768,   697,
+   499,   410,-32768,  2208,-32768,-32768,-32768,   747,-32768,-32768,
+-32768,   435,   445,   625,-32768,-32768,  1450,-32768,-32768,  2771,
+    73,-32768,-32768,   282,-32768,-32768,-32768,-32768,   701,-32768,
+-32768,-32768,-32768,  2289,   745,  1450,-32768,-32768,  1530,-32768,
+-32768,  1423,-32768,-32768,-32768,-32768,-32768,   592,-32768,-32768,
+   719,    65,    65,  3643,  2771,   405,   398,-32768,   398,-32768,
+-32768,   700,-32768,-32768,   712,  3607,  2771,-32768,-32768,-32768,
+  2369,   754,   734,-32768,-32768,   736,   739,  2771,   758,   724,
+   726,  2717,   109,   793,   178,   289,-32768,   764,   727,-32768,
+   731,  3264,-32768,   795,  1207,    89,-32768,-32768,-32768,-32768,
+-32768,  2531,-32768,   735,  1610,-32768,-32768,   509,-32768,-32768,
+-32768,-32768,-32768,  3643,-32768,   822,-32768,-32768,-32768,  3607,
+  2771,   755,-32768,  2771,  2771,  3584,-32768,-32768,-32768,-32768,
+   738,  2771,   740,-32768,   757,-32768,-32768,-32768,   464,-32768,
+    77,  1290,-32768,-32768,-32768,-32768,  2771,-32768,  1610,-32768,
+-32768,   760,-32768,   742,  2771,   838,-32768,   799,   783,   786,
+  2771,-32768,-32768,   789,-32768,  2771,   451,-32768,   221,   456,
+-32768,   471,-32768,-32768,  2369,   791,-32768,-32768,-32768,   792,
+-32768,-32768,-32768,-32768,  3625,-32768,    54,-32768,  1176,-32768,
+  1176,-32768,-32768,-32768,   797,-32768,-32768,  2771,-32768,-32768,
+   860,   800,-32768,-32768,-32768,-32768,-32768,-32768,   802,-32768,
+   817,    80,   806,-32768,-32768,   465,   465,-32768,-32768,  2771,
+   860,   811,   860,-32768,-32768,  2771,   814,    81,-32768,-32768,
+   818,-32768,   582,   820,-32768,   371,   334,-32768,-32768,   821,
+   582,-32768,-32768,   371,   895,   899,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,   192,  -367,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,    -9,-32768,   -52,   560,  -231,   530,-32768,-32768,
-   -54,-32768,   220,-32768,-32768,-32768,-32768,-32768,   167,-32768,
-  -295,-32768,  -312,   655,-32768,-32768,   334,-32768,    17,  -195,
-   193,    16,   909,-32768,   356,    21,   -11,   -61,   710,    11,
-  -276,  -575,   -58,  -206,  -118,-32768,-32768,-32768,   196,     3,
-    -6,-32768,   579,-32768,   357,-32768,  -604,-32768,  -657,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   -68,  -135,
-  -489,    14,   -66,-32768,-32768,-32768,-32768,-32768,   647,    19,
--32768,   773,   649,   433,   785,   664,   -27,   -79,   -55,  -168,
-  -226,   355,-32768,-32768,  -285,-32768,-32768,-32768,   434,  -413,
--32768,  -205,-32768,-32768,-32768,-32768,  -122,  -415,  -734,   358,
--32768,   149,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   150,-32768,  -658,   105,-32768,   107,-32768,   608,
--32768,  -359,-32768,   612,   633,   475,  -307,-32768,-32768,-32768,
--32768,    18,-32768,  1029,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   -20,     4,
-  -364,-32768,   513,-32768,   443,   305,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,  -286,-32768,-32768,-32768,   310,   531,-32768,
--32768,-32768,-32768,   -25,   753,-32768,-32768,   550,-32768,   321,
-   564,-32768,   651,   652,  -121,-32768,  -148,-32768,-32768,   405,
-   494,-32768,-32768,-32768,-32768,-32768,-32768,   714,-32768,-32768,
--32768
+-32768,-32768,-32768,    98,  -363,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,   -12,-32768,   -56,   488,  -230,   383,-32768,-32768,
+   -75,-32768,   439,-32768,-32768,-32768,-32768,-32768,    78,-32768,
+  -272,-32768,  -312,   579,-32768,-32768,   250,-32768,    44,  -181,
+   110,     3,   819,-32768,   275,     7,   -18,  -162,   632,   104,
+  -228,  -581,   -68,  -204,  -123,-32768,-32768,-32768,  -255,    32,
+    90,-32768,   504,-32768,   303,-32768,  -612,-32768,  -653,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   -67,  -134,
+  -508,   -29,-32768,-32768,-32768,   -73,-32768,-32768,-32768,-32768,
+-32768,   475,   -38,-32768,   603,   486,   308,   598,   487,   -36,
+   -70,  -160,  -182,  -221,   300,-32768,-32768,  -269,-32768,-32768,
+-32768,   385,  -177,-32768,  -200,-32768,-32768,-32768,-32768,  -186,
+  -487,  -709,   306,-32768,    96,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,    97,-32768,  -801,    46,-32768,
+    47,-32768,   568,-32768,  -352,-32768,   557,   563,   425,  -298,
+-32768,-32768,-32768,-32768,    18,-32768,   954,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,     8,     0,  -343,-32768,   444,-32768,   366,   231,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,  -270,-32768,-32768,-32768,
+   237,   463,-32768,-32768,-32768,-32768,   -20,   688,-32768,-32768,
+   483,-32768,   251,   537,-32768,   585,   633,  -103,-32768,  -124,
+-32768,-32768,   351,   412,-32768,-32768,-32768,-32768,-32768,-32768,
+   643,-32768,-32768,-32768
 };
 
 
-#define        YYLAST          3605
-
-
-static const short yytable[] = {    55,
-    57,    59,   346,    72,    36,    36,    63,   125,   141,    67,
-    68,   416,   343,    71,   209,    63,    74,    32,    32,    39,
-    39,    86,    33,    33,   220,    70,   212,    70,   308,    92,
-   440,   439,   464,    80,   339,    88,   230,   369,   469,   466,
-   181,    36,   232,    87,    81,   406,   184,   455,    83,    85,
-   188,   503,   237,   238,    32,   307,    39,   409,   240,    33,
-   710,   575,   286,   624,   190,   292,   533,   529,   340,   249,
-    70,   143,   806,    92,    70,   323,   100,   336,   802,    80,
-   281,    92,  -112,   850,   222,   208,   560,    80,   244,   895,
-   192,   456,   279,   219,   221,    75,    50,    51,   213,   239,
-    50,    51,   197,   841,   418,   147,   915,   601,   143,   419,
-   762,   603,   198,   199,   408,   233,   -35,   346,   182,    -1,
-    50,    51,    14,    16,   375,    16,   143,   896,   800,   322,
-    -2,    50,    51,   886,   198,   199,   296,   517,   300,   183,
-   416,   148,   627,   846,   916,   303,   330,   220,   807,    50,
-    51,   622,   285,   899,   645,   291,   902,   647,   904,   551,
-    52,   842,   302,  -112,    52,    53,   912,   367,    60,    53,
-   185,   230,   311,   312,   615,   315,   316,   232,   -34,    54,
-    61,   501,   927,   143,    52,    16,   871,   301,   406,    53,
-    62,   186,   372,    80,    47,    52,   208,    80,   936,    56,
-    53,    92,    16,   460,   321,   427,   208,   463,   325,   754,
-   756,   336,    92,    52,   187,   222,   219,   192,    53,   379,
-   928,   220,   336,   462,   383,   407,   384,   189,   336,    82,
-    93,   148,   413,   903,   600,   477,    75,   477,   380,   686,
-   605,    14,   291,   143,   731,   692,   358,    14,   360,   718,
-   233,   558,   362,    95,   364,   489,   559,   143,   861,    50,
-    51,   925,   143,    14,   143,   403,   404,    14,    50,    51,
-   709,    75,   202,   421,    96,   320,   331,   347,   348,  -115,
-  -115,  -115,  -115,    76,    99,  -115,   591,  -115,  -115,  -115,
-   430,   592,    77,   659,   461,   468,   701,   702,    14,   428,
-   414,   415,   101,  -115,    50,    51,   293,   294,   295,   531,
-   532,   143,   146,   767,    70,   485,   283,   502,   203,   688,
-  -115,   226,   754,    52,  -466,   284,   285,   204,    53,   193,
-    36,    92,    52,   194,   495,   341,   246,    53,    58,   342,
-   205,   208,  -115,   222,   208,   208,   197,  -115,   740,  -175,
-   220,   672,   321,   251,   634,  -175,   325,  -115,   197,    14,
-   679,  -175,   507,   714,   584,   308,   227,  -175,    52,   723,
-    75,   202,   728,    53,   228,   235,   547,     5,   934,     7,
-   140,   247,   548,   935,   248,     9,    10,    11,   198,   199,
-   198,   199,   307,   757,   349,   409,  -175,    14,   194,   524,
-  -175,    13,   748,   556,    15,   650,   250,   557,  -175,   296,
-   528,   279,  -175,    36,   540,   541,   542,   203,    16,   540,
-   541,   542,   357,   869,   543,    36,   204,   700,    36,   607,
-   363,    50,    51,    86,    70,   714,    36,   143,   515,   205,
-    22,   251,   672,   516,   280,    24,   565,    88,   143,   535,
-   534,   477,   699,   720,   536,    87,   660,   721,   706,   744,
-   553,   554,   320,   745,   676,   760,    75,   620,   566,   342,
-   382,   282,   501,   626,   629,   385,   386,   289,   827,   501,
-   391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
-   401,   402,   761,    14,   309,    52,   194,   540,   541,   542,
-    53,    89,   594,    90,    86,   283,   651,   693,   882,   540,
-   541,   542,   342,   621,   284,   285,   884,   847,    88,   746,
-   194,    36,   622,   285,    86,   789,    87,   270,   271,   272,
-   313,   597,   326,   660,   515,   729,    80,   319,    88,   516,
-   352,   465,    75,   202,    48,    49,    87,   610,   695,   695,
-   353,   611,   612,   212,   547,   623,    80,   356,   291,    36,
-   548,   789,   359,   617,   618,   365,   625,   628,   652,    14,
-   897,   470,   898,   220,   366,   639,   367,   208,   370,   711,
-   636,   638,   690,   691,   347,   348,   812,   198,   199,   203,
-    75,   620,   685,   381,   320,   -85,    75,   420,   204,   623,
-   320,  -268,  -268,    75,   620,   414,   415,   320,   497,   498,
-   681,   205,   422,   208,    80,    36,    92,    14,   423,   208,
-   208,   453,   722,    14,    80,   610,   143,   425,   535,   534,
-    14,   930,    36,   536,   431,   192,  -464,   621,   208,   938,
-    80,   701,   702,   627,    75,   220,   622,   285,   320,   759,
-   755,   610,   622,   285,   435,   732,   346,   253,   255,    77,
-   436,   197,   104,   789,   452,   453,   459,   572,   472,   479,
-   474,    14,   483,   480,   576,   577,   481,   487,   785,    75,
-   620,   488,   491,   331,   695,   492,  -325,  -325,  -325,  -325,
-   493,    76,   494,   496,  -325,  -325,  -325,   499,   500,   508,
-    77,   623,   623,   504,   918,   919,    14,   512,    80,   526,
-  -325,   765,   321,   325,   785,   589,   216,   217,   552,   321,
-   530,   784,     9,    10,    11,   826,   755,  -325,   550,     5,
-    89,     7,    90,    36,   555,    77,   569,     9,    10,    11,
-   573,   574,   570,   281,   578,   588,   787,   623,   798,  -325,
-   590,   788,   596,    13,  -325,   208,   593,   784,   681,   557,
-   336,    72,   336,   848,  -111,   863,   851,   854,   648,   828,
-    16,   713,   216,   217,   858,   602,    86,   864,     9,    10,
-    11,   619,   633,   635,    70,    70,   643,   674,   675,   870,
-    88,   687,    22,  -304,   727,   -32,   874,    24,    87,   734,
-    36,   668,   637,   834,   836,   273,   274,   881,   275,   276,
-   277,   278,   735,   787,   623,   798,   785,   736,   788,   703,
-   704,   705,   747,   707,   708,   321,   752,   876,   265,   266,
-   267,   268,   269,   270,   271,   272,   208,   753,    80,   851,
-   641,   766,   102,   799,   805,   813,   719,   103,   104,   866,
-   105,   331,   814,   -33,     5,     6,     7,     8,   816,   784,
-   819,   921,     9,    10,    11,   643,   822,   851,   106,   717,
-    15,   820,   107,   108,   823,   741,   742,   743,    13,   109,
-    14,   824,   110,   215,   216,   217,   831,   111,   112,   113,
-     9,    10,    11,   114,   115,    16,   829,   739,   116,   117,
-   832,   833,   837,   118,   845,   119,   849,   857,    14,   859,
-   120,   860,   763,   751,   121,   875,   872,    22,   122,   123,
-   873,   642,    24,   264,   265,   266,   267,   268,   269,   270,
-   271,   272,  -486,   241,   668,   102,     5,   764,     7,   140,
-   103,   104,   877,   105,     9,    10,    11,   268,   269,   270,
-   271,   272,   668,   878,   905,   668,   914,   880,   889,   815,
-    13,   106,   900,    15,   890,   107,   108,   909,   913,   940,
-   923,   810,   109,   917,   941,   110,   926,    16,   929,   511,
-   111,   112,   113,   932,   937,   852,   114,   115,   457,   724,
-   843,   116,   117,   821,   712,   214,   118,   509,   119,    22,
-   417,   473,   716,   120,    24,   361,   649,   121,   478,   355,
-   725,   122,   123,   662,   -94,   730,   471,   887,   888,   922,
-   668,   505,   331,   924,  -124,  -124,  -124,  -124,  -124,  -124,
-  -124,   632,  -124,  -124,  -124,  -124,  -124,   522,  -124,  -124,
+#define        YYLAST          3695
+
+
+static const short yytable[] = {   123,
+   139,    81,   336,    63,    32,    32,    67,    68,    33,    33,
+    71,   326,    63,    74,    86,   207,   210,   218,   329,    42,
+    42,    70,   457,    70,   333,    94,    96,    98,   462,   227,
+   228,    72,   362,    36,    36,   230,   399,   432,   459,   624,
+    53,    54,    55,   433,    32,   179,   239,   190,    33,   409,
+   298,   498,   402,   448,   712,   211,   223,   271,   346,    42,
+   348,   188,    80,   528,    88,   810,    70,   330,   313,   276,
+    70,   297,   282,    36,   182,    83,    85,   234,   186,    75,
+   458,   524,   649,   269,  -112,   806,   183,   464,   195,   846,
+   401,   901,   555,   449,   229,   470,   909,    59,    60,   187,
+    50,   191,    14,   146,   765,   192,    14,   184,    80,   336,
+   767,    59,    60,   856,   206,   331,    80,   921,   933,   332,
+   196,   197,   217,   804,   931,    92,    76,    59,    60,   902,
+   185,   286,   368,   290,   293,    77,    87,   326,   218,    99,
+   320,   811,    92,    92,    92,    -1,   512,   847,   326,   145,
+   546,   851,    59,    60,   326,   922,   934,   292,   832,   311,
+   141,    61,    -2,   315,   892,  -112,    62,   301,   302,    92,
+   305,   306,   190,   360,   734,    61,    93,    92,   365,   496,
+    62,   409,   399,   310,   905,   146,   346,   908,   348,   910,
+   615,    61,   757,   759,   453,   877,    62,   918,   456,    89,
+   372,    90,   196,   197,   218,   376,    95,   377,   455,    51,
+    52,   400,   354,   337,   338,   -35,    61,   141,   406,   312,
+    80,    62,    16,   206,    80,   373,   273,    59,    60,   942,
+   454,    97,   411,   206,    14,   274,   275,   412,   349,   353,
+    56,    59,    60,   217,   771,   600,   281,   195,   180,   694,
+  -175,   605,   396,   397,   414,    16,  -175,   867,    59,    60,
+   688,    59,    60,   283,   284,   285,   484,    57,   542,   181,
+   543,   407,   408,    58,   141,   526,   527,   711,   570,    16,
+   570,   461,    82,   291,    59,    60,   421,   480,   497,    14,
+  -472,    61,   337,   338,    75,    92,    62,  -175,   310,   311,
+    70,  -175,    14,   315,   144,    61,    92,   757,   423,   661,
+    62,   469,   219,   471,   420,   236,   650,   651,   703,   704,
+   652,    14,    61,   490,   141,    61,   -34,    62,   222,   553,
+    62,   196,   197,    16,   554,   690,   218,   237,   601,   339,
+   141,    76,   603,   192,   354,   141,   224,   141,    61,    36,
+    77,   502,   674,    62,   634,   226,   875,   196,   197,    75,
+   206,   681,   591,   206,   206,   238,   349,   592,   705,   706,
+   707,   273,   709,   710,    75,   200,   240,   584,   310,   269,
+   274,   275,   241,   519,   298,   645,    14,   726,   647,   465,
+   731,   467,   662,   743,   141,   407,   408,   722,   241,   286,
+   402,    14,  -274,  -274,   760,   297,   627,    75,   200,   940,
+   270,   716,    75,   620,   941,   622,   275,    92,   510,    86,
+   751,   201,   511,    70,   446,   725,   744,   745,   746,   530,
+   202,   523,   560,   531,    14,    36,   551,   272,   701,    14,
+   552,   702,   696,   203,   708,   674,   299,    36,    75,   200,
+    36,   281,   141,   542,   201,   543,   703,   704,    36,   758,
+   354,   570,   279,   202,   309,   768,    75,   200,    77,    88,
+   529,   662,   303,   732,   316,    14,   203,   626,   629,   496,
+   548,   549,   678,   720,   342,   716,   496,   723,   535,   536,
+   537,   724,    86,    14,   594,   201,   343,   195,   538,   610,
+  -175,    75,   620,   747,   202,   310,  -175,   748,   243,   245,
+   819,   763,    86,   201,   351,   332,   510,   203,   625,   628,
+   511,   764,   202,   141,   358,   192,   374,   888,    14,   196,
+   197,   332,   890,   793,   141,   203,   192,   852,   260,   261,
+   262,    87,    88,   210,   359,    36,   360,  -175,   621,   697,
+   697,  -175,   363,   597,   561,   -85,   413,   622,   275,   415,
+    80,   416,    88,   418,   853,   654,   218,   683,   424,   713,
+   793,  -470,   428,   611,   612,   816,   903,   429,   904,   623,
+    80,   721,   610,    36,   195,   617,   618,   692,   693,   687,
+   102,   446,   190,   445,    75,   620,   452,   213,   214,   215,
+   463,   466,   636,   638,     9,    10,    11,   472,   610,   473,
+   535,   536,   537,   476,    87,   530,   535,   536,   537,   531,
+   607,    14,    14,   535,   536,   537,   695,   478,   623,   715,
+   214,   215,   482,   749,    87,   483,     9,    10,    11,   486,
+   218,   621,   206,    80,    36,   487,   281,   762,   206,   206,
+   622,   275,   488,    80,   735,   489,   529,   491,   494,   521,
+   936,    36,   503,   639,   336,   507,   495,   206,   944,    80,
+   499,   311,   315,   525,   793,   214,   215,   789,   311,   375,
+   206,     9,    10,    11,   378,   379,   545,   547,   697,   384,
+   385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
+   395,   550,   326,   564,   326,   258,   259,   260,   261,   262,
+   565,   769,    92,   567,   789,   924,   925,   344,   683,   141,
+     5,   788,     7,   138,   572,   831,   271,   573,     9,    10,
+    11,   576,   623,   623,   578,   588,   791,   590,   593,    80,
+   792,   596,   552,   619,    13,   633,   602,    15,   635,    75,
+   653,   802,   676,   310,   648,   689,  -310,   677,   788,   730,
+   -32,    16,   737,   738,   854,    36,   750,   857,   860,   739,
+   833,   869,   870,    86,   755,   864,    14,   756,   770,   623,
+   803,   809,   817,    22,    70,    70,   311,   206,    24,   818,
+   876,   -33,   821,    72,   824,   827,   627,   825,   880,   834,
+   828,   836,   829,   837,   791,   622,   275,   838,   792,   887,
+   842,   872,   850,   855,   863,   866,   865,   879,   789,   802,
+   492,   493,   878,    88,    75,   620,   263,   264,   310,   265,
+   266,   267,   268,    36,   839,   841,     5,    89,     7,    90,
+     5,   857,     7,   138,     9,    10,    11,   623,     9,    10,
+    11,    14,   263,   264,   881,   265,   266,   267,   268,   883,
+    13,   884,   788,   927,    13,   886,   895,   896,   911,   857,
+   206,   758,    80,   906,   882,   920,   915,    16,   919,   321,
+    77,    16,  -115,  -115,  -115,  -115,   923,   929,  -115,   932,
+  -115,  -115,  -115,   935,   946,    87,   938,   943,   947,    22,
+   506,   858,   450,    22,    24,   212,  -115,   727,    24,   637,
+   574,   848,   410,   714,   321,   504,  -124,  -124,  -124,  -124,
+  -124,  -124,  -124,  -115,  -124,  -124,  -124,  -124,  -124,   589,
   -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,  -124,
-  -124,  -124,  -124,    73,  -124,  -124,   616,   811,   523,   809,
-   698,  -124,   429,   668,  -124,   803,  -124,   614,   599,  -124,
-  -124,  -124,   513,   514,   879,  -124,  -124,   595,   738,   677,
-  -124,  -124,     0,     0,     0,  -124,     0,  -124,  -124,     0,
-   490,     0,  -124,  -124,     0,     0,  -124,     0,  -124,  -124,
-  -124,  -124,   654,  -124,  -325,  -325,  -325,  -325,  -325,  -325,
-  -325,     0,  -325,  -325,  -325,  -325,  -325,     0,  -325,  -325,
-  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,
-  -325,  -325,  -325,     0,  -325,  -325,     0,     0,     0,     0,
-     0,  -325,     0,     0,  -325,     0,  -325,     0,     0,  -325,
-  -325,  -325,     0,     0,     0,  -325,  -325,     0,     0,     0,
-  -325,  -325,     0,     0,     0,  -325,     0,  -325,  -325,     0,
-     0,     0,  -325,  -325,     0,     0,  -325,     0,  -325,     0,
-  -325,  -325,   331,  -325,  -325,  -325,     0,     0,     0,  -325,
-  -325,     0,  -325,     0,     0,     0,  -325,     0,  -325,  -325,
-  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,     0,
-  -325,     0,  -325,     0,  -325,  -325,     0,     0,     0,     0,
-     0,  -325,   273,   274,  -325,   275,   276,   277,   278,  -325,
-  -325,  -325,     0,     0,     0,  -325,  -325,     0,     0,     0,
-  -325,  -325,     0,     0,     0,  -325,     0,  -325,  -325,     0,
-     0,     0,  -325,  -325,     0,     0,  -325,     0,  -325,  -300,
-  -325,  -325,   838,  -325,  -325,  -325,     0,     0,     0,  -325,
-  -325,     0,  -325,     0,     0,     0,  -325,     0,  -325,  -325,
-  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,  -325,     0,
-  -325,     0,  -325,     0,  -325,  -325,     0,     0,     0,     0,
-     0,  -325,     0,     0,  -325,     0,     0,     0,     0,  -325,
-  -325,  -325,     0,     0,     0,  -325,  -325,     0,     0,     0,
-  -325,  -325,     0,     0,     0,  -325,     0,  -325,  -325,     0,
-     0,     0,  -325,  -325,     0,     0,  -325,     0,  -325,     0,
-  -325,  -325,   867,  -325,  -335,  -335,     0,     0,     0,  -335,
-  -335,     0,  -335,     0,     0,     0,  -335,     0,  -335,  -335,
-  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,  -335,     0,
-  -335,     0,  -335,     0,  -335,  -335,     0,     0,     0,    75,
-   202,  -335,     0,     0,  -335,     0,     0,     0,     0,  -335,
-  -335,  -335,     0,     0,     0,  -335,  -335,     0,     0,     0,
-  -335,  -335,     0,     0,     0,  -335,    14,  -335,  -335,     0,
-     0,     0,  -335,  -335,   694,     0,  -335,     0,  -335,     0,
-  -335,  -335,   663,  -335,   664,    51,   203,     0,     0,   103,
-   104,     0,   105,     0,     0,   204,   261,   262,   263,   264,
-   265,   266,   267,   268,   269,   270,   271,   272,   205,     0,
-   106,     0,    15,     0,   107,   108,     0,     0,     0,     0,
-     0,   109,     0,     0,   110,     0,     0,     0,     0,   111,
-   112,   113,     0,     0,     0,   114,   115,     0,     0,   665,
-   116,   117,     0,     0,     0,   118,     0,   119,    52,     0,
-     0,     0,   120,    53,     0,     0,   121,     0,     0,  -203,
-   122,   123,   663,   666,   664,    51,     0,     0,     0,   103,
-   104,   258,   105,   259,   260,   261,   262,   263,   264,   265,
-   266,   267,   268,   269,   270,   271,   272,     0,     0,     0,
-   106,     0,    15,     0,   107,   108,     0,     0,     0,     0,
-     0,   109,     0,     0,   110,     0,     0,     0,     0,   111,
-   112,   113,     0,     0,     0,   114,   115,     0,     0,   665,
-   116,   117,     0,     0,     0,   118,     0,   119,    52,     0,
-     0,     0,   120,    53,     0,     0,   121,     0,     0,  -258,
-   122,   123,   663,   666,   664,    51,     0,     0,     0,   103,
-   104,     0,   105,   228,     0,     0,     5,     0,     7,   140,
-     0,     0,     0,     0,     9,    10,    11,     0,     0,     0,
-   106,     0,    15,     0,   107,   108,     0,     0,     0,     0,
-    13,   109,     0,    15,   110,     0,     0,     0,     0,   111,
-   112,   113,     0,     0,     0,   114,   115,    16,     0,   665,
-   116,   117,     0,     0,     0,   118,     0,   119,    52,     0,
-     0,     0,   120,    53,     0,     0,   121,     0,     0,    22,
-   122,   123,   196,   666,    24,   -28,   -28,   -28,   -28,   229,
-  -261,     0,     0,   -28,   -28,   -28,     0,     0,     0,     0,
-     0,   350,     0,     0,   -24,   -24,   -24,   -24,   197,   -28,
-     0,  -175,   -24,   -24,   -24,     0,     0,  -175,   266,   267,
-   268,   269,   270,   271,   272,     0,   -28,   197,   -24,     0,
-  -175,     0,     0,     0,     0,     0,  -175,     0,     0,     0,
-   198,   199,     0,     0,     0,   -24,     0,     0,   -28,     0,
-     0,     0,     0,   -28,     0,     0,     0,     0,  -175,   198,
-   199,     0,  -175,   -28,     0,     0,     0,   -24,     0,     0,
-     0,     0,   -24,     0,     0,     0,     0,  -175,     0,     0,
-   344,  -175,   -24,   -20,   -20,   -20,   -20,     0,     0,     0,
-     0,   -20,   -20,   -20,     0,     0,     0,     0,     0,   331,
-     0,     0,  -488,  -488,  -488,  -488,   197,   -20,     0,  -175,
-  -488,  -488,  -488,     0,     0,  -175,     0,     0,     0,     0,
-     0,     0,     0,     0,   -20,     0,  -488,   102,  -488,     0,
-     0,     0,   103,   104,     0,   105,     0,     0,     0,     0,
-     0,     0,     0,  -488,     0,     0,   -20,     0,     0,     0,
-     0,   -20,     0,   106,     0,    15,  -175,   107,   108,     0,
-  -175,   -20,     0,     0,   109,  -488,     0,   110,     0,     0,
-  -488,     0,   111,   112,   113,     0,     0,     0,   114,   115,
-  -488,     0,     0,   116,   117,     0,   102,     0,   118,     0,
-   119,   103,   104,     0,   105,   120,     0,     0,     0,   121,
-     0,     0,     0,   122,   123,     0,     0,   329,     0,     0,
-     0,     0,   106,     0,    15,     0,   107,   108,     0,     0,
-     0,     0,     0,   109,     0,     0,   110,     0,     0,     0,
-     0,   111,   112,   113,     0,     0,     0,   114,   115,     0,
-     0,     0,   116,   117,     0,   102,     0,   118,     0,   119,
-   103,   104,     0,   105,   120,     0,     0,     0,   121,     0,
-     0,     0,   122,   123,     0,     0,   412,     0,     0,     0,
-     0,   106,     0,    15,     0,   107,   108,     0,     0,     0,
-     0,     0,   109,     0,     0,   110,     0,     0,     0,     0,
-   111,   112,   113,     0,     0,     0,   114,   115,     0,     0,
-     0,   116,   117,     0,   102,     0,   118,     0,   119,   103,
-   104,     0,   105,   120,     0,     0,     0,   121,     0,     0,
-     0,   122,   123,     0,     0,   467,     0,     0,     0,     0,
-   106,     0,    15,     0,   107,   108,     0,     0,     0,     0,
-     0,   109,     0,     0,   110,     0,     0,     0,     0,   111,
-   112,   113,     0,     0,     0,   114,   115,     0,     0,     0,
-   116,   117,     0,   102,     0,   118,     0,   119,   103,   104,
-     0,   105,   120,     0,     0,     0,   121,     0,     0,     0,
-   122,   123,     0,     0,   506,     0,     0,     0,     0,   106,
-     0,    15,     0,   107,   108,     0,     0,     0,     0,     0,
-   109,     0,     0,   110,     0,     0,     0,     0,   111,   112,
-   113,     0,     0,     0,   114,   115,     0,     0,     0,   116,
-   117,     0,     0,     0,   118,     0,   119,     0,     0,     0,
-     0,   120,     0,     0,     0,   121,     0,     0,     0,   122,
-   123,     0,     0,   758,   664,   768,     6,     7,     8,   103,
-   104,     0,   105,     9,    10,    11,   769,     0,   770,   771,
-   772,   773,   774,   775,   776,   777,   778,   779,   780,    13,
-   106,    14,    15,     0,   107,   108,     0,     0,     0,     0,
-     0,   109,     0,     0,   110,     0,    16,     0,     0,   111,
-   112,   113,     0,     0,     0,   114,   115,     0,     0,     0,
-   116,   117,     0,     0,     0,   118,     0,   119,   781,     0,
-     0,     0,   120,   782,     0,     0,   121,     0,   783,     0,
-   122,   123,     0,   367,   664,    51,     0,     0,     0,   103,
-   104,     0,   105,     0,     0,     0,   769,     0,   770,   771,
-   772,   773,   774,   775,   776,   777,   778,   779,   780,     0,
-   106,     0,    15,     0,   107,   108,     0,     0,     0,     0,
-     0,   109,     0,     0,   110,     0,     0,     0,     0,   111,
-   112,   113,     0,     0,     0,   114,   115,     0,   102,     0,
-   116,   117,     0,   103,   104,   118,   105,   119,    52,     0,
-     0,     0,   120,    53,     0,     0,   121,     0,   783,     0,
-   122,   123,     0,   367,   106,     0,    15,     0,   107,   108,
-     0,     0,     0,     0,     0,   109,     0,     0,   110,     0,
-     0,     0,     0,   111,   112,   113,     0,     0,     0,   114,
-   115,     0,     0,     0,   116,   117,     0,     0,     0,   118,
-     0,   119,     0,     0,     0,     0,   120,     0,     0,     0,
-   121,     0,     0,     0,   122,   123,     0,   484,   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,   102,     5,     6,     7,
-     8,   103,   104,   172,   105,     9,    10,    11,     5,     6,
+  -124,  -124,  -124,  -124,  -124,  -115,  -124,  -124,   718,   577,
+  -115,   468,   571,  -124,   475,   719,  -124,   728,  -124,   575,
+  -115,  -124,  -124,  -124,   664,   733,   928,  -124,  -124,   930,
+   893,   894,  -124,  -124,   500,   517,   632,  -124,    73,  -124,
+  -124,   518,   616,   700,  -124,  -124,   815,   422,  -124,   813,
+  -124,  -124,  -124,  -124,   614,  -124,   599,   679,   807,   508,
+   643,   253,   254,   255,   256,   257,   258,   259,   260,   261,
+   262,   656,   485,  -331,  -331,  -331,  -331,  -331,  -331,  -331,
+   670,  -331,  -331,  -331,  -331,  -331,   741,  -331,  -331,  -331,
+  -331,  -331,  -331,  -331,  -331,  -331,  -331,  -331,  -331,  -331,
+  -331,  -331,     0,  -331,  -331,   595,     0,   509,     0,     0,
+  -331,     0,     0,  -331,     0,  -331,     0,     0,  -331,  -331,
+  -331,     0,     0,     0,  -331,  -331,     0,     0,     0,  -331,
+  -331,     0,     0,     0,  -331,     0,  -331,  -331,     0,     0,
+     0,  -331,  -331,     0,   643,  -331,     0,  -331,     0,  -331,
+  -331,   321,  -331,  -331,  -331,     0,     0,     0,  -331,  -331,
+     0,  -331,     0,     0,     0,  -331,     0,  -331,  -331,  -331,
+  -331,  -331,  -331,  -331,  -331,  -331,  -331,  -331,   742,  -331,
+     0,  -331,     0,  -331,  -331,     0,     0,     0,     0,     0,
+  -331,     0,     0,  -331,   754,     0,     0,     0,  -331,  -331,
+  -331,     0,     0,     0,  -331,  -331,     0,     0,     0,  -331,
+  -331,     0,     0,     0,  -331,   670,  -331,  -331,   766,     0,
+     0,  -331,  -331,     0,     0,  -331,     0,  -331,  -306,  -331,
+  -331,     0,  -331,     0,   670,     0,   321,   670,     0,  -331,
+  -331,  -331,  -331,     0,     0,     0,     0,  -331,  -331,  -331,
+     0,     0,     0,   814,   254,   255,   256,   257,   258,   259,
+   260,   261,   262,  -331,     0,   820,     0,   843,     0,  -331,
+  -331,     0,     0,     0,  -331,  -331,   826,  -331,     0,     0,
+  -331,  -331,     0,  -331,  -331,  -331,  -331,  -331,  -331,  -331,
+  -331,  -331,  -331,  -331,     0,  -331,     0,  -331,     0,  -331,
+  -331,     0,  -331,   670,     0,     0,  -331,  -331,     0,  -331,
+     0,     0,     0,     0,  -331,  -331,  -331,  -111,     0,     0,
+  -331,  -331,     0,     0,     0,  -331,  -331,     0,     0,     0,
+  -331,     0,  -331,  -331,     0,     0,     0,  -331,  -331,     0,
+     0,  -331,     0,  -331,     0,  -331,  -331,   670,  -331,     0,
+   873,     0,  -341,  -341,     0,     0,     0,  -341,  -341,   885,
+  -341,     0,     0,     0,  -341,     0,  -341,  -341,  -341,  -341,
+  -341,  -341,  -341,  -341,  -341,  -341,  -341,     0,  -341,     0,
+  -341,     0,  -341,  -341,     0,     0,     0,     0,     0,  -341,
+     0,     0,  -341,     0,     0,     0,     0,  -341,  -341,  -341,
+     0,     0,     0,  -341,  -341,     0,     0,     0,  -341,  -341,
+     0,     0,     0,  -341,     0,  -341,  -341,     0,     0,     0,
+  -341,  -341,     0,     0,  -341,     0,  -341,     0,  -341,  -341,
+   231,  -341,   100,     5,     0,     7,   138,   101,   102,     0,
+   103,     9,    10,    11,   250,   251,   252,   253,   254,   255,
+   256,   257,   258,   259,   260,   261,   262,    13,   104,     0,
+    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
+     0,     0,   108,     0,    16,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,     0,     0,     0,   114,   115,
+     0,     0,     0,   116,     0,   117,    22,     0,     0,     0,
+   118,    24,     0,     0,   119,     0,     0,     0,   120,   121,
+   665,   -94,   666,    60,     0,     0,     0,   101,   102,   248,
+   103,   249,   250,   251,   252,   253,   254,   255,   256,   257,
+   258,   259,   260,   261,   262,     0,     0,     0,   104,     0,
+    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
+     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,     0,     0,   667,   114,   115,
+     0,     0,     0,   116,     0,   117,    61,     0,     0,     0,
+   118,    62,     0,     0,   119,     0,     0,  -203,   120,   121,
+   665,   668,   666,    60,     0,     0,     0,   101,   102,     0,
+   103,   251,   252,   253,   254,   255,   256,   257,   258,   259,
+   260,   261,   262,     0,     0,     0,     0,     0,   104,     0,
+    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
+     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,     0,     0,   667,   114,   115,
+     0,     0,     0,   116,     0,   117,    61,     0,     0,     0,
+   118,    62,     0,     0,   119,     0,     0,  -264,   120,   121,
+   665,   668,   666,    60,     0,     0,     0,   101,   102,     0,
+   103,   252,   253,   254,   255,   256,   257,   258,   259,   260,
+   261,   262,     0,     0,     0,     0,     0,     0,   104,     0,
+    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
+     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,     0,     0,   667,   114,   115,
+     0,     0,     0,   116,     0,   117,    61,     0,     0,     0,
+   118,    62,     0,     0,   119,   641,     0,   100,   120,   121,
+     0,   668,   101,   102,     0,   103,   344,     0,     0,     5,
+     0,     7,   138,     0,     0,     0,     0,     9,    10,    11,
+     0,     0,     0,   104,     0,    15,     0,   105,   106,     0,
+     0,     0,     0,    13,   107,     0,    15,   108,     0,     0,
+     0,     0,   109,   110,   111,     0,     0,     0,   112,   113,
+    16,     0,     0,   114,   115,     0,     0,     0,   116,     0,
+   117,     0,     0,     0,     0,   118,     0,     0,     0,   119,
+     0,     0,    22,   120,   121,   194,   642,    24,   -28,   -28,
+   -28,   -28,   345,  -267,     0,     0,   -28,   -28,   -28,     0,
+     0,     0,     0,     0,   340,     0,     0,   -24,   -24,   -24,
+   -24,   195,   -28,     0,  -175,   -24,   -24,   -24,     0,     0,
+  -175,   255,   256,   257,   258,   259,   260,   261,   262,   -28,
+   195,   -24,     0,  -175,     0,     0,     0,     0,     0,  -175,
+     0,     0,     0,   196,   197,     0,     0,     0,   -24,     0,
+     0,   -28,     0,     0,     0,     0,   -28,     0,     0,     0,
+     0,  -175,   196,   197,     0,  -175,   -28,     0,     0,     0,
+   -24,     0,     0,     0,     0,   -24,     0,     0,     0,     0,
+  -175,     0,     0,   334,  -175,   -24,   -20,   -20,   -20,   -20,
+     0,     0,     0,     0,   -20,   -20,   -20,     0,     0,     0,
+     0,     0,   321,     0,     0,     5,     6,     7,     8,   195,
+   -20,     0,  -175,     9,    10,    11,     0,     0,  -175,   256,
+   257,   258,   259,   260,   261,   262,     0,   -20,     0,    13,
+     0,    14,     0,     5,     0,     7,   280,     0,     0,     0,
+     0,     9,    10,    11,     0,     0,    16,     0,     0,   -20,
+     0,     0,     0,     0,   -20,     0,     0,    13,     0,  -175,
+     0,     0,     0,  -175,   -20,     0,   321,     0,    22,  -494,
+  -494,  -494,  -494,    24,    16,     0,     0,  -494,  -494,  -494,
+     0,     0,     0,  -492,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,  -494,   100,  -494,    22,     0,     0,   101,
+   102,    24,   103,     0,     0,     0,  -276,  -276,     0,     0,
+  -494,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   104,     0,    15,     0,   105,   106,     0,     0,     0,     0,
+     0,   107,  -494,     0,   108,     0,     0,  -494,     0,   109,
+   110,   111,     0,     0,     0,   112,   113,  -494,     0,     0,
+   114,   115,     0,   100,     0,   116,     0,   117,   101,   102,
+     0,   103,   118,     0,     0,     0,   119,     0,     0,     0,
+   120,   121,     0,     0,   319,     0,     0,     0,     0,   104,
+     0,    15,     0,   105,   106,     0,     0,     0,     0,     0,
+   107,     0,     0,   108,     0,     0,     0,     0,   109,   110,
+   111,     0,     0,     0,   112,   113,     0,     0,     0,   114,
+   115,     0,   100,     0,   116,     0,   117,   101,   102,     0,
+   103,   118,     0,     0,     0,   119,     0,     0,     0,   120,
+   121,     0,     0,   405,     0,     0,     0,     0,   104,     0,
+    15,     0,   105,   106,     0,     0,     0,     0,     0,   107,
+     0,     0,   108,     0,     0,     0,     0,   109,   110,   111,
+     0,     0,     0,   112,   113,     0,     0,     0,   114,   115,
+     0,   100,     0,   116,     0,   117,   101,   102,     0,   103,
+   118,     0,     0,     0,   119,     0,     0,     0,   120,   121,
+     0,     0,   460,     0,     0,     0,     0,   104,     0,    15,
+     0,   105,   106,     0,     0,     0,     0,     0,   107,     0,
+     0,   108,     0,     0,     0,     0,   109,   110,   111,     0,
+     0,     0,   112,   113,     0,     0,     0,   114,   115,     0,
+   100,     0,   116,     0,   117,   101,   102,     0,   103,   118,
+     0,     0,     0,   119,     0,     0,     0,   120,   121,     0,
+     0,   501,     0,     0,     0,     0,   104,     0,    15,     0,
+   105,   106,     0,     0,     0,     0,     0,   107,     0,     0,
+   108,     0,     0,     0,     0,   109,   110,   111,     0,     0,
+     0,   112,   113,     0,     0,     0,   114,   115,     0,     0,
+     0,   116,     0,   117,     0,     0,     0,     0,   118,     0,
+     0,     0,   119,     0,     0,     0,   120,   121,     0,     0,
+   761,   666,   772,     6,     7,     8,   101,   102,     0,   103,
+     9,    10,    11,   773,     0,   774,   775,   776,   777,   778,
+   779,   780,   781,   782,   783,   784,    13,   104,    14,    15,
+     0,   105,   106,     0,     0,     0,     0,     0,   107,     0,
+     0,   108,     0,    16,     0,     0,   109,   110,   111,     0,
+     0,     0,   112,   113,     0,     0,     0,   114,   115,     0,
+     0,     0,   116,     0,   117,   785,     0,     0,     0,   118,
+   786,     0,     0,   119,     0,   787,     0,   120,   121,     0,
+   360,   666,    60,     0,     0,     0,   101,   102,     0,   103,
+     0,     0,     0,   773,     0,   774,   775,   776,   777,   778,
+   779,   780,   781,   782,   783,   784,     0,   104,     0,    15,
+     0,   105,   106,     0,     0,     0,     0,     0,   107,     0,
+     0,   108,     0,     0,     0,     0,   109,   110,   111,     0,
+     0,     0,   112,   113,     0,   100,     0,   114,   115,     0,
+   101,   102,   116,   103,   117,    61,     0,     0,     0,   118,
+    62,     0,     0,   119,     0,   787,     0,   120,   121,     0,
+   360,   104,     0,    15,     0,   105,   106,     0,     0,     0,
+     0,     0,   107,     0,     0,   108,     0,     0,     0,     0,
+   109,   110,   111,     0,     0,     0,   112,   113,     0,     0,
+     0,   114,   115,     0,     0,     0,   116,     0,   117,     0,
+     0,     0,     0,   118,     0,     0,     0,   119,     0,     0,
+     0,   120,   121,     0,   479,   147,   148,     0,   149,   150,
+     0,     0,     0,   151,   152,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+   168,   169,     0,   100,     5,     6,     7,     8,   101,   102,
+   170,   103,     9,    10,    11,     5,     6,     7,     8,     0,
+     0,     0,     0,     9,    10,    11,     0,     0,    13,   104,
+    14,    15,     0,   105,   106,     0,     0,     0,     0,    13,
+   107,    14,     0,   108,   172,    16,     0,     0,   109,   110,
+   111,     0,     0,   295,   112,   113,    16,     0,     0,   114,
+   115,     0,     0,     0,   116,     0,   117,    22,     0,     0,
+     0,   118,    24,     0,     0,   119,     0,     0,    22,   120,
+   121,   100,     5,    24,     7,   138,   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,     0,     0,     0,     0,     0,   107,     0,
+     0,   108,     0,    16,     0,     0,   109,   110,   111,     0,
+     0,     0,   112,   113,     0,   100,     0,   114,   115,     0,
+   101,   102,   116,   103,   117,    22,     0,     0,     0,   118,
+    24,     0,     0,   119,     0,     0,     0,   120,   121,     0,
+     0,   104,     0,    15,     0,   105,   106,     0,     0,     0,
+     0,     0,   107,     0,     0,   108,     0,     0,     0,     0,
+   109,   110,   111,     0,     0,     0,   112,   113,     0,   100,
+     0,   114,   115,     0,   101,   102,   116,   103,   117,   364,
+     0,     0,     0,   118,     0,     0,     0,   119,     0,     0,
+     0,   120,   121,     0,     0,   104,     0,    15,     0,   105,
+   106,     0,     0,     0,     0,     0,   107,     0,     0,   108,
+     0,     0,     0,     0,   109,   110,   111,     0,     0,     0,
+   112,   113,     0,   100,     0,   114,   115,     0,   101,   102,
+   116,   103,   117,     0,     0,     0,     0,   118,     0,     0,
+     0,   119,     0,   830,     0,   120,   121,     0,     0,   104,
+     0,    15,     0,   105,   106,     0,     0,     0,     0,     0,
+   107,     0,     0,   108,     0,     0,     0,     0,   109,   110,
+   111,     0,     0,     0,   112,   113,     0,   100,     0,   114,
+   115,     0,   101,   102,   116,   103,   117,     0,     0,     0,
+     0,   118,     0,     0,     0,   119,     0,     0,     0,   120,
+   121,     0,     0,   104,     0,    15,     0,   105,   106,     0,
+     0,     0,     0,     0,   107,     0,     0,   108,     0,     0,
+     0,     0,   109,   110,   111,     0,     0,     0,   112,   113,
+     0,   100,     0,   242,   115,     0,   101,   102,   116,   103,
+   117,     0,     0,     0,     0,   118,     0,     0,     0,   119,
+     0,     0,     0,   120,   121,     0,     0,   104,     0,    15,
+     0,   105,   106,     0,     0,     0,     0,     0,   107,     0,
+     0,   108,     0,     0,     0,     0,   109,   110,   111,     0,
+     0,     0,   112,   113,     0,   505,     0,   244,   115,     0,
+   101,   102,   116,   103,   117,     0,     0,     0,     0,   118,
+     0,     0,     0,   119,     0,     0,     0,   120,   121,     0,
+     0,   104,     0,    15,     0,   105,   106,     0,     0,     0,
+     0,     0,   107,     0,     0,   108,     0,     0,     0,     0,
+   109,   110,   111,     0,     0,     0,   112,   113,     0,     0,
+     0,   114,   115,     0,     0,     0,   116,     0,   117,     0,
+     0,     0,     0,   118,     0,     0,     0,   119,     0,     0,
+   540,   120,   121,     5,     0,     7,   138,     0,     0,     0,
+     0,     9,    10,    11,     0,     0,     0,     0,   540,     0,
+     0,     5,     0,     7,   138,     0,     0,    13,     0,     9,
+    10,    11,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    16,    13,     0,     0,     0,     0,
+     0,     0,     4,     0,  -128,     5,     6,     7,     8,     0,
+     0,     0,    16,     9,    10,    11,    22,  -446,  -446,  -446,
+     0,    24,     0,     0,     0,     0,   541,  -446,    12,    13,
+     0,    14,    15,     0,    22,  -445,  -445,  -445,     0,    24,
+     0,     0,     0,     0,   541,  -445,    16,     0,     0,    17,
+    18,  -128,     0,     0,     0,     0,     0,     0,     0,     0,
+  -128,     0,    19,    20,    21,     0,     0,     0,    22,     0,
+     0,     0,    23,    24,    25,    26,     0,     4,    27,  -128,
+     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,     4,    14,  -128,     5,     6,
      7,     8,     0,     0,     0,     0,     9,    10,    11,     0,
-     0,    13,   106,    14,    15,     0,   107,   108,     0,     0,
-     0,     0,    13,   109,    14,     0,   110,   174,    16,     0,
-     0,   111,   112,   113,     0,     0,   305,   114,   115,    16,
-     0,     0,   116,   117,     0,     0,     0,   118,     0,   119,
-    22,     0,     0,     0,   120,    24,     0,     0,   121,     0,
-     0,    22,   122,   123,   102,     5,    24,     7,   140,   103,
-   104,    84,   105,     9,    10,    11,   260,   261,   262,   263,
-   264,   265,   266,   267,   268,   269,   270,   271,   272,    13,
-   106,     0,    15,     0,   107,   108,     0,     0,     0,     0,
-     0,   109,     0,     0,   110,     0,    16,     0,     0,   111,
-   112,   113,     0,     0,     0,   114,   115,     0,   102,     0,
-   116,   117,     0,   103,   104,   118,   105,   119,    22,     0,
-     0,     0,   120,    24,     0,     0,   121,     0,     0,     0,
-   122,   123,     0,     0,   106,     0,    15,     0,   107,   108,
-     0,     0,     0,     0,     0,   109,     0,     0,   110,     0,
-     0,     0,     0,   111,   112,   113,     0,     0,     0,   114,
-   115,     0,   102,     0,   116,   117,     0,   103,   104,   118,
-   105,   119,   371,     0,     0,     0,   120,     0,     0,     0,
-   121,     0,     0,     0,   122,   123,     0,     0,   106,     0,
-    15,     0,   107,   108,     0,     0,     0,     0,     0,   109,
-     0,     0,   110,     0,     0,     0,     0,   111,   112,   113,
-     0,     0,     0,   114,   115,     0,   102,     0,   116,   117,
-     0,   103,   104,   118,   105,   119,     0,     0,     0,     0,
-   120,     0,     0,     0,   121,     0,   825,     0,   122,   123,
-     0,     0,   106,     0,    15,     0,   107,   108,     0,     0,
-     0,     0,     0,   109,     0,     0,   110,     0,     0,     0,
-     0,   111,   112,   113,     0,     0,     0,   114,   115,     0,
-   102,     0,   116,   117,     0,   103,   104,   118,   105,   119,
-     0,     0,     0,     0,   120,     0,     0,     0,   121,     0,
-     0,     0,   122,   123,     0,     0,   106,     0,    15,     0,
-   107,   108,     0,     0,     0,     0,     0,   109,     0,     0,
-   110,     0,     0,     0,     0,   111,   112,   113,     0,     0,
-     0,   114,   115,     0,   102,     0,   252,   117,     0,   103,
-   104,   118,   105,   119,     0,     0,     0,     0,   120,     0,
-     0,     0,   121,     0,     0,     0,   122,   123,     0,     0,
-   106,     0,    15,     0,   107,   108,     0,     0,     0,     0,
-     0,   109,     0,     0,   110,     0,     0,     0,     0,   111,
-   112,   113,     0,     0,     0,   114,   115,     0,   510,     0,
-   254,   117,     0,   103,   104,   118,   105,   119,     0,     0,
-     0,     0,   120,     0,     0,     0,   121,     0,     0,     0,
-   122,   123,     0,     0,   106,     0,    15,     0,   107,   108,
-     0,     0,     0,     0,     0,   109,     0,     0,   110,     0,
-     0,     0,     0,   111,   112,   113,     0,     0,     0,   114,
-   115,     0,     0,     0,   116,   117,     0,     0,     0,   118,
-     0,   119,     0,     0,     0,     0,   120,     0,     0,     0,
-   121,     0,     0,   545,   122,   123,     5,     0,     7,   140,
-     0,     0,     0,     0,     9,    10,    11,     0,     0,     0,
-     0,   545,     0,     0,     5,     0,     7,   140,     0,     0,
-    13,     0,     9,    10,    11,   262,   263,   264,   265,   266,
-   267,   268,   269,   270,   271,   272,     0,    16,    13,     0,
-     0,     0,     0,     0,     0,     4,     0,  -128,     5,     6,
-     7,     8,     0,     0,     0,    16,     9,    10,    11,    22,
-  -440,  -440,  -440,     0,    24,     0,     0,     0,     0,   546,
-  -440,    12,    13,     0,    14,    15,     0,    22,  -439,  -439,
-  -439,     0,    24,     0,     0,     0,     0,   546,  -439,    16,
-     0,     0,    17,    18,  -128,     0,     0,     0,     0,     0,
-     0,     0,     0,  -128,     0,    19,    20,    21,     0,     0,
-     0,    22,     0,     0,     0,    23,    24,    25,    26,     0,
-     4,    27,  -128,     5,     6,     7,     8,     0,     0,     0,
-     0,     9,    10,    11,   263,   264,   265,   266,   267,   268,
-   269,   270,   271,   272,     0,     0,     0,    13,     4,    14,
-  -128,     5,     6,     7,     8,     0,     0,     0,     0,     9,
-    10,    11,     0,     0,    16,     0,     0,   531,   532,  -128,
-     0,     0,     0,     0,     0,    13,     0,    14,  -128,     0,
-     0,     0,     0,     0,     0,     0,    22,     0,     0,     0,
-     0,    24,    16,     0,     0,     0,    27,  -128,   441,     0,
-   442,     5,     6,     7,     8,     0,  -128,   443,     0,     9,
-    10,    11,     0,     0,    22,     0,     0,   441,     0,    24,
-     5,     6,     7,     8,    27,    13,   443,    14,     9,    10,
-    11,     5,     0,     7,   290,     0,     0,     0,     0,     9,
-    10,    11,    16,     0,    13,     0,    14,     0,     0,     0,
-     5,     6,     7,     8,     0,    13,     0,     0,     9,    10,
-    11,    16,     0,     0,    22,     0,     0,     0,     0,    24,
-     0,     0,    16,  -385,    13,     0,    14,     0,     0,     0,
-     0,     0,     0,    22,     0,     0,     0,     0,    24,     0,
-     0,    16,  -385,     0,    22,     0,     0,     0,     0,    24,
-     5,     6,     7,     8,  -270,  -270,     0,     0,     9,    10,
-    11,     0,     0,    22,     0,     0,     0,     0,    24,     0,
-     0,     0,     0,   598,    13,     0,    14,     0,     0,     0,
-     0,     0,     0,     0,   149,   150,     0,   151,   152,     0,
-     0,    16,   153,   154,   155,   156,   157,   158,   159,   160,
-   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-   171,     0,     0,    22,     0,    14,     0,     0,    24,   172,
-   256,   257,   258,   835,   259,   260,   261,   262,   263,   264,
-   265,   266,   267,   268,   269,   270,   271,   272,     0,     0,
-   173,     0,     0,     0,     0,     0,   149,   150,     0,   151,
-   152,     0,     0,   174,   153,   154,   155,   156,   157,   158,
-   159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-   169,   170,   171,     0,   149,   150,     0,   151,   152,     0,
-     0,   374,   153,   154,   155,   156,   157,   158,   159,   160,
-   161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-   171,     0,     0,     0,     0,     0,     0,     0,     0,   172,
-   149,   150,     0,   151,   152,   174,     0,     0,   153,   154,
-   155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-   165,   166,   167,   168,   169,   170,   171,     0,     0,     5,
-     0,     7,   290,   174,     0,   583,     0,     9,    10,    11,
-     5,     6,     7,     8,     0,     0,   443,     0,     9,    10,
-    11,     0,     0,    13,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    13,     0,    14,     0,     0,   174,
-    16,     0,     0,     0,     0,   283,     0,     0,     0,     0,
-     0,    16,     0,     0,   284,   285,     0,     0,     0,     0,
-     0,     0,    22,     0,     0,     0,     0,    24,     0,     0,
-     0,     0,     0,    22,     5,     6,     7,     8,    24,     0,
-   631,     0,     9,    10,    11,     5,     6,     7,     8,     0,
-     0,     0,     0,     9,    10,    11,     0,     0,    13,     0,
-    14,     0,     0,     0,     5,     6,     7,     8,     0,    13,
-     0,    14,     9,    10,    11,    16,     0,     0,     0,     0,
-     0,     0,     5,     0,     7,   140,    16,     0,    13,     0,
-     9,    10,    11,     0,     0,     0,     0,    22,     0,     0,
-     0,     5,    24,     7,   290,    16,    13,     0,    22,     9,
-    10,    11,     0,    24,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    16,     0,    13,     0,    22,     0,     0,
-     0,     0,    24,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    16,     0,     0,    22,   855,     0,     0,     0,
-    24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    22,     0,     0,     0,     0,    24,
-     0,   256,   257,   258,   856,   259,   260,   261,   262,   263,
-   264,   265,   266,   267,   268,   269,   270,   271,   272,   256,
-   257,   258,   894,   259,   260,   261,   262,   263,   264,   265,
-   266,   267,   268,   269,   270,   271,   272,   256,   257,   258,
-     0,   259,   260,   261,   262,   263,   264,   265,   266,   267,
-   268,   269,   270,   271,   272
+     0,    16,     0,     0,   526,   527,  -128,     0,     0,     0,
+     0,     0,    13,     0,    14,  -128,     0,     0,     0,     0,
+     0,     0,     0,    22,     0,     0,     0,     0,    24,    16,
+     0,     0,     0,    27,  -128,   434,     0,   435,     5,     6,
+     7,     8,     0,  -128,   436,     0,     9,    10,    11,     0,
+     0,    22,     0,     0,   434,     0,    24,     5,     6,     7,
+     8,    27,    13,   436,    14,     9,    10,    11,     5,     6,
+     7,     8,     0,     0,     0,     0,     9,    10,    11,    16,
+     0,    13,     0,    14,     0,     0,     0,     5,     6,     7,
+     8,     0,    13,     0,    14,     9,    10,    11,    16,     0,
+     0,    22,     0,     0,     0,     0,    24,     0,     0,    16,
+  -391,    13,     0,    14,     0,     0,     0,     0,     0,     0,
+    22,     0,     0,     0,     0,    24,     0,     0,    16,  -391,
+     0,    22,     0,     0,     0,     0,    24,     0,     0,     0,
+     0,   598,     0,     0,     0,     0,     0,     0,     0,     0,
+    22,     0,     0,   147,   148,    24,   149,   150,     0,     0,
+   840,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     0,   147,   148,     0,   149,   150,     0,     0,   170,   151,
+   152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+   162,   163,   164,   165,   166,   167,   168,   169,     0,   171,
+     0,     0,     0,     0,     0,     0,   367,   147,   148,     0,
+   149,   150,   172,     0,     0,   151,   152,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+   166,   167,   168,   169,     0,   147,   148,     0,   149,   150,
+   172,     0,   170,   151,   152,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+   168,   169,     0,     0,     5,     0,     7,   280,     0,     0,
+   583,     0,     9,    10,    11,     0,   172,     5,     6,     7,
+     8,     0,     0,   436,     0,     9,    10,    11,    13,     5,
+     6,     7,     8,     0,     0,   631,     0,     9,    10,    11,
+     0,    13,     0,    14,   172,    16,     0,     0,     0,     0,
+   273,     0,     0,    13,     0,    14,     0,     0,    16,   274,
+   275,     0,     0,     0,     0,     0,     0,    22,     0,     0,
+    16,     0,    24,     0,     5,     6,     7,     8,     0,     0,
+    22,     0,     9,    10,    11,    24,     5,     6,     7,     8,
+     0,     0,    22,     0,     9,    10,    11,    24,    13,     5,
+    14,     7,   280,     0,     0,     0,     0,     9,    10,    11,
+    13,     0,     0,     0,     0,    16,     0,     0,     0,     0,
+     0,     0,     0,    13,     0,     0,     0,    16,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    22,     0,     0,
+    16,     0,    24,   861,     0,     0,     0,     0,     0,    22,
+     0,     0,     0,     0,    24,     0,     0,     0,     0,     0,
+     0,     0,    22,     0,     0,     0,     0,    24,   246,   247,
+   248,   862,   249,   250,   251,   252,   253,   254,   255,   256,
+   257,   258,   259,   260,   261,   262,    14,     0,     0,     0,
+     0,   246,   247,   248,     0,   249,   250,   251,   252,   253,
+   254,   255,   256,   257,   258,   259,   260,   261,   262,   246,
+   247,   248,   900,   249,   250,   251,   252,   253,   254,   255,
+   256,   257,   258,   259,   260,   261,   262,   246,   247,   248,
+     0,   249,   250,   251,   252,   253,   254,   255,   256,   257,
+   258,   259,   260,   261,   262
 };
 
-static const short yycheck[] = {     9,
-    10,    11,   209,    24,     2,     3,    16,    60,    61,    19,
-    20,   288,   208,    23,    83,    25,    26,     2,     3,     2,
-     3,    33,     2,     3,    91,    22,    85,    24,   177,    36,
-   326,   318,   345,    31,   203,    33,    98,   243,   351,   347,
-    66,    39,    98,    33,    31,   277,    67,   333,    32,    33,
-    71,   411,   107,   108,    39,   177,    39,   284,   113,    39,
-   636,   477,   142,   553,    74,   145,   434,   432,   204,   124,
-    67,    61,     1,    80,    71,   194,    58,   200,   736,    77,
-   135,    88,     1,   818,    94,    83,     1,    85,   116,    38,
-    77,    10,     9,    91,     1,     3,     3,     4,    85,   109,
-     3,     4,    27,     1,    76,    45,    38,   521,    98,    81,
-   715,   525,    59,    60,   283,    98,    38,   324,    38,     0,
-     3,     4,    30,    45,   246,    45,   116,    76,   733,    76,
-     0,     3,     4,   868,    59,    60,   146,   423,   148,    59,
-   417,    81,    50,   801,    76,   173,   199,   214,    77,     3,
-     4,    59,    60,   888,   568,   145,   891,   571,   893,    76,
-    67,    59,   172,    82,    67,    72,   901,    82,    59,    72,
-    38,   233,   182,   183,   539,   185,   186,   233,    38,    82,
-    59,   408,    38,   173,    67,    45,   844,    59,   420,    72,
-    59,    59,   245,   191,     3,    67,   194,   195,   933,    82,
-    72,   208,    45,   339,   191,    59,   204,   343,   195,   699,
-   700,   334,   219,    67,    82,   225,   214,   204,    72,   247,
-    76,   288,   345,   342,   252,   278,   254,    77,   351,    77,
-    39,    81,   285,   892,   520,   358,     3,   360,   248,   604,
-   527,    30,   232,   233,   660,   613,   230,    30,   232,    38,
-   233,    76,   234,    82,   236,   377,    81,   247,   834,     3,
-     4,   920,   252,    30,   254,   275,   276,    30,     3,     4,
-   630,     3,     4,   301,    65,     7,     1,    59,    60,     4,
-     5,     6,     7,    50,    82,    10,    76,    12,    13,    14,
-   311,    81,    59,   579,    76,   348,    59,    60,    30,   309,
-    59,    60,    82,    28,     3,     4,     5,     6,     7,    48,
-    49,   301,    59,   729,   311,   370,    50,    76,    50,   606,
-    45,    59,   812,    67,    63,    59,    60,    59,    72,    77,
-   328,   338,    67,    81,   387,    77,    59,    72,    82,    81,
-    72,   339,    67,   353,   342,   343,    27,    72,    76,    30,
-   417,   583,   339,    81,   560,    36,   343,    82,    27,    30,
-   592,    30,   415,   640,   486,   514,    78,    36,    67,   655,
-     3,     4,   658,    72,     1,    78,   438,     4,    76,     6,
-     7,    59,   438,    81,    59,    12,    13,    14,    59,    60,
-    59,    60,   514,   701,    77,   622,    77,    30,    81,   427,
-    81,    28,   689,    77,    31,    38,    76,    81,    77,   419,
-   431,     9,    81,   411,    68,    69,    70,    50,    45,    68,
-    69,    70,   227,   839,    78,   423,    59,   623,   426,    78,
-   235,     3,     4,   445,   431,   712,   434,   427,   423,    72,
-    67,    81,   674,   423,    75,    72,   458,   445,   438,   434,
-   434,   574,   621,    77,   434,   445,   579,    81,   627,    77,
-   444,   445,     7,    81,   586,    77,     3,     4,   458,    81,
-   251,    76,   699,   553,   554,   256,   257,    76,    50,   706,
-   261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-   271,   272,    77,    30,    38,    67,    81,    68,    69,    70,
-    72,     5,   512,     7,   516,    50,   575,    78,    77,    68,
-    69,    70,    81,    50,    59,    60,    77,   804,   516,    78,
-    81,   519,    59,    60,   536,   731,   516,    50,    51,    52,
-    82,   515,    59,   656,   519,   658,   534,    77,   536,   519,
-    36,   346,     3,     4,    77,    78,   536,   534,   617,   618,
-    81,   535,   536,   612,   616,   553,   554,    67,   548,   557,
-   616,   767,    77,   547,   548,    76,   553,   554,   578,    30,
-   883,   352,   885,   640,    76,   565,    82,   575,    76,   638,
-   564,   565,   608,   609,    59,    60,   755,    59,    60,    50,
-     3,     4,   602,    77,     7,    38,     3,    59,    59,   597,
-     7,    77,    78,     3,     4,    59,    60,     7,   389,   390,
-   597,    72,    76,   611,   612,   613,   623,    30,    77,   617,
-   618,    77,    78,    30,   622,   612,   616,    10,   613,   613,
-    30,   927,   630,   613,    76,   622,    63,    50,   636,   935,
-   638,    59,    60,    50,     3,   712,    59,    60,     7,   702,
-    50,   638,    59,    60,    82,   665,   863,   128,   129,    59,
-    76,    27,     9,   869,    83,    77,    36,   472,    78,    78,
-    76,    30,    76,    78,   479,   480,    78,    38,   731,     3,
-     4,    76,    76,     1,   753,    76,     4,     5,     6,     7,
-    76,    50,    76,    38,    12,    13,    14,    76,    83,    76,
-    59,   699,   700,    83,   910,   911,    30,    76,   706,    82,
-    28,   721,   699,   700,   767,   496,     6,     7,    76,   706,
-    63,   731,    12,    13,    14,   778,    50,    45,    63,     4,
-     5,     6,     7,   731,    76,    59,    36,    12,    13,    14,
-    78,    81,    83,   798,    32,    38,   731,   745,   731,    67,
-    83,   731,    77,    28,    72,   753,    76,   767,   745,    81,
-   883,   782,   885,   816,    82,   834,   819,   820,   573,   779,
-    45,     5,     6,     7,   827,    76,   788,   836,    12,    13,
-    14,    77,     3,    77,   781,   782,   567,    38,    83,   842,
-   788,    63,    67,    78,    78,    38,   849,    72,   788,    38,
-   798,   582,    77,   787,   788,    54,    55,   860,    57,    58,
-    59,    60,    78,   798,   812,   798,   869,    81,   798,   624,
-   625,   626,    63,   628,   629,   812,    38,    76,    45,    46,
-    47,    48,    49,    50,    51,    52,   834,    81,   836,   892,
-     1,    78,     3,    36,    63,    83,   651,     8,     9,   836,
-    11,     1,    78,    38,     4,     5,     6,     7,    59,   869,
-    59,   914,    12,    13,    14,   646,    38,   920,    29,   650,
-    31,    59,    33,    34,    77,   680,   681,   682,    28,    40,
-    30,    77,    43,     5,     6,     7,    38,    48,    49,    50,
-    12,    13,    14,    54,    55,    45,     7,   678,    59,    60,
-    77,    77,    16,    64,    78,    66,    59,    77,    30,    77,
-    71,    59,   717,   694,    75,    17,    63,    67,    79,    80,
-    76,    82,    72,    44,    45,    46,    47,    48,    49,    50,
-    51,    52,    82,     1,   715,     3,     4,   718,     6,     7,
-     8,     9,    77,    11,    12,    13,    14,    48,    49,    50,
-    51,    52,   733,    76,     9,   736,    59,    77,    76,   764,
-    28,    29,    77,    31,    76,    33,    34,    77,    77,     0,
-    77,   752,    40,    81,     0,    43,    76,    45,    76,   420,
-    48,    49,    50,    77,    77,   819,    54,    55,   334,   656,
-   798,    59,    60,   774,   639,    87,    64,   419,    66,    67,
-   291,   355,   646,    71,    72,   233,   574,    75,   360,   225,
-   656,    79,    80,   580,    82,   658,   353,   869,   869,   915,
-   801,   414,     1,   917,     3,     4,     5,     6,     7,     8,
-     9,   557,    11,    12,    13,    14,    15,   426,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-    29,    30,    31,    25,    33,    34,   544,   753,   426,   750,
-   618,    40,   310,   844,    43,   745,    45,   537,   519,    48,
-    49,    50,   422,   422,   855,    54,    55,   514,   674,   586,
-    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,
-   377,    -1,    71,    72,    -1,    -1,    75,    -1,    77,    78,
-    79,    80,     1,    82,     3,     4,     5,     6,     7,     8,
-     9,    -1,    11,    12,    13,    14,    15,    -1,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-    29,    30,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    -1,    43,    -1,    45,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
-    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,
-    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,
-    79,    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,
-     9,    -1,    11,    -1,    -1,    -1,    15,    -1,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    54,    55,    43,    57,    58,    59,    60,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
-    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,
-    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    77,    78,
-    79,    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,
-     9,    -1,    11,    -1,    -1,    -1,    15,    -1,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
-    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,
-    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,
-    79,    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,
-     9,    -1,    11,    -1,    -1,    -1,    15,    -1,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,     3,
-     4,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
-    59,    60,    -1,    -1,    -1,    64,    30,    66,    67,    -1,
-    -1,    -1,    71,    72,    38,    -1,    75,    -1,    77,    -1,
-    79,    80,     1,    82,     3,     4,    50,    -1,    -1,     8,
-     9,    -1,    11,    -1,    -1,    59,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    72,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,
-    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,
-    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    78,
-    79,    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,
-     9,    37,    11,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    48,    49,    50,    51,    52,    -1,    -1,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    58,
-    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,
-    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    78,
-    79,    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,
-     9,    -1,    11,     1,    -1,    -1,     4,    -1,     6,     7,
+static const short yycheck[] = {    56,
+    57,    31,   207,    16,     2,     3,    19,    20,     2,     3,
+    23,   198,    25,    26,    33,    83,    85,    91,   201,     2,
+     3,    22,   335,    24,   206,    38,    39,    40,   341,   105,
+   106,    24,   233,     2,     3,   111,   267,   308,   337,   548,
+     9,    10,    11,   316,    42,    66,   122,    77,    42,   278,
+   175,   404,   274,   323,   636,    85,    95,   133,   221,    42,
+   221,    74,    31,   427,    33,     1,    67,   202,   192,   140,
+    71,   175,   143,    42,    67,    32,    33,   114,    71,     3,
+   336,   425,   570,     9,     1,   739,    38,   343,    27,     1,
+   273,    38,     1,    10,   107,   351,   898,     3,     4,    77,
+     3,    77,    30,    81,   717,    81,    30,    59,    77,   314,
+    38,     3,     4,   823,    83,    77,    85,    38,    38,    81,
+    59,    60,    91,   736,   926,    36,    50,     3,     4,    76,
+    82,   144,   236,   146,   171,    59,    33,   324,   212,    42,
+   197,    77,    53,    54,    55,     0,   416,    59,   335,    45,
+    76,   805,     3,     4,   341,    76,    76,   170,    50,   189,
+    57,    67,     0,   193,   874,    82,    72,   180,   181,    80,
+   183,   184,   202,    82,   662,    67,    82,    88,   235,   401,
+    72,   410,   413,     7,   894,    81,   349,   897,   349,   899,
+   534,    67,   701,   702,   329,   849,    72,   907,   333,     5,
+   237,     7,    59,    60,   278,   242,    82,   244,   332,    77,
+    78,   268,   225,    59,    60,    38,    67,   114,   275,    76,
+   189,    72,    45,   192,   193,   238,    50,     3,     4,   939,
+    76,    82,    76,   202,    30,    59,    60,    81,   221,     1,
+    59,     3,     4,   212,   732,   515,   143,    27,    38,   613,
+    30,   522,   265,   266,   291,    45,    36,   839,     3,     4,
+   604,     3,     4,     5,     6,     7,   370,    59,   431,    59,
+   431,    59,    60,    59,   171,    48,    49,   630,   465,    45,
+   467,   338,    77,    59,     3,     4,   299,   363,    76,    30,
+    63,    67,    59,    60,     3,   206,    72,    77,     7,   329,
+   301,    81,    30,   333,    59,    67,   217,   816,   301,   579,
+    72,   350,    65,   352,    59,    59,   572,   573,    59,    60,
+   576,    30,    67,   380,   221,    67,    38,    72,    82,    76,
+    72,    59,    60,    45,    81,   606,   410,    59,   516,    77,
+   237,    50,   520,    81,   357,   242,    82,   244,    67,   318,
+    59,   408,   583,    72,   555,    82,   844,    59,    60,     3,
+   329,   592,    76,   332,   333,    59,   349,    81,   624,   625,
+   626,    50,   628,   629,     3,     4,    76,   481,     7,     9,
+    59,    60,    81,   420,   509,   563,    30,   657,   566,   346,
+   660,   348,   579,    76,   291,    59,    60,   653,    81,   412,
+   622,    30,    77,    78,   703,   509,    50,     3,     4,    76,
+    75,   640,     3,     4,    81,    59,    60,   328,   416,   438,
+   691,    50,   416,   424,    77,    78,   682,   683,   684,   427,
+    59,   424,   451,   427,    30,   404,    77,    76,   621,    30,
+    81,   623,    38,    72,   627,   676,    38,   416,     3,     4,
+   419,   348,   349,   616,    50,   616,    59,    60,   427,    50,
+   473,   648,    76,    59,    77,   721,     3,     4,    59,   438,
+   427,   658,    82,   660,    59,    30,    72,   548,   549,   701,
+   437,   438,   586,    38,    59,   714,   708,    77,    68,    69,
+    70,    81,   511,    30,   507,    50,    78,    27,    78,   529,
+    30,     3,     4,    77,    59,     7,    36,    81,   126,   127,
+   766,    77,   531,    50,    78,    81,   514,    72,   548,   549,
+   514,    77,    59,   420,    76,    81,    77,    77,    30,    59,
+    60,    81,    77,   734,   431,    72,    81,   808,    50,    51,
+    52,   438,   511,   612,    76,   514,    82,    77,    50,   617,
+   618,    81,    76,   510,   451,    38,    59,    59,    60,    76,
+   529,    77,   531,    10,   820,   578,   640,   597,    76,   638,
+   771,    63,    82,   530,   531,   758,   889,    76,   891,   548,
+   549,   649,   612,   552,    27,   542,   543,   608,   609,   602,
+     9,    77,   622,    83,     3,     4,    36,     5,     6,     7,
+    67,    77,   559,   560,    12,    13,    14,    36,   638,    81,
+    68,    69,    70,    78,   511,   613,    68,    69,    70,   613,
+    78,    30,    30,    68,    69,    70,    78,    76,   597,     5,
+     6,     7,    38,    78,   531,    76,    12,    13,    14,    76,
+   714,    50,   611,   612,   613,    76,   543,   704,   617,   618,
+    59,    60,    76,   622,   667,    76,   613,    38,    76,    82,
+   933,   630,    76,   560,   869,    76,    83,   636,   941,   638,
+    83,   701,   702,    63,   875,     6,     7,   734,   708,   241,
+   649,    12,    13,    14,   246,   247,    63,    76,   756,   251,
+   252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
+   262,    76,   889,    36,   891,    48,    49,    50,    51,    52,
+    83,   724,   623,    76,   771,   916,   917,     1,   748,   616,
+     4,   734,     6,     7,    78,   782,   802,    78,    12,    13,
+    14,    78,   701,   702,    32,    38,   734,    83,    76,   708,
+   734,    77,    81,    77,    28,     3,    76,    31,    77,     3,
+    78,   734,    38,     7,    81,    63,    78,    83,   771,    78,
+    38,    45,    38,    78,   821,   734,    63,   824,   825,    81,
+   783,   839,   841,   792,    38,   832,    30,    81,    78,   748,
+    36,    63,    83,    67,   785,   786,   816,   756,    72,    78,
+   847,    38,    59,   786,    59,    38,    50,    59,   855,     7,
+    77,    38,    77,    77,   802,    59,    60,    77,   802,   866,
+    16,   841,    78,    59,    77,    59,    77,    76,   875,   802,
+   382,   383,    63,   792,     3,     4,    54,    55,     7,    57,
+    58,    59,    60,   802,   791,   792,     4,     5,     6,     7,
+     4,   898,     6,     7,    12,    13,    14,   816,    12,    13,
+    14,    30,    54,    55,    17,    57,    58,    59,    60,    77,
+    28,    76,   875,   920,    28,    77,    76,    76,     9,   926,
+   839,    50,   841,    77,    76,    59,    77,    45,    77,     1,
+    59,    45,     4,     5,     6,     7,    81,    77,    10,    76,
+    12,    13,    14,    76,     0,   792,    77,    77,     0,    67,
+   413,   824,   324,    67,    72,    87,    28,   658,    72,    77,
+   472,   802,   281,   639,     1,   412,     3,     4,     5,     6,
+     7,     8,     9,    45,    11,    12,    13,    14,    15,   491,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    30,    31,    67,    33,    34,   646,   475,
+    72,   349,   467,    40,   357,   648,    43,   658,    45,   473,
+    82,    48,    49,    50,   580,   660,   921,    54,    55,   923,
+   875,   875,    59,    60,   407,   419,   552,    64,    25,    66,
+    67,   419,   539,   618,    71,    72,   756,   300,    75,   753,
+    77,    78,    79,    80,   532,    82,   514,   586,   748,   415,
+   562,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,     1,   370,     3,     4,     5,     6,     7,     8,     9,
+   582,    11,    12,    13,    14,    15,   676,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+    30,    31,    -1,    33,    34,   509,    -1,   415,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    45,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
+    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
+    -1,    71,    72,    -1,   646,    75,    -1,    77,    -1,    79,
+    80,     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,
+    -1,    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,   680,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,   696,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
+    60,    -1,    -1,    -1,    64,   717,    66,    67,   720,    -1,
+    -1,    71,    72,    -1,    -1,    75,    -1,    77,    78,    79,
+    80,    -1,    82,    -1,   736,    -1,     1,   739,    -1,     4,
+     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
+    -1,    -1,    -1,   755,    44,    45,    46,    47,    48,    49,
+    50,    51,    52,    28,    -1,   767,    -1,     1,    -1,     3,
+     4,    -1,    -1,    -1,     8,     9,   778,    11,    -1,    -1,
+    45,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
+    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,    33,
+    34,    -1,    67,   805,    -1,    -1,    40,    72,    -1,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    82,    -1,    -1,
+    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
+    64,    -1,    66,    67,    -1,    -1,    -1,    71,    72,    -1,
+    -1,    75,    -1,    77,    -1,    79,    80,   849,    82,    -1,
+     1,    -1,     3,     4,    -1,    -1,    -1,     8,     9,   861,
+    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,
+    21,    22,    23,    24,    25,    26,    27,    -1,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,
+    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
+    71,    72,    -1,    -1,    75,    -1,    77,    -1,    79,    80,
+     1,    82,     3,     4,    -1,     6,     7,     8,     9,    -1,
+    11,    12,    13,    14,    40,    41,    42,    43,    44,    45,
+    46,    47,    48,    49,    50,    51,    52,    28,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    45,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,
+    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
+    71,    72,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,
+     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,    37,
+    11,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+    48,    49,    50,    51,    52,    -1,    -1,    -1,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,    60,
+    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
+    71,    72,    -1,    -1,    75,    -1,    -1,    78,    79,    80,
+     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,    -1,
+    11,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+    50,    51,    52,    -1,    -1,    -1,    -1,    -1,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,    60,
+    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
+    71,    72,    -1,    -1,    75,    -1,    -1,    78,    79,    80,
+     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,    -1,
+    11,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+    51,    52,    -1,    -1,    -1,    -1,    -1,    -1,    29,    -1,
+    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
+    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
+    -1,    -1,    -1,    54,    55,    -1,    -1,    58,    59,    60,
+    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,
+    71,    72,    -1,    -1,    75,     1,    -1,     3,    79,    80,
+    -1,    82,     8,     9,    -1,    11,     1,    -1,    -1,     4,
+    -1,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
+    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
+    -1,    -1,    -1,    28,    40,    -1,    31,    43,    -1,    -1,
+    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
+    45,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,
+    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
+    -1,    -1,    67,    79,    80,     1,    82,    72,     4,     5,
+     6,     7,    77,    78,    -1,    -1,    12,    13,    14,    -1,
+    -1,    -1,    -1,    -1,     1,    -1,    -1,     4,     5,     6,
+     7,    27,    28,    -1,    30,    12,    13,    14,    -1,    -1,
+    36,    45,    46,    47,    48,    49,    50,    51,    52,    45,
+    27,    28,    -1,    30,    -1,    -1,    -1,    -1,    -1,    36,
+    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    45,    -1,
+    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
+    -1,    77,    59,    60,    -1,    81,    82,    -1,    -1,    -1,
+    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,
+    77,    -1,    -1,     1,    81,    82,     4,     5,     6,     7,
     -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,
+    -1,    -1,     1,    -1,    -1,     4,     5,     6,     7,    27,
+    28,    -1,    30,    12,    13,    14,    -1,    -1,    36,    46,
+    47,    48,    49,    50,    51,    52,    -1,    45,    -1,    28,
+    -1,    30,    -1,     4,    -1,     6,     7,    -1,    -1,    -1,
+    -1,    12,    13,    14,    -1,    -1,    45,    -1,    -1,    67,
+    -1,    -1,    -1,    -1,    72,    -1,    -1,    28,    -1,    77,
+    -1,    -1,    -1,    81,    82,    -1,     1,    -1,    67,     4,
+     5,     6,     7,    72,    45,    -1,    -1,    12,    13,    14,
+    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    28,     3,    30,    67,    -1,    -1,     8,
+     9,    72,    11,    -1,    -1,    -1,    77,    78,    -1,    -1,
+    45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    28,    40,    -1,    31,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    45,    -1,    58,
-    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,
-    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    67,
-    79,    80,     1,    82,    72,     4,     5,     6,     7,    77,
-    78,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,
-    -1,     1,    -1,    -1,     4,     5,     6,     7,    27,    28,
-    -1,    30,    12,    13,    14,    -1,    -1,    36,    46,    47,
-    48,    49,    50,    51,    52,    -1,    45,    27,    28,    -1,
-    30,    -1,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,
-    59,    60,    -1,    -1,    -1,    45,    -1,    -1,    67,    -1,
-    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,    77,    59,
-    60,    -1,    81,    82,    -1,    -1,    -1,    67,    -1,    -1,
-    -1,    -1,    72,    -1,    -1,    -1,    -1,    77,    -1,    -1,
-     1,    81,    82,     4,     5,     6,     7,    -1,    -1,    -1,
-    -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,     1,
-    -1,    -1,     4,     5,     6,     7,    27,    28,    -1,    30,
-    12,    13,    14,    -1,    -1,    36,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    45,    -1,    28,     3,    30,    -1,
-    -1,    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    45,    -1,    -1,    67,    -1,    -1,    -1,
-    -1,    72,    -1,    29,    -1,    31,    77,    33,    34,    -1,
-    81,    82,    -1,    -1,    40,    67,    -1,    43,    -1,    -1,
-    72,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
-    82,    -1,    -1,    59,    60,    -1,     3,    -1,    64,    -1,
-    66,     8,     9,    -1,    11,    71,    -1,    -1,    -1,    75,
-    -1,    -1,    -1,    79,    80,    -1,    -1,    83,    -1,    -1,
-    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
-    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
-    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-    -1,    -1,    59,    60,    -1,     3,    -1,    64,    -1,    66,
-     8,     9,    -1,    11,    71,    -1,    -1,    -1,    75,    -1,
-    -1,    -1,    79,    80,    -1,    -1,    83,    -1,    -1,    -1,
-    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
-    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
-    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
-    -1,    59,    60,    -1,     3,    -1,    64,    -1,    66,     8,
-     9,    -1,    11,    71,    -1,    -1,    -1,    75,    -1,    -1,
-    -1,    79,    80,    -1,    -1,    83,    -1,    -1,    -1,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
+    -1,    40,    67,    -1,    43,    -1,    -1,    72,    -1,    48,
+    49,    50,    -1,    -1,    -1,    54,    55,    82,    -1,    -1,
     59,    60,    -1,     3,    -1,    64,    -1,    66,     8,     9,
     -1,    11,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,
     79,    80,    -1,    -1,    83,    -1,    -1,    -1,    -1,    29,
     -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
     40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
     50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
-    60,    -1,    -1,    -1,    64,    -1,    66,    -1,    -1,    -1,
-    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,
-    80,    -1,    -1,    83,     3,     4,     5,     6,     7,     8,
-     9,    -1,    11,    12,    13,    14,    15,    -1,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-    29,    30,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    -1,    43,    -1,    45,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
-    59,    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,
-    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,
-    79,    80,    -1,    82,     3,     4,    -1,    -1,    -1,     8,
-     9,    -1,    11,    -1,    -1,    -1,    15,    -1,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,
-    59,    60,    -1,     8,     9,    64,    11,    66,    67,    -1,
-    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    77,    -1,
-    79,    80,    -1,    82,    29,    -1,    31,    -1,    33,    34,
-    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
-    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,
-    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
-    75,    -1,    -1,    -1,    79,    80,    -1,    82,     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,     3,     4,     5,     6,
-     7,     8,     9,    38,    11,    12,    13,    14,     4,     5,
-     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,    -1,
-    -1,    28,    29,    30,    31,    -1,    33,    34,    -1,    -1,
-    -1,    -1,    28,    40,    30,    -1,    43,    72,    45,    -1,
-    -1,    48,    49,    50,    -1,    -1,    81,    54,    55,    45,
-    -1,    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,
-    67,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,    -1,
-    -1,    67,    79,    80,     3,     4,    72,     6,     7,     8,
-     9,    77,    11,    12,    13,    14,    40,    41,    42,    43,
-    44,    45,    46,    47,    48,    49,    50,    51,    52,    28,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    -1,    43,    -1,    45,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,
-    59,    60,    -1,     8,     9,    64,    11,    66,    67,    -1,
-    -1,    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    -1,
-    79,    80,    -1,    -1,    29,    -1,    31,    -1,    33,    34,
-    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
-    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,     3,    -1,    59,    60,    -1,     8,     9,    64,
-    11,    66,    67,    -1,    -1,    -1,    71,    -1,    -1,    -1,
-    75,    -1,    -1,    -1,    79,    80,    -1,    -1,    29,    -1,
+    60,    -1,     3,    -1,    64,    -1,    66,     8,     9,    -1,
+    11,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,
+    80,    -1,    -1,    83,    -1,    -1,    -1,    -1,    29,    -1,
     31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,
     -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,    60,
-    -1,     8,     9,    64,    11,    66,    -1,    -1,    -1,    -1,
-    71,    -1,    -1,    -1,    75,    -1,    77,    -1,    79,    80,
-    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
-    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
-    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
-     3,    -1,    59,    60,    -1,     8,     9,    64,    11,    66,
-    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,
-    -1,    -1,    79,    80,    -1,    -1,    29,    -1,    31,    -1,
+    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,
+    -1,     3,    -1,    64,    -1,    66,     8,     9,    -1,    11,
+    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,
+    -1,    -1,    83,    -1,    -1,    -1,    -1,    29,    -1,    31,
+    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
+    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,
+     3,    -1,    64,    -1,    66,     8,     9,    -1,    11,    71,
+    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,
+    -1,    83,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,
     33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
     43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,
-    -1,    54,    55,    -1,     3,    -1,    59,    60,    -1,     8,
-     9,    64,    11,    66,    -1,    -1,    -1,    -1,    71,    -1,
+    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,
+    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,
     -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,    -1,
-    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,
-    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,
-    49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,
-    59,    60,    -1,     8,     9,    64,    11,    66,    -1,    -1,
-    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,
-    79,    80,    -1,    -1,    29,    -1,    31,    -1,    33,    34,
-    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
-    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,
-    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    64,
-    -1,    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
-    75,    -1,    -1,     1,    79,    80,     4,    -1,     6,     7,
-    -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,
-    -1,     1,    -1,    -1,     4,    -1,     6,     7,    -1,    -1,
-    28,    -1,    12,    13,    14,    42,    43,    44,    45,    46,
-    47,    48,    49,    50,    51,    52,    -1,    45,    28,    -1,
-    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
-     6,     7,    -1,    -1,    -1,    45,    12,    13,    14,    67,
-    68,    69,    70,    -1,    72,    -1,    -1,    -1,    -1,    77,
-    78,    27,    28,    -1,    30,    31,    -1,    67,    68,    69,
-    70,    -1,    72,    -1,    -1,    -1,    -1,    77,    78,    45,
-    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    59,    -1,    61,    62,    63,    -1,    -1,
-    -1,    67,    -1,    -1,    -1,    71,    72,    73,    74,    -1,
-     1,    77,     3,     4,     5,     6,     7,    -1,    -1,    -1,
-    -1,    12,    13,    14,    43,    44,    45,    46,    47,    48,
-    49,    50,    51,    52,    -1,    -1,    -1,    28,     1,    30,
-     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
-    13,    14,    -1,    -1,    45,    -1,    -1,    48,    49,    50,
-    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,    59,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
-    -1,    72,    45,    -1,    -1,    -1,    77,    50,     1,    -1,
-     3,     4,     5,     6,     7,    -1,    59,    10,    -1,    12,
-    13,    14,    -1,    -1,    67,    -1,    -1,     1,    -1,    72,
-     4,     5,     6,     7,    77,    28,    10,    30,    12,    13,
-    14,     4,    -1,     6,     7,    -1,    -1,    -1,    -1,    12,
-    13,    14,    45,    -1,    28,    -1,    30,    -1,    -1,    -1,
-     4,     5,     6,     7,    -1,    28,    -1,    -1,    12,    13,
-    14,    45,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    -1,    -1,    45,    76,    28,    -1,    30,    -1,    -1,    -1,
-    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,
-    -1,    45,    76,    -1,    67,    -1,    -1,    -1,    -1,    72,
-     4,     5,     6,     7,    77,    78,    -1,    -1,    12,    13,
-    14,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,
-    -1,    -1,    -1,    77,    28,    -1,    30,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,     3,     4,    -1,     6,     7,    -1,
-    -1,    45,    11,    12,    13,    14,    15,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-    29,    -1,    -1,    67,    -1,    30,    -1,    -1,    72,    38,
-    35,    36,    37,    77,    39,    40,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    51,    52,    -1,    -1,
-    59,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,     6,
-     7,    -1,    -1,    72,    11,    12,    13,    14,    15,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,    -1,     3,     4,    -1,     6,     7,    -1,
-    -1,    38,    11,    12,    13,    14,    15,    16,    17,    18,
-    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-    29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,
-     3,     4,    -1,     6,     7,    72,    -1,    -1,    11,    12,
-    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    27,    28,    29,    -1,    -1,     4,
-    -1,     6,     7,    72,    -1,    38,    -1,    12,    13,    14,
-     4,     5,     6,     7,    -1,    -1,    10,    -1,    12,    13,
-    14,    -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    28,    -1,    30,    -1,    -1,    72,
-    45,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
-    -1,    45,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,
-    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,
-    -1,    -1,    -1,    67,     4,     5,     6,     7,    72,    -1,
-    10,    -1,    12,    13,    14,     4,     5,     6,     7,    -1,
-    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    28,    -1,
-    30,    -1,    -1,    -1,     4,     5,     6,     7,    -1,    28,
-    -1,    30,    12,    13,    14,    45,    -1,    -1,    -1,    -1,
-    -1,    -1,     4,    -1,     6,     7,    45,    -1,    28,    -1,
-    12,    13,    14,    -1,    -1,    -1,    -1,    67,    -1,    -1,
-    -1,     4,    72,     6,     7,    45,    28,    -1,    67,    12,
-    13,    14,    -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    45,    -1,    28,    -1,    67,    -1,    -1,
-    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    45,    -1,    -1,    67,    10,    -1,    -1,    -1,
-    72,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,
-    -1,    35,    36,    37,    38,    39,    40,    41,    42,    43,
+    83,     3,     4,     5,     6,     7,     8,     9,    -1,    11,
+    12,    13,    14,    15,    -1,    17,    18,    19,    20,    21,
+    22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    43,    -1,    45,    -1,    -1,    48,    49,    50,    -1,
+    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,    -1,
+    -1,    -1,    64,    -1,    66,    67,    -1,    -1,    -1,    71,
+    72,    -1,    -1,    75,    -1,    77,    -1,    79,    80,    -1,
+    82,     3,     4,    -1,    -1,    -1,     8,     9,    -1,    11,
+    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,    21,
+    22,    23,    24,    25,    26,    27,    -1,    29,    -1,    31,
+    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
+    -1,    -1,    54,    55,    -1,     3,    -1,    59,    60,    -1,
+     8,     9,    64,    11,    66,    67,    -1,    -1,    -1,    71,
+    72,    -1,    -1,    75,    -1,    77,    -1,    79,    80,    -1,
+    82,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
+    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,    -1,
+    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
+    -1,    79,    80,    -1,    82,     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,     3,     4,     5,     6,     7,     8,     9,
+    38,    11,    12,    13,    14,     4,     5,     6,     7,    -1,
+    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    28,    29,
+    30,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    28,
+    40,    30,    -1,    43,    72,    45,    -1,    -1,    48,    49,
+    50,    -1,    -1,    81,    54,    55,    45,    -1,    -1,    59,
+    60,    -1,    -1,    -1,    64,    -1,    66,    67,    -1,    -1,
+    -1,    71,    72,    -1,    -1,    75,    -1,    -1,    67,    79,
+    80,     3,     4,    72,     6,     7,     8,     9,    77,    11,
+    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    -1,    31,
+    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    43,    -1,    45,    -1,    -1,    48,    49,    50,    -1,
+    -1,    -1,    54,    55,    -1,     3,    -1,    59,    60,    -1,
+     8,     9,    64,    11,    66,    67,    -1,    -1,    -1,    71,
+    72,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,
+    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,     3,
+    -1,    59,    60,    -1,     8,     9,    64,    11,    66,    67,
+    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
+    -1,    79,    80,    -1,    -1,    29,    -1,    31,    -1,    33,
+    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,
+    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    54,    55,    -1,     3,    -1,    59,    60,    -1,     8,     9,
+    64,    11,    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,
+    -1,    75,    -1,    77,    -1,    79,    80,    -1,    -1,    29,
+    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,
+    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
+    50,    -1,    -1,    -1,    54,    55,    -1,     3,    -1,    59,
+    60,    -1,     8,     9,    64,    11,    66,    -1,    -1,    -1,
+    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,
+    80,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
+    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,
+    -1,    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,
+    -1,     3,    -1,    59,    60,    -1,     8,     9,    64,    11,
+    66,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,
+    -1,    -1,    -1,    79,    80,    -1,    -1,    29,    -1,    31,
+    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
+    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
+    -1,    -1,    54,    55,    -1,     3,    -1,    59,    60,    -1,
+     8,     9,    64,    11,    66,    -1,    -1,    -1,    -1,    71,
+    -1,    -1,    -1,    75,    -1,    -1,    -1,    79,    80,    -1,
+    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
+    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
+    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
+    -1,    59,    60,    -1,    -1,    -1,    64,    -1,    66,    -1,
+    -1,    -1,    -1,    71,    -1,    -1,    -1,    75,    -1,    -1,
+     1,    79,    80,     4,    -1,     6,     7,    -1,    -1,    -1,
+    -1,    12,    13,    14,    -1,    -1,    -1,    -1,     1,    -1,
+    -1,     4,    -1,     6,     7,    -1,    -1,    28,    -1,    12,
+    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    45,    28,    -1,    -1,    -1,    -1,
+    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,    -1,
+    -1,    -1,    45,    12,    13,    14,    67,    68,    69,    70,
+    -1,    72,    -1,    -1,    -1,    -1,    77,    78,    27,    28,
+    -1,    30,    31,    -1,    67,    68,    69,    70,    -1,    72,
+    -1,    -1,    -1,    -1,    77,    78,    45,    -1,    -1,    48,
+    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    59,    -1,    61,    62,    63,    -1,    -1,    -1,    67,    -1,
+    -1,    -1,    71,    72,    73,    74,    -1,     1,    77,     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,     4,     5,
+     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,    -1,
+    -1,    45,    -1,    -1,    48,    49,    50,    -1,    -1,    -1,
+    -1,    -1,    28,    -1,    30,    59,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    45,
+    -1,    -1,    -1,    77,    50,     1,    -1,     3,     4,     5,
+     6,     7,    -1,    59,    10,    -1,    12,    13,    14,    -1,
+    -1,    67,    -1,    -1,     1,    -1,    72,     4,     5,     6,
+     7,    77,    28,    10,    30,    12,    13,    14,     4,     5,
+     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,    45,
+    -1,    28,    -1,    30,    -1,    -1,    -1,     4,     5,     6,
+     7,    -1,    28,    -1,    30,    12,    13,    14,    45,    -1,
+    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    45,
+    76,    28,    -1,    30,    -1,    -1,    -1,    -1,    -1,    -1,
+    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    45,    76,
+    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
+    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    67,    -1,    -1,     3,     4,    72,     6,     7,    -1,    -1,
+    77,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+    -1,     3,     4,    -1,     6,     7,    -1,    -1,    38,    11,
+    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+    22,    23,    24,    25,    26,    27,    28,    29,    -1,    59,
+    -1,    -1,    -1,    -1,    -1,    -1,    38,     3,     4,    -1,
+     6,     7,    72,    -1,    -1,    11,    12,    13,    14,    15,
+    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+    26,    27,    28,    29,    -1,     3,     4,    -1,     6,     7,
+    72,    -1,    38,    11,    12,    13,    14,    15,    16,    17,
+    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+    28,    29,    -1,    -1,     4,    -1,     6,     7,    -1,    -1,
+    38,    -1,    12,    13,    14,    -1,    72,     4,     5,     6,
+     7,    -1,    -1,    10,    -1,    12,    13,    14,    28,     4,
+     5,     6,     7,    -1,    -1,    10,    -1,    12,    13,    14,
+    -1,    28,    -1,    30,    72,    45,    -1,    -1,    -1,    -1,
+    50,    -1,    -1,    28,    -1,    30,    -1,    -1,    45,    59,
+    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
+    45,    -1,    72,    -1,     4,     5,     6,     7,    -1,    -1,
+    67,    -1,    12,    13,    14,    72,     4,     5,     6,     7,
+    -1,    -1,    67,    -1,    12,    13,    14,    72,    28,     4,
+    30,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
+    28,    -1,    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    28,    -1,    -1,    -1,    45,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
+    45,    -1,    72,    10,    -1,    -1,    -1,    -1,    -1,    67,
+    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    35,    36,
+    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    30,    -1,    -1,    -1,
+    -1,    35,    36,    37,    -1,    39,    40,    41,    42,    43,
     44,    45,    46,    47,    48,    49,    50,    51,    52,    35,
     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
     46,    47,    48,    49,    50,    51,    52,    35,    36,    37,
@@ -1632,7 +1656,7 @@ static const short yycheck[] = {     9,
     48,    49,    50,    51,    52
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/share/bison.simple"
+#line 3 "/usr/cygnus/progressive-98r1/share/bison.simple"
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -1825,7 +1849,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/share/bison.simple"
+#line 196 "/usr/cygnus/progressive-98r1/share/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 *.
@@ -2130,14 +2154,14 @@ yyreduce:
   switch (yyn) {
 
 case 1:
-#line 233 "objc-parse.y"
+#line 234 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids an empty source file");
                  finish_file ();
                ;
     break;}
 case 2:
-#line 238 "objc-parse.y"
+#line 239 "objc-parse.y"
 {
                  /* In case there were missing closebraces,
                     get us back to the global binding level.  */
@@ -2147,15 +2171,15 @@ case 2:
                ;
     break;}
 case 3:
-#line 252 "objc-parse.y"
+#line 253 "objc-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 5:
-#line 253 "objc-parse.y"
+#line 254 "objc-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
 case 10:
-#line 261 "objc-parse.y"
+#line 262 "objc-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)
@@ -2165,11 +2189,11 @@ case 10:
                    error ("argument of `asm' is not a constant string"); ;
     break;}
 case 11:
-#line 269 "objc-parse.y"
+#line 270 "objc-parse.y"
 { pedantic = yyvsp[-1].itype; ;
     break;}
 case 12:
-#line 274 "objc-parse.y"
+#line 275 "objc-parse.y"
 { if (pedantic)
                    error ("ANSI C forbids data definition with no type or storage class");
                  else if (!flag_traditional)
@@ -2181,45 +2205,45 @@ case 12:
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
 case 13:
-#line 284 "objc-parse.y"
+#line 285 "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 14:
-#line 289 "objc-parse.y"
+#line 290 "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 15:
-#line 294 "objc-parse.y"
+#line 295 "objc-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 16:
-#line 296 "objc-parse.y"
+#line 297 "objc-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 19:
-#line 300 "objc-parse.y"
+#line 301 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
     break;}
 case 20:
-#line 306 "objc-parse.y"
+#line 307 "objc-parse.y"
 { if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 0))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
 case 21:
-#line 311 "objc-parse.y"
+#line 312 "objc-parse.y"
 { store_parm_decls (); ;
     break;}
 case 22:
-#line 313 "objc-parse.y"
+#line 314 "objc-parse.y"
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -2227,25 +2251,25 @@ case 22:
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 23:
-#line 319 "objc-parse.y"
+#line 320 "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 24:
-#line 324 "objc-parse.y"
+#line 325 "objc-parse.y"
 { if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 0))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
 case 25:
-#line 329 "objc-parse.y"
+#line 330 "objc-parse.y"
 { store_parm_decls (); ;
     break;}
 case 26:
-#line 331 "objc-parse.y"
+#line 332 "objc-parse.y"
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -2253,25 +2277,25 @@ case 26:
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 27:
-#line 337 "objc-parse.y"
+#line 338 "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 28:
-#line 342 "objc-parse.y"
+#line 343 "objc-parse.y"
 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 0))
                    YYERROR1;
                  reinit_parse_for_function (); ;
     break;}
 case 29:
-#line 347 "objc-parse.y"
+#line 348 "objc-parse.y"
 { store_parm_decls (); ;
     break;}
 case 30:
-#line 349 "objc-parse.y"
+#line 350 "objc-parse.y"
 { finish_function (0); 
                  current_declspecs = TREE_VALUE (declspec_stack);
                  prefix_attributes = TREE_PURPOSE (declspec_stack);
@@ -2279,72 +2303,72 @@ case 30:
                  resume_momentary (yyvsp[-5].itype); ;
     break;}
 case 31:
-#line 355 "objc-parse.y"
+#line 356 "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 36:
-#line 369 "objc-parse.y"
+#line 370 "objc-parse.y"
 { yyval.code = ADDR_EXPR; ;
     break;}
 case 37:
-#line 371 "objc-parse.y"
+#line 372 "objc-parse.y"
 { yyval.code = NEGATE_EXPR; ;
     break;}
 case 38:
-#line 373 "objc-parse.y"
+#line 374 "objc-parse.y"
 { yyval.code = CONVERT_EXPR; ;
     break;}
 case 39:
-#line 375 "objc-parse.y"
+#line 376 "objc-parse.y"
 { yyval.code = PREINCREMENT_EXPR; ;
     break;}
 case 40:
-#line 377 "objc-parse.y"
+#line 378 "objc-parse.y"
 { yyval.code = PREDECREMENT_EXPR; ;
     break;}
 case 41:
-#line 379 "objc-parse.y"
+#line 380 "objc-parse.y"
 { yyval.code = BIT_NOT_EXPR; ;
     break;}
 case 42:
-#line 381 "objc-parse.y"
+#line 382 "objc-parse.y"
 { yyval.code = TRUTH_NOT_EXPR; ;
     break;}
 case 43:
-#line 385 "objc-parse.y"
+#line 386 "objc-parse.y"
 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
     break;}
 case 44:
-#line 390 "objc-parse.y"
+#line 391 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 46:
-#line 396 "objc-parse.y"
+#line 397 "objc-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 47:
-#line 398 "objc-parse.y"
+#line 399 "objc-parse.y"
 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 49:
-#line 404 "objc-parse.y"
+#line 405 "objc-parse.y"
 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
     break;}
 case 50:
-#line 407 "objc-parse.y"
+#line 408 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  pedantic = yyvsp[-1].itype; ;
     break;}
 case 51:
-#line 410 "objc-parse.y"
+#line 411 "objc-parse.y"
 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
                  overflow_warning (yyval.ttype); ;
     break;}
 case 52:
-#line 414 "objc-parse.y"
+#line 415 "objc-parse.y"
 { tree label = lookup_label (yyvsp[0].ttype);
                  if (pedantic)
                    pedwarn ("ANSI C forbids `&&'");
@@ -2359,7 +2383,7 @@ case 52:
                ;
     break;}
 case 53:
-#line 442 "objc-parse.y"
+#line 443 "objc-parse.y"
 { skip_evaluation--;
                  if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
                      && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
@@ -2367,49 +2391,49 @@ case 53:
                  yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
     break;}
 case 54:
-#line 448 "objc-parse.y"
+#line 449 "objc-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 55:
-#line 451 "objc-parse.y"
+#line 452 "objc-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
     break;}
 case 56:
-#line 454 "objc-parse.y"
+#line 455 "objc-parse.y"
 { skip_evaluation--;
                  yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
     break;}
 case 57:
-#line 457 "objc-parse.y"
+#line 458 "objc-parse.y"
 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
     break;}
 case 58:
-#line 459 "objc-parse.y"
+#line 460 "objc-parse.y"
 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
     break;}
 case 59:
-#line 463 "objc-parse.y"
+#line 464 "objc-parse.y"
 { skip_evaluation++; ;
     break;}
 case 60:
-#line 467 "objc-parse.y"
+#line 468 "objc-parse.y"
 { skip_evaluation++; ;
     break;}
 case 62:
-#line 473 "objc-parse.y"
+#line 474 "objc-parse.y"
 { tree type = groktypename (yyvsp[-2].ttype);
                  yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
     break;}
 case 63:
-#line 476 "objc-parse.y"
+#line 477 "objc-parse.y"
 { start_init (NULL_TREE, NULL, 0);
                  yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
                  really_start_incremental_init (yyvsp[-2].ttype); ;
     break;}
 case 64:
-#line 480 "objc-parse.y"
+#line 481 "objc-parse.y"
 { char *name;
                  tree result = pop_init_level (0);
                  tree type = yyvsp[-5].ttype;
@@ -2436,90 +2460,90 @@ case 64:
                ;
     break;}
 case 66:
-#line 509 "objc-parse.y"
+#line 510 "objc-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 67:
-#line 511 "objc-parse.y"
+#line 512 "objc-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 68:
-#line 513 "objc-parse.y"
+#line 514 "objc-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 69:
-#line 515 "objc-parse.y"
+#line 516 "objc-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 70:
-#line 517 "objc-parse.y"
+#line 518 "objc-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 71:
-#line 519 "objc-parse.y"
+#line 520 "objc-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 72:
-#line 521 "objc-parse.y"
+#line 522 "objc-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 73:
-#line 523 "objc-parse.y"
+#line 524 "objc-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 74:
-#line 525 "objc-parse.y"
+#line 526 "objc-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 75:
-#line 527 "objc-parse.y"
+#line 528 "objc-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 76:
-#line 529 "objc-parse.y"
+#line 530 "objc-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 77:
-#line 531 "objc-parse.y"
+#line 532 "objc-parse.y"
 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 78:
-#line 533 "objc-parse.y"
+#line 534 "objc-parse.y"
 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
                  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
     break;}
 case 79:
-#line 536 "objc-parse.y"
+#line 537 "objc-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 80:
-#line 539 "objc-parse.y"
+#line 540 "objc-parse.y"
 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
                  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
     break;}
 case 81:
-#line 542 "objc-parse.y"
+#line 543 "objc-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 82:
-#line 545 "objc-parse.y"
+#line 546 "objc-parse.y"
 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
                  skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
     break;}
 case 83:
-#line 548 "objc-parse.y"
+#line 549 "objc-parse.y"
 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
                                      - (yyvsp[-4].ttype == boolean_false_node)); ;
     break;}
 case 84:
-#line 551 "objc-parse.y"
+#line 552 "objc-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 85:
-#line 554 "objc-parse.y"
+#line 555 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
                  /* Make sure first operand is calculated only once.  */
@@ -2528,23 +2552,23 @@ case 85:
                  skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
     break;}
 case 86:
-#line 561 "objc-parse.y"
+#line 562 "objc-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 87:
-#line 564 "objc-parse.y"
+#line 565 "objc-parse.y"
 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
                  C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
     break;}
 case 88:
-#line 567 "objc-parse.y"
+#line 568 "objc-parse.y"
 { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
                  /* This inhibits warnings in truthvalue_conversion.  */
                  C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
     break;}
 case 89:
-#line 574 "objc-parse.y"
+#line 575 "objc-parse.y"
 {
                  yyval.ttype = lastiddecl;
                  if (!yyval.ttype || yyval.ttype == error_mark_node)
@@ -2705,11 +2729,11 @@ case 89:
                ;
     break;}
 case 91:
-#line 734 "objc-parse.y"
+#line 735 "objc-parse.y"
 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
     break;}
 case 92:
-#line 736 "objc-parse.y"
+#line 737 "objc-parse.y"
 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
                  if (class == 'e' || class == '1'
                      || class == '2' || class == '<')
@@ -2717,11 +2741,11 @@ case 92:
                  yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 93:
-#line 742 "objc-parse.y"
+#line 743 "objc-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 94:
-#line 744 "objc-parse.y"
+#line 745 "objc-parse.y"
 { if (current_function_decl == 0)
                    {
                      error ("braced-group within expression allowed only inside a function");
@@ -2737,7 +2761,7 @@ case 94:
                  yyval.ttype = expand_start_stmt_expr (); ;
     break;}
 case 95:
-#line 758 "objc-parse.y"
+#line 759 "objc-parse.y"
 { tree rtl_exp;
                  if (pedantic)
                    pedwarn ("ANSI C forbids braced-groups within expressions");
@@ -2762,15 +2786,15 @@ case 95:
                ;
     break;}
 case 96:
-#line 781 "objc-parse.y"
+#line 782 "objc-parse.y"
 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 97:
-#line 783 "objc-parse.y"
+#line 784 "objc-parse.y"
 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 98:
-#line 785 "objc-parse.y"
+#line 786 "objc-parse.y"
 {
                   if (doing_objc_thang)
                     {
@@ -2784,7 +2808,7 @@ case 98:
                ;
     break;}
 case 99:
-#line 797 "objc-parse.y"
+#line 798 "objc-parse.y"
 {
                   tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
 
@@ -2800,80 +2824,80 @@ case 99:
                ;
     break;}
 case 100:
-#line 811 "objc-parse.y"
+#line 812 "objc-parse.y"
 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
 case 101:
-#line 813 "objc-parse.y"
+#line 814 "objc-parse.y"
 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
     break;}
 case 102:
-#line 815 "objc-parse.y"
+#line 816 "objc-parse.y"
 { yyval.ttype = build_message_expr (yyvsp[0].ttype); ;
     break;}
 case 103:
-#line 817 "objc-parse.y"
+#line 818 "objc-parse.y"
 { yyval.ttype = build_selector_expr (yyvsp[0].ttype); ;
     break;}
 case 104:
-#line 819 "objc-parse.y"
+#line 820 "objc-parse.y"
 { yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ;
     break;}
 case 105:
-#line 821 "objc-parse.y"
+#line 822 "objc-parse.y"
 { yyval.ttype = build_encode_expr (yyvsp[0].ttype); ;
     break;}
 case 106:
-#line 823 "objc-parse.y"
+#line 824 "objc-parse.y"
 { yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ;
     break;}
 case 108:
-#line 830 "objc-parse.y"
+#line 831 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 110:
-#line 838 "objc-parse.y"
+#line 839 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 113:
-#line 846 "objc-parse.y"
+#line 847 "objc-parse.y"
 { c_mark_varargs ();
                  if (pedantic)
                    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
     break;}
 case 114:
-#line 856 "objc-parse.y"
+#line 857 "objc-parse.y"
 { ;
     break;}
 case 119:
-#line 872 "objc-parse.y"
+#line 873 "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 120:
-#line 877 "objc-parse.y"
+#line 878 "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 882 "objc-parse.y"
+#line 883 "objc-parse.y"
 { shadow_tag_warned (yyvsp[-1].ttype, 1);
                  pedwarn ("empty declaration"); ;
     break;}
 case 122:
-#line 885 "objc-parse.y"
+#line 886 "objc-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 123:
-#line 894 "objc-parse.y"
+#line 895 "objc-parse.y"
 { ;
     break;}
 case 128:
-#line 909 "objc-parse.y"
+#line 910 "objc-parse.y"
 { yyval.itype = suspend_momentary ();
                  pending_xref_error ();
                  declspec_stack = tree_cons (prefix_attributes,
@@ -2883,131 +2907,131 @@ case 128:
                                     &current_declspecs, &prefix_attributes); ;
     break;}
 case 129:
-#line 920 "objc-parse.y"
+#line 921 "objc-parse.y"
 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
     break;}
 case 130:
-#line 925 "objc-parse.y"
+#line 926 "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 131:
-#line 930 "objc-parse.y"
+#line 931 "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 935 "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[-1].itype); ;
     break;}
 case 133:
-#line 940 "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[-1].itype); ;
     break;}
 case 134:
-#line 945 "objc-parse.y"
+#line 946 "objc-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
 case 135:
-#line 947 "objc-parse.y"
+#line 948 "objc-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
 case 136:
-#line 949 "objc-parse.y"
+#line 950 "objc-parse.y"
 { pedantic = yyvsp[-1].itype; ;
     break;}
 case 137:
-#line 959 "objc-parse.y"
+#line 960 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 138:
-#line 961 "objc-parse.y"
+#line 962 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 139:
-#line 965 "objc-parse.y"
+#line 966 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 140:
-#line 967 "objc-parse.y"
+#line 968 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 141:
-#line 969 "objc-parse.y"
+#line 970 "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 142:
-#line 974 "objc-parse.y"
+#line 975 "objc-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 143:
-#line 979 "objc-parse.y"
+#line 980 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 144:
-#line 981 "objc-parse.y"
+#line 982 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 145:
-#line 986 "objc-parse.y"
+#line 987 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 146:
-#line 988 "objc-parse.y"
+#line 989 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 147:
-#line 990 "objc-parse.y"
+#line 991 "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 148:
-#line 1003 "objc-parse.y"
+#line 1004 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 149:
-#line 1005 "objc-parse.y"
+#line 1006 "objc-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
     break;}
 case 150:
-#line 1007 "objc-parse.y"
+#line 1008 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 151:
-#line 1009 "objc-parse.y"
+#line 1010 "objc-parse.y"
 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 152:
-#line 1014 "objc-parse.y"
+#line 1015 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
 case 153:
-#line 1017 "objc-parse.y"
+#line 1018 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 154:
-#line 1019 "objc-parse.y"
+#line 1020 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
                  TREE_STATIC (yyval.ttype) = 1; ;
     break;}
 case 155:
-#line 1022 "objc-parse.y"
+#line 1023 "objc-parse.y"
 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
                    warning ("`%s' is not at beginning of declaration",
                             IDENTIFIER_POINTER (yyvsp[0].ttype));
@@ -3015,150 +3039,150 @@ case 155:
                  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
     break;}
 case 156:
-#line 1036 "objc-parse.y"
+#line 1037 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 157:
-#line 1038 "objc-parse.y"
+#line 1039 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
     break;}
 case 158:
-#line 1042 "objc-parse.y"
+#line 1043 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 159:
-#line 1044 "objc-parse.y"
+#line 1045 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
 case 162:
-#line 1054 "objc-parse.y"
+#line 1055 "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 163:
-#line 1058 "objc-parse.y"
+#line 1059 "objc-parse.y"
 { yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 164:
-#line 1060 "objc-parse.y"
+#line 1061 "objc-parse.y"
 { yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
     break;}
 case 165:
-#line 1065 "objc-parse.y"
+#line 1066 "objc-parse.y"
 { yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
     break;}
 case 166:
-#line 1067 "objc-parse.y"
+#line 1068 "objc-parse.y"
 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
     break;}
 case 167:
-#line 1069 "objc-parse.y"
+#line 1070 "objc-parse.y"
 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
     break;}
 case 175:
-#line 1091 "objc-parse.y"
+#line 1092 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 176:
-#line 1093 "objc-parse.y"
+#line 1094 "objc-parse.y"
 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
 case 177:
-#line 1100 "objc-parse.y"
+#line 1101 "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 178:
-#line 1105 "objc-parse.y"
+#line 1106 "objc-parse.y"
 { finish_init ();
                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
     break;}
 case 179:
-#line 1108 "objc-parse.y"
+#line 1109 "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 180:
-#line 1116 "objc-parse.y"
+#line 1117 "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 181:
-#line 1121 "objc-parse.y"
+#line 1122 "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 182:
-#line 1125 "objc-parse.y"
+#line 1126 "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 183:
-#line 1133 "objc-parse.y"
+#line 1134 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 184:
-#line 1135 "objc-parse.y"
+#line 1136 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 185:
-#line 1140 "objc-parse.y"
+#line 1141 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 186:
-#line 1142 "objc-parse.y"
+#line 1143 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 187:
-#line 1147 "objc-parse.y"
+#line 1148 "objc-parse.y"
 { yyval.ttype = yyvsp[-2].ttype; ;
     break;}
 case 188:
-#line 1152 "objc-parse.y"
+#line 1153 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 189:
-#line 1154 "objc-parse.y"
+#line 1155 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 190:
-#line 1159 "objc-parse.y"
+#line 1160 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 191:
-#line 1161 "objc-parse.y"
+#line 1162 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 192:
-#line 1163 "objc-parse.y"
+#line 1164 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
     break;}
 case 193:
-#line 1165 "objc-parse.y"
+#line 1166 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
     break;}
 case 194:
-#line 1167 "objc-parse.y"
+#line 1168 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 200:
-#line 1185 "objc-parse.y"
+#line 1186 "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 201:
-#line 1190 "objc-parse.y"
+#line 1191 "objc-parse.y"
 { yyval.ttype = pop_init_level (0);
                  if (yyval.ttype == error_mark_node
                      && ! (yychar == STRING || yychar == CONSTANT))
@@ -3167,36 +3191,36 @@ case 201:
                    pop_momentary_nofree (); ;
     break;}
 case 202:
-#line 1198 "objc-parse.y"
+#line 1199 "objc-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
 case 203:
-#line 1204 "objc-parse.y"
+#line 1205 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids empty initializer braces"); ;
     break;}
 case 207:
-#line 1218 "objc-parse.y"
+#line 1219 "objc-parse.y"
 { process_init_element (yyvsp[0].ttype); ;
     break;}
 case 208:
-#line 1220 "objc-parse.y"
+#line 1221 "objc-parse.y"
 { push_init_level (0); ;
     break;}
 case 209:
-#line 1222 "objc-parse.y"
+#line 1223 "objc-parse.y"
 { process_init_element (pop_init_level (0)); ;
     break;}
 case 211:
-#line 1228 "objc-parse.y"
+#line 1229 "objc-parse.y"
 { set_init_label (yyvsp[-1].ttype); ;
     break;}
 case 213:
-#line 1231 "objc-parse.y"
+#line 1232 "objc-parse.y"
 { set_init_label (yyvsp[-1].ttype); ;
     break;}
 case 215:
-#line 1237 "objc-parse.y"
+#line 1238 "objc-parse.y"
 { push_c_function_context ();
                  if (! start_function (current_declspecs, yyvsp[0].ttype,
                                        prefix_attributes, NULL_TREE, 1))
@@ -3207,16 +3231,16 @@ case 215:
                  reinit_parse_for_function (); ;
     break;}
 case 216:
-#line 1246 "objc-parse.y"
+#line 1247 "objc-parse.y"
 { store_parm_decls (); ;
     break;}
 case 217:
-#line 1254 "objc-parse.y"
+#line 1255 "objc-parse.y"
 { finish_function (1);
                  pop_c_function_context (); ;
     break;}
 case 218:
-#line 1260 "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))
@@ -3227,172 +3251,196 @@ case 218:
                  reinit_parse_for_function (); ;
     break;}
 case 219:
-#line 1269 "objc-parse.y"
+#line 1270 "objc-parse.y"
 { store_parm_decls (); ;
     break;}
 case 220:
-#line 1277 "objc-parse.y"
+#line 1278 "objc-parse.y"
 { finish_function (1);
                  pop_c_function_context (); ;
     break;}
 case 223:
-#line 1293 "objc-parse.y"
+#line 1294 "objc-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 224:
-#line 1295 "objc-parse.y"
+#line 1296 "objc-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 225:
-#line 1300 "objc-parse.y"
+#line 1301 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 226:
-#line 1302 "objc-parse.y"
+#line 1303 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 227:
-#line 1304 "objc-parse.y"
+#line 1305 "objc-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 228:
-#line 1311 "objc-parse.y"
+#line 1312 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 231:
-#line 1323 "objc-parse.y"
+#line 1324 "objc-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 232:
-#line 1328 "objc-parse.y"
+#line 1329 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 233:
-#line 1330 "objc-parse.y"
+#line 1331 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 234:
-#line 1332 "objc-parse.y"
+#line 1333 "objc-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 235:
-#line 1339 "objc-parse.y"
+#line 1340 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 237:
-#line 1348 "objc-parse.y"
+#line 1349 "objc-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
 case 238:
-#line 1353 "objc-parse.y"
+#line 1354 "objc-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
 case 239:
-#line 1355 "objc-parse.y"
+#line 1356 "objc-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
 case 240:
-#line 1357 "objc-parse.y"
+#line 1358 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 241:
-#line 1359 "objc-parse.y"
+#line 1360 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
 case 242:
-#line 1366 "objc-parse.y"
+#line 1367 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 244:
-#line 1372 "objc-parse.y"
-{ yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
-                 /* Start scope of tag before parsing components.  */
-               ;
+#line 1373 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 245:
-#line 1376 "objc-parse.y"
-{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+#line 1375 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 246:
-#line 1378 "objc-parse.y"
-{ yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
-                                     yyvsp[-2].ttype, yyvsp[0].ttype);
-               ;
+#line 1380 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 247:
 #line 1382 "objc-parse.y"
-{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 248:
-#line 1384 "objc-parse.y"
-{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
+#line 1387 "objc-parse.y"
+{ yyval.ttype = NULL_TREE; ;
     break;}
 case 249:
-#line 1386 "objc-parse.y"
-{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
+#line 1389 "objc-parse.y"
+{ yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 250:
-#line 1388 "objc-parse.y"
-{ yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
-                                     yyvsp[-2].ttype, yyvsp[0].ttype);
+#line 1394 "objc-parse.y"
+{ yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
+                 /* Start scope of tag before parsing components.  */
                ;
     break;}
 case 251:
-#line 1392 "objc-parse.y"
-{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
+#line 1398 "objc-parse.y"
+{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
     break;}
 case 252:
-#line 1394 "objc-parse.y"
+#line 1400 "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 253:
+#line 1404 "objc-parse.y"
+{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
+    break;}
+case 254:
+#line 1406 "objc-parse.y"
+{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
+    break;}
+case 255:
+#line 1408 "objc-parse.y"
+{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
+    break;}
+case 256:
+#line 1410 "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 257:
+#line 1414 "objc-parse.y"
+{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
+    break;}
+case 258:
+#line 1416 "objc-parse.y"
 { yyvsp[0].itype = suspend_momentary ();
                  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
     break;}
-case 253:
-#line 1397 "objc-parse.y"
-{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
+case 259:
+#line 1419 "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 254:
-#line 1400 "objc-parse.y"
+case 260:
+#line 1422 "objc-parse.y"
 { yyvsp[0].itype = suspend_momentary ();
                  yyval.ttype = start_enum (NULL_TREE); ;
     break;}
-case 255:
-#line 1403 "objc-parse.y"
-{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
+case 261:
+#line 1425 "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 256:
-#line 1406 "objc-parse.y"
+case 262:
+#line 1428 "objc-parse.y"
 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
     break;}
-case 260:
-#line 1417 "objc-parse.y"
+case 266:
+#line 1439 "objc-parse.y"
 { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
     break;}
-case 261:
-#line 1422 "objc-parse.y"
+case 267:
+#line 1444 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 262:
-#line 1424 "objc-parse.y"
+case 268:
+#line 1446 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                  pedwarn ("no semicolon at end of struct or union"); ;
     break;}
-case 263:
-#line 1429 "objc-parse.y"
+case 269:
+#line 1451 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 264:
-#line 1431 "objc-parse.y"
+case 270:
+#line 1453 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
     break;}
-case 265:
-#line 1433 "objc-parse.y"
+case 271:
+#line 1455 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("extra semicolon in struct or union specified"); ;
     break;}
-case 266:
-#line 1437 "objc-parse.y"
+case 272:
+#line 1459 "objc-parse.y"
 {
                  tree interface = lookup_interface (yyvsp[-1].ttype);
 
@@ -3406,164 +3454,164 @@ case 266:
                    }
                ;
     break;}
-case 267:
-#line 1462 "objc-parse.y"
+case 273:
+#line 1484 "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 268:
-#line 1468 "objc-parse.y"
+case 274:
+#line 1490 "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 269:
-#line 1473 "objc-parse.y"
+case 275:
+#line 1495 "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 270:
-#line 1479 "objc-parse.y"
+case 276:
+#line 1501 "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 271:
-#line 1484 "objc-parse.y"
+case 277:
+#line 1506 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 272:
-#line 1486 "objc-parse.y"
+case 278:
+#line 1508 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  pedantic = yyvsp[-1].itype; ;
     break;}
-case 274:
-#line 1493 "objc-parse.y"
+case 280:
+#line 1515 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 275:
-#line 1498 "objc-parse.y"
+case 281:
+#line 1520 "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 276:
-#line 1502 "objc-parse.y"
+case 282:
+#line 1524 "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 277:
-#line 1505 "objc-parse.y"
+case 283:
+#line 1527 "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 279:
-#line 1517 "objc-parse.y"
+case 285:
+#line 1539 "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 280:
-#line 1522 "objc-parse.y"
+case 286:
+#line 1544 "objc-parse.y"
 { yyval.ttype = error_mark_node; ;
     break;}
-case 281:
-#line 1528 "objc-parse.y"
+case 287:
+#line 1550 "objc-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 282:
-#line 1530 "objc-parse.y"
+case 288:
+#line 1552 "objc-parse.y"
 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 283:
-#line 1535 "objc-parse.y"
+case 289:
+#line 1557 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 284:
-#line 1537 "objc-parse.y"
+case 290:
+#line 1559 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 285:
-#line 1542 "objc-parse.y"
+case 291:
+#line 1564 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 287:
-#line 1548 "objc-parse.y"
+case 293:
+#line 1570 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 288:
-#line 1550 "objc-parse.y"
+case 294:
+#line 1572 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 289:
-#line 1555 "objc-parse.y"
+case 295:
+#line 1577 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 290:
-#line 1557 "objc-parse.y"
+case 296:
+#line 1579 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
     break;}
-case 291:
-#line 1562 "objc-parse.y"
+case 297:
+#line 1584 "objc-parse.y"
 { yyval.ttype = yyvsp[-1].ttype; ;
     break;}
-case 292:
-#line 1565 "objc-parse.y"
+case 298:
+#line 1587 "objc-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
     break;}
-case 293:
-#line 1567 "objc-parse.y"
+case 299:
+#line 1589 "objc-parse.y"
 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 294:
-#line 1569 "objc-parse.y"
+case 300:
+#line 1591 "objc-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 295:
-#line 1571 "objc-parse.y"
+case 301:
+#line 1593 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 296:
-#line 1573 "objc-parse.y"
+case 302:
+#line 1595 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
     break;}
-case 297:
-#line 1575 "objc-parse.y"
+case 303:
+#line 1597 "objc-parse.y"
 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
     break;}
-case 298:
-#line 1577 "objc-parse.y"
+case 304:
+#line 1599 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
-case 299:
-#line 1579 "objc-parse.y"
+case 305:
+#line 1601 "objc-parse.y"
 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
     break;}
-case 300:
-#line 1590 "objc-parse.y"
+case 306:
+#line 1612 "objc-parse.y"
 {
                  if (pedantic && yyvsp[0].ends_in_label)
                    pedwarn ("ANSI C forbids label at end of compound statement");
                ;
     break;}
-case 302:
-#line 1599 "objc-parse.y"
+case 308:
+#line 1621 "objc-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
-case 303:
-#line 1601 "objc-parse.y"
+case 309:
+#line 1623 "objc-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 307:
-#line 1613 "objc-parse.y"
+case 313:
+#line 1635 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  pushlevel (0);
                  clear_last_expr ();
@@ -3573,13 +3621,13 @@ case 307:
                    add_objc_decls ();
                ;
     break;}
-case 309:
-#line 1628 "objc-parse.y"
+case 315:
+#line 1650 "objc-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids label declarations"); ;
     break;}
-case 312:
-#line 1639 "objc-parse.y"
+case 318:
+#line 1661 "objc-parse.y"
 { tree link;
                  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
                    {
@@ -3589,20 +3637,20 @@ case 312:
                    }
                ;
     break;}
-case 313:
-#line 1653 "objc-parse.y"
+case 319:
+#line 1675 "objc-parse.y"
 {;
     break;}
-case 315:
-#line 1657 "objc-parse.y"
+case 321:
+#line 1679 "objc-parse.y"
 { compstmt_count++; ;
     break;}
-case 316:
-#line 1660 "objc-parse.y"
+case 322:
+#line 1682 "objc-parse.y"
 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
     break;}
-case 317:
-#line 1662 "objc-parse.y"
+case 323:
+#line 1684 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  expand_end_bindings (getdecls (), 1, 0);
                  yyval.ttype = poplevel (1, 1, 0);
@@ -3611,8 +3659,8 @@ case 317:
                  else
                    pop_momentary (); ;
     break;}
-case 318:
-#line 1670 "objc-parse.y"
+case 324:
+#line 1692 "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);
@@ -3621,8 +3669,8 @@ case 318:
                  else
                    pop_momentary (); ;
     break;}
-case 319:
-#line 1678 "objc-parse.y"
+case 325:
+#line 1700 "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);
@@ -3631,8 +3679,8 @@ case 319:
                  else
                    pop_momentary (); ;
     break;}
-case 322:
-#line 1698 "objc-parse.y"
+case 328:
+#line 1720 "objc-parse.y"
 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, 
                                       compstmt_count);
@@ -3641,8 +3689,8 @@ case 322:
                  if_stmt_line = yyvsp[-4].lineno;
                  position_after_white_space (); ;
     break;}
-case 323:
-#line 1712 "objc-parse.y"
+case 329:
+#line 1734 "objc-parse.y"
 { stmt_count++;
                  compstmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
@@ -3651,44 +3699,44 @@ case 323:
                  expand_start_loop_continue_elsewhere (1);
                  position_after_white_space (); ;
     break;}
-case 324:
-#line 1720 "objc-parse.y"
+case 330:
+#line 1742 "objc-parse.y"
 { expand_loop_continue_here (); ;
     break;}
-case 325:
-#line 1724 "objc-parse.y"
+case 331:
+#line 1746 "objc-parse.y"
 { yyval.filename = input_filename; ;
     break;}
-case 326:
-#line 1728 "objc-parse.y"
+case 332:
+#line 1750 "objc-parse.y"
 { yyval.lineno = lineno; ;
     break;}
-case 327:
-#line 1733 "objc-parse.y"
+case 333:
+#line 1755 "objc-parse.y"
 { ;
     break;}
-case 328:
-#line 1738 "objc-parse.y"
+case 334:
+#line 1760 "objc-parse.y"
 { ;
     break;}
-case 329:
-#line 1743 "objc-parse.y"
+case 335:
+#line 1765 "objc-parse.y"
 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
     break;}
-case 330:
-#line 1748 "objc-parse.y"
+case 336:
+#line 1770 "objc-parse.y"
 { yyval.ends_in_label = 0; ;
     break;}
-case 331:
-#line 1750 "objc-parse.y"
+case 337:
+#line 1772 "objc-parse.y"
 { yyval.ends_in_label = 1; ;
     break;}
-case 332:
-#line 1756 "objc-parse.y"
+case 338:
+#line 1778 "objc-parse.y"
 { stmt_count++; ;
     break;}
-case 334:
-#line 1759 "objc-parse.y"
+case 340:
+#line 1781 "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
@@ -3706,20 +3754,20 @@ case 334:
                  iterator_expand (yyvsp[-1].ttype);
                  clear_momentary (); ;
     break;}
-case 335:
-#line 1776 "objc-parse.y"
+case 341:
+#line 1798 "objc-parse.y"
 { c_expand_start_else ();
                  yyvsp[-1].itype = stmt_count;
                  position_after_white_space (); ;
     break;}
-case 336:
-#line 1780 "objc-parse.y"
+case 342:
+#line 1802 "objc-parse.y"
 { c_expand_end_cond ();
                  if (extra_warnings && stmt_count == yyvsp[-3].itype)
                    warning ("empty body in an else-statement"); ;
     break;}
-case 337:
-#line 1784 "objc-parse.y"
+case 343:
+#line 1806 "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
@@ -3729,12 +3777,12 @@ case 337:
                    warning_with_file_and_line (if_stmt_file, if_stmt_line,
                                                "empty body in an if-statement"); ;
     break;}
-case 338:
-#line 1796 "objc-parse.y"
+case 344:
+#line 1818 "objc-parse.y"
 { c_expand_end_cond (); ;
     break;}
-case 339:
-#line 1798 "objc-parse.y"
+case 345:
+#line 1820 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
                  /* The emit_nop used to come before emit_line_note,
@@ -3745,8 +3793,8 @@ case 339:
                     We will see.  --rms, July 15, 1991.  */
                  emit_nop (); ;
     break;}
-case 340:
-#line 1808 "objc-parse.y"
+case 346:
+#line 1830 "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.  */
@@ -3756,25 +3804,25 @@ case 340:
                                             truthvalue_conversion (yyvsp[-1].ttype));
                  position_after_white_space (); ;
     break;}
-case 341:
-#line 1817 "objc-parse.y"
+case 347:
+#line 1839 "objc-parse.y"
 { expand_end_loop (); ;
     break;}
-case 342:
-#line 1820 "objc-parse.y"
+case 348:
+#line 1842 "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 343:
-#line 1827 "objc-parse.y"
+case 349:
+#line 1849 "objc-parse.y"
 { expand_end_loop ();
                  clear_momentary (); ;
     break;}
-case 344:
-#line 1831 "objc-parse.y"
+case 350:
+#line 1853 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  /* See comment in `while' alternative, above.  */
@@ -3786,13 +3834,13 @@ case 344:
                     fn without calling expand_end_loop.  */
                ;
     break;}
-case 345:
-#line 1843 "objc-parse.y"
+case 351:
+#line 1865 "objc-parse.y"
 { yyvsp[0].lineno = lineno;
                  yyval.filename = input_filename; ;
     break;}
-case 346:
-#line 1846 "objc-parse.y"
+case 352:
+#line 1868 "objc-parse.y"
 { 
                  /* Start the loop.  Doing this after parsing
                     all the expressions ensures we will end the loop.  */
@@ -3809,8 +3857,8 @@ case 346:
                  yyvsp[-2].filename = input_filename;
                  position_after_white_space (); ;
     break;}
-case 347:
-#line 1862 "objc-parse.y"
+case 353:
+#line 1884 "objc-parse.y"
 { /* Emit the increment expression, with a line number.  */
                  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
                  expand_loop_continue_here ();
@@ -3822,8 +3870,8 @@ case 347:
                    pop_momentary ();
                  expand_end_loop (); ;
     break;}
-case 348:
-#line 1873 "objc-parse.y"
+case 354:
+#line 1895 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                  c_expand_start_case (yyvsp[-1].ttype);
@@ -3832,42 +3880,42 @@ case 348:
                  push_momentary ();
                  position_after_white_space (); ;
     break;}
-case 349:
-#line 1881 "objc-parse.y"
+case 355:
+#line 1903 "objc-parse.y"
 { expand_end_case (yyvsp[-3].ttype);
                  if (yychar == CONSTANT || yychar == STRING)
                    pop_momentary_nofree ();
                  else
                    pop_momentary (); ;
     break;}
-case 350:
-#line 1887 "objc-parse.y"
+case 356:
+#line 1909 "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 351:
-#line 1892 "objc-parse.y"
+case 357:
+#line 1914 "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 352:
-#line 1897 "objc-parse.y"
+case 358:
+#line 1919 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                  c_expand_return (NULL_TREE); ;
     break;}
-case 353:
-#line 1901 "objc-parse.y"
+case 359:
+#line 1923 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
                  c_expand_return (yyvsp[-1].ttype); ;
     break;}
-case 354:
-#line 1905 "objc-parse.y"
+case 360:
+#line 1927 "objc-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
                  STRIP_NOPS (yyvsp[-2].ttype);
@@ -3878,32 +3926,32 @@ case 354:
                  else
                    error ("argument of `asm' is not a constant string"); ;
     break;}
-case 355:
-#line 1916 "objc-parse.y"
+case 361:
+#line 1938 "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 356:
-#line 1923 "objc-parse.y"
+case 362:
+#line 1945 "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 357:
-#line 1931 "objc-parse.y"
+case 363:
+#line 1953 "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 358:
-#line 1937 "objc-parse.y"
+case 364:
+#line 1959 "objc-parse.y"
 { tree decl;
                  stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -3915,16 +3963,16 @@ case 358:
                    }
                ;
     break;}
-case 359:
-#line 1948 "objc-parse.y"
+case 365:
+#line 1970 "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 362:
-#line 1963 "objc-parse.y"
+case 368:
+#line 1985 "objc-parse.y"
 {
            /* The value returned by this action is  */
            /*      1 if everything is OK */ 
@@ -3946,15 +3994,15 @@ case 362:
              }
          ;
     break;}
-case 363:
-#line 1984 "objc-parse.y"
+case 369:
+#line 2006 "objc-parse.y"
 {
            if (yyvsp[-1].itype)
              iterator_for_loop_end (yyvsp[-3].ttype);
          ;
     break;}
-case 364:
-#line 2019 "objc-parse.y"
+case 370:
+#line 2041 "objc-parse.y"
 { register tree value = check_case_value (yyvsp[-1].ttype);
                  register tree label
                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
@@ -3986,8 +4034,8 @@ case 364:
                    }
                  position_after_white_space (); ;
     break;}
-case 365:
-#line 2050 "objc-parse.y"
+case 371:
+#line 2072 "objc-parse.y"
 { register tree value1 = check_case_value (yyvsp[-3].ttype);
                  register tree value2 = check_case_value (yyvsp[-1].ttype);
                  register tree label
@@ -4019,8 +4067,8 @@ case 365:
                    }
                  position_after_white_space (); ;
     break;}
-case 366:
-#line 2081 "objc-parse.y"
+case 372:
+#line 2103 "objc-parse.y"
 {
                  tree duplicate;
                  register tree label
@@ -4036,8 +4084,8 @@ case 366:
                    }
                  position_after_white_space (); ;
     break;}
-case 367:
-#line 2096 "objc-parse.y"
+case 373:
+#line 2118 "objc-parse.y"
 { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
                  stmt_count++;
                  emit_nop ();
@@ -4045,53 +4093,53 @@ case 367:
                    expand_label (label);
                  position_after_white_space (); ;
     break;}
-case 368:
-#line 2108 "objc-parse.y"
+case 374:
+#line 2130 "objc-parse.y"
 { emit_line_note (input_filename, lineno);
                  yyval.ttype = NULL_TREE; ;
     break;}
-case 369:
-#line 2111 "objc-parse.y"
+case 375:
+#line 2133 "objc-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
-case 370:
-#line 2116 "objc-parse.y"
+case 376:
+#line 2138 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 372:
-#line 2123 "objc-parse.y"
+case 378:
+#line 2145 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 375:
-#line 2130 "objc-parse.y"
+case 381:
+#line 2152 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
-case 376:
-#line 2135 "objc-parse.y"
+case 382:
+#line 2157 "objc-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
-case 377:
-#line 2140 "objc-parse.y"
+case 383:
+#line 2162 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
-case 378:
-#line 2142 "objc-parse.y"
+case 384:
+#line 2164 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
     break;}
-case 379:
-#line 2148 "objc-parse.y"
+case 385:
+#line 2170 "objc-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (0); ;
     break;}
-case 380:
-#line 2152 "objc-parse.y"
+case 386:
+#line 2174 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 382:
-#line 2160 "objc-parse.y"
+case 388:
+#line 2182 "objc-parse.y"
 { tree parm;
                  if (pedantic)
                    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -4100,20 +4148,20 @@ case 382:
                    TREE_ASM_WRITTEN (parm) = 1;
                  clear_parm_order (); ;
     break;}
-case 383:
-#line 2168 "objc-parse.y"
+case 389:
+#line 2190 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
-case 384:
-#line 2170 "objc-parse.y"
+case 390:
+#line 2192 "objc-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
-case 385:
-#line 2176 "objc-parse.y"
+case 391:
+#line 2198 "objc-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
-case 386:
-#line 2178 "objc-parse.y"
+case 392:
+#line 2200 "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.
@@ -4124,24 +4172,24 @@ case 386:
                  error ("ANSI C requires a named argument before `...'");
                ;
     break;}
-case 387:
-#line 2188 "objc-parse.y"
+case 393:
+#line 2210 "objc-parse.y"
 { yyval.ttype = get_parm_info (1); ;
     break;}
-case 388:
-#line 2190 "objc-parse.y"
+case 394:
+#line 2212 "objc-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
-case 389:
-#line 2195 "objc-parse.y"
+case 395:
+#line 2217 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 390:
-#line 2197 "objc-parse.y"
+case 396:
+#line 2219 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 391:
-#line 2204 "objc-parse.y"
+case 397:
+#line 2226 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4151,8 +4199,8 @@ case 391:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 392:
-#line 2213 "objc-parse.y"
+case 398:
+#line 2235 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4162,8 +4210,8 @@ case 392:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 393:
-#line 2222 "objc-parse.y"
+case 399:
+#line 2244 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4173,8 +4221,8 @@ case 393:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype); ;
     break;}
-case 394:
-#line 2231 "objc-parse.y"
+case 400:
+#line 2253 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4184,8 +4232,8 @@ case 394:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 395:
-#line 2241 "objc-parse.y"
+case 401:
+#line 2263 "objc-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -4195,49 +4243,49 @@ case 395:
                  declspec_stack = TREE_CHAIN (declspec_stack);
                  resume_momentary (yyvsp[-2].itype);  ;
     break;}
-case 396:
-#line 2255 "objc-parse.y"
+case 402:
+#line 2277 "objc-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (1); ;
     break;}
-case 397:
-#line 2259 "objc-parse.y"
+case 403:
+#line 2281 "objc-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
-case 399:
-#line 2267 "objc-parse.y"
+case 405:
+#line 2289 "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 400:
-#line 2277 "objc-parse.y"
+case 406:
+#line 2299 "objc-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 401:
-#line 2279 "objc-parse.y"
+case 407:
+#line 2301 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
-case 402:
-#line 2285 "objc-parse.y"
+case 408:
+#line 2307 "objc-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 403:
-#line 2287 "objc-parse.y"
+case 409:
+#line 2309 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
-case 404:
-#line 2292 "objc-parse.y"
+case 410:
+#line 2314 "objc-parse.y"
 { yyval.itype = pedantic;
                  pedantic = 0; ;
     break;}
-case 410:
-#line 2305 "objc-parse.y"
+case 416:
+#line 2327 "objc-parse.y"
 {
                  if (objc_implementation_context)
                     {
@@ -4249,115 +4297,115 @@ case 410:
                    warning ("`@end' must appear in an implementation context");
                ;
     break;}
-case 411:
-#line 2320 "objc-parse.y"
+case 417:
+#line 2342 "objc-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
-case 412:
-#line 2322 "objc-parse.y"
+case 418:
+#line 2344 "objc-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
-case 413:
-#line 2327 "objc-parse.y"
+case 419:
+#line 2349 "objc-parse.y"
 {
                  objc_declare_class (yyvsp[-1].ttype);
                ;
     break;}
-case 414:
-#line 2333 "objc-parse.y"
+case 420:
+#line 2355 "objc-parse.y"
 {
                  objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
                ;
     break;}
-case 415:
-#line 2339 "objc-parse.y"
+case 421:
+#line 2361 "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 416:
-#line 2345 "objc-parse.y"
+case 422:
+#line 2367 "objc-parse.y"
 {
                   continue_class (objc_interface_context);
                ;
     break;}
-case 417:
-#line 2350 "objc-parse.y"
+case 423:
+#line 2372 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 418:
-#line 2356 "objc-parse.y"
+case 424:
+#line 2378 "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 419:
-#line 2363 "objc-parse.y"
+case 425:
+#line 2385 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 420:
-#line 2369 "objc-parse.y"
+case 426:
+#line 2391 "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 421:
-#line 2375 "objc-parse.y"
+case 427:
+#line 2397 "objc-parse.y"
 {
                   continue_class (objc_interface_context);
                ;
     break;}
-case 422:
-#line 2380 "objc-parse.y"
+case 428:
+#line 2402 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 423:
-#line 2386 "objc-parse.y"
+case 429:
+#line 2408 "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 424:
-#line 2393 "objc-parse.y"
+case 430:
+#line 2415 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 425:
-#line 2399 "objc-parse.y"
+case 431:
+#line 2421 "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 426:
-#line 2405 "objc-parse.y"
+case 432:
+#line 2427 "objc-parse.y"
 {
                   objc_ivar_chain
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 427:
-#line 2411 "objc-parse.y"
+case 433:
+#line 2433 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
@@ -4365,23 +4413,23 @@ case 427:
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 428:
-#line 2419 "objc-parse.y"
+case 434:
+#line 2441 "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 429:
-#line 2425 "objc-parse.y"
+case 435:
+#line 2447 "objc-parse.y"
 {
                   objc_ivar_chain
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 430:
-#line 2431 "objc-parse.y"
+case 436:
+#line 2453 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
@@ -4389,23 +4437,23 @@ case 430:
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 431:
-#line 2439 "objc-parse.y"
+case 437:
+#line 2461 "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 432:
-#line 2446 "objc-parse.y"
+case 438:
+#line 2468 "objc-parse.y"
 {
                  finish_class (objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 433:
-#line 2452 "objc-parse.y"
+case 439:
+#line 2474 "objc-parse.y"
 {
                  objc_implementation_context
                    = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
@@ -4413,30 +4461,30 @@ case 433:
                    = continue_class (objc_implementation_context);
                ;
     break;}
-case 434:
-#line 2462 "objc-parse.y"
+case 440:
+#line 2484 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  objc_interface_context
                    = start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 435:
-#line 2468 "objc-parse.y"
+case 441:
+#line 2490 "objc-parse.y"
 {
                  forget_protocol_qualifiers();
                  finish_protocol(objc_interface_context);
                  objc_interface_context = NULL_TREE;
                ;
     break;}
-case 436:
-#line 2477 "objc-parse.y"
+case 442:
+#line 2499 "objc-parse.y"
 {
                  yyval.ttype = NULL_TREE;
                ;
     break;}
-case 438:
-#line 2485 "objc-parse.y"
+case 444:
+#line 2507 "objc-parse.y"
 {
                  if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR)
                    yyval.ttype = yyvsp[-1].ttype;
@@ -4444,57 +4492,57 @@ case 438:
                    YYERROR1;
                ;
     break;}
-case 441:
-#line 2499 "objc-parse.y"
+case 447:
+#line 2521 "objc-parse.y"
 { objc_public_flag = 2; ;
     break;}
-case 442:
-#line 2500 "objc-parse.y"
+case 448:
+#line 2522 "objc-parse.y"
 { objc_public_flag = 0; ;
     break;}
-case 443:
-#line 2501 "objc-parse.y"
+case 449:
+#line 2523 "objc-parse.y"
 { objc_public_flag = 1; ;
     break;}
-case 444:
-#line 2506 "objc-parse.y"
+case 450:
+#line 2528 "objc-parse.y"
 {
                   yyval.ttype = NULL_TREE;
                 ;
     break;}
-case 446:
-#line 2511 "objc-parse.y"
+case 452:
+#line 2533 "objc-parse.y"
 {
                   if (pedantic)
                    pedwarn ("extra semicolon in struct or union specified");
                 ;
     break;}
-case 447:
-#line 2529 "objc-parse.y"
+case 453:
+#line 2551 "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 448:
-#line 2535 "objc-parse.y"
+case 454:
+#line 2557 "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 449:
-#line 2541 "objc-parse.y"
+case 455:
+#line 2563 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 450:
-#line 2546 "objc-parse.y"
+case 456:
+#line 2568 "objc-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
-case 453:
-#line 2553 "objc-parse.y"
+case 459:
+#line 2575 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
@@ -4502,16 +4550,16 @@ case 453:
                                              NULL_TREE);
                 ;
     break;}
-case 454:
-#line 2560 "objc-parse.y"
+case 460:
+#line 2582 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
                                              yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype);
                 ;
     break;}
-case 455:
-#line 2566 "objc-parse.y"
+case 461:
+#line 2588 "objc-parse.y"
 {
                  yyval.ttype = add_instance_variable (objc_ivar_context,
                                              objc_public_flag,
@@ -4519,8 +4567,8 @@ case 455:
                                              current_declspecs, yyvsp[0].ttype);
                 ;
     break;}
-case 456:
-#line 2576 "objc-parse.y"
+case 462:
+#line 2598 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  if (objc_implementation_context)
@@ -4529,8 +4577,8 @@ case 456:
                    fatal ("method definition not in class context");
                ;
     break;}
-case 457:
-#line 2584 "objc-parse.y"
+case 463:
+#line 2606 "objc-parse.y"
 {
                  forget_protocol_qualifiers ();
                  add_class_method (objc_implementation_context, yyvsp[0].ttype);
@@ -4538,21 +4586,21 @@ case 457:
                  objc_method_context = yyvsp[0].ttype;
                ;
     break;}
-case 458:
-#line 2591 "objc-parse.y"
+case 464:
+#line 2613 "objc-parse.y"
 {
                  continue_method_def ();
                ;
     break;}
-case 459:
-#line 2595 "objc-parse.y"
+case 465:
+#line 2617 "objc-parse.y"
 {
                  finish_method_def ();
                  objc_method_context = NULL_TREE;
                ;
     break;}
-case 460:
-#line 2601 "objc-parse.y"
+case 466:
+#line 2623 "objc-parse.y"
 {
                  remember_protocol_qualifiers ();
                  if (objc_implementation_context)
@@ -4561,8 +4609,8 @@ case 460:
                    fatal ("method definition not in class context");
                ;
     break;}
-case 461:
-#line 2609 "objc-parse.y"
+case 467:
+#line 2631 "objc-parse.y"
 {
                  forget_protocol_qualifiers ();
                  add_instance_method (objc_implementation_context, yyvsp[0].ttype);
@@ -4570,268 +4618,268 @@ case 461:
                  objc_method_context = yyvsp[0].ttype;
                ;
     break;}
-case 462:
-#line 2616 "objc-parse.y"
+case 468:
+#line 2638 "objc-parse.y"
 {
                  continue_method_def ();
                ;
     break;}
-case 463:
-#line 2620 "objc-parse.y"
+case 469:
+#line 2642 "objc-parse.y"
 {
                  finish_method_def ();
                  objc_method_context = NULL_TREE;
                ;
     break;}
-case 465:
-#line 2632 "objc-parse.y"
+case 471:
+#line 2654 "objc-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
-case 470:
-#line 2639 "objc-parse.y"
+case 476:
+#line 2661 "objc-parse.y"
 {yyval.ttype = NULL_TREE; ;
     break;}
-case 474:
-#line 2649 "objc-parse.y"
+case 480:
+#line 2671 "objc-parse.y"
 {
                  /* Remember protocol qualifiers in prototypes.  */
                  remember_protocol_qualifiers ();
                  objc_inherit_code = CLASS_METHOD_DECL;
                ;
     break;}
-case 475:
-#line 2655 "objc-parse.y"
+case 481:
+#line 2677 "objc-parse.y"
 {
                  /* Forget protocol qualifiers here.  */
                  forget_protocol_qualifiers ();
                  add_class_method (objc_interface_context, yyvsp[0].ttype);
                ;
     break;}
-case 477:
-#line 2663 "objc-parse.y"
+case 483:
+#line 2685 "objc-parse.y"
 {
                  /* Remember protocol qualifiers in prototypes.  */
                  remember_protocol_qualifiers ();
                  objc_inherit_code = INSTANCE_METHOD_DECL;
                ;
     break;}
-case 478:
-#line 2669 "objc-parse.y"
+case 484:
+#line 2691 "objc-parse.y"
 {
                  /* Forget protocol qualifiers here.  */
                  forget_protocol_qualifiers ();
                  add_instance_method (objc_interface_context, yyvsp[0].ttype);
                ;
     break;}
-case 480:
-#line 2679 "objc-parse.y"
+case 486:
+#line 2701 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
                ;
     break;}
-case 481:
-#line 2684 "objc-parse.y"
+case 487:
+#line 2706 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE);
                ;
     break;}
-case 482:
-#line 2689 "objc-parse.y"
+case 488:
+#line 2711 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 483:
-#line 2694 "objc-parse.y"
+case 489:
+#line 2716 "objc-parse.y"
 {
                  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 492:
-#line 2724 "objc-parse.y"
+case 498:
+#line 2746 "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 493:
-#line 2729 "objc-parse.y"
+case 499:
+#line 2751 "objc-parse.y"
 { shadow_tag (yyvsp[-1].ttype); ;
     break;}
-case 494:
-#line 2731 "objc-parse.y"
+case 500:
+#line 2753 "objc-parse.y"
 { pedwarn ("empty declaration"); ;
     break;}
-case 495:
-#line 2736 "objc-parse.y"
+case 501:
+#line 2758 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 496:
-#line 2738 "objc-parse.y"
+case 502:
+#line 2760 "objc-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
-case 497:
-#line 2746 "objc-parse.y"
+case 503:
+#line 2768 "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 498:
-#line 2751 "objc-parse.y"
+case 504:
+#line 2773 "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 499:
-#line 2756 "objc-parse.y"
+case 505:
+#line 2778 "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 500:
-#line 2764 "objc-parse.y"
+case 506:
+#line 2786 "objc-parse.y"
 {
                  yyval.ttype = NULL_TREE;
                ;
     break;}
-case 501:
-#line 2768 "objc-parse.y"
+case 507:
+#line 2790 "objc-parse.y"
 {
                  /* oh what a kludge! */
                  yyval.ttype = (tree)1;
                ;
     break;}
-case 502:
-#line 2773 "objc-parse.y"
+case 508:
+#line 2795 "objc-parse.y"
 {
                  pushlevel (0);
                ;
     break;}
-case 503:
-#line 2777 "objc-parse.y"
+case 509:
+#line 2799 "objc-parse.y"
 {
                  /* returns a tree list node generated by get_parm_info */
                  yyval.ttype = yyvsp[0].ttype;
                  poplevel (0, 0, 0);
                ;
     break;}
-case 506:
-#line 2792 "objc-parse.y"
+case 512:
+#line 2814 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 511:
-#line 2805 "objc-parse.y"
-{ yyval.ttype = get_identifier (token_buffer); ;
-    break;}
-case 512:
-#line 2806 "objc-parse.y"
-{ yyval.ttype = get_identifier (token_buffer); ;
-    break;}
-case 513:
-#line 2807 "objc-parse.y"
-{ yyval.ttype = get_identifier (token_buffer); ;
-    break;}
-case 514:
-#line 2808 "objc-parse.y"
-{ yyval.ttype = get_identifier (token_buffer); ;
-    break;}
-case 515:
-#line 2809 "objc-parse.y"
-{ yyval.ttype = get_identifier (token_buffer); ;
-    break;}
-case 516:
-#line 2810 "objc-parse.y"
-{ yyval.ttype = get_identifier (token_buffer); ;
-    break;}
 case 517:
-#line 2811 "objc-parse.y"
+#line 2827 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 518:
-#line 2812 "objc-parse.y"
+#line 2828 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 519:
-#line 2813 "objc-parse.y"
+#line 2829 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 520:
-#line 2814 "objc-parse.y"
+#line 2830 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 521:
-#line 2815 "objc-parse.y"
+#line 2831 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 522:
-#line 2816 "objc-parse.y"
+#line 2832 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 523:
-#line 2817 "objc-parse.y"
+#line 2833 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 524:
-#line 2818 "objc-parse.y"
+#line 2834 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 525:
-#line 2819 "objc-parse.y"
+#line 2835 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 526:
-#line 2820 "objc-parse.y"
+#line 2836 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 527:
-#line 2821 "objc-parse.y"
+#line 2837 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 528:
-#line 2822 "objc-parse.y"
+#line 2838 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 529:
-#line 2823 "objc-parse.y"
+#line 2839 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 530:
+#line 2840 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 531:
+#line 2841 "objc-parse.y"
 { yyval.ttype = get_identifier (token_buffer); ;
     break;}
 case 532:
-#line 2829 "objc-parse.y"
+#line 2842 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 533:
+#line 2843 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 534:
+#line 2844 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 535:
+#line 2845 "objc-parse.y"
+{ yyval.ttype = get_identifier (token_buffer); ;
+    break;}
+case 538:
+#line 2851 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 533:
-#line 2834 "objc-parse.y"
+case 539:
+#line 2856 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
-case 534:
-#line 2839 "objc-parse.y"
+case 540:
+#line 2861 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 535:
-#line 2844 "objc-parse.y"
+case 541:
+#line 2866 "objc-parse.y"
 {
                  yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
-case 539:
-#line 2857 "objc-parse.y"
+case 545:
+#line 2879 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 540:
-#line 2865 "objc-parse.y"
+case 546:
+#line 2887 "objc-parse.y"
 {
                  if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
                    /* just return the expr., remove a level of indirection */
@@ -4841,77 +4889,77 @@ case 540:
                    yyval.ttype = yyvsp[0].ttype;
                ;
     break;}
-case 541:
-#line 2877 "objc-parse.y"
+case 547:
+#line 2899 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 542:
-#line 2881 "objc-parse.y"
+case 548:
+#line 2903 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
                ;
     break;}
-case 544:
-#line 2889 "objc-parse.y"
+case 550:
+#line 2911 "objc-parse.y"
 {
                  yyval.ttype = get_class_reference (yyvsp[0].ttype);
                ;
     break;}
-case 545:
-#line 2896 "objc-parse.y"
+case 551:
+#line 2918 "objc-parse.y"
 { objc_receiver_context = 1; ;
     break;}
-case 546:
-#line 2898 "objc-parse.y"
+case 552:
+#line 2920 "objc-parse.y"
 { objc_receiver_context = 0; ;
     break;}
-case 547:
-#line 2900 "objc-parse.y"
+case 553:
+#line 2922 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype);
                ;
     break;}
-case 551:
-#line 2913 "objc-parse.y"
+case 557:
+#line 2935 "objc-parse.y"
 {
                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                ;
     break;}
-case 552:
-#line 2920 "objc-parse.y"
+case 558:
+#line 2942 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
                ;
     break;}
-case 553:
-#line 2924 "objc-parse.y"
+case 559:
+#line 2946 "objc-parse.y"
 {
                  yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
                ;
     break;}
-case 554:
-#line 2931 "objc-parse.y"
+case 560:
+#line 2953 "objc-parse.y"
 {
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
-case 555:
-#line 2938 "objc-parse.y"
+case 561:
+#line 2960 "objc-parse.y"
 {
                  yyval.ttype = yyvsp[-1].ttype;
                ;
     break;}
-case 556:
-#line 2947 "objc-parse.y"
+case 562:
+#line 2969 "objc-parse.y"
 {
                  yyval.ttype = groktypename (yyvsp[-1].ttype);
                ;
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/share/bison.simple"
+#line 498 "/usr/cygnus/progressive-98r1/share/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -5107,5 +5155,5 @@ yyerrhandle:
   yystate = yyn;
   goto yynewstate;
 }
-#line 2952 "objc-parse.y"
+#line 2974 "objc-parse.y"
 
index 8f595654ce74e011893e4cc556d4834881f92e05..bc98ff23489e065414aca119e5bcea8a204b240c 100644 (file)
@@ -163,6 +163,7 @@ char *language_string = "GNU Obj-C";
 %type <ttype> structsp component_decl_list component_decl_list2
 %type <ttype> component_decl components component_declarator
 %type <ttype> enumlist enumerator
+%type <ttype> struct_head union_head enum_head
 %type <ttype> typename absdcl absdcl1 type_quals
 %type <ttype> xexpr parms parm identifiers
 
@@ -1367,42 +1368,63 @@ notype_declarator:
        | IDENTIFIER
        ;
 
+struct_head:
+         STRUCT
+               { $$ = NULL_TREE; }
+       | STRUCT attributes
+               { $$ = $2; }
+       ;
+
+union_head:
+         UNION
+               { $$ = NULL_TREE; }
+       | UNION attributes
+               { $$ = $2; }
+       ;
+
+enum_head:
+         ENUM
+               { $$ = NULL_TREE; }
+       | ENUM attributes
+               { $$ = $2; }
+       ;
+
 structsp:
-         STRUCT identifier '{'
+         struct_head identifier '{'
                { $$ = start_struct (RECORD_TYPE, $2);
                  /* Start scope of tag before parsing components.  */
                }
          component_decl_list '}' maybe_attribute 
-               { $$ = finish_struct ($<ttype>4, $5, $7); }
-       | STRUCT '{' component_decl_list '}' maybe_attribute
+               { $$ = finish_struct ($<ttype>4, $5, chainon ($1, $7)); }
+       | struct_head '{' component_decl_list '}' maybe_attribute
                { $$ = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
-                                     $3, $5);
+                                     $3, chainon ($1, $5));
                }
-       | STRUCT identifier
+       | struct_head identifier
                { $$ = xref_tag (RECORD_TYPE, $2); }
-       | UNION identifier '{'
+       | union_head identifier '{'
                { $$ = start_struct (UNION_TYPE, $2); }
          component_decl_list '}' maybe_attribute
-               { $$ = finish_struct ($<ttype>4, $5, $7); }
-       | UNION '{' component_decl_list '}' maybe_attribute
+               { $$ = finish_struct ($<ttype>4, $5, chainon ($1, $7)); }
+       | union_head '{' component_decl_list '}' maybe_attribute
                { $$ = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
-                                     $3, $5);
+                                     $3, chainon ($1, $5));
                }
-       | UNION identifier
+       | union_head identifier
                { $$ = xref_tag (UNION_TYPE, $2); }
-       | ENUM identifier '{'
+       | enum_head identifier '{'
                { $<itype>3 = suspend_momentary ();
                  $$ = start_enum ($2); }
          enumlist maybecomma_warn '}' maybe_attribute
-               { $$ = finish_enum ($<ttype>4, nreverse ($5), $8);
+               { $$= finish_enum ($<ttype>4, nreverse ($5), chainon ($1, $8));
                  resume_momentary ($<itype>3); }
-       | ENUM '{'
+       | enum_head '{'
                { $<itype>2 = suspend_momentary ();
                  $$ = start_enum (NULL_TREE); }
          enumlist maybecomma_warn '}' maybe_attribute
-               { $$ = finish_enum ($<ttype>3, nreverse ($4), $7);
+               { $$= finish_enum ($<ttype>3, nreverse ($4), chainon ($1, $7));
                  resume_momentary ($<itype>2); }
-       | ENUM identifier
+       | enum_head identifier
                { $$ = xref_tag (ENUMERAL_TYPE, $2); }
        ;