Annotation of gcc/objc-parse.c, revision 1.1.1.1

1.1       root        1: 
                      2: /*  A Bison parser, made from objc-parse.y  */
                      3: 
                      4: #define YYBISON 1  /* Identify Bison output.  */
                      5: 
                      6: #define        IDENTIFIER      258
                      7: #define        TYPENAME        259
                      8: #define        SCSPEC  260
                      9: #define        TYPESPEC        261
                     10: #define        TYPE_QUAL       262
                     11: #define        CONSTANT        263
                     12: #define        STRING  264
                     13: #define        ELLIPSIS        265
                     14: #define        SIZEOF  266
                     15: #define        ENUM    267
                     16: #define        STRUCT  268
                     17: #define        UNION   269
                     18: #define        IF      270
                     19: #define        ELSE    271
                     20: #define        WHILE   272
                     21: #define        DO      273
                     22: #define        FOR     274
                     23: #define        SWITCH  275
                     24: #define        CASE    276
                     25: #define        DEFAULT 277
                     26: #define        BREAK   278
                     27: #define        CONTINUE        279
                     28: #define        RETURN  280
                     29: #define        GOTO    281
                     30: #define        ASM     282
                     31: #define        TYPEOF  283
                     32: #define        ALIGNOF 284
                     33: #define        ALIGN   285
                     34: #define        ATTRIBUTE       286
                     35: #define        EXTENSION       287
                     36: #define        LABEL   288
                     37: #define        ASSIGN  289
                     38: #define        OROR    290
                     39: #define        ANDAND  291
                     40: #define        EQCOMPARE       292
                     41: #define        ARITHCOMPARE    293
                     42: #define        LSHIFT  294
                     43: #define        RSHIFT  295
                     44: #define        UNARY   296
                     45: #define        PLUSPLUS        297
                     46: #define        MINUSMINUS      298
                     47: #define        HYPERUNARY      299
                     48: #define        POINTSAT        300
                     49: #define        INTERFACE       301
                     50: #define        IMPLEMENTATION  302
                     51: #define        END     303
                     52: #define        SELECTOR        304
                     53: #define        DEFS    305
                     54: #define        ENCODE  306
                     55: #define        CLASSNAME       307
                     56: #define        PUBLIC  308
                     57: 
                     58: #line 40 "objc-parse.y"
                     59: 
                     60: #include <stdio.h>
                     61: #include <errno.h>
                     62: #include <setjmp.h>
                     63: 
                     64: #include "config.h"
                     65: #include "tree.h"
                     66: #include "input.h"
                     67: #include "c-lex.h"
                     68: #include "c-tree.h"
                     69: #include "flags.h"
                     70: 
                     71: #include "objc-actions.h"
                     72: 
                     73: #ifndef errno
                     74: extern int errno;
                     75: #endif
                     76: 
                     77: void yyerror ();
                     78: 
                     79: /* Like YYERROR but do call yyerror.  */
                     80: #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
                     81: 
                     82: /* Cause the `yydebug' variable to be defined.  */
                     83: #define YYDEBUG 1
                     84: 
                     85: #line 69 "objc-parse.y"
                     86: typedef union {long itype; tree ttype; enum tree_code code;
                     87:        char *filename; int lineno; } YYSTYPE;
                     88: #line 181 "objc-parse.y"
                     89: 
                     90: /* Number of statements (loosely speaking) seen so far.  */
                     91: static int stmt_count;
                     92: 
                     93: /* Input file and line number of the end of the body of last simple_if;
                     94:    used by the stmt-rule immediately after simple_if returns.  */
                     95: static char *if_stmt_file;
                     96: static int if_stmt_line;
                     97: 
                     98: /* List of types and structure classes of the current declaration.  */
                     99: static tree current_declspecs;
                    100: 
                    101: /* Stack of saved values of current_declspecs.  */
                    102: static tree declspec_stack;
                    103: 
                    104: /* 1 if we explained undeclared var errors.  */
                    105: static int undeclared_variable_notice;
                    106: 
                    107: /* Objective-C specific information */
                    108: 
                    109: tree objc_interface_context;
                    110: tree objc_implementation_context;
                    111: tree objc_method_context;
                    112: tree objc_ivar_chain;
                    113: tree objc_ivar_context;
                    114: enum tree_code objc_inherit_code;
                    115: int objc_receiver_context;
                    116: int objc_public_flag;
                    117: 
                    118: /* Tell yyparse how to print a token's value, if yydebug is set.  */
                    119: 
                    120: #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
                    121: extern void yyprint ();
                    122: 
                    123: #ifndef YYLTYPE
                    124: typedef
                    125:   struct yyltype
                    126:     {
                    127:       int timestamp;
                    128:       int first_line;
                    129:       int first_column;
                    130:       int last_line;
                    131:       int last_column;
                    132:       char *text;
                    133:    }
                    134:   yyltype;
                    135: 
                    136: #define YYLTYPE yyltype
                    137: #endif
                    138: 
                    139: #include <stdio.h>
                    140: 
                    141: #ifndef __STDC__
                    142: #define const
                    143: #endif
                    144: 
                    145: 
                    146: 
                    147: #define        YYFINAL         797
                    148: #define        YYFLAG          -32768
                    149: #define        YYNTBASE        76
                    150: 
                    151: #define YYTRANSLATE(x) ((unsigned)(x) <= 308 ? yytranslate[x] : 257)
                    152: 
                    153: static const char yytranslate[] = {     0,
                    154:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    155:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    156:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    157:      2,     2,    72,     2,     2,     2,    51,    42,     2,    58,
                    158:     68,    49,    47,    73,    48,    57,    50,     2,     2,     2,
                    159:      2,     2,     2,     2,     2,     2,     2,    37,    69,     2,
                    160:     35,     2,    36,     2,     2,     2,     2,     2,     2,     2,
                    161:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    162:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    163:     59,     2,    75,    41,     2,     2,     2,     2,     2,     2,
                    164:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    165:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    166:      2,     2,    74,    40,    70,    71,     2,     2,     2,     2,
                    167:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    168:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    169:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    170:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    171:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    172:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    173:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    174:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    175:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    176:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    177:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    178:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    179:      2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
                    180:      6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
                    181:     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
                    182:     26,    27,    28,    29,    30,    31,    32,    33,    34,    38,
                    183:     39,    43,    44,    45,    46,    52,    53,    54,    55,    56,
                    184:     60,    61,    62,    63,    64,    65,    66,    67
                    185: };
                    186: 
                    187: static const short yyprhs[] = {     0,
                    188:      0,     1,     3,     4,     7,     8,    12,    14,    16,    18,
                    189:     24,    28,    33,    38,    41,    44,    47,    50,    52,    53,
                    190:     54,    62,    67,    68,    69,    77,    82,    83,    84,    91,
                    191:     95,    97,    99,   101,   103,   105,   107,   109,   111,   113,
                    192:    115,   117,   118,   120,   122,   126,   128,   131,   132,   136,
                    193:    139,   142,   145,   150,   153,   158,   160,   165,   173,   175,
                    194:    179,   183,   187,   191,   195,   199,   203,   207,   211,   215,
                    195:    219,   223,   227,   231,   237,   241,   245,   247,   249,   251,
                    196:    255,   259,   260,   265,   270,   275,   279,   283,   286,   289,
                    197:    291,   293,   295,   297,   300,   301,   303,   306,   310,   312,
                    198:    314,   317,   320,   321,   326,   331,   335,   339,   342,   345,
                    199:    348,   352,   353,   356,   359,   361,   363,   366,   369,   372,
                    200:    376,   377,   380,   382,   384,   386,   388,   393,   398,   400,
                    201:    402,   404,   406,   410,   412,   416,   417,   422,   423,   430,
                    202:    434,   435,   442,   446,   447,   454,   456,   460,   462,   467,
                    203:    476,   478,   481,   485,   490,   492,   494,   498,   503,   510,
                    204:    514,   520,   521,   525,   526,   530,   532,   534,   538,   542,
                    205:    547,   551,   555,   557,   561,   566,   570,   574,   576,   580,
                    206:    584,   588,   593,   597,   599,   600,   607,   612,   615,   616,
                    207:    623,   628,   631,   632,   640,   641,   648,   651,   652,   654,
                    208:    655,   657,   659,   662,   663,   667,   670,   675,   679,   681,
                    209:    685,   687,   689,   691,   695,   700,   707,   712,   714,   718,
                    210:    720,   724,   727,   730,   731,   733,   735,   738,   739,   742,
                    211:    746,   750,   753,   757,   762,   766,   769,   773,   776,   778,
                    212:    781,   784,   785,   787,   790,   791,   792,   794,   796,   799,
                    213:    803,   805,   808,   811,   818,   824,   830,   831,   838,   839,
                    214:    840,   844,   846,   849,   850,   855,   857,   858,   859,   867,
                    215:    868,   869,   879,   880,   881,   882,   895,   896,   903,   904,
                    216:    910,   911,   919,   920,   925,   928,   931,   934,   938,   945,
                    217:    954,   965,   978,   982,   987,   988,   993,   995,   996,   998,
                    218:    999,  1001,  1002,  1004,  1006,  1010,  1015,  1017,  1021,  1022,
                    219:   1025,  1026,  1029,  1032,  1035,  1038,  1041,  1044,  1045,  1047,
                    220:   1051,  1053,  1057,  1060,  1063,  1066,  1069,  1072,  1074,  1078,
                    221:   1080,  1082,  1084,  1085,  1086,  1096,  1097,  1103,  1104,  1105,
                    222:   1117,  1118,  1126,  1127,  1134,  1137,  1138,  1147,  1152,  1153,
                    223:   1162,  1168,  1169,  1174,  1176,  1177,  1181,  1184,  1188,  1192,
                    224:   1194,  1195,  1197,  1201,  1203,  1207,  1210,  1211,  1212,  1213,
                    225:   1221,  1222,  1223,  1224,  1232,  1233,  1234,  1237,  1239,  1241,
                    226:   1244,  1245,  1249,  1251,  1253,  1254,  1255,  1261,  1262,  1263,
                    227:   1269,  1274,  1276,  1282,  1285,  1286,  1289,  1290,  1292,  1294,
                    228:   1296,  1299,  1302,  1307,  1310,  1313,  1315,  1319,  1321,  1323,
                    229:   1325,  1326,  1329,  1330,  1334,  1336,  1338,  1341,  1343,  1345,
                    230:   1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,  1363,  1365,
                    231:   1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,  1383,  1385,
                    232:   1387,  1389,  1396,  1400,  1406,  1409,  1411,  1413,  1415,  1418,
                    233:   1420,  1424,  1427,  1429,  1431,  1432,  1433,  1440,  1442,  1444,
                    234:   1446,  1449,  1452,  1454,  1459
                    235: };
                    236: 
                    237: static const short yyrhs[] = {    -1,
                    238:     77,     0,     0,    78,    80,     0,     0,    77,    79,    80,
                    239:      0,    82,     0,    81,     0,   196,     0,    27,    58,   100,
                    240:     68,    69,     0,   104,   114,    69,     0,   108,   104,   114,
                    241:     69,     0,   106,   104,   113,    69,     0,   108,    69,     0,
                    242:    106,    69,     0,     1,    69,     0,     1,    70,     0,    69,
                    243:      0,     0,     0,   106,   104,   129,    83,   101,    84,   159,
                    244:      0,   106,   104,   129,     1,     0,     0,     0,   108,   104,
                    245:    132,    85,   101,    86,   159,     0,   108,   104,   132,     1,
                    246:      0,     0,     0,   104,   132,    87,   101,    88,   159,     0,
                    247:    104,   132,     1,     0,     3,     0,     4,     0,    66,     0,
                    248:     42,     0,    48,     0,    47,     0,    53,     0,    54,     0,
                    249:     71,     0,    72,     0,    93,     0,     0,    93,     0,    97,
                    250:      0,    93,    73,    97,     0,    98,     0,    49,    96,     0,
                    251:      0,    32,    95,    96,     0,    90,    96,     0,    39,    89,
                    252:      0,    11,    94,     0,    11,    58,   147,    68,     0,    29,
                    253:     94,     0,    29,    58,   147,    68,     0,    94,     0,    58,
                    254:    147,    68,    96,     0,    58,   147,    68,    74,   124,   138,
                    255:     70,     0,    96,     0,    97,    47,    97,     0,    97,    48,
                    256:     97,     0,    97,    49,    97,     0,    97,    50,    97,     0,
                    257:     97,    51,    97,     0,    97,    45,    97,     0,    97,    46,
                    258:     97,     0,    97,    44,    97,     0,    97,    43,    97,     0,
                    259:     97,    42,    97,     0,    97,    40,    97,     0,    97,    41,
                    260:     97,     0,    97,    39,    97,     0,    97,    38,    97,     0,
                    261:     97,    36,   181,    37,    97,     0,    97,    35,    97,     0,
                    262:     97,    34,    97,     0,     3,     0,     8,     0,   100,     0,
                    263:     58,    91,    68,     0,    58,     1,    68,     0,     0,    58,
                    264:     99,   160,    68,     0,    98,    58,    92,    68,     0,    98,
                    265:     59,    91,    75,     0,    98,    57,    89,     0,    98,    56,
                    266:     89,     0,    98,    53,     0,    98,    54,     0,   249,     0,
                    267:    255,     0,   256,     0,     9,     0,   100,     9,     0,     0,
                    268:    103,     0,   103,    10,     0,   163,   164,   105,     0,   102,
                    269:      0,   154,     0,   103,   102,     0,   102,   154,     0,     0,
                    270:    106,   104,   113,    69,     0,   108,   104,   114,    69,     0,
                    271:    106,   104,   125,     0,   108,   104,   127,     0,   106,    69,
                    272:      0,   108,    69,     0,   111,   107,     0,   108,   111,   107,
                    273:      0,     0,   107,   112,     0,   107,     5,     0,     7,     0,
                    274:      5,     0,   108,     7,     0,   108,     5,     0,   111,   110,
                    275:      0,   149,   111,   110,     0,     0,   110,   112,     0,     6,
                    276:      0,   133,     0,     4,     0,    66,     0,    28,    58,    91,
                    277:     68,     0,    28,    58,   147,    68,     0,     6,     0,     7,
                    278:      0,   133,     0,   116,     0,   113,    73,   116,     0,   118,
                    279:      0,   114,    73,   116,     0,     0,    27,    58,   100,    68,
                    280:      0,     0,   129,   115,   120,    35,   117,   123,     0,   129,
                    281:    115,   120,     0,     0,   132,   115,   120,    35,   119,   123,
                    282:      0,   132,   115,   120,     0,     0,    31,    58,    58,   121,
                    283:     68,    68,     0,   122,     0,   121,    73,   122,     0,     3,
                    284:      0,     3,    58,     8,    68,     0,     3,    58,     3,    73,
                    285:      8,    73,     8,    68,     0,    97,     0,    74,    70,     0,
                    286:     74,   124,    70,     0,    74,   124,    73,    70,     0,     1,
                    287:      0,   123,     0,   124,    73,   123,     0,    59,    97,    75,
                    288:    123,     0,   124,    73,    21,    97,    37,   123,     0,    89,
                    289:     37,   123,     0,   124,    73,    89,    37,   123,     0,     0,
                    290:    129,   126,   160,     0,     0,   132,   128,   160,     0,   130,
                    291:      0,   132,     0,    58,   130,    68,     0,   130,    58,   188,
                    292:      0,   130,    59,    91,    75,     0,   130,    59,    75,     0,
                    293:     49,   150,   130,     0,     4,     0,   131,    58,   188,     0,
                    294:    131,    59,    91,    75,     0,   131,    59,    75,     0,    49,
                    295:    150,   131,     0,     4,     0,   132,    58,   188,     0,    58,
                    296:    132,    68,     0,    49,   150,   132,     0,   132,    59,    91,
                    297:     75,     0,   132,    59,    75,     0,     3,     0,     0,    13,
                    298:     89,    74,   134,   140,    70,     0,    13,    74,   140,    70,
                    299:      0,    13,    89,     0,     0,    14,    89,    74,   135,   140,
                    300:     70,     0,    14,    74,   140,    70,     0,    14,    89,     0,
                    301:      0,    12,    89,    74,   136,   145,   139,    70,     0,     0,
                    302:     12,    74,   137,   145,   139,    70,     0,    12,    89,     0,
                    303:      0,    73,     0,     0,    73,     0,   141,     0,   141,   142,
                    304:      0,     0,   141,   142,    69,     0,   141,    69,     0,    64,
                    305:     58,    66,    68,     0,   109,   104,   143,     0,   109,     0,
                    306:    149,   104,   143,     0,   149,     0,     1,     0,   144,     0,
                    307:    143,    73,   144,     0,   163,   164,   129,   120,     0,   163,
                    308:    164,   129,    37,    97,   120,     0,   163,   164,    37,    97,
                    309:      0,   146,     0,   145,    73,   146,     0,    89,     0,    89,
                    310:     35,    97,     0,   109,   148,     0,   149,   148,     0,     0,
                    311:    151,     0,     7,     0,   149,     7,     0,     0,   150,     7,
                    312:      0,    58,   151,    68,     0,    49,   150,   151,     0,    49,
                    313:    150,     0,   151,    58,   186,     0,   151,    59,    91,    75,
                    314:      0,   151,    59,    75,     0,    58,   186,     0,    59,    91,
                    315:     75,     0,    59,    75,     0,   165,     0,   152,   165,     0,
                    316:    152,   154,     0,     0,   152,     0,     1,    69,     0,     0,
                    317:      0,   157,     0,   158,     0,   157,   158,     0,    33,   195,
                    318:     69,     0,   160,     0,     1,   160,     0,    74,    70,     0,
                    319:     74,   155,   156,   103,   153,    70,     0,    74,   155,   156,
                    320:      1,    70,     0,    74,   155,   156,   152,    70,     0,     0,
                    321:     15,    58,    91,    68,   162,   165,     0,     0,     0,   163,
                    322:    164,   166,     0,   160,     0,    91,    69,     0,     0,   161,
                    323:     16,   167,   165,     0,   161,     0,     0,     0,    17,   168,
                    324:     58,    91,    68,   169,   165,     0,     0,     0,    18,   170,
                    325:    165,    17,   171,    58,    91,    68,    69,     0,     0,     0,
                    326:      0,    19,    58,   181,    69,   172,   181,    69,   173,   181,
                    327:     68,   174,   165,     0,     0,    20,    58,    91,    68,   175,
                    328:    165,     0,     0,    21,    91,    37,   176,   165,     0,     0,
                    329:     21,    91,    10,    91,    37,   177,   165,     0,     0,    22,
                    330:     37,   178,   165,     0,    23,    69,     0,    24,    69,     0,
                    331:     25,    69,     0,    25,    91,    69,     0,    27,   180,    58,
                    332:    100,    68,    69,     0,    27,   180,    58,   100,    37,   182,
                    333:     68,    69,     0,    27,   180,    58,   100,    37,   182,    37,
                    334:    182,    68,    69,     0,    27,   180,    58,   100,    37,   182,
                    335:     37,   182,    37,   185,    68,    69,     0,    26,    89,    69,
                    336:      0,    26,    49,    91,    69,     0,     0,    89,    37,   179,
                    337:    165,     0,    69,     0,     0,     7,     0,     0,    91,     0,
                    338:      0,   183,     0,   184,     0,   183,    73,   184,     0,     9,
                    339:     58,    91,    68,     0,   100,     0,   185,    73,   100,     0,
                    340:      0,   187,   191,     0,     0,   189,   190,     0,   192,    68,
                    341:      0,   195,    68,     0,     1,    68,     0,   192,    68,     0,
                    342:      1,    68,     0,     0,   193,     0,   193,    73,    10,     0,
                    343:    194,     0,   193,    73,   194,     0,   106,   131,     0,   106,
                    344:    132,     0,   106,   148,     0,   108,   132,     0,   108,   148,
                    345:      0,     3,     0,   195,    73,     3,     0,   197,     0,   213,
                    346:      0,    62,     0,     0,     0,    60,    89,    74,   198,   207,
                    347:     70,   199,   220,    62,     0,     0,    60,    89,   200,   220,
                    348:     62,     0,     0,     0,    60,    89,    37,    89,    74,   201,
                    349:    207,    70,   202,   220,    62,     0,     0,    60,    89,    37,
                    350:     89,   203,   220,    62,     0,     0,    61,    89,    74,   204,
                    351:    207,    70,     0,    61,    89,     0,     0,    61,    89,    37,
                    352:     89,    74,   205,   207,    70,     0,    61,    89,    37,    89,
                    353:      0,     0,    60,    89,    58,    89,    68,   206,   220,    62,
                    354:      0,    61,    89,    58,    89,    68,     0,     0,   209,    67,
                    355:    208,   209,     0,   209,     0,     0,   209,   210,    69,     0,
                    356:    209,    69,     0,   109,   104,   211,     0,   149,   104,   211,
                    357:      0,     1,     0,     0,   212,     0,   211,    73,   212,     0,
                    358:    129,     0,   129,    37,    97,     0,    37,    97,     0,     0,
                    359:      0,     0,    47,   214,   230,   215,   231,   216,   159,     0,
                    360:      0,     0,     0,    48,   217,   230,   218,   231,   219,   159,
                    361:      0,     0,     0,   221,   222,     0,   225,     0,    81,     0,
                    362:    222,   225,     0,     0,   222,   223,    81,     0,    69,     0,
                    363:      1,     0,     0,     0,    47,   226,   230,   227,   224,     0,
                    364:      0,     0,    48,   228,   230,   229,   224,     0,    58,   147,
                    365:     68,   239,     0,   239,     0,    58,   147,    68,   240,   237,
                    366:      0,   240,   237,     0,     0,    69,   232,     0,     0,   233,
                    367:      0,   234,     0,   154,     0,   233,   234,     0,   234,   154,
                    368:      0,   106,   104,   235,    69,     0,   106,    69,     0,   108,
                    369:     69,     0,   236,     0,   235,    73,   236,     0,   131,     0,
                    370:    132,     0,   148,     0,     0,    73,    10,     0,     0,    73,
                    371:    238,   192,     0,   241,     0,   243,     0,   240,   243,     0,
                    372:      3,     0,     4,     0,   242,     0,    12,     0,    13,     0,
                    373:     14,     0,    15,     0,    16,     0,    17,     0,    18,     0,
                    374:     19,     0,    20,     0,    21,     0,    22,     0,    23,     0,
                    375:     24,     0,    25,     0,    26,     0,    27,     0,    11,     0,
                    376:     28,     0,    29,     0,     6,     0,     7,     0,   241,    37,
                    377:     58,   147,    68,    89,     0,   241,    37,    89,     0,    37,
                    378:     58,   147,    68,    89,     0,    37,    89,     0,   241,     0,
                    379:    245,     0,   247,     0,   245,   247,     0,    93,     0,   241,
                    380:     37,   246,     0,    37,   246,     0,    91,     0,    66,     0,
                    381:      0,     0,    59,   250,   248,   251,   244,    75,     0,   241,
                    382:      0,   253,     0,   254,     0,   253,   254,     0,   241,    37,
                    383:      0,    37,     0,    63,    58,   252,    68,     0,    65,    58,
                    384:    147,    68,     0
                    385: };
                    386: 
                    387: #if YYDEBUG != 0
                    388: static const short yyrline[] = { 0,
                    389:    217,   221,   229,   231,   231,   232,   234,   236,   237,   238,
                    390:    245,   251,   253,   255,   257,   259,   260,   261,   266,   272,
                    391:    274,   275,   277,   282,   284,   285,   287,   292,   294,   295,
                    392:    299,   301,   302,   306,   308,   310,   312,   314,   316,   318,
                    393:    322,   326,   329,   332,   335,   339,   341,   344,   347,   350,
                    394:    353,   372,   377,   379,   381,   385,   387,   390,   404,   406,
                    395:    408,   410,   412,   414,   416,   418,   420,   422,   424,   426,
                    396:    428,   430,   432,   434,   436,   438,   442,   539,   540,   542,
                    397:    548,   550,   563,   576,   578,   580,   592,   606,   608,   610,
                    398:    612,   614,   619,   621,   625,   627,   628,   639,   644,   646,
                    399:    647,   648,   655,   663,   668,   672,   676,   680,   682,   690,
                    400:    693,   697,   699,   701,   709,   712,   714,   716,   725,   728,
                    401:    732,   734,   742,   743,   744,   745,   747,   751,   759,   760,
                    402:    761,   764,   766,   769,   771,   774,   777,   785,   790,   792,
                    403:    798,   803,   805,   812,   815,   820,   822,   827,   831,   842,
                    404:    856,   858,   862,   864,   866,   872,   875,   878,   880,   882,
                    405:    884,   888,   905,   909,   926,   933,   935,   940,   943,   948,
                    406:    950,   952,   954,   962,   968,   970,   972,   974,   980,   986,
                    407:    988,   990,   992,   994,   997,  1002,  1006,  1009,  1011,  1013,
                    408:   1015,  1018,  1020,  1023,  1026,  1029,  1032,  1036,  1038,  1041,
                    409:   1043,  1047,  1050,  1055,  1057,  1059,  1063,  1076,  1082,  1087,
                    410:   1092,  1097,  1101,  1103,  1107,  1111,  1115,  1124,  1126,  1131,
                    411:   1134,  1138,  1141,  1145,  1148,  1151,  1154,  1158,  1161,  1165,
                    412:   1169,  1171,  1173,  1175,  1177,  1179,  1181,  1183,  1191,  1193,
                    413:   1194,  1197,  1199,  1202,  1205,  1217,  1219,  1224,  1226,  1229,
                    414:   1246,  1249,  1252,  1254,  1259,  1264,  1272,  1281,  1283,  1287,
                    415:   1291,  1296,  1299,  1304,  1309,  1312,  1317,  1322,  1327,  1328,
                    416:   1334,  1336,  1341,  1348,  1352,  1358,  1364,  1373,  1375,  1400,
                    417:   1400,  1429,  1429,  1445,  1445,  1450,  1455,  1459,  1463,  1469,
                    418:   1477,  1485,  1493,  1504,  1508,  1516,  1516,  1521,  1526,  1532,
                    419:   1535,  1540,  1542,  1545,  1547,  1551,  1556,  1559,  1565,  1569,
                    420:   1576,  1580,  1585,  1587,  1589,  1593,  1595,  1601,  1603,  1605,
                    421:   1609,  1612,  1618,  1621,  1623,  1625,  1627,  1632,  1635,  1642,
                    422:   1644,  1645,  1658,  1665,  1670,  1676,  1683,  1689,  1695,  1700,
                    423:   1706,  1713,  1719,  1725,  1731,  1739,  1745,  1751,  1759,  1766,
                    424:   1772,  1781,  1783,  1783,  1786,  1791,  1792,  1809,  1815,  1820,
                    425:   1824,  1827,  1828,  1831,  1839,  1845,  1854,  1863,  1869,  1873,
                    426:   1878,  1886,  1892,  1896,  1906,  1908,  1909,  1911,  1913,  1914,
                    427:   1915,  1916,  1918,  1920,  1923,  1929,  1934,  1934,  1939,  1943,
                    428:   1945,  1951,  1956,  1961,  1970,  1972,  1978,  1980,  1983,  1985,
                    429:   1986,  1987,  1990,  1993,  1995,  1999,  2002,  2009,  2012,  2014,
                    430:   2018,  2023,  2028,  2033,  2040,  2044,  2047,  2053,  2055,  2056,
                    431:   2059,  2061,  2062,  2063,  2064,  2065,  2066,  2067,  2068,  2069,
                    432:   2070,  2071,  2072,  2073,  2074,  2075,  2076,  2077,  2078,  2079,
                    433:   2079,  2082,  2088,  2093,  2098,  2104,  2106,  2109,  2111,  2118,
                    434:   2130,  2135,  2141,  2143,  2149,  2153,  2154,  2160,  2162,  2165,
                    435:   2167,  2173,  2178,  2184,  2193
                    436: };
                    437: 
                    438: static const char * const yytname[] = {   "$","error","$illegal.","IDENTIFIER",
                    439: "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
                    440: "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
                    441: "BREAK","CONTINUE","RETURN","GOTO","ASM","TYPEOF","ALIGNOF","ALIGN","ATTRIBUTE",
                    442: "EXTENSION","LABEL","ASSIGN","'='","'?'","':'","OROR","ANDAND","'|'","'^'","'&'",
                    443: "EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY",
                    444: "PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT","'.'","'('","'['","INTERFACE",
                    445: "IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE","CLASSNAME","PUBLIC","')'",
                    446: "';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs","@1","@2","extdef",
                    447: "datadef","fndef","@3","@4","@5","@6","@7","@8","identifier","unop","expr","exprlist",
                    448: "nonnull_exprlist","unary_expr","@9","cast_expr","expr_no_commas","primary",
                    449: "@10","string","xdecls","lineno_decl","decls","setspecs","decl","typed_declspecs",
                    450: "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
                    451: "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
                    452: "@11","notype_initdcl","@12","maybe_attribute","attribute_list","attrib","init",
                    453: "initlist","nested_function","@13","notype_nested_function","@14","declarator",
                    454: "after_type_declarator","parm_declarator","notype_declarator","structsp","@15",
                    455: "@16","@17","@18","maybecomma","maybecomma_warn","component_decl_list","component_decl_list2",
                    456: "component_decl","components","component_declarator","enumlist","enumerator",
                    457: "typename","absdcl","nonempty_type_quals","type_quals","absdcl1","stmts","xstmts",
                    458: "errstmt","pushlevel","maybe_label_decls","label_decls","label_decl","compstmt_or_error",
                    459: "compstmt","simple_if","@19","save_filename","save_lineno","lineno_stmt","stmt",
                    460: "@20","@21","@22","@23","@24","@25","@26","@27","@28","@29","@30","@31","@32",
                    461: "maybe_type_qual","xexpr","asm_operands","nonnull_asm_operands","asm_operand",
                    462: "asm_clobbers","parmlist","@33","parmlist_or_identifiers","@34","parmlist_or_identifiers_1",
                    463: "parmlist_1","parmlist_2","parms","parm","identifiers","objcdef","classdef",
                    464: "@35","@36","@37","@38","@39","@40","@41","@42","@43","ivar_decl_list","@44",
                    465: "ivar_decls","ivar_decl","ivars","ivar_declarator","methoddef","@45","@46","@47",
                    466: "@48","@49","@50","methodprotolist","@51","methodprotolist2","@52","semi_or_error",
                    467: "methodproto","@53","@54","@55","@56","methoddecl","optarglist","myxdecls","mydecls",
                    468: "mydecl","myparms","myparm","optparmlist","@57","unaryselector","keywordselector",
                    469: "selector","reservedwords","keyworddecl","messageargs","keywordarglist","keywordexpr",
                    470: "keywordarg","receiver","objcmessageexpr","@58","@59","selectorarg","keywordnamelist",
                    471: "keywordname","objcselectorexpr","objcencodeexpr",""
                    472: };
                    473: #endif
                    474: 
                    475: static const short yyr1[] = {     0,
                    476:     76,    76,    78,    77,    79,    77,    80,    80,    80,    80,
                    477:     81,    81,    81,    81,    81,    81,    81,    81,    83,    84,
                    478:     82,    82,    85,    86,    82,    82,    87,    88,    82,    82,
                    479:     89,    89,    89,    90,    90,    90,    90,    90,    90,    90,
                    480:     91,    92,    92,    93,    93,    94,    94,    95,    94,    94,
                    481:     94,    94,    94,    94,    94,    96,    96,    96,    97,    97,
                    482:     97,    97,    97,    97,    97,    97,    97,    97,    97,    97,
                    483:     97,    97,    97,    97,    97,    97,    98,    98,    98,    98,
                    484:     98,    99,    98,    98,    98,    98,    98,    98,    98,    98,
                    485:     98,    98,   100,   100,   101,   101,   101,   102,   103,   103,
                    486:    103,   103,   104,   105,   105,   105,   105,   105,   105,   106,
                    487:    106,   107,   107,   107,   108,   108,   108,   108,   109,   109,
                    488:    110,   110,   111,   111,   111,   111,   111,   111,   112,   112,
                    489:    112,   113,   113,   114,   114,   115,   115,   117,   116,   116,
                    490:    119,   118,   118,   120,   120,   121,   121,   122,   122,   122,
                    491:    123,   123,   123,   123,   123,   124,   124,   124,   124,   124,
                    492:    124,   126,   125,   128,   127,   129,   129,   130,   130,   130,
                    493:    130,   130,   130,   131,   131,   131,   131,   131,   132,   132,
                    494:    132,   132,   132,   132,   134,   133,   133,   133,   135,   133,
                    495:    133,   133,   136,   133,   137,   133,   133,   138,   138,   139,
                    496:    139,   140,   140,   141,   141,   141,   141,   142,   142,   142,
                    497:    142,   142,   143,   143,   144,   144,   144,   145,   145,   146,
                    498:    146,   147,   147,   148,   148,   149,   149,   150,   150,   151,
                    499:    151,   151,   151,   151,   151,   151,   151,   151,   152,   152,
                    500:    152,   153,   153,   154,   155,   156,   156,   157,   157,   158,
                    501:    159,   159,   160,   160,   160,   160,   162,   161,   163,   164,
                    502:    165,   166,   166,   167,   166,   166,   168,   169,   166,   170,
                    503:    171,   166,   172,   173,   174,   166,   175,   166,   176,   166,
                    504:    177,   166,   178,   166,   166,   166,   166,   166,   166,   166,
                    505:    166,   166,   166,   166,   179,   166,   166,   180,   180,   181,
                    506:    181,   182,   182,   183,   183,   184,   185,   185,   187,   186,
                    507:    189,   188,   190,   190,   190,   191,   191,   192,   192,   192,
                    508:    193,   193,   194,   194,   194,   194,   194,   195,   195,   196,
                    509:    196,   196,   198,   199,   197,   200,   197,   201,   202,   197,
                    510:    203,   197,   204,   197,   197,   205,   197,   197,   206,   197,
                    511:    197,   208,   207,   207,   209,   209,   209,   210,   210,   210,
                    512:    211,   211,   211,   212,   212,   212,   214,   215,   216,   213,
                    513:    217,   218,   219,   213,   220,   221,   220,   222,   222,   222,
                    514:    223,   222,   224,   224,   226,   227,   225,   228,   229,   225,
                    515:    230,   230,   230,   230,   231,   231,   232,   232,   233,   233,
                    516:    233,   233,   234,   234,   234,   235,   235,   236,   236,   236,
                    517:    237,   237,   238,   237,   239,   240,   240,   241,   241,   241,
                    518:    242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
                    519:    242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
                    520:    242,   243,   243,   243,   243,   244,   244,   245,   245,   246,
                    521:    247,   247,   248,   248,   250,   251,   249,   252,   252,   253,
                    522:    253,   254,   254,   255,   256
                    523: };
                    524: 
                    525: static const short yyr2[] = {     0,
                    526:      0,     1,     0,     2,     0,     3,     1,     1,     1,     5,
                    527:      3,     4,     4,     2,     2,     2,     2,     1,     0,     0,
                    528:      7,     4,     0,     0,     7,     4,     0,     0,     6,     3,
                    529:      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
                    530:      1,     0,     1,     1,     3,     1,     2,     0,     3,     2,
                    531:      2,     2,     4,     2,     4,     1,     4,     7,     1,     3,
                    532:      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
                    533:      3,     3,     3,     5,     3,     3,     1,     1,     1,     3,
                    534:      3,     0,     4,     4,     4,     3,     3,     2,     2,     1,
                    535:      1,     1,     1,     2,     0,     1,     2,     3,     1,     1,
                    536:      2,     2,     0,     4,     4,     3,     3,     2,     2,     2,
                    537:      3,     0,     2,     2,     1,     1,     2,     2,     2,     3,
                    538:      0,     2,     1,     1,     1,     1,     4,     4,     1,     1,
                    539:      1,     1,     3,     1,     3,     0,     4,     0,     6,     3,
                    540:      0,     6,     3,     0,     6,     1,     3,     1,     4,     8,
                    541:      1,     2,     3,     4,     1,     1,     3,     4,     6,     3,
                    542:      5,     0,     3,     0,     3,     1,     1,     3,     3,     4,
                    543:      3,     3,     1,     3,     4,     3,     3,     1,     3,     3,
                    544:      3,     4,     3,     1,     0,     6,     4,     2,     0,     6,
                    545:      4,     2,     0,     7,     0,     6,     2,     0,     1,     0,
                    546:      1,     1,     2,     0,     3,     2,     4,     3,     1,     3,
                    547:      1,     1,     1,     3,     4,     6,     4,     1,     3,     1,
                    548:      3,     2,     2,     0,     1,     1,     2,     0,     2,     3,
                    549:      3,     2,     3,     4,     3,     2,     3,     2,     1,     2,
                    550:      2,     0,     1,     2,     0,     0,     1,     1,     2,     3,
                    551:      1,     2,     2,     6,     5,     5,     0,     6,     0,     0,
                    552:      3,     1,     2,     0,     4,     1,     0,     0,     7,     0,
                    553:      0,     9,     0,     0,     0,    12,     0,     6,     0,     5,
                    554:      0,     7,     0,     4,     2,     2,     2,     3,     6,     8,
                    555:     10,    12,     3,     4,     0,     4,     1,     0,     1,     0,
                    556:      1,     0,     1,     1,     3,     4,     1,     3,     0,     2,
                    557:      0,     2,     2,     2,     2,     2,     2,     0,     1,     3,
                    558:      1,     3,     2,     2,     2,     2,     2,     1,     3,     1,
                    559:      1,     1,     0,     0,     9,     0,     5,     0,     0,    11,
                    560:      0,     7,     0,     6,     2,     0,     8,     4,     0,     8,
                    561:      5,     0,     4,     1,     0,     3,     2,     3,     3,     1,
                    562:      0,     1,     3,     1,     3,     2,     0,     0,     0,     7,
                    563:      0,     0,     0,     7,     0,     0,     2,     1,     1,     2,
                    564:      0,     3,     1,     1,     0,     0,     5,     0,     0,     5,
                    565:      4,     1,     5,     2,     0,     2,     0,     1,     1,     1,
                    566:      2,     2,     4,     2,     2,     1,     3,     1,     1,     1,
                    567:      0,     2,     0,     3,     1,     1,     2,     1,     1,     1,
                    568:      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
                    569:      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
                    570:      1,     6,     3,     5,     2,     1,     1,     1,     2,     1,
                    571:      3,     2,     1,     1,     0,     0,     6,     1,     1,     1,
                    572:      2,     2,     1,     4,     4
                    573: };
                    574: 
                    575: static const short yydefact[] = {     3,
                    576:      5,     0,     0,     0,   125,   116,   123,   115,     0,     0,
                    577:      0,     0,     0,   367,   371,     0,     0,   332,   126,    18,
                    578:      4,     8,     7,     0,   103,   103,   112,   124,     9,   330,
                    579:    331,     6,    16,    17,    31,    32,    33,   195,   197,   204,
                    580:    188,   204,   192,     0,     0,     0,     0,   336,   345,   184,
                    581:    228,     0,     0,   134,     0,    15,     0,   118,   117,    14,
                    582:      0,   112,   110,     0,   193,     0,     0,     0,   185,     0,
                    583:    189,    93,     0,    77,   226,    78,     0,     0,    48,     0,
                    584:     34,    36,    35,     0,    37,    38,     0,   455,     0,     0,
                    585:     39,    40,     0,     0,    41,    56,    59,    44,    46,    79,
                    586:    224,   121,     0,   224,    90,    91,    92,   418,   419,   440,
                    587:    441,   437,   421,   422,   423,   424,   425,   426,   427,   428,
                    588:    429,   430,   431,   432,   433,   434,   435,   436,   438,   439,
                    589:      0,     0,   368,   392,   411,   415,   420,   416,   372,     0,
                    590:      0,   333,   376,     0,     0,   343,     0,     0,    11,     0,
                    591:     30,     0,   311,     0,     0,   144,   173,   228,     0,     0,
                    592:    132,     0,   166,   167,     0,     0,   111,   114,   129,   130,
                    593:    113,   131,   220,   200,   218,     0,     0,   187,   212,   206,
                    594:    103,   203,   103,   204,   191,   204,    94,     0,     0,    52,
                    595:      0,    54,     0,    51,    47,     0,     0,     0,     0,     0,
                    596:      0,     0,    50,   127,     0,     0,     0,   300,     0,     0,
                    597:      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
                    598:      0,     0,    88,    89,     0,     0,    42,     0,   228,   309,
                    599:      0,   222,   225,   119,   128,   227,   121,   223,     0,   445,
                    600:      0,   395,   413,   394,     0,   417,     0,   395,   341,     0,
                    601:    355,     0,     0,   348,     0,   355,   229,   181,   180,   135,
                    602:    136,     0,   179,     0,   183,     0,     0,    28,     0,   259,
                    603:    100,   260,     0,   143,     0,     0,    13,     0,    22,     0,
                    604:    144,   311,     0,    12,    26,     0,     0,   201,     0,   200,
                    605:      0,   259,   205,   259,     0,     0,    10,     0,     0,    49,
                    606:     81,    80,   245,     0,     0,   454,   453,   456,   463,   458,
                    607:      0,   459,   460,     0,    45,    76,    75,   301,     0,    73,
                    608:     72,    70,    71,    69,    68,    67,    65,    66,    60,    61,
                    609:     62,    63,    64,    87,    86,     0,    43,     0,   232,     0,
                    610:    236,     0,   238,     0,   309,     0,   122,   120,     0,     0,
                    611:      0,   369,   412,   318,     0,   443,   373,   338,   376,   349,
                    612:      0,     0,   337,   385,   388,   379,     0,   103,   103,   381,
                    613:    378,   346,   351,     0,     0,     0,   328,   224,   224,   312,
                    614:      0,   319,   321,     0,   182,   244,     0,   102,    97,   101,
                    615:      0,     0,   141,   172,   168,   133,    20,   140,   169,   171,
                    616:      0,    24,   221,   219,   196,     0,   207,   208,   213,   260,
                    617:    210,   186,   190,    53,    55,   253,   246,    83,     0,    57,
                    618:      0,   462,   464,     0,   461,   465,     0,    84,    85,   231,
                    619:    230,     0,   310,     0,   237,   233,   235,     0,     0,   391,
                    620:    411,   103,     0,   400,   396,   398,     0,     0,   414,     0,
                    621:      0,   355,     0,   376,   334,   360,   352,   357,   103,   103,
                    622:      0,     0,     0,   136,     0,     0,     0,   380,   355,   344,
                    623:    137,   315,   178,   228,   309,   323,   324,   325,   228,   326,
                    624:    327,   313,     0,   314,     0,     0,    29,   251,    98,   103,
                    625:    103,     0,     0,     0,   138,   170,     0,   194,   259,     0,
                    626:      0,     0,   247,   248,   155,    77,   455,     0,     0,   151,
                    627:    156,   198,     0,   446,     0,   447,   448,    74,   317,   316,
                    628:    234,   444,   393,   404,   224,   405,   401,   402,   370,     0,
                    629:    374,     0,   342,     0,   376,   355,   361,   361,   356,   386,
                    630:    389,   382,     0,   232,   311,     0,   232,   320,   322,   329,
                    631:    252,   108,     0,   109,     0,   148,     0,   146,   142,    21,
                    632:      0,    25,   214,     0,   144,     0,     0,   259,     0,   260,
                    633:    239,   249,     0,   152,     0,     0,     0,     0,   450,   452,
                    634:      0,   457,     0,   449,   408,   409,   410,     0,   406,   442,
                    635:    339,   350,     0,     0,     0,   364,   358,   362,   359,     0,
                    636:      0,   347,   177,   174,   176,     0,     0,   106,   136,     0,
                    637:    107,   136,     0,     0,     0,   139,   217,     0,   215,   250,
                    638:    255,     0,     0,   256,   241,   260,   240,     0,     0,   153,
                    639:      0,   160,     0,     0,   157,    58,   451,   403,   224,   376,
                    640:    335,   366,     0,     0,   384,   383,   387,   390,   175,   104,
                    641:      0,   105,     0,     0,     0,   145,   147,   144,   254,     0,
                    642:    125,     0,   267,   270,     0,     0,     0,     0,     0,     0,
                    643:      0,     0,   298,   126,   297,     0,     0,   262,   266,   261,
                    644:    158,   154,     0,     0,   407,     0,   365,   363,   163,   165,
                    645:      0,   149,   216,     0,     0,   259,   300,     0,     0,   283,
                    646:    285,   286,   287,     0,     0,     0,   299,     0,   295,   263,
                    647:    264,     0,   161,   340,     0,     0,     0,     0,     0,     0,
                    648:      0,   279,   259,   288,     0,   293,     0,   259,   259,   159,
                    649:      0,   257,     0,   271,   273,   277,     0,   259,   284,   294,
                    650:      0,   296,   265,     0,   259,   268,     0,   300,   259,   281,
                    651:    280,   302,     0,   150,   258,   259,     0,     0,   278,   259,
                    652:      0,     0,   303,   304,   289,   269,     0,   274,   282,     0,
                    653:    302,     0,     0,     0,   300,     0,     0,   290,   305,   272,
                    654:      0,   306,     0,     0,   275,   307,     0,   291,   259,     0,
                    655:      0,   276,   292,   308,     0,     0,     0
                    656: };
                    657: 
                    658: static const short yydefgoto[] = {   795,
                    659:      1,     2,     3,    21,    22,    23,   280,   494,   286,   497,
                    660:    155,   387,   173,    93,   318,   336,    95,    96,   193,    97,
                    661:     98,    99,   198,   100,   268,   269,   270,    24,   489,   378,
                    662:     63,   379,   101,   234,    27,   171,   160,    53,   156,   161,
                    663:    561,    54,   493,   274,   557,   558,   511,   512,   608,   651,
                    664:    611,   653,   261,   163,   585,   164,    28,   184,   186,   176,
                    665:     64,   578,   289,    67,    68,   182,   408,   409,   174,   175,
                    666:    103,   587,   104,   147,   233,   569,   623,   271,   417,   502,
                    667:    503,   504,   487,   488,   679,   745,   626,   391,   571,   680,
                    668:    729,   695,   756,   696,   747,   748,   775,   789,   749,   738,
                    669:    760,   723,   728,   708,   319,   762,   763,   764,   787,   341,
                    670:    342,   263,   264,   380,   433,   381,   382,   383,   384,    29,
                    671:     30,   251,   535,   143,   452,   640,   359,   256,   469,   454,
                    672:    361,   536,   362,   461,   597,   598,    31,    46,   242,   448,
                    673:     47,   248,   451,   252,   253,   370,   467,   647,   371,   462,
                    674:    600,   463,   601,   133,   352,   445,   446,   447,   588,   589,
                    675:    244,   354,   134,   135,   136,   137,   138,   515,   516,   580,
                    676:    517,   308,   105,   200,   421,   311,   312,   313,   106,   107
                    677: };
                    678: 
                    679: static const short yypact[] = {    62,
                    680:     96,  2160,  2160,   191,-32768,-32768,-32768,-32768,    84,    97,
                    681:    173,    46,    72,-32768,-32768,    52,    52,-32768,-32768,-32768,
                    682: -32768,-32768,-32768,   134,    85,   635,-32768,-32768,-32768,-32768,
                    683: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    91,    56,
                    684:    113,    56,   124,   217,  1878,  2302,  2302,   159,   179,-32768,
                    685: -32768,   134,    16,-32768,  1336,-32768,   267,-32768,-32768,-32768,
                    686:    134,-32768,   507,    52,-32768,   151,   172,   541,-32768,   188,
                    687: -32768,-32768,    51,-32768,-32768,-32768,  2001,  2036,-32768,    52,
                    688: -32768,-32768,-32768,  2071,-32768,-32768,  1039,-32768,   219,   239,
                    689: -32768,-32768,  2071,   237,   261,-32768,-32768,  2465,   542,   327,
                    690:    328,-32768,   291,   408,-32768,-32768,-32768,-32768,-32768,-32768,
                    691: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
                    692: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
                    693:    139,  1135,-32768,-32768,  1851,   324,-32768,-32768,-32768,    52,
                    694:     52,-32768,   304,    52,    52,-32768,   187,   330,-32768,   267,
                    695: -32768,   320,-32768,  1476,    66,   352,-32768,-32768,   267,   154,
                    696: -32768,  1440,   264,   326,   200,  1407,   507,-32768,-32768,-32768,
                    697: -32768,-32768,   355,   334,-32768,    52,   350,-32768,-32768,-32768,
                    698:    424,   331,   523,    56,-32768,    56,-32768,   354,  1039,-32768,
                    699:   1039,-32768,  2071,-32768,-32768,   363,   374,   371,   383,  1931,
                    700:   2371,  1135,-32768,-32768,  2071,  2071,  2071,  2071,  2071,  2071,
                    701:   2071,  2071,  2071,  2071,  2071,  2071,  2071,  2071,  2071,  2071,
                    702:   2071,  2071,-32768,-32768,    52,    52,  2071,  2071,-32768,   328,
                    703:   1529,-32768,   440,   561,-32768,-32768,-32768,-32768,  1135,-32768,
                    704:    386,   368,   449,-32768,   324,-32768,   166,   368,   395,   407,
                    705: -32768,   415,  2227,   410,   427,-32768,-32768,   326,-32768,-32768,
                    706:    462,   217,-32768,  1488,-32768,   426,   435,-32768,   751,    49,
                    707: -32768,-32768,   457,   488,   207,   351,-32768,   267,-32768,    66,
                    708:    352,-32768,  1564,-32768,-32768,    66,  2071,    52,   437,   334,
                    709:    460,-32768,-32768,-32768,   461,   468,-32768,   475,   478,-32768,
                    710: -32768,-32768,   487,   492,   677,-32768,-32768,-32768,-32768,   524,
                    711:    497,  2371,-32768,   511,  2465,  2465,  2465,-32768,   535,  1854,
                    712:   1382,  2108,  1413,  1908,  2166,  2148,   609,   609,   292,   292,
                    713: -32768,-32768,-32768,-32768,-32768,   512,   261,   506,   243,   397,
                    714: -32768,   325,-32768,   515,-32768,  1599,-32768,   561,   514,  2398,
                    715:    101,-32768,-32768,   434,  1135,-32768,-32768,-32768,   304,-32768,
                    716:    516,  1207,-32768,-32768,-32768,-32768,   134,    85,   635,   271,
                    717: -32768,-32768,-32768,   521,    54,   537,-32768,   369,  2245,-32768,
                    718:    538,   539,-32768,    -7,-32768,-32768,    53,-32768,-32768,-32768,
                    719:    434,   557,-32768,   264,-32768,-32768,-32768,   581,-32768,-32768,
                    720:    544,-32768,  2465,-32768,-32768,   553,-32768,   558,-32768,-32768,
                    721:    558,-32768,-32768,-32768,-32768,-32768,   602,-32768,   555,-32768,
                    722:   2425,-32768,-32768,   524,-32768,-32768,  2071,-32768,-32768,   440,
                    723: -32768,   569,-32768,   570,-32768,-32768,-32768,   568,    52,-32768,
                    724:   1851,   575,   663,-32768,-32768,   434,   504,    53,-32768,   582,
                    725:     53,-32768,   590,   304,-32768,-32768,-32768,-32768,-32768,  1279,
                    726:    584,  2302,  2302,   240,   267,   134,  2178,-32768,-32768,-32768,
                    727: -32768,-32768,-32768,-32768,   163,   467,   326,-32768,-32768,   326,
                    728: -32768,-32768,  1123,-32768,   658,   371,-32768,-32768,-32768,   596,
                    729:   1052,   668,  1327,    53,-32768,-32768,    53,-32768,-32768,   343,
                    730:    669,   823,   602,-32768,-32768,   636,  2071,  1255,   642,  2465,
                    731: -32768,   608,  2071,   645,   614,  2425,-32768,  2481,-32768,-32768,
                    732: -32768,-32768,-32768,-32768,   369,-32768,-32768,-32768,-32768,    52,
                    733: -32768,   620,-32768,   622,   304,-32768,   421,   421,-32768,-32768,
                    734: -32768,-32768,   623,   345,-32768,  1634,   347,-32768,-32768,-32768,
                    735: -32768,-32768,   267,-32768,   134,   634,    -4,-32768,-32768,-32768,
                    736:   1327,-32768,-32768,  2071,   263,   298,   464,   624,   895,-32768,
                    737: -32768,-32768,  2306,-32768,   116,  1327,  1111,   625,   261,-32768,
                    738:   2071,-32768,   645,-32768,   467,   326,-32768,   357,-32768,-32768,
                    739: -32768,-32768,   637,  2134,  2071,   659,   630,-32768,   630,    40,
                    740:     40,-32768,   467,-32768,-32768,   632,   414,-32768,    59,   417,
                    741: -32768,    24,   222,   629,   668,-32768,  2465,  2071,-32768,-32768,
                    742: -32768,   967,   638,-32768,-32768,-32768,-32768,  1707,  1327,-32768,
                    743:   1183,-32768,  2071,   673,-32768,-32768,-32768,-32768,   369,   304,
                    744: -32768,  2465,  2071,   421,-32768,-32768,-32768,-32768,-32768,-32768,
                    745:    371,-32768,   371,   640,   643,-32768,-32768,  2429,-32768,  1779,
                    746:    678,   647,-32768,-32768,   660,   662,  2071,   680,   652,   653,
                    747:   1966,   197,   716,   691,-32768,   696,   665,-32768,   721,-32768,
                    748: -32768,-32768,  2447,  1327,-32768,   676,  2465,-32768,-32768,-32768,
                    749:    733,-32768,-32768,  2071,   685,-32768,  2071,  2071,    80,-32768,
                    750: -32768,-32768,-32768,   675,  2071,   681,-32768,   687,-32768,-32768,
                    751: -32768,  1327,-32768,-32768,   694,   714,  2071,   729,   715,   717,
                    752:   2071,-32768,-32768,-32768,   718,-32768,   217,-32768,-32768,-32768,
                    753:    778,-32768,   720,-32768,-32768,-32768,   752,-32768,-32768,-32768,
                    754:     44,-32768,-32768,   723,-32768,-32768,   734,  2071,-32768,-32768,
                    755: -32768,   785,   726,-32768,-32768,-32768,  2071,   727,-32768,-32768,
                    756:    739,    31,   728,-32768,-32768,-32768,   735,-32768,-32768,  2071,
                    757:    785,   737,   785,   738,  2071,   740,   136,-32768,-32768,-32768,
                    758:    743,-32768,   217,   744,-32768,   327,   170,-32768,-32768,   746,
                    759:    217,-32768,-32768,   327,   802,   812,-32768
                    760: };
                    761: 
                    762: static const short yypgoto[] = {-32768,
                    763: -32768,-32768,-32768,   815,  -215,-32768,-32768,-32768,-32768,-32768,
                    764: -32768,-32768,    -6,-32768,   -43,-32768,  -207,   472,-32768,   -41,
                    765:     69,-32768,-32768,   -44,    41,  -248,   317,     1,-32768,     4,
                    766:    771,     6,   -55,   616,   -11,  -189,   286,   -49,  -145,  -110,
                    767: -32768,-32768,-32768,  -256,-32768,   241,  -416,   346,-32768,-32768,
                    768: -32768,-32768,   -56,  -111,  -336,    -3,   -31,-32768,-32768,-32768,
                    769: -32768,-32768,   567,    -5,-32768,-32768,   564,   360,   684,   573,
                    770:    -40,   -65,   -54,  -134,  -165,   295,-32768,  -241,-32768,-32768,
                    771: -32768,   361,   -86,  -175,-32768,-32768,  -139,  -377,  -494,-32768,
                    772: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
                    773: -32768,-32768,-32768,-32768,  -651,    95,-32768,    94,-32768,   528,
                    774: -32768,  -252,-32768,-32768,-32768,  -251,-32768,   385,   373,-32768,
                    775: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
                    776:   -221,-32768,   333,-32768,   337,   234,-32768,-32768,-32768,-32768,
                    777: -32768,-32768,-32768,  -328,-32768,-32768,-32768,   278,   510,-32768,
                    778: -32768,-32768,-32768,   -28,   639,-32768,-32768,   438,-32768,   244,
                    779:    444,-32768,   540,   543,  -117,-32768,  -106,-32768,-32768,   310,
                    780:    384,-32768,-32768,-32768,-32768,-32768,-32768,   589,-32768,-32768
                    781: };
                    782: 
                    783: 
                    784: #define        YYLAST          2532
                    785: 
                    786: 
                    787: static const short yytable[] = {    73,
                    788:    162,    94,    39,    41,    43,    25,    25,    26,    26,    48,
                    789:     49,   165,   181,   183,    62,   272,   281,   245,   139,   337,
                    790:     55,   390,   304,   275,   398,    57,    61,   388,   246,   399,
                    791:    453,   172,   500,   102,   374,   232,    70,   366,   238,   260,
                    792:    645,   476,   195,   197,   347,   719,   199,   276,   148,   -96,
                    793:    152,   203,   187,   486,    35,    36,   102,   166,   389,   187,
                    794:    484,    -1,   187,   614,   340,   485,   267,   771,   615,  -259,
                    795:   -259,  -259,  -259,   194,   627,   102,   559,  -259,  -259,  -259,
                    796:    752,   153,   154,   310,   149,   152,    35,    36,   150,   721,
                    797:    434,   241,   237,  -259,   339,    -2,   758,  -164,   772,    35,
                    798:     36,   267,   449,    44,     5,     6,     7,     8,   646,   444,
                    799:    266,   753,     9,    10,    11,   281,   722,    37,   188,    66,
                    800:    102,   471,   -96,   781,   240,   534,   303,   627,    13,    45,
                    801:    272,  -259,  -162,   249,   250,   172,    50,   254,   255,   -95,
                    802:    272,    35,    36,   258,   616,   197,   272,   197,   298,    37,
                    803:    299,   300,   410,    56,   410,   148,   307,    38,   347,   632,
                    804:    635,   314,    37,   394,    65,    50,    19,   396,    35,    36,
                    805:     40,   237,   783,   430,  -397,    35,    36,   102,   295,   102,
                    806:    296,   292,    51,   294,   338,   630,    69,   344,   631,    50,
                    807:    102,    52,   628,   257,   424,   140,   239,    71,   349,    35,
                    808:     36,   718,   172,   784,    37,   528,   593,   603,   177,    50,
                    809:    157,   479,   681,   257,   635,   144,   141,   375,   334,   335,
                    810:    475,   231,   277,   355,   654,    72,   278,   102,   739,   655,
                    811:    532,    37,   142,   742,   743,    51,   145,   790,    37,   401,
                    812:    356,   178,   791,   751,    52,   705,    42,   543,   660,   257,
                    813:    755,   542,   146,   367,   759,   158,   368,   185,   369,    33,
                    814:     34,   766,    37,   420,   159,   769,   152,   713,   284,    50,
                    815:    157,   258,   150,   315,   316,   317,   201,   320,   321,   322,
                    816:    323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
                    817:    333,   229,   604,   273,   792,   730,   202,   153,   154,   618,
                    818:    230,   231,   438,   514,   204,   579,   459,   460,   619,   340,
                    819:    551,   686,   478,   481,   450,   158,   172,   364,   365,   390,
                    820:    397,   282,   283,   245,   159,   432,   402,   625,     5,     6,
                    821:      7,     8,  -377,   205,   246,   187,     9,    10,    11,   544,
                    822:    220,   221,   222,   102,   547,    50,   157,    50,   473,    50,
                    823:    102,   257,    13,   257,   442,   403,   443,    62,   235,   410,
                    824:    247,   529,   570,   464,   531,  -375,   620,    62,   465,   466,
                    825:    485,    50,   473,   579,   477,   480,   229,   262,   430,   564,
                    826:    625,   430,   273,   153,   154,   230,   231,   153,   154,   287,
                    827:     19,   158,  -318,   474,   490,   479,   491,   259,   583,   293,
                    828:    159,   693,   475,   231,   475,   231,   288,   560,   282,   283,
                    829:    562,     5,   509,     7,   236,   291,   165,   474,   395,     9,
                    830:     10,    11,   297,    50,   157,   638,   475,   231,   570,   639,
                    831:    301,    62,   522,   540,   541,    13,   351,     5,     6,     7,
                    832:      8,   302,   525,   565,   303,     9,    10,    11,   237,   442,
                    833:    305,   443,   678,   350,   345,   346,   229,   595,   353,   537,
                    834:    538,    13,   464,   281,   431,   230,   231,   367,   358,   158,
                    835:    368,   148,   369,    19,   360,   689,   363,   690,   159,    62,
                    836:    596,   596,   650,   372,   678,   652,   278,   510,   152,   150,
                    837:    553,   555,  -209,  -209,   373,   518,   609,   345,   346,    19,
                    838:    385,   509,   606,   386,   267,   610,   405,  -399,  -399,  -399,
                    839:   -399,   168,   169,   170,   392,  -399,  -399,  -399,     9,    10,
                    840:     11,   586,   393,   590,   545,   546,     5,   407,     7,   236,
                    841:    412,  -399,   386,   621,     9,    10,    11,   413,   459,   460,
                    842:    258,   179,   414,   258,     5,   415,     7,    75,   190,   192,
                    843:     13,   612,     9,    10,    11,   505,   416,   506,    36,   418,
                    844:    422,   510,    76,    72,   423,    77,   169,   170,    13,  -399,
                    845:    634,   427,     9,    10,    11,   573,   510,  -399,   426,   428,
                    846:    429,   439,   102,    78,   677,   455,    79,   596,    19,   435,
                    847:    470,  -211,  -211,    80,   223,   224,    81,   225,   226,   227,
                    848:    228,    82,    83,    84,   472,   482,    19,    85,    86,   180,
                    849:   -202,   483,    87,   507,   492,   495,   677,    89,   496,    90,
                    850:     37,   676,   498,   699,   634,    91,    92,   704,   508,   510,
                    851:    499,   490,   617,   491,   501,   586,   519,   520,     5,    58,
                    852:      7,    59,   521,   524,   510,   510,     9,    10,    11,   530,
                    853:    716,   533,   539,   676,   720,   218,   219,   220,   221,   222,
                    854:    550,   725,    13,   642,   552,   706,     5,    58,     7,    59,
                    855:    556,   377,   -31,   733,     9,    10,    11,   737,   576,    74,
                    856:    577,   581,   741,   592,    76,    72,   658,    77,   582,   591,
                    857:     13,   613,   602,  -242,   636,   643,   656,   510,   641,   510,
                    858:     19,   683,   644,    60,   694,    78,   649,   659,    79,   684,
                    859:    692,   687,   691,   767,   -32,    80,   700,   697,    81,   698,
                    860:    701,   702,   707,    82,    83,    84,   776,   -33,    19,    85,
                    861:     86,   526,   709,   710,    87,    88,   711,   714,   786,    89,
                    862:    715,    90,   717,   724,   727,   734,   794,    91,    92,   726,
                    863:    419,   267,   510,   -99,   -99,   -99,   -99,   -99,   -99,   -99,
                    864:    -99,   -99,   -99,   -99,   -99,   -99,   731,   -99,   -99,   -99,
                    865:    -99,   -99,   -99,   -99,   -99,   -99,   -99,   -99,   -99,   -99,
                    866:    510,   732,   -99,   735,   736,   744,   740,   746,   750,   -99,
                    867:    754,   757,   -99,   761,   765,   768,   770,   -99,   -99,   -99,
                    868:    773,   796,   774,   -99,   -99,   778,   780,   782,   -99,   -99,
                    869:    785,   797,   788,   -99,   793,   -99,   -99,    32,   568,   -99,
                    870:    -99,   -99,   -99,   567,   -99,  -259,  -259,  -259,  -259,  -259,
                    871:   -259,  -259,   167,  -259,  -259,  -259,  -259,  -259,   607,  -259,
                    872:   -259,  -259,  -259,  -259,  -259,  -259,  -259,  -259,  -259,  -259,
                    873:   -259,  -259,   348,   575,  -259,   657,   406,   411,   563,   290,
                    874:    404,  -259,   622,   572,  -259,   777,   779,   549,   594,  -259,
                    875:   -259,  -259,   436,   566,   599,  -259,  -259,   688,   648,   468,
                    876:   -259,  -259,   685,   527,   523,  -259,   357,  -259,  -259,   440,
                    877:    637,  -259,   441,  -259,  -259,   267,  -259,  -259,  -259,   584,
                    878:    425,     0,  -259,  -259,     0,  -259,     0,     0,     0,  -259,
                    879:      0,  -259,  -259,  -259,  -259,  -259,  -259,  -259,  -259,  -259,
                    880:   -259,  -259,     0,  -259,     0,     0,  -259,     0,     0,     0,
                    881:      0,     0,     0,  -259,     0,     0,  -259,     0,     0,     0,
                    882:      0,  -259,  -259,  -259,     0,     0,     0,  -259,  -259,     0,
                    883:      0,     0,  -259,  -259,     0,     0,     0,  -259,     0,  -259,
                    884:   -259,     0,     0,  -259,   624,  -259,  -259,   267,  -259,  -259,
                    885:   -259,     0,     0,     0,  -259,  -259,     0,  -259,     0,     0,
                    886:      0,  -259,     0,  -259,  -259,  -259,  -259,  -259,  -259,  -259,
                    887:   -259,  -259,  -259,  -259,     0,  -259,     0,     0,  -259,     0,
                    888:      0,     0,     0,     0,     0,  -259,     0,     0,  -259,     0,
                    889:      0,     0,     0,  -259,  -259,  -259,     0,     0,     0,  -259,
                    890:   -259,     0,     0,     0,  -259,  -259,     0,     0,     0,  -259,
                    891:      0,  -259,  -259,     0,     0,  -259,  -243,  -259,  -259,   196,
                    892:   -259,    74,     5,     0,     7,    75,    76,    72,     0,    77,
                    893:      9,    10,    11,     0,     0,     5,    58,     7,    59,     0,
                    894:      0,     0,     0,     9,    10,    11,    13,    78,     0,     0,
                    895:     79,     0,     0,     0,     0,     0,     0,    80,     0,    13,
                    896:     81,     0,     0,     0,     0,    82,    83,    84,     0,     0,
                    897:      0,    85,    86,     0,     0,     0,    87,    88,     0,     0,
                    898:      0,    89,     0,    90,    19,     0,     0,     0,     0,    91,
                    899:     92,   505,   -82,   506,    36,     0,     0,    19,    76,    72,
                    900:    554,    77,     0,     0,     0,     0,     5,     6,     7,     8,
                    901:      0,   633,   548,     0,     9,    10,    11,     0,     5,    78,
                    902:      7,    75,    79,     0,     0,     0,     9,    10,    11,    80,
                    903:     13,     0,    81,     0,     0,     0,     0,    82,    83,    84,
                    904:      0,     0,    13,    85,    86,     0,     0,     0,    87,    88,
                    905:      0,     0,     0,    89,     0,    90,    37,     0,     0,     0,
                    906:   -199,    91,    92,   505,   508,   506,    36,     0,    19,     0,
                    907:     76,    72,     0,    77,     0,     0,     0,     0,     0,     0,
                    908:     19,     0,     0,   633,     0,     0,     0,   456,     0,     0,
                    909:      5,    78,     7,    75,    79,     0,     0,     0,     9,    10,
                    910:     11,    80,     0,     0,    81,     0,     0,     0,     0,    82,
                    911:     83,    84,     0,     0,    13,    85,    86,     0,     0,     0,
                    912:     87,    88,     0,     0,     0,    89,     0,    90,    37,     0,
                    913:      0,     0,   682,    91,    92,   505,   508,   506,    36,     0,
                    914:      0,     0,    76,    72,     0,    77,     0,     0,     0,     0,
                    915:      0,     0,    19,   457,     0,   458,  -354,     0,     0,     0,
                    916:      0,     0,     5,    78,     7,   236,    79,     0,     0,     0,
                    917:      9,    10,    11,    80,     0,     0,    81,     0,     0,     0,
                    918:      0,    82,    83,    84,     0,     0,    13,    85,    86,     0,
                    919:      0,     0,    87,   507,     0,     0,     0,    89,     0,    90,
                    920:     37,     0,     0,     0,   574,    91,    92,   505,   508,    74,
                    921:      0,     0,     0,     0,    76,    72,   151,    77,     0,   -27,
                    922:    -27,   -27,   -27,     0,    19,     0,     0,   -27,   -27,   -27,
                    923:      0,     0,     0,     0,     0,    78,     0,     0,    79,     0,
                    924:      0,     0,   152,   -27,     0,    80,  -136,     0,    81,     0,
                    925:   -136,     0,     0,    82,    83,    84,     0,     0,     0,    85,
                    926:     86,     0,     0,     0,    87,    88,     0,     0,     0,    89,
                    927:      0,    90,     0,   153,   154,     0,     0,    91,    92,     0,
                    928:    508,   -27,     0,     0,  -136,     0,     0,   285,  -136,   -27,
                    929:    -23,   -23,   -23,   -23,     0,     0,     0,     0,   -23,   -23,
                    930:    -23,   211,   212,   213,   214,   215,   216,   217,   218,   219,
                    931:    220,   221,   222,   152,   -23,     0,     0,  -136,     0,     0,
                    932:    279,  -136,     0,   -19,   -19,   -19,   -19,     0,     0,     0,
                    933:      0,   -19,   -19,   -19,   213,   214,   215,   216,   217,   218,
                    934:    219,   220,   221,   222,   153,   154,   152,   -19,     0,     0,
                    935:   -136,     0,   -23,     0,  -136,  -136,     0,     0,    74,  -136,
                    936:    -23,     0,     0,    76,    72,     0,    77,     0,   376,     0,
                    937:    377,     5,     6,     7,     8,     0,     0,     0,     0,     9,
                    938:     10,    11,     0,     0,    78,   -19,     0,    79,  -136,     0,
                    939:      0,     0,  -136,   -19,    80,    13,     0,    81,     0,     0,
                    940:      0,     0,    82,    83,    84,     0,     0,     0,    85,    86,
                    941:      0,    74,     0,    87,    88,     0,    76,    72,    89,    77,
                    942:     90,     0,     0,     0,     0,     0,    91,    92,     0,     0,
                    943:    265,     0,     0,    19,     0,  -318,     0,    78,     0,     0,
                    944:     79,     0,     0,     0,     0,     0,    74,    80,     0,     0,
                    945:     81,    76,    72,     0,    77,    82,    83,    84,     0,     0,
                    946:      0,    85,    86,     0,     0,     0,    87,    88,     0,     0,
                    947:      0,    89,    78,    90,     0,    79,     0,     0,     0,    91,
                    948:     92,    74,    80,   343,     0,    81,    76,    72,     0,    77,
                    949:     82,    83,    84,     0,     0,     0,    85,    86,     0,     0,
                    950:      0,    87,    88,     0,     0,     0,    89,    78,    90,     0,
                    951:     79,     0,     0,     0,    91,    92,    74,    80,   400,     0,
                    952:     81,    76,    72,     0,    77,    82,    83,    84,     0,     0,
                    953:      0,    85,    86,     0,     0,     0,    87,    88,     0,     0,
                    954:      0,    89,    78,    90,     0,    79,     0,     0,     0,    91,
                    955:     92,     0,    80,   437,     0,    81,     0,     0,     0,     0,
                    956:     82,    83,    84,     0,     0,     0,    85,    86,     0,     0,
                    957:      0,    87,    88,     0,     0,     0,    89,     0,    90,     0,
                    958:      0,     0,     0,     0,    91,    92,     0,     0,   605,   506,
                    959:    661,     6,     7,     8,    76,    72,     0,    77,     9,    10,
                    960:     11,   662,     0,   663,   664,   665,   666,   667,   668,   669,
                    961:    670,   671,   672,   673,    13,    78,     0,     0,    79,     0,
                    962:      0,     0,     0,     0,     0,    80,     0,     0,    81,     0,
                    963:      0,     0,     0,    82,    83,    84,     0,     0,     0,    85,
                    964:     86,     0,     0,     0,    87,    88,     0,     0,     0,    89,
                    965:      0,    90,   674,     0,     0,   675,     0,    91,    92,     0,
                    966:    303,   506,    36,     0,     0,     0,    76,    72,     0,    77,
                    967:      0,     0,     0,   662,     0,   663,   664,   665,   666,   667,
                    968:    668,   669,   670,   671,   672,   673,     0,    78,     0,     0,
                    969:     79,     0,     0,     0,     0,     0,     0,    80,     0,     0,
                    970:     81,     0,     0,     0,     0,    82,    83,    84,     0,     0,
                    971:      0,    85,    86,     0,     0,     0,    87,    88,     0,     0,
                    972:      0,    89,     0,    90,    37,     0,     0,   675,     0,    91,
                    973:     92,     0,   303,   108,   109,     0,   110,   111,     0,     0,
                    974:      0,   112,   113,   114,   115,   116,   117,   118,   119,   120,
                    975:    121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
                    976:     74,     5,     0,     7,    75,    76,    72,   131,    77,     9,
                    977:     10,    11,   210,   211,   212,   213,   214,   215,   216,   217,
                    978:    218,   219,   220,   221,   222,    13,    78,     0,     0,    79,
                    979:      0,     0,     0,     0,     0,     0,    80,     0,     0,    81,
                    980:      0,     0,     0,   243,    82,    83,    84,     0,     0,     0,
                    981:     85,    86,     0,    74,     0,    87,    88,     0,    76,    72,
                    982:     89,    77,    90,    19,     0,     0,     0,     0,    91,    92,
                    983:    214,   215,   216,   217,   218,   219,   220,   221,   222,    78,
                    984:      0,     0,    79,     0,     0,     0,     0,     0,    74,    80,
                    985:      0,     0,    81,    76,    72,     0,    77,    82,    83,    84,
                    986:      0,     0,     0,    85,    86,     0,     0,     0,    87,    88,
                    987:      0,     0,     0,    89,    78,    90,   306,    79,     0,     0,
                    988:      0,    91,    92,    74,    80,     0,     0,    81,    76,    72,
                    989:      0,    77,    82,    83,    84,     0,     0,     0,    85,    86,
                    990:      0,     0,     0,    87,    88,     0,     0,     0,    89,    78,
                    991:     90,     0,    79,     0,   703,     0,    91,    92,    74,    80,
                    992:      0,     0,    81,    76,    72,     0,    77,    82,    83,    84,
                    993:      0,     0,     0,    85,    86,     0,     0,     0,   189,    88,
                    994:      0,     0,     0,    89,    78,    90,     0,    79,     0,     0,
                    995:      0,    91,    92,    74,    80,     0,     0,    81,    76,    72,
                    996:      0,    77,    82,    83,    84,     0,     0,     0,    85,    86,
                    997:      0,     0,     0,   191,    88,     0,     0,     0,    89,    78,
                    998:     90,     0,    79,     0,     0,     0,    91,    92,     0,    80,
                    999:      0,     0,    81,     0,     0,     0,     0,    82,    83,    84,
                   1000:      0,     0,     0,    85,    86,     0,     0,     0,    87,    88,
                   1001:      0,     0,     0,    89,   456,    90,     0,     5,     0,     7,
                   1002:     75,    91,    92,     0,     0,     9,    10,    11,   212,   213,
                   1003:    214,   215,   216,   217,   218,   219,   220,   221,   222,     0,
                   1004:      4,    13,  -103,     5,     6,     7,     8,     0,     0,     0,
                   1005:      0,     9,    10,    11,     0,     0,     0,     0,     4,     0,
                   1006:   -103,     5,     6,     7,     8,     0,    12,    13,     0,     9,
                   1007:     10,    11,   216,   217,   218,   219,   220,   221,   222,    19,
                   1008:      0,     0,   458,  -353,     0,    13,    14,    15,  -103,   215,
                   1009:    216,   217,   218,   219,   220,   221,   222,  -103,     0,    16,
                   1010:     17,    18,     0,     0,     0,    19,  -103,     4,    20,  -103,
                   1011:      5,     6,     7,     8,     0,  -103,     0,     0,     9,    10,
                   1012:     11,     0,     0,    19,     0,     0,    20,    50,     5,    58,
                   1013:      7,    59,     0,     0,    13,     0,     9,    10,    11,     0,
                   1014:      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
                   1015:      0,     0,    13,   364,   365,  -103,     0,     0,     0,     0,
                   1016:      0,     0,     0,     0,  -103,     0,     0,     0,     0,     0,
                   1017:      0,     0,    19,   479,     0,    20,     0,     0,     0,     0,
                   1018:      0,     0,   475,   231,   108,   109,     0,   110,   111,     0,
                   1019:     19,     0,   112,   113,   114,   115,   116,   117,   118,   119,
                   1020:    120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
                   1021:    130,     0,     0,     0,     0,     0,     0,     0,   131,   206,
                   1022:    207,   208,     0,   209,   210,   211,   212,   213,   214,   215,
                   1023:    216,   217,   218,   219,   220,   221,   222,     0,     0,   132,
                   1024:      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
                   1025:      0,     0,     0,   108,   109,     0,   110,   111,     0,     0,
                   1026:    629,   112,   113,   114,   115,   116,   117,   118,   119,   120,
                   1027:    121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
                   1028:    108,   109,     0,   110,   111,     0,     0,   309,   112,   113,
                   1029:    114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
                   1030:    124,   125,   126,   127,   128,   129,   130,   108,   109,     0,
                   1031:    110,   111,     0,     0,   131,   112,   113,   114,   115,   116,
                   1032:    117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
                   1033:    127,   128,   129,   130,     0,     0,     0,     0,     0,   273,
                   1034:      0,   513,   206,   207,   208,     0,   209,   210,   211,   212,
                   1035:    213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
                   1036:    206,   207,   208,   712,   209,   210,   211,   212,   213,   214,
                   1037:    215,   216,   217,   218,   219,   220,   221,   222,   206,   207,
                   1038:    208,     0,   209,   210,   211,   212,   213,   214,   215,   216,
                   1039:    217,   218,   219,   220,   221,   222,   208,     0,   209,   210,
                   1040:    211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
                   1041:    221,   222
                   1042: };
                   1043: 
                   1044: static const short yycheck[] = {    44,
                   1045:     57,    45,     9,    10,    11,     2,     3,     2,     3,    16,
                   1046:     17,    61,    68,    68,    26,   155,   162,   135,    47,   227,
                   1047:     24,   270,   198,   158,   281,    25,    26,   269,   135,   282,
                   1048:    359,    63,   410,    45,   256,   101,    42,   253,   104,   150,
                   1049:      1,   378,    84,    87,   234,   697,    87,   159,    52,     1,
                   1050:     27,    93,     9,     1,     3,     4,    68,    61,    10,     9,
                   1051:     68,     0,     9,    68,   230,    73,     1,    37,    73,     4,
                   1052:      5,     6,     7,    80,   569,    87,   493,    12,    13,    14,
                   1053:     37,    58,    59,   201,    69,    27,     3,     4,    73,    10,
                   1054:    342,   132,   104,    28,   229,     0,   748,    74,    68,     3,
                   1055:      4,     1,   354,    58,     4,     5,     6,     7,    69,   351,
                   1056:    154,    68,    12,    13,    14,   261,    37,    66,    68,    64,
                   1057:    132,    68,    74,   775,   131,   454,    74,   622,    28,    58,
                   1058:    270,    66,    74,   140,   141,   167,     3,   144,   145,    74,
                   1059:    280,     3,     4,   147,   561,   189,   286,   191,   189,    66,
                   1060:    191,   193,   292,    69,   294,   159,   200,    74,   348,   576,
                   1061:    577,   202,    66,   275,    74,     3,    66,   278,     3,     4,
                   1062:     74,   183,    37,   339,    74,     3,     4,   189,   184,   191,
                   1063:    186,   181,    49,   183,   228,    70,    74,   231,    73,     3,
                   1064:    202,    58,   570,     7,   312,    37,    58,    74,   239,     3,
                   1065:      4,   696,   234,    68,    66,   447,   535,   544,    58,     3,
                   1066:      4,    49,   629,     7,   631,    37,    58,   262,   225,   226,
                   1067:     58,    59,    69,    58,     3,     9,    73,   239,   723,     8,
                   1068:    452,    66,    74,   728,   729,    49,    58,    68,    66,   283,
                   1069:    247,    70,    73,   738,    58,    49,    74,   469,   626,     7,
                   1070:    745,   467,    74,   253,   749,    49,   253,    70,   253,    69,
                   1071:     70,   756,    66,   305,    58,   760,    27,   684,    69,     3,
                   1072:      4,   275,    73,   205,   206,   207,    58,   209,   210,   211,
                   1073:    212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
                   1074:    222,    49,   545,    31,   789,   712,    58,    58,    59,    37,
                   1075:     58,    59,   346,   421,    68,   513,   362,   362,   565,   475,
                   1076:    486,   640,   378,   379,   355,    49,   348,    47,    48,   568,
                   1077:    280,    58,    59,   441,    58,     1,   286,   569,     4,     5,
                   1078:      6,     7,    62,    73,   441,     9,    12,    13,    14,   474,
                   1079:     49,    50,    51,   355,   479,     3,     4,     3,     4,     3,
                   1080:    362,     7,    28,     7,   351,   287,   351,   369,    68,   499,
                   1081:     37,   448,   502,   367,   451,    62,    69,   379,   368,   369,
                   1082:     73,     3,     4,   581,   378,   379,    49,    58,   544,    37,
                   1083:    622,   547,    31,    58,    59,    58,    59,    58,    59,    35,
                   1084:     66,    49,    68,    49,   391,    49,   391,    68,   516,    69,
                   1085:     58,   658,    58,    59,    58,    59,    73,   494,    58,    59,
                   1086:    497,     4,   419,     6,     7,    66,   466,    49,    68,    12,
                   1087:     13,    14,    69,     3,     4,    69,    58,    59,   568,    73,
                   1088:     68,   443,   439,   462,   463,    28,    69,     4,     5,     6,
                   1089:      7,    68,   442,   500,    74,    12,    13,    14,   460,   446,
                   1090:     68,   446,   628,    68,    58,    59,    49,    37,    10,   459,
                   1091:    460,    28,   466,   609,    68,    58,    59,   467,    74,    49,
                   1092:    467,   475,   467,    66,    68,   651,    62,   653,    58,   491,
                   1093:    537,   538,    69,    74,   660,    69,    73,   419,    27,    73,
                   1094:    490,   491,    69,    70,    68,   427,   553,    58,    59,    66,
                   1095:     75,   508,   546,    69,     1,   555,    70,     4,     5,     6,
                   1096:      7,     5,     6,     7,    58,    12,    13,    14,    12,    13,
                   1097:     14,   525,    35,   530,    58,    59,     4,    68,     6,     7,
                   1098:     70,    28,    69,    70,    12,    13,    14,    70,   594,   594,
                   1099:    544,     1,    68,   547,     4,    68,     6,     7,    77,    78,
                   1100:     28,   555,    12,    13,    14,     1,    70,     3,     4,    68,
                   1101:     37,   493,     8,     9,    68,    11,     6,     7,    28,    66,
                   1102:    577,    37,    12,    13,    14,   507,   508,    74,    68,    68,
                   1103:     75,    68,   594,    29,   628,    70,    32,   644,    66,    75,
                   1104:     70,    69,    70,    39,    53,    54,    42,    56,    57,    58,
                   1105:     59,    47,    48,    49,    68,    68,    66,    53,    54,    69,
                   1106:     70,    73,    58,    59,    58,    35,   660,    63,    75,    65,
                   1107:     66,   628,    70,   667,   631,    71,    72,   671,    74,   561,
                   1108:     73,   628,   564,   628,    33,   639,    68,    68,     4,     5,
                   1109:      6,     7,    75,    69,   576,   577,    12,    13,    14,    68,
                   1110:    694,    62,    69,   660,   698,    47,    48,    49,    50,    51,
                   1111:      3,   705,    28,   595,    69,   672,     4,     5,     6,     7,
                   1112:      3,     3,    37,   717,    12,    13,    14,   721,    37,     3,
                   1113:     73,    37,   727,    62,     8,     9,   618,    11,    75,    70,
                   1114:     28,    58,    70,    70,    70,    37,    68,   629,    62,   631,
                   1115:     66,   633,    73,    69,    58,    29,    75,    70,    32,    37,
                   1116:     68,   643,    73,   757,    37,    39,    37,    58,    42,    58,
                   1117:     69,    69,     7,    47,    48,    49,   770,    37,    66,    53,
                   1118:     54,    69,    37,    69,    58,    59,    16,    62,   783,    63,
                   1119:      8,    65,    58,    69,    58,    17,   791,    71,    72,    69,
                   1120:     74,     1,   684,     3,     4,     5,     6,     7,     8,     9,
                   1121:     10,    11,    12,    13,    14,    15,    73,    17,    18,    19,
                   1122:     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
                   1123:    712,    68,    32,    69,    68,     8,    69,    68,    37,    39,
                   1124:     68,    58,    42,     9,    69,    69,    58,    47,    48,    49,
                   1125:     73,     0,    68,    53,    54,    69,    69,    68,    58,    59,
                   1126:     68,     0,    69,    63,    69,    65,    66,     3,   502,    69,
                   1127:     70,    71,    72,     1,    74,     3,     4,     5,     6,     7,
                   1128:      8,     9,    62,    11,    12,    13,    14,    15,   553,    17,
                   1129:     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
                   1130:     28,    29,   237,   508,    32,   615,   290,   294,   499,   176,
                   1131:    288,    39,   568,   503,    42,   771,   773,   483,   536,    47,
                   1132:     48,    49,   345,   501,   538,    53,    54,   644,   601,   370,
                   1133:     58,    59,   639,   446,   441,    63,   248,    65,    66,   350,
                   1134:    581,    69,   350,    71,    72,     1,    74,     3,     4,   516,
                   1135:    312,    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    15,
                   1136:     -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
                   1137:     26,    27,    -1,    29,    -1,    -1,    32,    -1,    -1,    -1,
                   1138:     -1,    -1,    -1,    39,    -1,    -1,    42,    -1,    -1,    -1,
                   1139:     -1,    47,    48,    49,    -1,    -1,    -1,    53,    54,    -1,
                   1140:     -1,    -1,    58,    59,    -1,    -1,    -1,    63,    -1,    65,
                   1141:     66,    -1,    -1,    69,    70,    71,    72,     1,    74,     3,
                   1142:      4,    -1,    -1,    -1,     8,     9,    -1,    11,    -1,    -1,
                   1143:     -1,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
                   1144:     24,    25,    26,    27,    -1,    29,    -1,    -1,    32,    -1,
                   1145:     -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    42,    -1,
                   1146:     -1,    -1,    -1,    47,    48,    49,    -1,    -1,    -1,    53,
                   1147:     54,    -1,    -1,    -1,    58,    59,    -1,    -1,    -1,    63,
                   1148:     -1,    65,    66,    -1,    -1,    69,    70,    71,    72,     1,
                   1149:     74,     3,     4,    -1,     6,     7,     8,     9,    -1,    11,
                   1150:     12,    13,    14,    -1,    -1,     4,     5,     6,     7,    -1,
                   1151:     -1,    -1,    -1,    12,    13,    14,    28,    29,    -1,    -1,
                   1152:     32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    28,
                   1153:     42,    -1,    -1,    -1,    -1,    47,    48,    49,    -1,    -1,
                   1154:     -1,    53,    54,    -1,    -1,    -1,    58,    59,    -1,    -1,
                   1155:     -1,    63,    -1,    65,    66,    -1,    -1,    -1,    -1,    71,
                   1156:     72,     1,    74,     3,     4,    -1,    -1,    66,     8,     9,
                   1157:     69,    11,    -1,    -1,    -1,    -1,     4,     5,     6,     7,
                   1158:     -1,    21,    10,    -1,    12,    13,    14,    -1,     4,    29,
                   1159:      6,     7,    32,    -1,    -1,    -1,    12,    13,    14,    39,
                   1160:     28,    -1,    42,    -1,    -1,    -1,    -1,    47,    48,    49,
                   1161:     -1,    -1,    28,    53,    54,    -1,    -1,    -1,    58,    59,
                   1162:     -1,    -1,    -1,    63,    -1,    65,    66,    -1,    -1,    -1,
                   1163:     70,    71,    72,     1,    74,     3,     4,    -1,    66,    -1,
                   1164:      8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,
                   1165:     66,    -1,    -1,    21,    -1,    -1,    -1,     1,    -1,    -1,
                   1166:      4,    29,     6,     7,    32,    -1,    -1,    -1,    12,    13,
                   1167:     14,    39,    -1,    -1,    42,    -1,    -1,    -1,    -1,    47,
                   1168:     48,    49,    -1,    -1,    28,    53,    54,    -1,    -1,    -1,
                   1169:     58,    59,    -1,    -1,    -1,    63,    -1,    65,    66,    -1,
                   1170:     -1,    -1,    70,    71,    72,     1,    74,     3,     4,    -1,
                   1171:     -1,    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,
                   1172:     -1,    -1,    66,    67,    -1,    69,    70,    -1,    -1,    -1,
                   1173:     -1,    -1,     4,    29,     6,     7,    32,    -1,    -1,    -1,
                   1174:     12,    13,    14,    39,    -1,    -1,    42,    -1,    -1,    -1,
                   1175:     -1,    47,    48,    49,    -1,    -1,    28,    53,    54,    -1,
                   1176:     -1,    -1,    58,    59,    -1,    -1,    -1,    63,    -1,    65,
                   1177:     66,    -1,    -1,    -1,    70,    71,    72,     1,    74,     3,
                   1178:     -1,    -1,    -1,    -1,     8,     9,     1,    11,    -1,     4,
                   1179:      5,     6,     7,    -1,    66,    -1,    -1,    12,    13,    14,
                   1180:     -1,    -1,    -1,    -1,    -1,    29,    -1,    -1,    32,    -1,
                   1181:     -1,    -1,    27,    28,    -1,    39,    31,    -1,    42,    -1,
                   1182:     35,    -1,    -1,    47,    48,    49,    -1,    -1,    -1,    53,
                   1183:     54,    -1,    -1,    -1,    58,    59,    -1,    -1,    -1,    63,
                   1184:     -1,    65,    -1,    58,    59,    -1,    -1,    71,    72,    -1,
                   1185:     74,    66,    -1,    -1,    69,    -1,    -1,     1,    73,    74,
                   1186:      4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
                   1187:     14,    40,    41,    42,    43,    44,    45,    46,    47,    48,
                   1188:     49,    50,    51,    27,    28,    -1,    -1,    31,    -1,    -1,
                   1189:      1,    35,    -1,     4,     5,     6,     7,    -1,    -1,    -1,
                   1190:     -1,    12,    13,    14,    42,    43,    44,    45,    46,    47,
                   1191:     48,    49,    50,    51,    58,    59,    27,    28,    -1,    -1,
                   1192:     31,    -1,    66,    -1,    35,    69,    -1,    -1,     3,    73,
                   1193:     74,    -1,    -1,     8,     9,    -1,    11,    -1,     1,    -1,
                   1194:      3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
                   1195:     13,    14,    -1,    -1,    29,    66,    -1,    32,    69,    -1,
                   1196:     -1,    -1,    73,    74,    39,    28,    -1,    42,    -1,    -1,
                   1197:     -1,    -1,    47,    48,    49,    -1,    -1,    -1,    53,    54,
                   1198:     -1,     3,    -1,    58,    59,    -1,     8,     9,    63,    11,
                   1199:     65,    -1,    -1,    -1,    -1,    -1,    71,    72,    -1,    -1,
                   1200:     75,    -1,    -1,    66,    -1,    68,    -1,    29,    -1,    -1,
                   1201:     32,    -1,    -1,    -1,    -1,    -1,     3,    39,    -1,    -1,
                   1202:     42,     8,     9,    -1,    11,    47,    48,    49,    -1,    -1,
                   1203:     -1,    53,    54,    -1,    -1,    -1,    58,    59,    -1,    -1,
                   1204:     -1,    63,    29,    65,    -1,    32,    -1,    -1,    -1,    71,
                   1205:     72,     3,    39,    75,    -1,    42,     8,     9,    -1,    11,
                   1206:     47,    48,    49,    -1,    -1,    -1,    53,    54,    -1,    -1,
                   1207:     -1,    58,    59,    -1,    -1,    -1,    63,    29,    65,    -1,
                   1208:     32,    -1,    -1,    -1,    71,    72,     3,    39,    75,    -1,
                   1209:     42,     8,     9,    -1,    11,    47,    48,    49,    -1,    -1,
                   1210:     -1,    53,    54,    -1,    -1,    -1,    58,    59,    -1,    -1,
                   1211:     -1,    63,    29,    65,    -1,    32,    -1,    -1,    -1,    71,
                   1212:     72,    -1,    39,    75,    -1,    42,    -1,    -1,    -1,    -1,
                   1213:     47,    48,    49,    -1,    -1,    -1,    53,    54,    -1,    -1,
                   1214:     -1,    58,    59,    -1,    -1,    -1,    63,    -1,    65,    -1,
                   1215:     -1,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,     3,
                   1216:      4,     5,     6,     7,     8,     9,    -1,    11,    12,    13,
                   1217:     14,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
                   1218:     24,    25,    26,    27,    28,    29,    -1,    -1,    32,    -1,
                   1219:     -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    42,    -1,
                   1220:     -1,    -1,    -1,    47,    48,    49,    -1,    -1,    -1,    53,
                   1221:     54,    -1,    -1,    -1,    58,    59,    -1,    -1,    -1,    63,
                   1222:     -1,    65,    66,    -1,    -1,    69,    -1,    71,    72,    -1,
                   1223:     74,     3,     4,    -1,    -1,    -1,     8,     9,    -1,    11,
                   1224:     -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,    21,
                   1225:     22,    23,    24,    25,    26,    27,    -1,    29,    -1,    -1,
                   1226:     32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
                   1227:     42,    -1,    -1,    -1,    -1,    47,    48,    49,    -1,    -1,
                   1228:     -1,    53,    54,    -1,    -1,    -1,    58,    59,    -1,    -1,
                   1229:     -1,    63,    -1,    65,    66,    -1,    -1,    69,    -1,    71,
                   1230:     72,    -1,    74,     3,     4,    -1,     6,     7,    -1,    -1,
                   1231:     -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
                   1232:     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
                   1233:      3,     4,    -1,     6,     7,     8,     9,    37,    11,    12,
                   1234:     13,    14,    39,    40,    41,    42,    43,    44,    45,    46,
                   1235:     47,    48,    49,    50,    51,    28,    29,    -1,    -1,    32,
                   1236:     -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    42,
                   1237:     -1,    -1,    -1,    73,    47,    48,    49,    -1,    -1,    -1,
                   1238:     53,    54,    -1,     3,    -1,    58,    59,    -1,     8,     9,
                   1239:     63,    11,    65,    66,    -1,    -1,    -1,    -1,    71,    72,
                   1240:     43,    44,    45,    46,    47,    48,    49,    50,    51,    29,
                   1241:     -1,    -1,    32,    -1,    -1,    -1,    -1,    -1,     3,    39,
                   1242:     -1,    -1,    42,     8,     9,    -1,    11,    47,    48,    49,
                   1243:     -1,    -1,    -1,    53,    54,    -1,    -1,    -1,    58,    59,
                   1244:     -1,    -1,    -1,    63,    29,    65,    66,    32,    -1,    -1,
                   1245:     -1,    71,    72,     3,    39,    -1,    -1,    42,     8,     9,
                   1246:     -1,    11,    47,    48,    49,    -1,    -1,    -1,    53,    54,
                   1247:     -1,    -1,    -1,    58,    59,    -1,    -1,    -1,    63,    29,
                   1248:     65,    -1,    32,    -1,    69,    -1,    71,    72,     3,    39,
                   1249:     -1,    -1,    42,     8,     9,    -1,    11,    47,    48,    49,
                   1250:     -1,    -1,    -1,    53,    54,    -1,    -1,    -1,    58,    59,
                   1251:     -1,    -1,    -1,    63,    29,    65,    -1,    32,    -1,    -1,
                   1252:     -1,    71,    72,     3,    39,    -1,    -1,    42,     8,     9,
                   1253:     -1,    11,    47,    48,    49,    -1,    -1,    -1,    53,    54,
                   1254:     -1,    -1,    -1,    58,    59,    -1,    -1,    -1,    63,    29,
                   1255:     65,    -1,    32,    -1,    -1,    -1,    71,    72,    -1,    39,
                   1256:     -1,    -1,    42,    -1,    -1,    -1,    -1,    47,    48,    49,
                   1257:     -1,    -1,    -1,    53,    54,    -1,    -1,    -1,    58,    59,
                   1258:     -1,    -1,    -1,    63,     1,    65,    -1,     4,    -1,     6,
                   1259:      7,    71,    72,    -1,    -1,    12,    13,    14,    41,    42,
                   1260:     43,    44,    45,    46,    47,    48,    49,    50,    51,    -1,
                   1261:      1,    28,     3,     4,     5,     6,     7,    -1,    -1,    -1,
                   1262:     -1,    12,    13,    14,    -1,    -1,    -1,    -1,     1,    -1,
                   1263:      3,     4,     5,     6,     7,    -1,    27,    28,    -1,    12,
                   1264:     13,    14,    45,    46,    47,    48,    49,    50,    51,    66,
                   1265:     -1,    -1,    69,    70,    -1,    28,    47,    48,    49,    44,
                   1266:     45,    46,    47,    48,    49,    50,    51,    58,    -1,    60,
                   1267:     61,    62,    -1,    -1,    -1,    66,    49,     1,    69,     3,
                   1268:      4,     5,     6,     7,    -1,    58,    -1,    -1,    12,    13,
                   1269:     14,    -1,    -1,    66,    -1,    -1,    69,     3,     4,     5,
                   1270:      6,     7,    -1,    -1,    28,    -1,    12,    13,    14,    -1,
                   1271:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
                   1272:     -1,    -1,    28,    47,    48,    49,    -1,    -1,    -1,    -1,
                   1273:     -1,    -1,    -1,    -1,    58,    -1,    -1,    -1,    -1,    -1,
                   1274:     -1,    -1,    66,    49,    -1,    69,    -1,    -1,    -1,    -1,
                   1275:     -1,    -1,    58,    59,     3,     4,    -1,     6,     7,    -1,
                   1276:     66,    -1,    11,    12,    13,    14,    15,    16,    17,    18,
                   1277:     19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
                   1278:     29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    34,
                   1279:     35,    36,    -1,    38,    39,    40,    41,    42,    43,    44,
                   1280:     45,    46,    47,    48,    49,    50,    51,    -1,    -1,    58,
                   1281:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
                   1282:     -1,    -1,    -1,     3,     4,    -1,     6,     7,    -1,    -1,
                   1283:     75,    11,    12,    13,    14,    15,    16,    17,    18,    19,
                   1284:     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
                   1285:      3,     4,    -1,     6,     7,    -1,    -1,    37,    11,    12,
                   1286:     13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
                   1287:     23,    24,    25,    26,    27,    28,    29,     3,     4,    -1,
                   1288:      6,     7,    -1,    -1,    37,    11,    12,    13,    14,    15,
                   1289:     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
                   1290:     26,    27,    28,    29,    -1,    -1,    -1,    -1,    -1,    31,
                   1291:     -1,    37,    34,    35,    36,    -1,    38,    39,    40,    41,
                   1292:     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
                   1293:     34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
                   1294:     44,    45,    46,    47,    48,    49,    50,    51,    34,    35,
                   1295:     36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
                   1296:     46,    47,    48,    49,    50,    51,    36,    -1,    38,    39,
                   1297:     40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
                   1298:     50,    51
                   1299: };
                   1300: /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
                   1301: #line 3 "bison.simple"
                   1302: 
                   1303: /* Skeleton output parser for bison,
                   1304:    Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
                   1305: 
                   1306:    This program is free software; you can redistribute it and/or modify
                   1307:    it under the terms of the GNU General Public License as published by
                   1308:    the Free Software Foundation; either version 1, or (at your option)
                   1309:    any later version.
                   1310: 
                   1311:    This program is distributed in the hope that it will be useful,
                   1312:    but WITHOUT ANY WARRANTY; without even the implied warranty of
                   1313:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                   1314:    GNU General Public License for more details.
                   1315: 
                   1316:    You should have received a copy of the GNU General Public License
                   1317:    along with this program; if not, write to the Free Software
                   1318:    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
                   1319: 
                   1320: 
                   1321: #ifndef alloca
                   1322: #ifdef __GNUC__
                   1323: #define alloca __builtin_alloca
                   1324: #else /* not GNU C.  */
                   1325: #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
                   1326: #include <alloca.h>
                   1327: #else /* not sparc */
                   1328: #if defined (MSDOS) && !defined (__TURBOC__)
                   1329: #include <malloc.h>
                   1330: #else /* not MSDOS, or __TURBOC__ */
                   1331: #if defined(_AIX)
                   1332: #include <malloc.h>
                   1333:  #pragma alloca
                   1334: #endif /* not _AIX */
                   1335: #endif /* not MSDOS, or __TURBOC__ */
                   1336: #endif /* not sparc.  */
                   1337: #endif /* not GNU C.  */
                   1338: #endif /* alloca not defined.  */
                   1339: 
                   1340: /* This is the parser code that is written into each bison parser
                   1341:   when the %semantic_parser declaration is not specified in the grammar.
                   1342:   It was written by Richard Stallman by simplifying the hairy parser
                   1343:   used when %semantic_parser is specified.  */
                   1344: 
                   1345: /* Note: there must be only one dollar sign in this file.
                   1346:    It is replaced by the list of actions, each action
                   1347:    as one case of the switch.  */
                   1348: 
                   1349: #define yyerrok                (yyerrstatus = 0)
                   1350: #define yyclearin      (yychar = YYEMPTY)
                   1351: #define YYEMPTY                -2
                   1352: #define YYEOF          0
                   1353: #define YYACCEPT       return(0)
                   1354: #define YYABORT        return(1)
                   1355: #define YYERROR                goto yyerrlab1
                   1356: /* Like YYERROR except do call yyerror.
                   1357:    This remains here temporarily to ease the
                   1358:    transition to the new meaning of YYERROR, for GCC.
                   1359:    Once GCC version 2 has supplanted version 1, this can go.  */
                   1360: #define YYFAIL         goto yyerrlab
                   1361: #define YYRECOVERING()  (!!yyerrstatus)
                   1362: #define YYBACKUP(token, value) \
                   1363: do                                                             \
                   1364:   if (yychar == YYEMPTY && yylen == 1)                         \
                   1365:     { yychar = (token), yylval = (value);                      \
                   1366:       yychar1 = YYTRANSLATE (yychar);                          \
                   1367:       YYPOPSTACK;                                              \
                   1368:       goto yybackup;                                           \
                   1369:     }                                                          \
                   1370:   else                                                         \
                   1371:     { yyerror ("syntax error: cannot back up"); YYERROR; }     \
                   1372: while (0)
                   1373: 
                   1374: #define YYTERROR       1
                   1375: #define YYERRCODE      256
                   1376: 
                   1377: #ifndef YYPURE
                   1378: #define YYLEX          yylex()
                   1379: #endif
                   1380: 
                   1381: #ifdef YYPURE
                   1382: #ifdef YYLSP_NEEDED
                   1383: #define YYLEX          yylex(&yylval, &yylloc)
                   1384: #else
                   1385: #define YYLEX          yylex(&yylval)
                   1386: #endif
                   1387: #endif
                   1388: 
                   1389: /* If nonreentrant, generate the variables here */
                   1390: 
                   1391: #ifndef YYPURE
                   1392: 
                   1393: int    yychar;                 /*  the lookahead symbol                */
                   1394: YYSTYPE        yylval;                 /*  the semantic value of the           */
                   1395:                                /*  lookahead symbol                    */
                   1396: 
                   1397: #ifdef YYLSP_NEEDED
                   1398: YYLTYPE yylloc;                        /*  location data for the lookahead     */
                   1399:                                /*  symbol                              */
                   1400: #endif
                   1401: 
                   1402: int yynerrs;                   /*  number of parse errors so far       */
                   1403: #endif  /* not YYPURE */
                   1404: 
                   1405: #if YYDEBUG != 0
                   1406: int yydebug;                   /*  nonzero means print parse trace     */
                   1407: /* Since this is uninitialized, it does not stop multiple parsers
                   1408:    from coexisting.  */
                   1409: #endif
                   1410: 
                   1411: /*  YYINITDEPTH indicates the initial size of the parser's stacks      */
                   1412: 
                   1413: #ifndef        YYINITDEPTH
                   1414: #define YYINITDEPTH 200
                   1415: #endif
                   1416: 
                   1417: /*  YYMAXDEPTH is the maximum size the stacks can grow to
                   1418:     (effective only if the built-in stack extension method is used).  */
                   1419: 
                   1420: #if YYMAXDEPTH == 0
                   1421: #undef YYMAXDEPTH
                   1422: #endif
                   1423: 
                   1424: #ifndef YYMAXDEPTH
                   1425: #define YYMAXDEPTH 10000
                   1426: #endif
                   1427: 
                   1428: #if __GNUC__ > 1               /* GNU C and GNU C++ define this.  */
                   1429: #define __yy_bcopy(FROM,TO,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
                   1430: #else                          /* not GNU C or C++ */
                   1431: #ifndef __cplusplus
                   1432: 
                   1433: /* This is the most reliable way to avoid incompatibilities
                   1434:    in available built-in functions on various systems.  */
                   1435: static void
                   1436: __yy_bcopy (from, to, count)
                   1437:      char *from;
                   1438:      char *to;
                   1439:      int count;
                   1440: {
                   1441:   register char *f = from;
                   1442:   register char *t = to;
                   1443:   register int i = count;
                   1444: 
                   1445:   while (i-- > 0)
                   1446:     *t++ = *f++;
                   1447: }
                   1448: 
                   1449: #else /* __cplusplus */
                   1450: 
                   1451: /* This is the most reliable way to avoid incompatibilities
                   1452:    in available built-in functions on various systems.  */
                   1453: static void
                   1454: __yy_bcopy (char *from, char *to, int count)
                   1455: {
                   1456:   register char *f = from;
                   1457:   register char *t = to;
                   1458:   register int i = count;
                   1459: 
                   1460:   while (i-- > 0)
                   1461:     *t++ = *f++;
                   1462: }
                   1463: 
                   1464: #endif
                   1465: #endif
                   1466: 
                   1467: #line 169 "bison.simple"
                   1468: int
                   1469: yyparse()
                   1470: {
                   1471:   register int yystate;
                   1472:   register int yyn;
                   1473:   register short *yyssp;
                   1474:   register YYSTYPE *yyvsp;
                   1475:   int yyerrstatus;     /*  number of tokens to shift before error messages enabled */
                   1476:   int yychar1;         /*  lookahead token as an internal (translated) token number */
                   1477: 
                   1478:   short        yyssa[YYINITDEPTH];     /*  the state stack                     */
                   1479:   YYSTYPE yyvsa[YYINITDEPTH];  /*  the semantic value stack            */
                   1480: 
                   1481:   short *yyss = yyssa;         /*  refer to the stacks thru separate pointers */
                   1482:   YYSTYPE *yyvs = yyvsa;       /*  to allow yyoverflow to reallocate them elsewhere */
                   1483: 
                   1484: #ifdef YYLSP_NEEDED
                   1485:   YYLTYPE yylsa[YYINITDEPTH];  /*  the location stack                  */
                   1486:   YYLTYPE *yyls = yylsa;
                   1487:   YYLTYPE *yylsp;
                   1488: 
                   1489: #define YYPOPSTACK   (yyvsp--, yysp--, yylsp--)
                   1490: #else
                   1491: #define YYPOPSTACK   (yyvsp--, yysp--)
                   1492: #endif
                   1493: 
                   1494:   int yystacksize = YYINITDEPTH;
                   1495: 
                   1496: #ifdef YYPURE
                   1497:   int yychar;
                   1498:   YYSTYPE yylval;
                   1499:   int yynerrs;
                   1500: #ifdef YYLSP_NEEDED
                   1501:   YYLTYPE yylloc;
                   1502: #endif
                   1503: #endif
                   1504: 
                   1505:   YYSTYPE yyval;               /*  the variable used to return         */
                   1506:                                /*  semantic values from the action     */
                   1507:                                /*  routines                            */
                   1508: 
                   1509:   int yylen;
                   1510: 
                   1511: #if YYDEBUG != 0
                   1512:   if (yydebug)
                   1513:     fprintf(stderr, "Starting parse\n");
                   1514: #endif
                   1515: 
                   1516:   yystate = 0;
                   1517:   yyerrstatus = 0;
                   1518:   yynerrs = 0;
                   1519:   yychar = YYEMPTY;            /* Cause a token to be read.  */
                   1520: 
                   1521:   /* Initialize stack pointers.
                   1522:      Waste one element of value and location stack
                   1523:      so that they stay on the same level as the state stack.  */
                   1524: 
                   1525:   yyssp = yyss - 1;
                   1526:   yyvsp = yyvs;
                   1527: #ifdef YYLSP_NEEDED
                   1528:   yylsp = yyls;
                   1529: #endif
                   1530: 
                   1531: /* Push a new state, which is found in  yystate  .  */
                   1532: /* In all cases, when you get here, the value and location stacks
                   1533:    have just been pushed. so pushing a state here evens the stacks.  */
                   1534: yynewstate:
                   1535: 
                   1536:   *++yyssp = yystate;
                   1537: 
                   1538:   if (yyssp >= yyss + yystacksize - 1)
                   1539:     {
                   1540:       /* Give user a chance to reallocate the stack */
                   1541:       /* Use copies of these so that the &'s don't force the real ones into memory. */
                   1542:       YYSTYPE *yyvs1 = yyvs;
                   1543:       short *yyss1 = yyss;
                   1544: #ifdef YYLSP_NEEDED
                   1545:       YYLTYPE *yyls1 = yyls;
                   1546: #endif
                   1547: 
                   1548:       /* Get the current used size of the three stacks, in elements.  */
                   1549:       int size = yyssp - yyss + 1;
                   1550: 
                   1551: #ifdef yyoverflow
                   1552:       /* Each stack pointer address is followed by the size of
                   1553:         the data in use in that stack, in bytes.  */
                   1554:       yyoverflow("parser stack overflow",
                   1555:                 &yyss1, size * sizeof (*yyssp),
                   1556:                 &yyvs1, size * sizeof (*yyvsp),
                   1557: #ifdef YYLSP_NEEDED
                   1558:                 &yyls1, size * sizeof (*yylsp),
                   1559: #endif
                   1560:                 &yystacksize);
                   1561: 
                   1562:       yyss = yyss1; yyvs = yyvs1;
                   1563: #ifdef YYLSP_NEEDED
                   1564:       yyls = yyls1;
                   1565: #endif
                   1566: #else /* no yyoverflow */
                   1567:       /* Extend the stack our own way.  */
                   1568:       if (yystacksize >= YYMAXDEPTH)
                   1569:        {
                   1570:          yyerror("parser stack overflow");
                   1571:          return 2;
                   1572:        }
                   1573:       yystacksize *= 2;
                   1574:       if (yystacksize > YYMAXDEPTH)
                   1575:        yystacksize = YYMAXDEPTH;
                   1576:       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
                   1577:       __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
                   1578:       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
                   1579:       __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
                   1580: #ifdef YYLSP_NEEDED
                   1581:       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
                   1582:       __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
                   1583: #endif
                   1584: #endif /* no yyoverflow */
                   1585: 
                   1586:       yyssp = yyss + size - 1;
                   1587:       yyvsp = yyvs + size - 1;
                   1588: #ifdef YYLSP_NEEDED
                   1589:       yylsp = yyls + size - 1;
                   1590: #endif
                   1591: 
                   1592: #if YYDEBUG != 0
                   1593:       if (yydebug)
                   1594:        fprintf(stderr, "Stack size increased to %d\n", yystacksize);
                   1595: #endif
                   1596: 
                   1597:       if (yyssp >= yyss + yystacksize - 1)
                   1598:        YYABORT;
                   1599:     }
                   1600: 
                   1601: #if YYDEBUG != 0
                   1602:   if (yydebug)
                   1603:     fprintf(stderr, "Entering state %d\n", yystate);
                   1604: #endif
                   1605: 
                   1606:  yybackup:
                   1607: 
                   1608: /* Do appropriate processing given the current state.  */
                   1609: /* Read a lookahead token if we need one and don't already have one.  */
                   1610: /* yyresume: */
                   1611: 
                   1612:   /* First try to decide what to do without reference to lookahead token.  */
                   1613: 
                   1614:   yyn = yypact[yystate];
                   1615:   if (yyn == YYFLAG)
                   1616:     goto yydefault;
                   1617: 
                   1618:   /* Not known => get a lookahead token if don't already have one.  */
                   1619: 
                   1620:   /* yychar is either YYEMPTY or YYEOF
                   1621:      or a valid token in external form.  */
                   1622: 
                   1623:   if (yychar == YYEMPTY)
                   1624:     {
                   1625: #if YYDEBUG != 0
                   1626:       if (yydebug)
                   1627:        fprintf(stderr, "Reading a token: ");
                   1628: #endif
                   1629:       yychar = YYLEX;
                   1630:     }
                   1631: 
                   1632:   /* Convert token to internal form (in yychar1) for indexing tables with */
                   1633: 
                   1634:   if (yychar <= 0)             /* This means end of input. */
                   1635:     {
                   1636:       yychar1 = 0;
                   1637:       yychar = YYEOF;          /* Don't call YYLEX any more */
                   1638: 
                   1639: #if YYDEBUG != 0
                   1640:       if (yydebug)
                   1641:        fprintf(stderr, "Now at end of input.\n");
                   1642: #endif
                   1643:     }
                   1644:   else
                   1645:     {
                   1646:       yychar1 = YYTRANSLATE(yychar);
                   1647: 
                   1648: #if YYDEBUG != 0
                   1649:       if (yydebug)
                   1650:        {
                   1651:          fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
                   1652:          /* Give the individual parser a way to print the precise meaning
                   1653:             of a token, for further debugging info.  */
                   1654: #ifdef YYPRINT
                   1655:          YYPRINT (stderr, yychar, yylval);
                   1656: #endif
                   1657:          fprintf (stderr, ")\n");
                   1658:        }
                   1659: #endif
                   1660:     }
                   1661: 
                   1662:   yyn += yychar1;
                   1663:   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
                   1664:     goto yydefault;
                   1665: 
                   1666:   yyn = yytable[yyn];
                   1667: 
                   1668:   /* yyn is what to do for this token type in this state.
                   1669:      Negative => reduce, -yyn is rule number.
                   1670:      Positive => shift, yyn is new state.
                   1671:        New state is final state => don't bother to shift,
                   1672:        just return success.
                   1673:      0, or most negative number => error.  */
                   1674: 
                   1675:   if (yyn < 0)
                   1676:     {
                   1677:       if (yyn == YYFLAG)
                   1678:        goto yyerrlab;
                   1679:       yyn = -yyn;
                   1680:       goto yyreduce;
                   1681:     }
                   1682:   else if (yyn == 0)
                   1683:     goto yyerrlab;
                   1684: 
                   1685:   if (yyn == YYFINAL)
                   1686:     YYACCEPT;
                   1687: 
                   1688:   /* Shift the lookahead token.  */
                   1689: 
                   1690: #if YYDEBUG != 0
                   1691:   if (yydebug)
                   1692:     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
                   1693: #endif
                   1694: 
                   1695:   /* Discard the token being shifted unless it is eof.  */
                   1696:   if (yychar != YYEOF)
                   1697:     yychar = YYEMPTY;
                   1698: 
                   1699:   *++yyvsp = yylval;
                   1700: #ifdef YYLSP_NEEDED
                   1701:   *++yylsp = yylloc;
                   1702: #endif
                   1703: 
                   1704:   /* count tokens shifted since error; after three, turn off error status.  */
                   1705:   if (yyerrstatus) yyerrstatus--;
                   1706: 
                   1707:   yystate = yyn;
                   1708:   goto yynewstate;
                   1709: 
                   1710: /* Do the default action for the current state.  */
                   1711: yydefault:
                   1712: 
                   1713:   yyn = yydefact[yystate];
                   1714:   if (yyn == 0)
                   1715:     goto yyerrlab;
                   1716: 
                   1717: /* Do a reduction.  yyn is the number of a rule to reduce with.  */
                   1718: yyreduce:
                   1719:   yylen = yyr2[yyn];
                   1720:   yyval = yyvsp[1-yylen]; /* implement default value of the action */
                   1721: 
                   1722: #if YYDEBUG != 0
                   1723:   if (yydebug)
                   1724:     {
                   1725:       int i;
                   1726: 
                   1727:       fprintf (stderr, "Reducing via rule %d (line %d), ",
                   1728:               yyn, yyrline[yyn]);
                   1729: 
                   1730:       /* Print the symboles being reduced, and their result.  */
                   1731:       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
                   1732:        fprintf (stderr, "%s ", yytname[yyrhs[i]]);
                   1733:       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
                   1734:     }
                   1735: #endif
                   1736: 
                   1737: 
                   1738:   switch (yyn) {
                   1739: 
                   1740: case 1:
                   1741: #line 218 "objc-parse.y"
                   1742: { if (pedantic)
                   1743:                    pedwarn ("ANSI C forbids an empty source file");
                   1744:                  objc_finish (); ;
                   1745:     break;}
                   1746: case 2:
                   1747: #line 222 "objc-parse.y"
                   1748: { objc_finish (); ;
                   1749:     break;}
                   1750: case 3:
                   1751: #line 230 "objc-parse.y"
                   1752: {yyval.ttype = NULL_TREE; ;
                   1753:     break;}
                   1754: case 5:
                   1755: #line 231 "objc-parse.y"
                   1756: {yyval.ttype = NULL_TREE; ;
                   1757:     break;}
                   1758: case 10:
                   1759: #line 239 "objc-parse.y"
                   1760: { if (pedantic)
                   1761:                    pedwarn ("ANSI C forbids use of `asm' keyword");
                   1762:                  if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
                   1763:                  assemble_asm (yyvsp[-2].ttype); ;
                   1764:     break;}
                   1765: case 11:
                   1766: #line 247 "objc-parse.y"
                   1767: { if (pedantic)
                   1768:                    error ("ANSI C forbids data definition with no type or storage class");
                   1769:                  else if (!flag_traditional)
                   1770:                    warning ("data definition has no type or storage class"); ;
                   1771:     break;}
                   1772: case 12:
                   1773: #line 252 "objc-parse.y"
                   1774: {;
                   1775:     break;}
                   1776: case 13:
                   1777: #line 254 "objc-parse.y"
                   1778: {;
                   1779:     break;}
                   1780: case 14:
                   1781: #line 256 "objc-parse.y"
                   1782: { error ("empty declaration"); ;
                   1783:     break;}
                   1784: case 15:
                   1785: #line 258 "objc-parse.y"
                   1786: { shadow_tag (yyvsp[-1].ttype); ;
                   1787:     break;}
                   1788: case 18:
                   1789: #line 262 "objc-parse.y"
                   1790: { if (pedantic)
                   1791:                    pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
                   1792:     break;}
                   1793: case 19:
                   1794: #line 268 "objc-parse.y"
                   1795: { if (! start_function (yyvsp[-2].ttype, yyvsp[0].ttype, 0))
                   1796:                    YYERROR1;
                   1797:                  reinit_parse_for_function (); ;
                   1798:     break;}
                   1799: case 20:
                   1800: #line 272 "objc-parse.y"
                   1801: { store_parm_decls (); ;
                   1802:     break;}
                   1803: case 21:
                   1804: #line 274 "objc-parse.y"
                   1805: { finish_function (0); ;
                   1806:     break;}
                   1807: case 22:
                   1808: #line 276 "objc-parse.y"
                   1809: { ;
                   1810:     break;}
                   1811: case 23:
                   1812: #line 278 "objc-parse.y"
                   1813: { if (! start_function (yyvsp[-2].ttype, yyvsp[0].ttype, 0))
                   1814:                    YYERROR1;
                   1815:                  reinit_parse_for_function (); ;
                   1816:     break;}
                   1817: case 24:
                   1818: #line 282 "objc-parse.y"
                   1819: { store_parm_decls (); ;
                   1820:     break;}
                   1821: case 25:
                   1822: #line 284 "objc-parse.y"
                   1823: { finish_function (0); ;
                   1824:     break;}
                   1825: case 26:
                   1826: #line 286 "objc-parse.y"
                   1827: { ;
                   1828:     break;}
                   1829: case 27:
                   1830: #line 288 "objc-parse.y"
                   1831: { if (! start_function (0, yyvsp[0].ttype, 0))
                   1832:                    YYERROR1;
                   1833:                  reinit_parse_for_function (); ;
                   1834:     break;}
                   1835: case 28:
                   1836: #line 292 "objc-parse.y"
                   1837: { store_parm_decls (); ;
                   1838:     break;}
                   1839: case 29:
                   1840: #line 294 "objc-parse.y"
                   1841: { finish_function (0); ;
                   1842:     break;}
                   1843: case 30:
                   1844: #line 296 "objc-parse.y"
                   1845: { ;
                   1846:     break;}
                   1847: case 33:
                   1848: #line 303 "objc-parse.y"
                   1849: { yyval.ttype = CLASS_NAME (yyvsp[0].ttype); ;
                   1850:     break;}
                   1851: case 34:
                   1852: #line 307 "objc-parse.y"
                   1853: { yyval.code = ADDR_EXPR; ;
                   1854:     break;}
                   1855: case 35:
                   1856: #line 309 "objc-parse.y"
                   1857: { yyval.code = NEGATE_EXPR; ;
                   1858:     break;}
                   1859: case 36:
                   1860: #line 311 "objc-parse.y"
                   1861: { yyval.code = CONVERT_EXPR; ;
                   1862:     break;}
                   1863: case 37:
                   1864: #line 313 "objc-parse.y"
                   1865: { yyval.code = PREINCREMENT_EXPR; ;
                   1866:     break;}
                   1867: case 38:
                   1868: #line 315 "objc-parse.y"
                   1869: { yyval.code = PREDECREMENT_EXPR; ;
                   1870:     break;}
                   1871: case 39:
                   1872: #line 317 "objc-parse.y"
                   1873: { yyval.code = BIT_NOT_EXPR; ;
                   1874:     break;}
                   1875: case 40:
                   1876: #line 319 "objc-parse.y"
                   1877: { yyval.code = TRUTH_NOT_EXPR; ;
                   1878:     break;}
                   1879: case 41:
                   1880: #line 323 "objc-parse.y"
                   1881: { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
                   1882:     break;}
                   1883: case 42:
                   1884: #line 328 "objc-parse.y"
                   1885: { yyval.ttype = NULL_TREE; ;
                   1886:     break;}
                   1887: case 44:
                   1888: #line 334 "objc-parse.y"
                   1889: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
                   1890:     break;}
                   1891: case 45:
                   1892: #line 336 "objc-parse.y"
                   1893: { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
                   1894:     break;}
                   1895: case 47:
                   1896: #line 342 "objc-parse.y"
                   1897: { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
                   1898:     break;}
                   1899: case 48:
                   1900: #line 345 "objc-parse.y"
                   1901: { yyvsp[0].itype = pedantic;
                   1902:                  pedantic = 0; ;
                   1903:     break;}
                   1904: case 49:
                   1905: #line 348 "objc-parse.y"
                   1906: { yyval.ttype = yyvsp[0].ttype;
                   1907:                  pedantic = yyvsp[-2].itype; ;
                   1908:     break;}
                   1909: case 50:
                   1910: #line 351 "objc-parse.y"
                   1911: { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0); ;
                   1912:     break;}
                   1913: case 51:
                   1914: #line 354 "objc-parse.y"
                   1915: { tree label = lookup_label (yyvsp[0].ttype);
                   1916:                  TREE_USED (label) = 1;
                   1917:                  yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
                   1918:                  TREE_CONSTANT (yyval.ttype) = 1; ;
                   1919:     break;}
                   1920: case 52:
                   1921: #line 373 "objc-parse.y"
                   1922: { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
                   1923:                      && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
                   1924:                    error ("`sizeof' applied to a bit-field");
                   1925:                  yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
                   1926:     break;}
                   1927: case 53:
                   1928: #line 378 "objc-parse.y"
                   1929: { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
                   1930:     break;}
                   1931: case 54:
                   1932: #line 380 "objc-parse.y"
                   1933: { yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
                   1934:     break;}
                   1935: case 55:
                   1936: #line 382 "objc-parse.y"
                   1937: { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
                   1938:     break;}
                   1939: case 57:
                   1940: #line 388 "objc-parse.y"
                   1941: { tree type = groktypename (yyvsp[-2].ttype);
                   1942:                  yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
                   1943:     break;}
                   1944: case 58:
                   1945: #line 391 "objc-parse.y"
                   1946: { tree type = groktypename (yyvsp[-5].ttype);
                   1947:                  if (pedantic)
                   1948:                    pedwarn ("ANSI C forbids constructor expressions");
                   1949:                  yyval.ttype = digest_init (type, build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)), 0, 0, 0);
                   1950:                  if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
                   1951:                    {
                   1952:                      int failure = complete_array_type (type, yyval.ttype, 1);
                   1953:                      if (failure)
                   1954:                        abort ();
                   1955:                    }
                   1956:                ;
                   1957:     break;}
                   1958: case 60:
                   1959: #line 407 "objc-parse.y"
                   1960: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   1961:     break;}
                   1962: case 61:
                   1963: #line 409 "objc-parse.y"
                   1964: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   1965:     break;}
                   1966: case 62:
                   1967: #line 411 "objc-parse.y"
                   1968: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   1969:     break;}
                   1970: case 63:
                   1971: #line 413 "objc-parse.y"
                   1972: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   1973:     break;}
                   1974: case 64:
                   1975: #line 415 "objc-parse.y"
                   1976: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   1977:     break;}
                   1978: case 65:
                   1979: #line 417 "objc-parse.y"
                   1980: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   1981:     break;}
                   1982: case 66:
                   1983: #line 419 "objc-parse.y"
                   1984: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   1985:     break;}
                   1986: case 67:
                   1987: #line 421 "objc-parse.y"
                   1988: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   1989:     break;}
                   1990: case 68:
                   1991: #line 423 "objc-parse.y"
                   1992: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   1993:     break;}
                   1994: case 69:
                   1995: #line 425 "objc-parse.y"
                   1996: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   1997:     break;}
                   1998: case 70:
                   1999: #line 427 "objc-parse.y"
                   2000: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   2001:     break;}
                   2002: case 71:
                   2003: #line 429 "objc-parse.y"
                   2004: { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   2005:     break;}
                   2006: case 72:
                   2007: #line 431 "objc-parse.y"
                   2008: { yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   2009:     break;}
                   2010: case 73:
                   2011: #line 433 "objc-parse.y"
                   2012: { yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   2013:     break;}
                   2014: case 74:
                   2015: #line 435 "objc-parse.y"
                   2016: { yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   2017:     break;}
                   2018: case 75:
                   2019: #line 437 "objc-parse.y"
                   2020: { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype); ;
                   2021:     break;}
                   2022: case 76:
                   2023: #line 439 "objc-parse.y"
                   2024: { yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
                   2025:     break;}
                   2026: case 77:
                   2027: #line 444 "objc-parse.y"
                   2028: {
                   2029:                  tree context;
                   2030: 
                   2031:                  yyval.ttype = lastiddecl;
                   2032:                  if (!yyval.ttype || yyval.ttype == error_mark_node)
                   2033:                    {
                   2034:                      if (yychar == YYEMPTY)
                   2035:                        yychar = YYLEX;
                   2036:                      if (yychar == '(')
                   2037:                        {
                   2038:                          if (objc_receiver_context
                   2039:                              && ! (objc_receiver_context
                   2040:                                    && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
                   2041:                            /* we have a message to super */
                   2042:                            yyval.ttype = get_super_receiver ();
                   2043:                          else if (objc_method_context
                   2044:                                   && is_ivar (objc_ivar_chain, yyvsp[0].ttype))
                   2045:                            yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
                   2046:                          else
                   2047:                            {
                   2048:                              /* Ordinary implicit function declaration.  */
                   2049:                              yyval.ttype = implicitly_declare (yyvsp[0].ttype);
                   2050:                              assemble_external (yyval.ttype);
                   2051:                              TREE_USED (yyval.ttype) = 1;
                   2052:                            }
                   2053:                        }
                   2054:                      else if (current_function_decl == 0)
                   2055:                        {
                   2056:                          error ("`%s' undeclared, outside of functions",
                   2057:                                 IDENTIFIER_POINTER (yyvsp[0].ttype));
                   2058:                          yyval.ttype = error_mark_node;
                   2059:                        }
                   2060:                      else
                   2061:                        {
                   2062:                          if (objc_receiver_context
                   2063:                              && ! (objc_receiver_context
                   2064:                                    && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
                   2065:                            /* we have a message to super */
                   2066:                            yyval.ttype = get_super_receiver ();
                   2067:                          else if (objc_method_context
                   2068:                                   && is_ivar (objc_ivar_chain, yyvsp[0].ttype))
                   2069:                            yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
                   2070:                          else
                   2071:                            {
                   2072:                              if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
                   2073:                                  || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
                   2074:                                {
                   2075:                                  error ("`%s' undeclared (first use this function)",
                   2076:                                         IDENTIFIER_POINTER (yyvsp[0].ttype));
                   2077: 
                   2078:                                  if (! undeclared_variable_notice)
                   2079:                                    {
                   2080:                                      error ("(Each undeclared identifier is reported only once");
                   2081:                                      error ("for each function it appears in.)");
                   2082:                                      undeclared_variable_notice = 1;
                   2083:                                    }
                   2084:                                }
                   2085:                              yyval.ttype = error_mark_node;
                   2086:                              /* Prevent repeated error messages.  */
                   2087:                              IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
                   2088:                              IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
                   2089:                            }
                   2090:                        }
                   2091:                    }
                   2092:                  else
                   2093:                    {
                   2094:                      if (! TREE_USED (yyval.ttype))
                   2095:                        {
                   2096:                          if (TREE_EXTERNAL (yyval.ttype))
                   2097:                            assemble_external (yyval.ttype);
                   2098:                          TREE_USED (yyval.ttype) = 1;
                   2099:                        }
                   2100:                      /* we have a definition - still check if iVariable */
                   2101: 
                   2102:                      if (!objc_receiver_context
                   2103:                          || (objc_receiver_context
                   2104:                              && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
                   2105:                         {
                   2106:                          if (objc_method_context
                   2107:                              && is_ivar (objc_ivar_chain, yyvsp[0].ttype))
                   2108:                             {
                   2109:                               if (IDENTIFIER_LOCAL_VALUE (yyvsp[0].ttype))
                   2110:                                 warning ("local declaration of `%s' hides instance variable",
                   2111:                                         IDENTIFIER_POINTER (yyvsp[0].ttype));
                   2112:                               else
                   2113:                                 yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
                   2114:                             }
                   2115:                        }
                   2116:                       else /* we have a message to super */
                   2117:                        yyval.ttype = get_super_receiver ();
                   2118:                    }
                   2119: 
                   2120:                  if (TREE_CODE (yyval.ttype) == CONST_DECL)
                   2121:                    yyval.ttype = DECL_INITIAL (yyval.ttype);
                   2122:                ;
                   2123:     break;}
                   2124: case 79:
                   2125: #line 541 "objc-parse.y"
                   2126: { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
                   2127:     break;}
                   2128: case 80:
                   2129: #line 543 "objc-parse.y"
                   2130: { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
                   2131:                  if (class == 'e' || class == '1'
                   2132:                      || class == '2' || class == '<')
                   2133:                    C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
                   2134:                  yyval.ttype = yyvsp[-1].ttype; ;
                   2135:     break;}
                   2136: case 81:
                   2137: #line 549 "objc-parse.y"
                   2138: { yyval.ttype = error_mark_node; ;
                   2139:     break;}
                   2140: case 82:
                   2141: #line 551 "objc-parse.y"
                   2142: { if (current_function_decl == 0)
                   2143:                    {
                   2144:                      error ("braced-group within expression allowed only inside a function");
                   2145:                      YYERROR;
                   2146:                    }
                   2147:                  /* We must force a BLOCK for this level
                   2148:                     so that, if it is not expanded later,
                   2149:                     there is a way to turn off the entire subtree of blocks
                   2150:                     that are contained in it.  */
                   2151:                  keep_next_level ();
                   2152:                  push_label_level ();
                   2153:                  yyval.ttype = expand_start_stmt_expr (); ;
                   2154:     break;}
                   2155: case 83:
                   2156: #line 564 "objc-parse.y"
                   2157: { tree rtl_exp;
                   2158:                  if (pedantic)
                   2159:                    pedwarn ("ANSI C forbids braced-groups within expressions");
                   2160:                  pop_label_level ();
                   2161:                  rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
                   2162:                  /* The statements have side effects, so the group does.  */
                   2163:                  TREE_SIDE_EFFECTS (rtl_exp) = 1;
                   2164: 
                   2165:                  /* Make a BIND_EXPR for the BLOCK already made.  */
                   2166:                  yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
                   2167:                              NULL_TREE, rtl_exp, yyvsp[-1].ttype);
                   2168:                ;
                   2169:     break;}
                   2170: case 84:
                   2171: #line 577 "objc-parse.y"
                   2172: { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
                   2173:     break;}
                   2174: case 85:
                   2175: #line 579 "objc-parse.y"
                   2176: { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
                   2177:     break;}
                   2178: case 86:
                   2179: #line 581 "objc-parse.y"
                   2180: {
                   2181:                   if (doing_objc_thang)
                   2182:                     {
                   2183:                      if (is_public (yyvsp[-2].ttype, yyvsp[0].ttype))
                   2184:                        yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
                   2185:                      else
                   2186:                        yyval.ttype = error_mark_node;
                   2187:                    }
                   2188:                   else
                   2189:                     yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
                   2190:                ;
                   2191:     break;}
                   2192: case 87:
                   2193: #line 593 "objc-parse.y"
                   2194: {
                   2195:                   tree anExpr = build_indirect_ref (yyvsp[-2].ttype, "->");
                   2196: 
                   2197:                   if (doing_objc_thang)
                   2198:                     {
                   2199:                      if (is_public (anExpr, yyvsp[0].ttype))
                   2200:                        yyval.ttype = build_component_ref (anExpr, yyvsp[0].ttype);
                   2201:                      else
                   2202:                        yyval.ttype = error_mark_node;
                   2203:                    }
                   2204:                   else
                   2205:                     yyval.ttype = build_component_ref (anExpr, yyvsp[0].ttype);
                   2206:                ;
                   2207:     break;}
                   2208: case 88:
                   2209: #line 607 "objc-parse.y"
                   2210: { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
                   2211:     break;}
                   2212: case 89:
                   2213: #line 609 "objc-parse.y"
                   2214: { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
                   2215:     break;}
                   2216: case 90:
                   2217: #line 611 "objc-parse.y"
                   2218: { yyval.ttype = build_message_expr (yyvsp[0].ttype); ;
                   2219:     break;}
                   2220: case 91:
                   2221: #line 613 "objc-parse.y"
                   2222: { yyval.ttype = build_selector_expr (yyvsp[0].ttype); ;
                   2223:     break;}
                   2224: case 92:
                   2225: #line 615 "objc-parse.y"
                   2226: { yyval.ttype = build_encode_expr (yyvsp[0].ttype); ;
                   2227:     break;}
                   2228: case 94:
                   2229: #line 622 "objc-parse.y"
                   2230: { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
                   2231:     break;}
                   2232: case 97:
                   2233: #line 630 "objc-parse.y"
                   2234: { c_mark_varargs ();
                   2235:                  if (pedantic)
                   2236:                    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
                   2237:     break;}
                   2238: case 98:
                   2239: #line 641 "objc-parse.y"
                   2240: { ;
                   2241:     break;}
                   2242: case 103:
                   2243: #line 656 "objc-parse.y"
                   2244: { yyval.itype = suspend_momentary ();
                   2245:                  pending_xref_error ();
                   2246:                  declspec_stack = tree_cons (0, current_declspecs,
                   2247:                                              declspec_stack);
                   2248:                  current_declspecs = yyvsp[0].ttype; ;
                   2249:     break;}
                   2250: case 104:
                   2251: #line 665 "objc-parse.y"
                   2252: { current_declspecs = TREE_VALUE (declspec_stack);
                   2253:                  declspec_stack = TREE_CHAIN (declspec_stack);
                   2254:                  resume_momentary (yyvsp[-2].itype); ;
                   2255:     break;}
                   2256: case 105:
                   2257: #line 669 "objc-parse.y"
                   2258: { current_declspecs = TREE_VALUE (declspec_stack);
                   2259:                  declspec_stack = TREE_CHAIN (declspec_stack);
                   2260:                  resume_momentary (yyvsp[-2].itype); ;
                   2261:     break;}
                   2262: case 106:
                   2263: #line 673 "objc-parse.y"
                   2264: { current_declspecs = TREE_VALUE (declspec_stack);
                   2265:                  declspec_stack = TREE_CHAIN (declspec_stack);
                   2266:                  resume_momentary (yyvsp[-1].itype); ;
                   2267:     break;}
                   2268: case 107:
                   2269: #line 677 "objc-parse.y"
                   2270: { current_declspecs = TREE_VALUE (declspec_stack);
                   2271:                  declspec_stack = TREE_CHAIN (declspec_stack);
                   2272:                  resume_momentary (yyvsp[-1].itype); ;
                   2273:     break;}
                   2274: case 108:
                   2275: #line 681 "objc-parse.y"
                   2276: { shadow_tag (yyvsp[-1].ttype); ;
                   2277:     break;}
                   2278: case 109:
                   2279: #line 683 "objc-parse.y"
                   2280: { pedwarn ("empty declaration"); ;
                   2281:     break;}
                   2282: case 110:
                   2283: #line 692 "objc-parse.y"
                   2284: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
                   2285:     break;}
                   2286: case 111:
                   2287: #line 694 "objc-parse.y"
                   2288: { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
                   2289:     break;}
                   2290: case 112:
                   2291: #line 698 "objc-parse.y"
                   2292: { yyval.ttype = NULL_TREE; ;
                   2293:     break;}
                   2294: case 113:
                   2295: #line 700 "objc-parse.y"
                   2296: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
                   2297:     break;}
                   2298: case 114:
                   2299: #line 702 "objc-parse.y"
                   2300: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
                   2301:     break;}
                   2302: case 115:
                   2303: #line 711 "objc-parse.y"
                   2304: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
                   2305:     break;}
                   2306: case 116:
                   2307: #line 713 "objc-parse.y"
                   2308: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
                   2309:     break;}
                   2310: case 117:
                   2311: #line 715 "objc-parse.y"
                   2312: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
                   2313:     break;}
                   2314: case 118:
                   2315: #line 717 "objc-parse.y"
                   2316: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
                   2317:     break;}
                   2318: case 119:
                   2319: #line 727 "objc-parse.y"
                   2320: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
                   2321:     break;}
                   2322: case 120:
                   2323: #line 729 "objc-parse.y"
                   2324: { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
                   2325:     break;}
                   2326: case 121:
                   2327: #line 733 "objc-parse.y"
                   2328: { yyval.ttype = NULL_TREE; ;
                   2329:     break;}
                   2330: case 122:
                   2331: #line 735 "objc-parse.y"
                   2332: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
                   2333:     break;}
                   2334: case 126:
                   2335: #line 746 "objc-parse.y"
                   2336: { yyval.ttype = get_static_reference (yyvsp[0].ttype); ;
                   2337:     break;}
                   2338: case 127:
                   2339: #line 748 "objc-parse.y"
                   2340: { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
                   2341:                  if (pedantic)
                   2342:                    pedwarn ("ANSI C forbids `typeof'"); ;
                   2343:     break;}
                   2344: case 128:
                   2345: #line 752 "objc-parse.y"
                   2346: { yyval.ttype = groktypename (yyvsp[-1].ttype);
                   2347:                  if (pedantic)
                   2348:                    pedwarn ("ANSI C forbids `typeof'"); ;
                   2349:     break;}
                   2350: case 136:
                   2351: #line 776 "objc-parse.y"
                   2352: { yyval.ttype = NULL_TREE; ;
                   2353:     break;}
                   2354: case 137:
                   2355: #line 778 "objc-parse.y"
                   2356: { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
                   2357:                  yyval.ttype = yyvsp[-1].ttype;
                   2358:                  if (pedantic)
                   2359:                    pedwarn ("ANSI C forbids use of `asm' keyword");
                   2360:                ;
                   2361:     break;}
                   2362: case 138:
                   2363: #line 787 "objc-parse.y"
                   2364: { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1); ;
                   2365:     break;}
                   2366: case 139:
                   2367: #line 790 "objc-parse.y"
                   2368: { decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype);
                   2369:                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
                   2370:     break;}
                   2371: case 140:
                   2372: #line 793 "objc-parse.y"
                   2373: { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
                   2374:                  decl_attributes (d, yyvsp[0].ttype);
                   2375:                  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
                   2376:     break;}
                   2377: case 141:
                   2378: #line 800 "objc-parse.y"
                   2379: { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1); ;
                   2380:     break;}
                   2381: case 142:
                   2382: #line 803 "objc-parse.y"
                   2383: { decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype);
                   2384:                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
                   2385:     break;}
                   2386: case 143:
                   2387: #line 806 "objc-parse.y"
                   2388: { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0);
                   2389:                  decl_attributes (d, yyvsp[0].ttype);
                   2390:                  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
                   2391:     break;}
                   2392: case 144:
                   2393: #line 814 "objc-parse.y"
                   2394: { yyval.ttype = NULL_TREE; ;
                   2395:     break;}
                   2396: case 145:
                   2397: #line 816 "objc-parse.y"
                   2398: { yyval.ttype = yyvsp[-2].ttype; ;
                   2399:     break;}
                   2400: case 146:
                   2401: #line 821 "objc-parse.y"
                   2402: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
                   2403:     break;}
                   2404: case 147:
                   2405: #line 823 "objc-parse.y"
                   2406: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
                   2407:     break;}
                   2408: case 148:
                   2409: #line 828 "objc-parse.y"
                   2410: { warning ("`%s' attribute directive ignored",
                   2411:                   IDENTIFIER_POINTER (yyvsp[0].ttype));
                   2412:          yyval.ttype = yyvsp[0].ttype; ;
                   2413:     break;}
                   2414: case 149:
                   2415: #line 832 "objc-parse.y"
                   2416: { /* if not "aligned(n)", then issue warning */
                   2417:          if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
                   2418:              || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
                   2419:            {
                   2420:              warning ("`%s' attribute directive ignored",
                   2421:                       IDENTIFIER_POINTER (yyvsp[-3].ttype));
                   2422:              yyval.ttype = yyvsp[-3].ttype;
                   2423:            }
                   2424:          else
                   2425:            yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
                   2426:     break;}
                   2427: case 150:
                   2428: #line 843 "objc-parse.y"
                   2429: { /* if not "format(...)", then issue warning */
                   2430:          if (strcmp (IDENTIFIER_POINTER (yyvsp[-7].ttype), "format") != 0
                   2431:              || TREE_CODE (yyvsp[-3].ttype) != INTEGER_CST
                   2432:              || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
                   2433:            {
                   2434:              warning ("`%s' attribute directive ignored",
                   2435:                       IDENTIFIER_POINTER (yyvsp[-7].ttype));
                   2436:              yyval.ttype = yyvsp[-7].ttype;
                   2437:            }
                   2438:          else
                   2439:            yyval.ttype = tree_cons (yyvsp[-7].ttype, tree_cons (yyvsp[-5].ttype, tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype))); ;
                   2440:     break;}
                   2441: case 152:
                   2442: #line 859 "objc-parse.y"
                   2443: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
                   2444:                  if (pedantic)
                   2445:                    pedwarn ("ANSI C forbids empty initializer braces"); ;
                   2446:     break;}
                   2447: case 153:
                   2448: #line 863 "objc-parse.y"
                   2449: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype)); ;
                   2450:     break;}
                   2451: case 154:
                   2452: #line 865 "objc-parse.y"
                   2453: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); ;
                   2454:     break;}
                   2455: case 155:
                   2456: #line 867 "objc-parse.y"
                   2457: { yyval.ttype = NULL_TREE; ;
                   2458:     break;}
                   2459: case 156:
                   2460: #line 874 "objc-parse.y"
                   2461: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
                   2462:     break;}
                   2463: case 157:
                   2464: #line 876 "objc-parse.y"
                   2465: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
                   2466:     break;}
                   2467: case 158:
                   2468: #line 879 "objc-parse.y"
                   2469: { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   2470:     break;}
                   2471: case 159:
                   2472: #line 881 "objc-parse.y"
                   2473: { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-5].ttype); ;
                   2474:     break;}
                   2475: case 160:
                   2476: #line 883 "objc-parse.y"
                   2477: { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   2478:     break;}
                   2479: case 161:
                   2480: #line 885 "objc-parse.y"
                   2481: { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
                   2482:     break;}
                   2483: case 162:
                   2484: #line 890 "objc-parse.y"
                   2485: { push_c_function_context ();
                   2486:                  if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
                   2487:                    {
                   2488:                      pop_c_function_context ();
                   2489:                      YYERROR1;
                   2490:                    }
                   2491:                  reinit_parse_for_function ();
                   2492:                  store_parm_decls (); ;
                   2493:     break;}
                   2494: case 163:
                   2495: #line 905 "objc-parse.y"
                   2496: { finish_function (1);
                   2497:                  pop_c_function_context (); ;
                   2498:     break;}
                   2499: case 164:
                   2500: #line 911 "objc-parse.y"
                   2501: { push_c_function_context ();
                   2502:                  if (! start_function (current_declspecs, yyvsp[0].ttype, 1))
                   2503:                    {
                   2504:                      pop_c_function_context ();
                   2505:                      YYERROR1;
                   2506:                    }
                   2507:                  reinit_parse_for_function ();
                   2508:                  store_parm_decls (); ;
                   2509:     break;}
                   2510: case 165:
                   2511: #line 926 "objc-parse.y"
                   2512: { finish_function (1);
                   2513:                  pop_c_function_context (); ;
                   2514:     break;}
                   2515: case 168:
                   2516: #line 942 "objc-parse.y"
                   2517: { yyval.ttype = yyvsp[-1].ttype; ;
                   2518:     break;}
                   2519: case 169:
                   2520: #line 944 "objc-parse.y"
                   2521: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
                   2522:     break;}
                   2523: case 170:
                   2524: #line 949 "objc-parse.y"
                   2525: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
                   2526:     break;}
                   2527: case 171:
                   2528: #line 951 "objc-parse.y"
                   2529: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
                   2530:     break;}
                   2531: case 172:
                   2532: #line 953 "objc-parse.y"
                   2533: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
                   2534:     break;}
                   2535: case 174:
                   2536: #line 964 "objc-parse.y"
                   2537: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
                   2538:     break;}
                   2539: case 175:
                   2540: #line 969 "objc-parse.y"
                   2541: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
                   2542:     break;}
                   2543: case 176:
                   2544: #line 971 "objc-parse.y"
                   2545: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
                   2546:     break;}
                   2547: case 177:
                   2548: #line 973 "objc-parse.y"
                   2549: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
                   2550:     break;}
                   2551: case 179:
                   2552: #line 982 "objc-parse.y"
                   2553: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
                   2554:     break;}
                   2555: case 180:
                   2556: #line 987 "objc-parse.y"
                   2557: { yyval.ttype = yyvsp[-1].ttype; ;
                   2558:     break;}
                   2559: case 181:
                   2560: #line 989 "objc-parse.y"
                   2561: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
                   2562:     break;}
                   2563: case 182:
                   2564: #line 991 "objc-parse.y"
                   2565: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
                   2566:     break;}
                   2567: case 183:
                   2568: #line 993 "objc-parse.y"
                   2569: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
                   2570:     break;}
                   2571: case 185:
                   2572: #line 999 "objc-parse.y"
                   2573: { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
                   2574:                  /* Start scope of tag before parsing components.  */
                   2575:                ;
                   2576:     break;}
                   2577: case 186:
                   2578: #line 1003 "objc-parse.y"
                   2579: { yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype);
                   2580:                  /* Really define the structure.  */
                   2581:                ;
                   2582:     break;}
                   2583: case 187:
                   2584: #line 1007 "objc-parse.y"
                   2585: { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
                   2586:                                      yyvsp[-1].ttype); ;
                   2587:     break;}
                   2588: case 188:
                   2589: #line 1010 "objc-parse.y"
                   2590: { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
                   2591:     break;}
                   2592: case 189:
                   2593: #line 1012 "objc-parse.y"
                   2594: { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
                   2595:     break;}
                   2596: case 190:
                   2597: #line 1014 "objc-parse.y"
                   2598: { yyval.ttype = finish_struct (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
                   2599:     break;}
                   2600: case 191:
                   2601: #line 1016 "objc-parse.y"
                   2602: { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
                   2603:                                      yyvsp[-1].ttype); ;
                   2604:     break;}
                   2605: case 192:
                   2606: #line 1019 "objc-parse.y"
                   2607: { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
                   2608:     break;}
                   2609: case 193:
                   2610: #line 1021 "objc-parse.y"
                   2611: { yyvsp[0].itype = suspend_momentary ();
                   2612:                  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
                   2613:     break;}
                   2614: case 194:
                   2615: #line 1024 "objc-parse.y"
                   2616: { yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
                   2617:                  resume_momentary (yyvsp[-4].itype); ;
                   2618:     break;}
                   2619: case 195:
                   2620: #line 1027 "objc-parse.y"
                   2621: { yyvsp[0].itype = suspend_momentary ();
                   2622:                  yyval.ttype = start_enum (NULL_TREE); ;
                   2623:     break;}
                   2624: case 196:
                   2625: #line 1030 "objc-parse.y"
                   2626: { yyval.ttype = finish_enum (yyvsp[-3].ttype, nreverse (yyvsp[-2].ttype));
                   2627:                  resume_momentary (yyvsp[-4].itype); ;
                   2628:     break;}
                   2629: case 197:
                   2630: #line 1033 "objc-parse.y"
                   2631: { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
                   2632:     break;}
                   2633: case 201:
                   2634: #line 1044 "objc-parse.y"
                   2635: { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
                   2636:     break;}
                   2637: case 202:
                   2638: #line 1049 "objc-parse.y"
                   2639: { yyval.ttype = yyvsp[0].ttype; ;
                   2640:     break;}
                   2641: case 203:
                   2642: #line 1051 "objc-parse.y"
                   2643: { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                   2644:                  warning ("no semicolon at end of struct or union"); ;
                   2645:     break;}
                   2646: case 204:
                   2647: #line 1056 "objc-parse.y"
                   2648: { yyval.ttype = NULL_TREE; ;
                   2649:     break;}
                   2650: case 205:
                   2651: #line 1058 "objc-parse.y"
                   2652: { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
                   2653:     break;}
                   2654: case 206:
                   2655: #line 1060 "objc-parse.y"
                   2656: { if (pedantic)
                   2657:                    warning ("extra semicolon in struct or union specified"); ;
                   2658:     break;}
                   2659: case 207:
                   2660: #line 1064 "objc-parse.y"
                   2661: { yyval.ttype = get_class_ivars (yyvsp[-1].ttype); ;
                   2662:     break;}
                   2663: case 208:
                   2664: #line 1078 "objc-parse.y"
                   2665: { yyval.ttype = yyvsp[0].ttype;
                   2666:                  current_declspecs = TREE_VALUE (declspec_stack);
                   2667:                  declspec_stack = TREE_CHAIN (declspec_stack);
                   2668:                  resume_momentary (yyvsp[-1].itype); ;
                   2669:     break;}
                   2670: case 209:
                   2671: #line 1083 "objc-parse.y"
                   2672: { if (pedantic)
                   2673:                    pedwarn ("ANSI C forbids member declarations with no members");
                   2674:                  shadow_tag(yyvsp[0].ttype);
                   2675:                  yyval.ttype = NULL_TREE; ;
                   2676:     break;}
                   2677: case 210:
                   2678: #line 1088 "objc-parse.y"
                   2679: { yyval.ttype = yyvsp[0].ttype;
                   2680:                  current_declspecs = TREE_VALUE (declspec_stack);
                   2681:                  declspec_stack = TREE_CHAIN (declspec_stack);
                   2682:                  resume_momentary (yyvsp[-1].itype); ;
                   2683:     break;}
                   2684: case 211:
                   2685: #line 1093 "objc-parse.y"
                   2686: { if (pedantic)
                   2687:                    pedwarn ("ANSI C forbids member declarations with no members");
                   2688:                  shadow_tag(yyvsp[0].ttype);
                   2689:                  yyval.ttype = NULL_TREE; ;
                   2690:     break;}
                   2691: case 212:
                   2692: #line 1098 "objc-parse.y"
                   2693: { yyval.ttype = NULL_TREE; ;
                   2694:     break;}
                   2695: case 214:
                   2696: #line 1104 "objc-parse.y"
                   2697: { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   2698:     break;}
                   2699: case 215:
                   2700: #line 1109 "objc-parse.y"
                   2701: { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
                   2702:                  decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
                   2703:     break;}
                   2704: case 216:
                   2705: #line 1113 "objc-parse.y"
                   2706: { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
                   2707:                  decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
                   2708:     break;}
                   2709: case 217:
                   2710: #line 1116 "objc-parse.y"
                   2711: { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, NULL_TREE, current_declspecs, yyvsp[0].ttype); ;
                   2712:     break;}
                   2713: case 219:
                   2714: #line 1127 "objc-parse.y"
                   2715: { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
                   2716:     break;}
                   2717: case 220:
                   2718: #line 1133 "objc-parse.y"
                   2719: { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
                   2720:     break;}
                   2721: case 221:
                   2722: #line 1135 "objc-parse.y"
                   2723: { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   2724:     break;}
                   2725: case 222:
                   2726: #line 1140 "objc-parse.y"
                   2727: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
                   2728:     break;}
                   2729: case 223:
                   2730: #line 1142 "objc-parse.y"
                   2731: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
                   2732:     break;}
                   2733: case 224:
                   2734: #line 1147 "objc-parse.y"
                   2735: { yyval.ttype = NULL_TREE; ;
                   2736:     break;}
                   2737: case 226:
                   2738: #line 1153 "objc-parse.y"
                   2739: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
                   2740:     break;}
                   2741: case 227:
                   2742: #line 1155 "objc-parse.y"
                   2743: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
                   2744:     break;}
                   2745: case 228:
                   2746: #line 1160 "objc-parse.y"
                   2747: { yyval.ttype = NULL_TREE; ;
                   2748:     break;}
                   2749: case 229:
                   2750: #line 1162 "objc-parse.y"
                   2751: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
                   2752:     break;}
                   2753: case 230:
                   2754: #line 1167 "objc-parse.y"
                   2755: { yyval.ttype = yyvsp[-1].ttype; ;
                   2756:     break;}
                   2757: case 231:
                   2758: #line 1170 "objc-parse.y"
                   2759: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
                   2760:     break;}
                   2761: case 232:
                   2762: #line 1172 "objc-parse.y"
                   2763: { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
                   2764:     break;}
                   2765: case 233:
                   2766: #line 1174 "objc-parse.y"
                   2767: { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
                   2768:     break;}
                   2769: case 234:
                   2770: #line 1176 "objc-parse.y"
                   2771: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
                   2772:     break;}
                   2773: case 235:
                   2774: #line 1178 "objc-parse.y"
                   2775: { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
                   2776:     break;}
                   2777: case 236:
                   2778: #line 1180 "objc-parse.y"
                   2779: { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
                   2780:     break;}
                   2781: case 237:
                   2782: #line 1182 "objc-parse.y"
                   2783: { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
                   2784:     break;}
                   2785: case 238:
                   2786: #line 1184 "objc-parse.y"
                   2787: { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
                   2788:     break;}
                   2789: case 245:
                   2790: #line 1206 "objc-parse.y"
                   2791: { emit_line_note (input_filename, lineno);
                   2792:                  pushlevel (0);
                   2793:                  clear_last_expr ();
                   2794:                  push_momentary ();
                   2795:                  expand_start_bindings (0);
                   2796:                  if (objc_method_context)
                   2797:                    add_objc_decls (); ;
                   2798:     break;}
                   2799: case 247:
                   2800: #line 1220 "objc-parse.y"
                   2801: { if (pedantic)
                   2802:                    pedwarn ("ANSI C forbids label declarations"); ;
                   2803:     break;}
                   2804: case 250:
                   2805: #line 1231 "objc-parse.y"
                   2806: { tree link;
                   2807:                  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
                   2808:                    {
                   2809:                      tree label = shadow_label (TREE_VALUE (link));
                   2810:                      C_DECLARED_LABEL_FLAG (label) = 1;
                   2811:                      declare_nonlocal_label (label);
                   2812:                    }
                   2813:                ;
                   2814:     break;}
                   2815: case 251:
                   2816: #line 1248 "objc-parse.y"
                   2817: {;
                   2818:     break;}
                   2819: case 253:
                   2820: #line 1253 "objc-parse.y"
                   2821: { yyval.ttype = convert (void_type_node, integer_zero_node); ;
                   2822:     break;}
                   2823: case 254:
                   2824: #line 1255 "objc-parse.y"
                   2825: { emit_line_note (input_filename, lineno);
                   2826:                  expand_end_bindings (getdecls (), 1, 0);
                   2827:                  yyval.ttype = poplevel (1, 1, 0);
                   2828:                  pop_momentary (); ;
                   2829:     break;}
                   2830: case 255:
                   2831: #line 1260 "objc-parse.y"
                   2832: { emit_line_note (input_filename, lineno);
                   2833:                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                   2834:                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
                   2835:                  pop_momentary (); ;
                   2836:     break;}
                   2837: case 256:
                   2838: #line 1265 "objc-parse.y"
                   2839: { emit_line_note (input_filename, lineno);
                   2840:                  expand_end_bindings (getdecls (), kept_level_p (), 0);
                   2841:                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
                   2842:                  pop_momentary (); ;
                   2843:     break;}
                   2844: case 257:
                   2845: #line 1274 "objc-parse.y"
                   2846: { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                   2847:                  expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
                   2848:                  yyvsp[-3].itype = stmt_count;
                   2849:                  if_stmt_file = yyvsp[-5].filename;
                   2850:                  if_stmt_line = yyvsp[-4].lineno;
                   2851:                  position_after_white_space (); ;
                   2852:     break;}
                   2853: case 259:
                   2854: #line 1284 "objc-parse.y"
                   2855: { yyval.filename = input_filename; ;
                   2856:     break;}
                   2857: case 260:
                   2858: #line 1288 "objc-parse.y"
                   2859: { yyval.lineno = lineno; ;
                   2860:     break;}
                   2861: case 261:
                   2862: #line 1293 "objc-parse.y"
                   2863: { ;
                   2864:     break;}
                   2865: case 262:
                   2866: #line 1298 "objc-parse.y"
                   2867: { stmt_count++; ;
                   2868:     break;}
                   2869: case 263:
                   2870: #line 1300 "objc-parse.y"
                   2871: { stmt_count++;
                   2872:                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                   2873:                  c_expand_expr_stmt (yyvsp[-1].ttype);
                   2874:                  clear_momentary (); ;
                   2875:     break;}
                   2876: case 264:
                   2877: #line 1305 "objc-parse.y"
                   2878: { expand_start_else ();
                   2879:                  yyvsp[-1].itype = stmt_count;
                   2880:                  position_after_white_space (); ;
                   2881:     break;}
                   2882: case 265:
                   2883: #line 1309 "objc-parse.y"
                   2884: { expand_end_cond ();
                   2885:                  if (extra_warnings && stmt_count == yyvsp[-3].itype)
                   2886:                    warning ("empty body in an else-statement"); ;
                   2887:     break;}
                   2888: case 266:
                   2889: #line 1313 "objc-parse.y"
                   2890: { expand_end_cond ();
                   2891:                  if (extra_warnings && stmt_count == yyvsp[0].itype)
                   2892:                    warning_with_file_and_line (if_stmt_file, if_stmt_line,
                   2893:                                                "empty body in an if-statement"); ;
                   2894:     break;}
                   2895: case 267:
                   2896: #line 1318 "objc-parse.y"
                   2897: { emit_nop ();
                   2898:                  stmt_count++;
                   2899:                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
                   2900:                  expand_start_loop (1); ;
                   2901:     break;}
                   2902: case 268:
                   2903: #line 1323 "objc-parse.y"
                   2904: { emit_line_note (input_filename, lineno);
                   2905:                  expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype));
                   2906:                  position_after_white_space (); ;
                   2907:     break;}
                   2908: case 269:
                   2909: #line 1327 "objc-parse.y"
                   2910: { expand_end_loop (); ;
                   2911:     break;}
                   2912: case 270:
                   2913: #line 1329 "objc-parse.y"
                   2914: { emit_nop ();
                   2915:                  stmt_count++;
                   2916:                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
                   2917:                  expand_start_loop_continue_elsewhere (1);
                   2918:                  position_after_white_space (); ;
                   2919:     break;}
                   2920: case 271:
                   2921: #line 1335 "objc-parse.y"
                   2922: { expand_loop_continue_here (); ;
                   2923:     break;}
                   2924: case 272:
                   2925: #line 1337 "objc-parse.y"
                   2926: { emit_line_note (input_filename, lineno);
                   2927:                  expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-2].ttype));
                   2928:                  expand_end_loop ();
                   2929:                  clear_momentary (); ;
                   2930:     break;}
                   2931: case 273:
                   2932: #line 1343 "objc-parse.y"
                   2933: { emit_nop ();
                   2934:                  stmt_count++;
                   2935:                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                   2936:                  if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
                   2937:                  expand_start_loop_continue_elsewhere (1); ;
                   2938:     break;}
                   2939: case 274:
                   2940: #line 1349 "objc-parse.y"
                   2941: { emit_line_note (input_filename, lineno);
                   2942:                  if (yyvsp[-1].ttype)
                   2943:                    expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
                   2944:     break;}
                   2945: case 275:
                   2946: #line 1355 "objc-parse.y"
                   2947: { push_momentary ();
                   2948:                  position_after_white_space (); ;
                   2949:     break;}
                   2950: case 276:
                   2951: #line 1358 "objc-parse.y"
                   2952: { emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
                   2953:                  expand_loop_continue_here ();
                   2954:                  if (yyvsp[-3].ttype)
                   2955:                    c_expand_expr_stmt (yyvsp[-3].ttype);
                   2956:                  pop_momentary ();
                   2957:                  expand_end_loop (); ;
                   2958:     break;}
                   2959: case 277:
                   2960: #line 1365 "objc-parse.y"
                   2961: { stmt_count++;
                   2962:                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                   2963:                  c_expand_start_case (yyvsp[-1].ttype);
                   2964:                  /* Don't let the tree nodes for $3 be discarded by
                   2965:                     clear_momentary during the parsing of the next stmt.  */
                   2966:                  push_momentary ();
                   2967:                  position_after_white_space (); ;
                   2968:     break;}
                   2969: case 278:
                   2970: #line 1373 "objc-parse.y"
                   2971: { expand_end_case (yyvsp[-3].ttype);
                   2972:                  pop_momentary (); ;
                   2973:     break;}
                   2974: case 279:
                   2975: #line 1376 "objc-parse.y"
                   2976: { register tree value = check_case_value (yyvsp[-1].ttype);
                   2977:                  register tree label
                   2978:                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
                   2979: 
                   2980:                  stmt_count++;
                   2981: 
                   2982:                  if (value != error_mark_node)
                   2983:                    {
                   2984:                      tree duplicate;
                   2985:                      int success = pushcase (value, label, &duplicate);
                   2986:                      if (success == 1)
                   2987:                        error ("case label not within a switch statement");
                   2988:                      else if (success == 2)
                   2989:                        {
                   2990:                          error ("duplicate case value");
                   2991:                          error_with_decl (duplicate, "this is the first entry for that value");
                   2992:                        }
                   2993:                      else if (success == 3)
                   2994:                        warning ("case value out of range");
                   2995:                      else if (success == 5)
                   2996:                        error ("case label within scope of cleanup or variable array");
                   2997:                    }
                   2998:                  position_after_white_space (); ;
                   2999:     break;}
                   3000: case 281:
                   3001: #line 1401 "objc-parse.y"
                   3002: { register tree value1 = check_case_value (yyvsp[-3].ttype);
                   3003:                  register tree value2 = check_case_value (yyvsp[-1].ttype);
                   3004:                  register tree label
                   3005:                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
                   3006: 
                   3007:                  stmt_count++;
                   3008: 
                   3009:                  if (value1 != error_mark_node && value2 != error_mark_node)
                   3010:                    {
                   3011:                      tree duplicate;
                   3012:                      int success = pushcase_range (value1, value2, label,
                   3013:                                                    &duplicate);
                   3014:                      if (success == 1)
                   3015:                        error ("case label not within a switch statement");
                   3016:                      else if (success == 2)
                   3017:                        {
                   3018:                          error ("duplicate case value");
                   3019:                          error_with_decl (duplicate, "this is the first entry overlapping that value");
                   3020:                        }
                   3021:                      else if (success == 3)
                   3022:                        warning ("case value out of range");
                   3023:                      else if (success == 4)
                   3024:                        warning ("empty case range");
                   3025:                      else if (success == 5)
                   3026:                        error ("case label within scope of cleanup or variable array");
                   3027:                    }
                   3028:                  position_after_white_space (); ;
                   3029:     break;}
                   3030: case 283:
                   3031: #line 1430 "objc-parse.y"
                   3032: {
                   3033:                  tree duplicate;
                   3034:                  register tree label
                   3035:                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
                   3036:                  int success = pushcase (NULL_TREE, label, &duplicate);
                   3037:                  stmt_count++;
                   3038:                  if (success == 1)
                   3039:                    error ("default label not within a switch statement");
                   3040:                  else if (success == 2)
                   3041:                    {
                   3042:                      error ("multiple default labels in one switch");
                   3043:                      error_with_decl (duplicate, "this is the first default albel");
                   3044:                    }
                   3045:                  position_after_white_space (); ;
                   3046:     break;}
                   3047: case 285:
                   3048: #line 1446 "objc-parse.y"
                   3049: { stmt_count++;
                   3050:                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                   3051:                  if ( ! expand_exit_something ())
                   3052:                    error ("break statement not within loop or switch"); ;
                   3053:     break;}
                   3054: case 286:
                   3055: #line 1451 "objc-parse.y"
                   3056: { stmt_count++;
                   3057:                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                   3058:                  if (! expand_continue_loop (0))
                   3059:                    error ("continue statement not within a loop"); ;
                   3060:     break;}
                   3061: case 287:
                   3062: #line 1456 "objc-parse.y"
                   3063: { stmt_count++;
                   3064:                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
                   3065:                  c_expand_return (NULL_TREE); ;
                   3066:     break;}
                   3067: case 288:
                   3068: #line 1460 "objc-parse.y"
                   3069: { stmt_count++;
                   3070:                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
                   3071:                  c_expand_return (yyvsp[-1].ttype); ;
                   3072:     break;}
                   3073: case 289:
                   3074: #line 1464 "objc-parse.y"
                   3075: { stmt_count++;
                   3076:                  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
                   3077:                  if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
                   3078:                  expand_asm (yyvsp[-2].ttype); ;
                   3079:     break;}
                   3080: case 290:
                   3081: #line 1470 "objc-parse.y"
                   3082: { stmt_count++;
                   3083:                  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
                   3084:                  if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
                   3085:                  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
                   3086:                                         yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
                   3087:                                         input_filename, lineno); ;
                   3088:     break;}
                   3089: case 291:
                   3090: #line 1478 "objc-parse.y"
                   3091: { stmt_count++;
                   3092:                  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
                   3093:                  if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
                   3094:                  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
                   3095:                                         yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
                   3096:                                         input_filename, lineno); ;
                   3097:     break;}
                   3098: case 292:
                   3099: #line 1487 "objc-parse.y"
                   3100: { stmt_count++;
                   3101:                  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
                   3102:                  if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
                   3103:                  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
                   3104:                                         yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
                   3105:                                         input_filename, lineno); ;
                   3106:     break;}
                   3107: case 293:
                   3108: #line 1494 "objc-parse.y"
                   3109: { tree decl;
                   3110:                  stmt_count++;
                   3111:                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
                   3112:                  decl = lookup_label (yyvsp[-1].ttype);
                   3113:                  if (decl != 0)
                   3114:                    {
                   3115:                      TREE_USED (decl) = 1;
                   3116:                      expand_goto (decl);
                   3117:                    }
                   3118:                ;
                   3119:     break;}
                   3120: case 294:
                   3121: #line 1505 "objc-parse.y"
                   3122: { stmt_count++;
                   3123:                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
                   3124:                  expand_computed_goto (yyvsp[-1].ttype); ;
                   3125:     break;}
                   3126: case 295:
                   3127: #line 1509 "objc-parse.y"
                   3128: { tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
                   3129:                  stmt_count++;
                   3130:                  emit_nop ();
                   3131:                  if (label)
                   3132:                    expand_label (label);
                   3133:                  position_after_white_space (); ;
                   3134:     break;}
                   3135: case 298:
                   3136: #line 1523 "objc-parse.y"
                   3137: { if (pedantic)
                   3138:                    pedwarn ("ANSI C forbids use of `asm' keyword");
                   3139:                  emit_line_note (input_filename, lineno); ;
                   3140:     break;}
                   3141: case 299:
                   3142: #line 1527 "objc-parse.y"
                   3143: { if (pedantic)
                   3144:                    pedwarn ("ANSI C forbids use of `asm' keyword");
                   3145:                  emit_line_note (input_filename, lineno); ;
                   3146:     break;}
                   3147: case 300:
                   3148: #line 1534 "objc-parse.y"
                   3149: { yyval.ttype = NULL_TREE; ;
                   3150:     break;}
                   3151: case 302:
                   3152: #line 1541 "objc-parse.y"
                   3153: { yyval.ttype = NULL_TREE; ;
                   3154:     break;}
                   3155: case 305:
                   3156: #line 1548 "objc-parse.y"
                   3157: { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
                   3158:     break;}
                   3159: case 306:
                   3160: #line 1553 "objc-parse.y"
                   3161: { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
                   3162:     break;}
                   3163: case 307:
                   3164: #line 1558 "objc-parse.y"
                   3165: { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
                   3166:     break;}
                   3167: case 308:
                   3168: #line 1560 "objc-parse.y"
                   3169: { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
                   3170:     break;}
                   3171: case 309:
                   3172: #line 1566 "objc-parse.y"
                   3173: { pushlevel (0);
                   3174:                  declare_parm_level (0); ;
                   3175:     break;}
                   3176: case 310:
                   3177: #line 1569 "objc-parse.y"
                   3178: { yyval.ttype = yyvsp[0].ttype;
                   3179:                  parmlist_tags_warning ();
                   3180:                  poplevel (0, 0, 0); ;
                   3181:     break;}
                   3182: case 311:
                   3183: #line 1577 "objc-parse.y"
                   3184: { pushlevel (0);
                   3185:                  declare_parm_level (1); ;
                   3186:     break;}
                   3187: case 312:
                   3188: #line 1580 "objc-parse.y"
                   3189: { yyval.ttype = yyvsp[0].ttype;
                   3190:                  parmlist_tags_warning ();
                   3191:                  poplevel (0, 0, 0); ;
                   3192:     break;}
                   3193: case 314:
                   3194: #line 1588 "objc-parse.y"
                   3195: { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
                   3196:     break;}
                   3197: case 315:
                   3198: #line 1590 "objc-parse.y"
                   3199: { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
                   3200:     break;}
                   3201: case 317:
                   3202: #line 1596 "objc-parse.y"
                   3203: { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
                   3204:     break;}
                   3205: case 318:
                   3206: #line 1602 "objc-parse.y"
                   3207: { yyval.ttype = get_parm_info (0); ;
                   3208:     break;}
                   3209: case 319:
                   3210: #line 1604 "objc-parse.y"
                   3211: { yyval.ttype = get_parm_info (1); ;
                   3212:     break;}
                   3213: case 320:
                   3214: #line 1606 "objc-parse.y"
                   3215: { yyval.ttype = get_parm_info (0); ;
                   3216:     break;}
                   3217: case 321:
                   3218: #line 1611 "objc-parse.y"
                   3219: { push_parm_decl (yyvsp[0].ttype); ;
                   3220:     break;}
                   3221: case 322:
                   3222: #line 1613 "objc-parse.y"
                   3223: { push_parm_decl (yyvsp[0].ttype); ;
                   3224:     break;}
                   3225: case 323:
                   3226: #line 1620 "objc-parse.y"
                   3227: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype)      ; ;
                   3228:     break;}
                   3229: case 324:
                   3230: #line 1622 "objc-parse.y"
                   3231: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype)      ; ;
                   3232:     break;}
                   3233: case 325:
                   3234: #line 1624 "objc-parse.y"
                   3235: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
                   3236:     break;}
                   3237: case 326:
                   3238: #line 1626 "objc-parse.y"
                   3239: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype)      ; ;
                   3240:     break;}
                   3241: case 327:
                   3242: #line 1628 "objc-parse.y"
                   3243: { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
                   3244:     break;}
                   3245: case 328:
                   3246: #line 1634 "objc-parse.y"
                   3247: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
                   3248:     break;}
                   3249: case 329:
                   3250: #line 1636 "objc-parse.y"
                   3251: { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
                   3252:     break;}
                   3253: case 332:
                   3254: #line 1646 "objc-parse.y"
                   3255: {
                   3256:                  if (objc_implementation_context)
                   3257:                     {
                   3258:                      finish_class (objc_implementation_context);
                   3259:                      objc_ivar_chain = NULL_TREE;
                   3260:                      objc_implementation_context = NULL_TREE;
                   3261:                    }
                   3262:                  else
                   3263:                    warning ("`@end' must appear in an implementation context");
                   3264:                ;
                   3265:     break;}
                   3266: case 333:
                   3267: #line 1660 "objc-parse.y"
                   3268: {
                   3269:                  objc_interface_context = objc_ivar_context
                   3270:                    = start_class (INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE);
                   3271:                   objc_public_flag = 0;
                   3272:                ;
                   3273:     break;}
                   3274: case 334:
                   3275: #line 1666 "objc-parse.y"
                   3276: {
                   3277:                   continue_class (objc_interface_context);
                   3278:                ;
                   3279:     break;}
                   3280: case 335:
                   3281: #line 1671 "objc-parse.y"
                   3282: {
                   3283:                  finish_class (objc_interface_context);
                   3284:                  objc_interface_context = NULL_TREE;
                   3285:                ;
                   3286:     break;}
                   3287: case 336:
                   3288: #line 1677 "objc-parse.y"
                   3289: {
                   3290:                  objc_interface_context
                   3291:                    = start_class (INTERFACE_TYPE, yyvsp[0].ttype, NULL_TREE);
                   3292:                   continue_class (objc_interface_context);
                   3293:                ;
                   3294:     break;}
                   3295: case 337:
                   3296: #line 1684 "objc-parse.y"
                   3297: {
                   3298:                  finish_class (objc_interface_context);
                   3299:                  objc_interface_context = NULL_TREE;
                   3300:                ;
                   3301:     break;}
                   3302: case 338:
                   3303: #line 1690 "objc-parse.y"
                   3304: {
                   3305:                  objc_interface_context = objc_ivar_context
                   3306:                    = start_class (INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype);
                   3307:                   objc_public_flag = 0;
                   3308:                ;
                   3309:     break;}
                   3310: case 339:
                   3311: #line 1696 "objc-parse.y"
                   3312: {
                   3313:                   continue_class (objc_interface_context);
                   3314:                ;
                   3315:     break;}
                   3316: case 340:
                   3317: #line 1701 "objc-parse.y"
                   3318: {
                   3319:                  finish_class (objc_interface_context);
                   3320:                  objc_interface_context = NULL_TREE;
                   3321:                ;
                   3322:     break;}
                   3323: case 341:
                   3324: #line 1707 "objc-parse.y"
                   3325: {
                   3326:                  objc_interface_context
                   3327:                    = start_class (INTERFACE_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype);
                   3328:                   continue_class (objc_interface_context);
                   3329:                ;
                   3330:     break;}
                   3331: case 342:
                   3332: #line 1714 "objc-parse.y"
                   3333: {
                   3334:                  finish_class (objc_interface_context);
                   3335:                  objc_interface_context = NULL_TREE;
                   3336:                ;
                   3337:     break;}
                   3338: case 343:
                   3339: #line 1720 "objc-parse.y"
                   3340: {
                   3341:                  objc_implementation_context = objc_ivar_context
                   3342:                    = start_class (IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE);
                   3343:                   objc_public_flag = 0;
                   3344:                ;
                   3345:     break;}
                   3346: case 344:
                   3347: #line 1726 "objc-parse.y"
                   3348: {
                   3349:                   objc_ivar_chain
                   3350:                    = continue_class (objc_implementation_context);
                   3351:                ;
                   3352:     break;}
                   3353: case 345:
                   3354: #line 1732 "objc-parse.y"
                   3355: {
                   3356:                  objc_implementation_context
                   3357:                    = start_class (IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE);
                   3358:                   objc_ivar_chain
                   3359:                    = continue_class (objc_implementation_context);
                   3360:                ;
                   3361:     break;}
                   3362: case 346:
                   3363: #line 1740 "objc-parse.y"
                   3364: {
                   3365:                  objc_implementation_context = objc_ivar_context
                   3366:                    = start_class (IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype);
                   3367:                   objc_public_flag = 0;
                   3368:                ;
                   3369:     break;}
                   3370: case 347:
                   3371: #line 1746 "objc-parse.y"
                   3372: {
                   3373:                   objc_ivar_chain
                   3374:                    = continue_class (objc_implementation_context);
                   3375:                ;
                   3376:     break;}
                   3377: case 348:
                   3378: #line 1752 "objc-parse.y"
                   3379: {
                   3380:                  objc_implementation_context
                   3381:                    = start_class (IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype);
                   3382:                   objc_ivar_chain
                   3383:                    = continue_class (objc_implementation_context);
                   3384:                ;
                   3385:     break;}
                   3386: case 349:
                   3387: #line 1760 "objc-parse.y"
                   3388: {
                   3389:                  objc_interface_context
                   3390:                    = start_class (PROTOCOL_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype);
                   3391:                   continue_class (objc_interface_context);
                   3392:                ;
                   3393:     break;}
                   3394: case 350:
                   3395: #line 1767 "objc-parse.y"
                   3396: {
                   3397:                  finish_class (objc_interface_context);
                   3398:                  objc_interface_context = NULL_TREE;
                   3399:                ;
                   3400:     break;}
                   3401: case 351:
                   3402: #line 1773 "objc-parse.y"
                   3403: {
                   3404:                  objc_implementation_context
                   3405:                    = start_class (CATEGORY_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype);
                   3406:                   objc_ivar_chain
                   3407:                    = continue_class (objc_implementation_context);
                   3408:                ;
                   3409:     break;}
                   3410: case 352:
                   3411: #line 1782 "objc-parse.y"
                   3412: { objc_public_flag = 1; ;
                   3413:     break;}
                   3414: case 355:
                   3415: #line 1788 "objc-parse.y"
                   3416: {
                   3417:                   yyval.ttype = NULL_TREE;
                   3418:                 ;
                   3419:     break;}
                   3420: case 357:
                   3421: #line 1793 "objc-parse.y"
                   3422: {
                   3423:                   if (pedantic)
                   3424:                    warning ("extra semicolon in struct or union specified");
                   3425:                 ;
                   3426:     break;}
                   3427: case 358:
                   3428: #line 1811 "objc-parse.y"
                   3429: {
                   3430:                   yyval.ttype = yyvsp[0].ttype;
                   3431:                  resume_momentary (yyvsp[-1].itype);
                   3432:                 ;
                   3433:     break;}
                   3434: case 359:
                   3435: #line 1816 "objc-parse.y"
                   3436: {
                   3437:                   yyval.ttype = yyvsp[0].ttype;
                   3438:                  resume_momentary (yyvsp[-1].itype);
                   3439:                 ;
                   3440:     break;}
                   3441: case 360:
                   3442: #line 1821 "objc-parse.y"
                   3443: { yyval.ttype = NULL_TREE; ;
                   3444:     break;}
                   3445: case 361:
                   3446: #line 1826 "objc-parse.y"
                   3447: { yyval.ttype = NULL_TREE; ;
                   3448:     break;}
                   3449: case 364:
                   3450: #line 1833 "objc-parse.y"
                   3451: {
                   3452:                  yyval.ttype = add_instance_variable (objc_ivar_context,
                   3453:                                              objc_public_flag,
                   3454:                                              yyvsp[0].ttype, current_declspecs,
                   3455:                                              NULL_TREE);
                   3456:                 ;
                   3457:     break;}
                   3458: case 365:
                   3459: #line 1840 "objc-parse.y"
                   3460: {
                   3461:                  yyval.ttype = add_instance_variable (objc_ivar_context,
                   3462:                                              objc_public_flag,
                   3463:                                              yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype);
                   3464:                 ;
                   3465:     break;}
                   3466: case 366:
                   3467: #line 1846 "objc-parse.y"
                   3468: {
                   3469:                  yyval.ttype = add_instance_variable (objc_ivar_context,
                   3470:                                              objc_public_flag,
                   3471:                                              NULL_TREE,
                   3472:                                              current_declspecs, yyvsp[0].ttype);
                   3473:                 ;
                   3474:     break;}
                   3475: case 367:
                   3476: #line 1856 "objc-parse.y"
                   3477: {
                   3478:                  if (objc_implementation_context)
                   3479:                    objc_inherit_code = CLASS_METHOD_DECL;
                   3480:                   else
                   3481:                    fatal ("method definition not in class context");
                   3482:                ;
                   3483:     break;}
                   3484: case 368:
                   3485: #line 1863 "objc-parse.y"
                   3486: {
                   3487:                  add_class_method (objc_implementation_context, yyvsp[0].ttype);
                   3488:                  start_method_def (yyvsp[0].ttype);
                   3489:                  objc_method_context = yyvsp[0].ttype;
                   3490:                ;
                   3491:     break;}
                   3492: case 369:
                   3493: #line 1869 "objc-parse.y"
                   3494: {
                   3495:                  continue_method_def ();
                   3496:                ;
                   3497:     break;}
                   3498: case 370:
                   3499: #line 1873 "objc-parse.y"
                   3500: {
                   3501:                  finish_method_def ();
                   3502:                  objc_method_context = NULL_TREE;
                   3503:                ;
                   3504:     break;}
                   3505: case 371:
                   3506: #line 1879 "objc-parse.y"
                   3507: {
                   3508:                  if (objc_implementation_context)
                   3509:                    objc_inherit_code = INSTANCE_METHOD_DECL;
                   3510:                   else
                   3511:                    fatal ("method definition not in class context");
                   3512:                ;
                   3513:     break;}
                   3514: case 372:
                   3515: #line 1886 "objc-parse.y"
                   3516: {
                   3517:                  add_instance_method (objc_implementation_context, yyvsp[0].ttype);
                   3518:                  start_method_def (yyvsp[0].ttype);
                   3519:                  objc_method_context = yyvsp[0].ttype;
                   3520:                ;
                   3521:     break;}
                   3522: case 373:
                   3523: #line 1892 "objc-parse.y"
                   3524: {
                   3525:                  continue_method_def ();
                   3526:                ;
                   3527:     break;}
                   3528: case 374:
                   3529: #line 1896 "objc-parse.y"
                   3530: {
                   3531:                  finish_method_def ();
                   3532:                  objc_method_context = NULL_TREE;
                   3533:                ;
                   3534:     break;}
                   3535: case 376:
                   3536: #line 1908 "objc-parse.y"
                   3537: {yyval.ttype = NULL_TREE; ;
                   3538:     break;}
                   3539: case 381:
                   3540: #line 1915 "objc-parse.y"
                   3541: {yyval.ttype = NULL_TREE; ;
                   3542:     break;}
                   3543: case 385:
                   3544: #line 1925 "objc-parse.y"
                   3545: {
                   3546:                  objc_inherit_code = CLASS_METHOD_DECL;
                   3547:                ;
                   3548:     break;}
                   3549: case 386:
                   3550: #line 1929 "objc-parse.y"
                   3551: {
                   3552:                  add_class_method (objc_interface_context, yyvsp[0].ttype);
                   3553:                ;
                   3554:     break;}
                   3555: case 388:
                   3556: #line 1935 "objc-parse.y"
                   3557: {
                   3558:                  objc_inherit_code = INSTANCE_METHOD_DECL;
                   3559:                ;
                   3560:     break;}
                   3561: case 389:
                   3562: #line 1939 "objc-parse.y"
                   3563: {
                   3564:                  add_instance_method (objc_interface_context, yyvsp[0].ttype);
                   3565:                ;
                   3566:     break;}
                   3567: case 391:
                   3568: #line 1947 "objc-parse.y"
                   3569: {
                   3570:                  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
                   3571:                ;
                   3572:     break;}
                   3573: case 392:
                   3574: #line 1952 "objc-parse.y"
                   3575: {
                   3576:                  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE);
                   3577:                ;
                   3578:     break;}
                   3579: case 393:
                   3580: #line 1957 "objc-parse.y"
                   3581: {
                   3582:                  yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
                   3583:                ;
                   3584:     break;}
                   3585: case 394:
                   3586: #line 1962 "objc-parse.y"
                   3587: {
                   3588:                  yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
                   3589:                ;
                   3590:     break;}
                   3591: case 403:
                   3592: #line 1992 "objc-parse.y"
                   3593: { resume_momentary (yyvsp[-2].itype); ;
                   3594:     break;}
                   3595: case 404:
                   3596: #line 1994 "objc-parse.y"
                   3597: { shadow_tag (yyvsp[-1].ttype); ;
                   3598:     break;}
                   3599: case 405:
                   3600: #line 1996 "objc-parse.y"
                   3601: { warning ("empty declaration"); ;
                   3602:     break;}
                   3603: case 406:
                   3604: #line 2001 "objc-parse.y"
                   3605: { push_parm_decl (yyvsp[0].ttype); ;
                   3606:     break;}
                   3607: case 407:
                   3608: #line 2003 "objc-parse.y"
                   3609: { push_parm_decl (yyvsp[0].ttype); ;
                   3610:     break;}
                   3611: case 408:
                   3612: #line 2011 "objc-parse.y"
                   3613: { yyval.ttype = build_tree_list (current_declspecs, yyvsp[0].ttype)    ; ;
                   3614:     break;}
                   3615: case 409:
                   3616: #line 2013 "objc-parse.y"
                   3617: { yyval.ttype = build_tree_list (current_declspecs, yyvsp[0].ttype)    ; ;
                   3618:     break;}
                   3619: case 410:
                   3620: #line 2015 "objc-parse.y"
                   3621: { yyval.ttype = build_tree_list (current_declspecs, yyvsp[0].ttype)    ; ;
                   3622:     break;}
                   3623: case 411:
                   3624: #line 2020 "objc-parse.y"
                   3625: {
                   3626:                  yyval.ttype = NULL_TREE;
                   3627:                ;
                   3628:     break;}
                   3629: case 412:
                   3630: #line 2024 "objc-parse.y"
                   3631: {
                   3632:                  /* oh what a kludge! */
                   3633:                  yyval.ttype = (tree)1;
                   3634:                ;
                   3635:     break;}
                   3636: case 413:
                   3637: #line 2029 "objc-parse.y"
                   3638: {
                   3639:                  pushlevel (0);
                   3640:                ;
                   3641:     break;}
                   3642: case 414:
                   3643: #line 2033 "objc-parse.y"
                   3644: {
                   3645:                  /* returns a tree list node generated by get_parm_info */
                   3646:                  yyval.ttype = yyvsp[0].ttype;
                   3647:                  poplevel (0, 0, 0);
                   3648:                ;
                   3649:     break;}
                   3650: case 417:
                   3651: #line 2048 "objc-parse.y"
                   3652: {
                   3653:                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                   3654:                ;
                   3655:     break;}
                   3656: case 421:
                   3657: #line 2060 "objc-parse.y"
                   3658: { yyval.ttype = get_identifier (token_buffer); ;
                   3659:     break;}
                   3660: case 422:
                   3661: #line 2061 "objc-parse.y"
                   3662: { yyval.ttype = get_identifier (token_buffer); ;
                   3663:     break;}
                   3664: case 423:
                   3665: #line 2062 "objc-parse.y"
                   3666: { yyval.ttype = get_identifier (token_buffer); ;
                   3667:     break;}
                   3668: case 424:
                   3669: #line 2063 "objc-parse.y"
                   3670: { yyval.ttype = get_identifier (token_buffer); ;
                   3671:     break;}
                   3672: case 425:
                   3673: #line 2064 "objc-parse.y"
                   3674: { yyval.ttype = get_identifier (token_buffer); ;
                   3675:     break;}
                   3676: case 426:
                   3677: #line 2065 "objc-parse.y"
                   3678: { yyval.ttype = get_identifier (token_buffer); ;
                   3679:     break;}
                   3680: case 427:
                   3681: #line 2066 "objc-parse.y"
                   3682: { yyval.ttype = get_identifier (token_buffer); ;
                   3683:     break;}
                   3684: case 428:
                   3685: #line 2067 "objc-parse.y"
                   3686: { yyval.ttype = get_identifier (token_buffer); ;
                   3687:     break;}
                   3688: case 429:
                   3689: #line 2068 "objc-parse.y"
                   3690: { yyval.ttype = get_identifier (token_buffer); ;
                   3691:     break;}
                   3692: case 430:
                   3693: #line 2069 "objc-parse.y"
                   3694: { yyval.ttype = get_identifier (token_buffer); ;
                   3695:     break;}
                   3696: case 431:
                   3697: #line 2070 "objc-parse.y"
                   3698: { yyval.ttype = get_identifier (token_buffer); ;
                   3699:     break;}
                   3700: case 432:
                   3701: #line 2071 "objc-parse.y"
                   3702: { yyval.ttype = get_identifier (token_buffer); ;
                   3703:     break;}
                   3704: case 433:
                   3705: #line 2072 "objc-parse.y"
                   3706: { yyval.ttype = get_identifier (token_buffer); ;
                   3707:     break;}
                   3708: case 434:
                   3709: #line 2073 "objc-parse.y"
                   3710: { yyval.ttype = get_identifier (token_buffer); ;
                   3711:     break;}
                   3712: case 435:
                   3713: #line 2074 "objc-parse.y"
                   3714: { yyval.ttype = get_identifier (token_buffer); ;
                   3715:     break;}
                   3716: case 436:
                   3717: #line 2075 "objc-parse.y"
                   3718: { yyval.ttype = get_identifier (token_buffer); ;
                   3719:     break;}
                   3720: case 437:
                   3721: #line 2076 "objc-parse.y"
                   3722: { yyval.ttype = get_identifier (token_buffer); ;
                   3723:     break;}
                   3724: case 438:
                   3725: #line 2077 "objc-parse.y"
                   3726: { yyval.ttype = get_identifier (token_buffer); ;
                   3727:     break;}
                   3728: case 439:
                   3729: #line 2078 "objc-parse.y"
                   3730: { yyval.ttype = get_identifier (token_buffer); ;
                   3731:     break;}
                   3732: case 442:
                   3733: #line 2084 "objc-parse.y"
                   3734: {
                   3735:                  yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
                   3736:                ;
                   3737:     break;}
                   3738: case 443:
                   3739: #line 2089 "objc-parse.y"
                   3740: {
                   3741:                  yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
                   3742:                ;
                   3743:     break;}
                   3744: case 444:
                   3745: #line 2094 "objc-parse.y"
                   3746: {
                   3747:                  yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
                   3748:                ;
                   3749:     break;}
                   3750: case 445:
                   3751: #line 2099 "objc-parse.y"
                   3752: {
                   3753:                  yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
                   3754:                ;
                   3755:     break;}
                   3756: case 449:
                   3757: #line 2112 "objc-parse.y"
                   3758: {
                   3759:                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                   3760:                ;
                   3761:     break;}
                   3762: case 450:
                   3763: #line 2120 "objc-parse.y"
                   3764: {
                   3765:                  if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
                   3766:                    /* just return the expr., remove a level of indirection */
                   3767:                    yyval.ttype = TREE_VALUE (yyvsp[0].ttype);
                   3768:                   else
                   3769:                    /* we have a comma expr., we will collapse later */
                   3770:                    yyval.ttype = yyvsp[0].ttype;
                   3771:                ;
                   3772:     break;}
                   3773: case 451:
                   3774: #line 2132 "objc-parse.y"
                   3775: {
                   3776:                  yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
                   3777:                ;
                   3778:     break;}
                   3779: case 452:
                   3780: #line 2136 "objc-parse.y"
                   3781: {
                   3782:                  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
                   3783:                ;
                   3784:     break;}
                   3785: case 454:
                   3786: #line 2144 "objc-parse.y"
                   3787: {
                   3788:                  yyval.ttype = get_class_reference (yyvsp[0].ttype);
                   3789:                ;
                   3790:     break;}
                   3791: case 455:
                   3792: #line 2151 "objc-parse.y"
                   3793: { objc_receiver_context = 1; ;
                   3794:     break;}
                   3795: case 456:
                   3796: #line 2153 "objc-parse.y"
                   3797: { objc_receiver_context = 0; ;
                   3798:     break;}
                   3799: case 457:
                   3800: #line 2155 "objc-parse.y"
                   3801: {
                   3802:                  yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype);
                   3803:                ;
                   3804:     break;}
                   3805: case 461:
                   3806: #line 2168 "objc-parse.y"
                   3807: {
                   3808:                  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
                   3809:                ;
                   3810:     break;}
                   3811: case 462:
                   3812: #line 2175 "objc-parse.y"
                   3813: {
                   3814:                  yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
                   3815:                ;
                   3816:     break;}
                   3817: case 463:
                   3818: #line 2179 "objc-parse.y"
                   3819: {
                   3820:                  yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
                   3821:                ;
                   3822:     break;}
                   3823: case 464:
                   3824: #line 2186 "objc-parse.y"
                   3825: {
                   3826:                  yyval.ttype = yyvsp[-1].ttype;
                   3827:                ;
                   3828:     break;}
                   3829: case 465:
                   3830: #line 2195 "objc-parse.y"
                   3831: {
                   3832:                  yyval.ttype = groktypename (yyvsp[-1].ttype);
                   3833:                ;
                   3834:     break;}
                   3835: }
                   3836:    /* the action file gets copied in in place of this dollarsign */
                   3837: #line 440 "bison.simple"
                   3838: 
                   3839:   yyvsp -= yylen;
                   3840:   yyssp -= yylen;
                   3841: #ifdef YYLSP_NEEDED
                   3842:   yylsp -= yylen;
                   3843: #endif
                   3844: 
                   3845: #if YYDEBUG != 0
                   3846:   if (yydebug)
                   3847:     {
                   3848:       short *ssp1 = yyss - 1;
                   3849:       fprintf (stderr, "state stack now");
                   3850:       while (ssp1 != yyssp)
                   3851:        fprintf (stderr, " %d", *++ssp1);
                   3852:       fprintf (stderr, "\n");
                   3853:     }
                   3854: #endif
                   3855: 
                   3856:   *++yyvsp = yyval;
                   3857: 
                   3858: #ifdef YYLSP_NEEDED
                   3859:   yylsp++;
                   3860:   if (yylen == 0)
                   3861:     {
                   3862:       yylsp->first_line = yylloc.first_line;
                   3863:       yylsp->first_column = yylloc.first_column;
                   3864:       yylsp->last_line = (yylsp-1)->last_line;
                   3865:       yylsp->last_column = (yylsp-1)->last_column;
                   3866:       yylsp->text = 0;
                   3867:     }
                   3868:   else
                   3869:     {
                   3870:       yylsp->last_line = (yylsp+yylen-1)->last_line;
                   3871:       yylsp->last_column = (yylsp+yylen-1)->last_column;
                   3872:     }
                   3873: #endif
                   3874: 
                   3875:   /* Now "shift" the result of the reduction.
                   3876:      Determine what state that goes to,
                   3877:      based on the state we popped back to
                   3878:      and the rule number reduced by.  */
                   3879: 
                   3880:   yyn = yyr1[yyn];
                   3881: 
                   3882:   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
                   3883:   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
                   3884:     yystate = yytable[yystate];
                   3885:   else
                   3886:     yystate = yydefgoto[yyn - YYNTBASE];
                   3887: 
                   3888:   goto yynewstate;
                   3889: 
                   3890: yyerrlab:   /* here on detecting error */
                   3891: 
                   3892:   if (! yyerrstatus)
                   3893:     /* If not already recovering from an error, report this error.  */
                   3894:     {
                   3895:       ++yynerrs;
                   3896: 
                   3897: #ifdef YYERROR_VERBOSE
                   3898:       yyn = yypact[yystate];
                   3899: 
                   3900:       if (yyn > YYFLAG && yyn < YYLAST)
                   3901:        {
                   3902:          int size = 0;
                   3903:          char *msg;
                   3904:          int x, count;
                   3905: 
                   3906:          count = 0;
                   3907:          for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
                   3908:            if (yycheck[x + yyn] == x)
                   3909:              size += strlen(yytname[x]) + 15, count++;
                   3910:          msg = (char *) malloc(size + 15);
                   3911:          if (msg != 0)
                   3912:            {
                   3913:              strcpy(msg, "parse error");
                   3914: 
                   3915:              if (count < 5)
                   3916:                {
                   3917:                  count = 0;
                   3918:                  for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
                   3919:                    if (yycheck[x + yyn] == x)
                   3920:                      {
                   3921:                        strcat(msg, count == 0 ? ", expecting `" : " or `");
                   3922:                        strcat(msg, yytname[x]);
                   3923:                        strcat(msg, "'");
                   3924:                        count++;
                   3925:                      }
                   3926:                }
                   3927:              yyerror(msg);
                   3928:              free(msg);
                   3929:            }
                   3930:          else
                   3931:            yyerror ("parse error; also virtual memory exceeded");
                   3932:        }
                   3933:       else
                   3934: #endif /* YYERROR_VERBOSE */
                   3935:        yyerror("parse error");
                   3936:     }
                   3937: 
                   3938: yyerrlab1:   /* here on error raised explicitly by an action */
                   3939: 
                   3940:   if (yyerrstatus == 3)
                   3941:     {
                   3942:       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
                   3943: 
                   3944:       /* return failure if at end of input */
                   3945:       if (yychar == YYEOF)
                   3946:        YYABORT;
                   3947: 
                   3948: #if YYDEBUG != 0
                   3949:       if (yydebug)
                   3950:        fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
                   3951: #endif
                   3952: 
                   3953:       yychar = YYEMPTY;
                   3954:     }
                   3955: 
                   3956:   /* Else will try to reuse lookahead token
                   3957:      after shifting the error token.  */
                   3958: 
                   3959:   yyerrstatus = 3;             /* Each real token shifted decrements this */
                   3960: 
                   3961:   goto yyerrhandle;
                   3962: 
                   3963: yyerrdefault:  /* current state does not do anything special for the error token. */
                   3964: 
                   3965: #if 0
                   3966:   /* This is wrong; only states that explicitly want error tokens
                   3967:      should shift them.  */
                   3968:   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
                   3969:   if (yyn) goto yydefault;
                   3970: #endif
                   3971: 
                   3972: yyerrpop:   /* pop the current state because it cannot handle the error token */
                   3973: 
                   3974:   if (yyssp == yyss) YYABORT;
                   3975:   yyvsp--;
                   3976:   yystate = *--yyssp;
                   3977: #ifdef YYLSP_NEEDED
                   3978:   yylsp--;
                   3979: #endif
                   3980: 
                   3981: #if YYDEBUG != 0
                   3982:   if (yydebug)
                   3983:     {
                   3984:       short *ssp1 = yyss - 1;
                   3985:       fprintf (stderr, "Error: state stack now");
                   3986:       while (ssp1 != yyssp)
                   3987:        fprintf (stderr, " %d", *++ssp1);
                   3988:       fprintf (stderr, "\n");
                   3989:     }
                   3990: #endif
                   3991: 
                   3992: yyerrhandle:
                   3993: 
                   3994:   yyn = yypact[yystate];
                   3995:   if (yyn == YYFLAG)
                   3996:     goto yyerrdefault;
                   3997: 
                   3998:   yyn += YYTERROR;
                   3999:   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
                   4000:     goto yyerrdefault;
                   4001: 
                   4002:   yyn = yytable[yyn];
                   4003:   if (yyn < 0)
                   4004:     {
                   4005:       if (yyn == YYFLAG)
                   4006:        goto yyerrpop;
                   4007:       yyn = -yyn;
                   4008:       goto yyreduce;
                   4009:     }
                   4010:   else if (yyn == 0)
                   4011:     goto yyerrpop;
                   4012: 
                   4013:   if (yyn == YYFINAL)
                   4014:     YYACCEPT;
                   4015: 
                   4016: #if YYDEBUG != 0
                   4017:   if (yydebug)
                   4018:     fprintf(stderr, "Shifting error token, ");
                   4019: #endif
                   4020: 
                   4021:   *++yyvsp = yylval;
                   4022: #ifdef YYLSP_NEEDED
                   4023:   *++yylsp = yylloc;
                   4024: #endif
                   4025: 
                   4026:   yystate = yyn;
                   4027:   goto yynewstate;
                   4028: }
                   4029: #line 2199 "objc-parse.y"
                   4030: 
                   4031: /* If STRING is the name of an Objective C @-keyword
                   4032:    (not including the @), return the token type for that keyword.
                   4033:    Otherwise return 0.  */
                   4034: 
                   4035: int
                   4036: recognize_objc_keyword (string)
                   4037:      char *string;
                   4038: {
                   4039:   switch (string[0])
                   4040:     {
                   4041:     case 'd':
                   4042:       if (!strcmp (string, "defs"))
                   4043:        return DEFS;
                   4044:       break;
                   4045:     case 'e':
                   4046:       if (!strcmp (string, "end"))
                   4047:        return END;
                   4048:       if (!strcmp (string, "encode"))
                   4049:        return ENCODE;
                   4050:       break;
                   4051:     case 'i':
                   4052:       if (!strcmp (string, "interface"))
                   4053:        return INTERFACE;
                   4054:       if (!strcmp (string, "implementation"))
                   4055:        return IMPLEMENTATION;
                   4056:       break;
                   4057:     case 'p':
                   4058:       if (!strcmp (string, "public"))
                   4059:        return PUBLIC;
                   4060:       break;
                   4061:     case 's':
                   4062:       if (!strcmp (string, "selector"))
                   4063:        return SELECTOR;
                   4064:       break;
                   4065:     }
                   4066:   return 0;
                   4067: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.