SySync to wine-1.1.1 (Patch 5 of 10):
[reactos.git] / reactos / tools / widl / parser.tab.c
1 /* A Bison parser, made by GNU Bison 2.1. */
2
3 /* Skeleton parser for Yacc-like parsing with Bison,
4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 Boston, MA 02110-1301, USA. */
20
21 /* As a special exception, when this file is copied by Bison into a
22 Bison output file, you may use that output file without restriction.
23 This special exception was added by the Free Software Foundation
24 in version 1.24 of Bison. */
25
26 /* Written by Richard Stallman by simplifying the original so called
27 ``semantic'' parser. */
28
29 /* All symbols defined below should begin with yy or YY, to avoid
30 infringing on user name space. This should be done even for local
31 variables, as they might otherwise be expanded by user macros.
32 There are some unavoidable exceptions within include files to
33 define necessary library symbols; they are noted "INFRINGES ON
34 USER NAME SPACE" below. */
35
36 /* Identify Bison output. */
37 #define YYBISON 1
38
39 /* Bison version. */
40 #define YYBISON_VERSION "2.1"
41
42 /* Skeleton name. */
43 #define YYSKELETON_NAME "yacc.c"
44
45 /* Pure parsers. */
46 #define YYPURE 0
47
48 /* Using locations. */
49 #define YYLSP_NEEDED 0
50
51 /* Substitute the variable and function names. */
52 #define yyparse parser_parse
53 #define yylex parser_lex
54 #define yyerror parser_error
55 #define yylval parser_lval
56 #define yychar parser_char
57 #define yydebug parser_debug
58 #define yynerrs parser_nerrs
59
60
61 /* Tokens. */
62 #ifndef YYTOKENTYPE
63 # define YYTOKENTYPE
64 /* Put the tokens into the symbol table, so that GDB and other debuggers
65 know about them. */
66 enum yytokentype {
67 aIDENTIFIER = 258,
68 aKNOWNTYPE = 259,
69 aNUM = 260,
70 aHEXNUM = 261,
71 aDOUBLE = 262,
72 aSTRING = 263,
73 aWSTRING = 264,
74 aUUID = 265,
75 aEOF = 266,
76 SHL = 267,
77 SHR = 268,
78 MEMBERPTR = 269,
79 EQUALITY = 270,
80 INEQUALITY = 271,
81 GREATEREQUAL = 272,
82 LESSEQUAL = 273,
83 LOGICALOR = 274,
84 LOGICALAND = 275,
85 tAGGREGATABLE = 276,
86 tALLOCATE = 277,
87 tAPPOBJECT = 278,
88 tASYNC = 279,
89 tASYNCUUID = 280,
90 tAUTOHANDLE = 281,
91 tBINDABLE = 282,
92 tBOOLEAN = 283,
93 tBROADCAST = 284,
94 tBYTE = 285,
95 tBYTECOUNT = 286,
96 tCALLAS = 287,
97 tCALLBACK = 288,
98 tCASE = 289,
99 tCDECL = 290,
100 tCHAR = 291,
101 tCOCLASS = 292,
102 tCODE = 293,
103 tCOMMSTATUS = 294,
104 tCONST = 295,
105 tCONTEXTHANDLE = 296,
106 tCONTEXTHANDLENOSERIALIZE = 297,
107 tCONTEXTHANDLESERIALIZE = 298,
108 tCONTROL = 299,
109 tCPPQUOTE = 300,
110 tDEFAULT = 301,
111 tDEFAULTCOLLELEM = 302,
112 tDEFAULTVALUE = 303,
113 tDEFAULTVTABLE = 304,
114 tDISPLAYBIND = 305,
115 tDISPINTERFACE = 306,
116 tDLLNAME = 307,
117 tDOUBLE = 308,
118 tDUAL = 309,
119 tENDPOINT = 310,
120 tENTRY = 311,
121 tENUM = 312,
122 tERRORSTATUST = 313,
123 tEXPLICITHANDLE = 314,
124 tEXTERN = 315,
125 tFALSE = 316,
126 tFASTCALL = 317,
127 tFLOAT = 318,
128 tHANDLE = 319,
129 tHANDLET = 320,
130 tHELPCONTEXT = 321,
131 tHELPFILE = 322,
132 tHELPSTRING = 323,
133 tHELPSTRINGCONTEXT = 324,
134 tHELPSTRINGDLL = 325,
135 tHIDDEN = 326,
136 tHYPER = 327,
137 tID = 328,
138 tIDEMPOTENT = 329,
139 tIIDIS = 330,
140 tIMMEDIATEBIND = 331,
141 tIMPLICITHANDLE = 332,
142 tIMPORT = 333,
143 tIMPORTLIB = 334,
144 tIN = 335,
145 tIN_LINE = 336,
146 tINLINE = 337,
147 tINPUTSYNC = 338,
148 tINT = 339,
149 tINT64 = 340,
150 tINTERFACE = 341,
151 tLCID = 342,
152 tLENGTHIS = 343,
153 tLIBRARY = 344,
154 tLOCAL = 345,
155 tLONG = 346,
156 tMETHODS = 347,
157 tMODULE = 348,
158 tNONBROWSABLE = 349,
159 tNONCREATABLE = 350,
160 tNONEXTENSIBLE = 351,
161 tNULL = 352,
162 tOBJECT = 353,
163 tODL = 354,
164 tOLEAUTOMATION = 355,
165 tOPTIONAL = 356,
166 tOUT = 357,
167 tPASCAL = 358,
168 tPOINTERDEFAULT = 359,
169 tPROPERTIES = 360,
170 tPROPGET = 361,
171 tPROPPUT = 362,
172 tPROPPUTREF = 363,
173 tPTR = 364,
174 tPUBLIC = 365,
175 tRANGE = 366,
176 tREADONLY = 367,
177 tREF = 368,
178 tREGISTER = 369,
179 tREQUESTEDIT = 370,
180 tRESTRICTED = 371,
181 tRETVAL = 372,
182 tSAFEARRAY = 373,
183 tSHORT = 374,
184 tSIGNED = 375,
185 tSINGLE = 376,
186 tSIZEIS = 377,
187 tSIZEOF = 378,
188 tSMALL = 379,
189 tSOURCE = 380,
190 tSTATIC = 381,
191 tSTDCALL = 382,
192 tSTRICTCONTEXTHANDLE = 383,
193 tSTRING = 384,
194 tSTRUCT = 385,
195 tSWITCH = 386,
196 tSWITCHIS = 387,
197 tSWITCHTYPE = 388,
198 tTRANSMITAS = 389,
199 tTRUE = 390,
200 tTYPEDEF = 391,
201 tUNION = 392,
202 tUNIQUE = 393,
203 tUNSIGNED = 394,
204 tUUID = 395,
205 tV1ENUM = 396,
206 tVARARG = 397,
207 tVERSION = 398,
208 tVOID = 399,
209 tWCHAR = 400,
210 tWIREMARSHAL = 401,
211 ADDRESSOF = 402,
212 NEG = 403,
213 POS = 404,
214 PPTR = 405,
215 CAST = 406
216 };
217 #endif
218 /* Tokens. */
219 #define aIDENTIFIER 258
220 #define aKNOWNTYPE 259
221 #define aNUM 260
222 #define aHEXNUM 261
223 #define aDOUBLE 262
224 #define aSTRING 263
225 #define aWSTRING 264
226 #define aUUID 265
227 #define aEOF 266
228 #define SHL 267
229 #define SHR 268
230 #define MEMBERPTR 269
231 #define EQUALITY 270
232 #define INEQUALITY 271
233 #define GREATEREQUAL 272
234 #define LESSEQUAL 273
235 #define LOGICALOR 274
236 #define LOGICALAND 275
237 #define tAGGREGATABLE 276
238 #define tALLOCATE 277
239 #define tAPPOBJECT 278
240 #define tASYNC 279
241 #define tASYNCUUID 280
242 #define tAUTOHANDLE 281
243 #define tBINDABLE 282
244 #define tBOOLEAN 283
245 #define tBROADCAST 284
246 #define tBYTE 285
247 #define tBYTECOUNT 286
248 #define tCALLAS 287
249 #define tCALLBACK 288
250 #define tCASE 289
251 #define tCDECL 290
252 #define tCHAR 291
253 #define tCOCLASS 292
254 #define tCODE 293
255 #define tCOMMSTATUS 294
256 #define tCONST 295
257 #define tCONTEXTHANDLE 296
258 #define tCONTEXTHANDLENOSERIALIZE 297
259 #define tCONTEXTHANDLESERIALIZE 298
260 #define tCONTROL 299
261 #define tCPPQUOTE 300
262 #define tDEFAULT 301
263 #define tDEFAULTCOLLELEM 302
264 #define tDEFAULTVALUE 303
265 #define tDEFAULTVTABLE 304
266 #define tDISPLAYBIND 305
267 #define tDISPINTERFACE 306
268 #define tDLLNAME 307
269 #define tDOUBLE 308
270 #define tDUAL 309
271 #define tENDPOINT 310
272 #define tENTRY 311
273 #define tENUM 312
274 #define tERRORSTATUST 313
275 #define tEXPLICITHANDLE 314
276 #define tEXTERN 315
277 #define tFALSE 316
278 #define tFASTCALL 317
279 #define tFLOAT 318
280 #define tHANDLE 319
281 #define tHANDLET 320
282 #define tHELPCONTEXT 321
283 #define tHELPFILE 322
284 #define tHELPSTRING 323
285 #define tHELPSTRINGCONTEXT 324
286 #define tHELPSTRINGDLL 325
287 #define tHIDDEN 326
288 #define tHYPER 327
289 #define tID 328
290 #define tIDEMPOTENT 329
291 #define tIIDIS 330
292 #define tIMMEDIATEBIND 331
293 #define tIMPLICITHANDLE 332
294 #define tIMPORT 333
295 #define tIMPORTLIB 334
296 #define tIN 335
297 #define tIN_LINE 336
298 #define tINLINE 337
299 #define tINPUTSYNC 338
300 #define tINT 339
301 #define tINT64 340
302 #define tINTERFACE 341
303 #define tLCID 342
304 #define tLENGTHIS 343
305 #define tLIBRARY 344
306 #define tLOCAL 345
307 #define tLONG 346
308 #define tMETHODS 347
309 #define tMODULE 348
310 #define tNONBROWSABLE 349
311 #define tNONCREATABLE 350
312 #define tNONEXTENSIBLE 351
313 #define tNULL 352
314 #define tOBJECT 353
315 #define tODL 354
316 #define tOLEAUTOMATION 355
317 #define tOPTIONAL 356
318 #define tOUT 357
319 #define tPASCAL 358
320 #define tPOINTERDEFAULT 359
321 #define tPROPERTIES 360
322 #define tPROPGET 361
323 #define tPROPPUT 362
324 #define tPROPPUTREF 363
325 #define tPTR 364
326 #define tPUBLIC 365
327 #define tRANGE 366
328 #define tREADONLY 367
329 #define tREF 368
330 #define tREGISTER 369
331 #define tREQUESTEDIT 370
332 #define tRESTRICTED 371
333 #define tRETVAL 372
334 #define tSAFEARRAY 373
335 #define tSHORT 374
336 #define tSIGNED 375
337 #define tSINGLE 376
338 #define tSIZEIS 377
339 #define tSIZEOF 378
340 #define tSMALL 379
341 #define tSOURCE 380
342 #define tSTATIC 381
343 #define tSTDCALL 382
344 #define tSTRICTCONTEXTHANDLE 383
345 #define tSTRING 384
346 #define tSTRUCT 385
347 #define tSWITCH 386
348 #define tSWITCHIS 387
349 #define tSWITCHTYPE 388
350 #define tTRANSMITAS 389
351 #define tTRUE 390
352 #define tTYPEDEF 391
353 #define tUNION 392
354 #define tUNIQUE 393
355 #define tUNSIGNED 394
356 #define tUUID 395
357 #define tV1ENUM 396
358 #define tVARARG 397
359 #define tVERSION 398
360 #define tVOID 399
361 #define tWCHAR 400
362 #define tWIREMARSHAL 401
363 #define ADDRESSOF 402
364 #define NEG 403
365 #define POS 404
366 #define PPTR 405
367 #define CAST 406
368
369
370
371
372 /* Copy the first part of user declarations. */
373 #line 1 "parser.y"
374
375 /*
376 * IDL Compiler
377 *
378 * Copyright 2002 Ove Kaaven
379 * Copyright 2006-2008 Robert Shearman
380 *
381 * This library is free software; you can redistribute it and/or
382 * modify it under the terms of the GNU Lesser General Public
383 * License as published by the Free Software Foundation; either
384 * version 2.1 of the License, or (at your option) any later version.
385 *
386 * This library is distributed in the hope that it will be useful,
387 * but WITHOUT ANY WARRANTY; without even the implied warranty of
388 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
389 * Lesser General Public License for more details.
390 *
391 * You should have received a copy of the GNU Lesser General Public
392 * License along with this library; if not, write to the Free Software
393 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
394 */
395
396 #include "config.h"
397
398 #include <stdio.h>
399 #include <stdlib.h>
400 #include <stdarg.h>
401 #include <assert.h>
402 #include <ctype.h>
403 #include <string.h>
404 #ifdef HAVE_ALLOCA_H
405 #include <alloca.h>
406 #endif
407
408 #include "widl.h"
409 #include "utils.h"
410 #include "parser.h"
411 #include "header.h"
412 #include "typelib.h"
413 #include "typegen.h"
414 #include "expr.h"
415
416 #if defined(YYBYACC)
417 /* Berkeley yacc (byacc) doesn't seem to know about these */
418 /* Some *BSD supplied versions do define these though */
419 # ifndef YYEMPTY
420 # define YYEMPTY (-1) /* Empty lookahead value of yychar */
421 # endif
422 # ifndef YYLEX
423 # define YYLEX yylex()
424 # endif
425
426 #elif defined(YYBISON)
427 /* Bison was used for original development */
428 /* #define YYEMPTY -2 */
429 /* #define YYLEX yylex() */
430
431 #else
432 /* No yacc we know yet */
433 # if !defined(YYEMPTY) || !defined(YYLEX)
434 # error Yacc version/type unknown. This version needs to be verified for settings of YYEMPTY and YYLEX.
435 # elif defined(__GNUC__) /* gcc defines the #warning directive */
436 # warning Yacc version/type unknown. It defines YYEMPTY and YYLEX, but is not tested
437 /* #else we just take a chance that it works... */
438 # endif
439 #endif
440
441 #define YYERROR_VERBOSE
442
443 unsigned char pointer_default = RPC_FC_UP;
444 static int is_in_interface = FALSE;
445 static int is_object_interface = FALSE;
446 /* are we inside a library block? */
447 static int is_inside_library = FALSE;
448
449 typedef struct list typelist_t;
450 struct typenode {
451 type_t *type;
452 struct list entry;
453 };
454
455 struct _import_t
456 {
457 char *name;
458 int import_performed;
459 };
460
461 typedef struct _decl_spec_t
462 {
463 type_t *type;
464 attr_list_t *attrs;
465 enum storage_class stgclass;
466 } decl_spec_t;
467
468 typelist_t incomplete_types = LIST_INIT(incomplete_types);
469
470 static void add_incomplete(type_t *t);
471 static void fix_incomplete(void);
472
473 static str_list_t *append_str(str_list_t *list, char *str);
474 static attr_list_t *append_attr(attr_list_t *list, attr_t *attr);
475 static attr_list_t *append_attr_list(attr_list_t *new_list, attr_list_t *old_list);
476 static decl_spec_t *make_decl_spec(type_t *type, decl_spec_t *left, decl_spec_t *right, attr_t *attr, enum storage_class stgclass);
477 static attr_t *make_attr(enum attr_type type);
478 static attr_t *make_attrv(enum attr_type type, unsigned long val);
479 static attr_t *make_attrp(enum attr_type type, void *val);
480 static expr_list_t *append_expr(expr_list_t *list, expr_t *expr);
481 static array_dims_t *append_array(array_dims_t *list, expr_t *expr);
482 static void set_type(var_t *v, decl_spec_t *decl_spec, const declarator_t *decl, int top);
483 static var_list_t *set_var_types(attr_list_t *attrs, decl_spec_t *decl_spec, declarator_list_t *decls);
484 static ifref_list_t *append_ifref(ifref_list_t *list, ifref_t *iface);
485 static ifref_t *make_ifref(type_t *iface);
486 static var_list_t *append_var(var_list_t *list, var_t *var);
487 static var_list_t *append_var_list(var_list_t *list, var_list_t *vars);
488 static var_t *make_var(char *name);
489 static declarator_list_t *append_declarator(declarator_list_t *list, declarator_t *p);
490 static declarator_t *make_declarator(var_t *var);
491 static func_list_t *append_func(func_list_t *list, func_t *func);
492 static func_t *make_func(var_t *def);
493 static type_t *make_class(char *name);
494 static type_t *make_safearray(type_t *type);
495 static type_t *make_builtin(char *name);
496 static type_t *make_int(int sign);
497 static typelib_t *make_library(const char *name, const attr_list_t *attrs);
498 static type_t *make_func_type(var_list_t *args);
499 static type_t *make_pointer_type(type_t *ref, attr_list_t *attrs);
500 static type_t *append_ptrchain_type(type_t *ptrchain, type_t *type);
501
502 static type_t *reg_type(type_t *type, const char *name, int t);
503 static type_t *reg_typedefs(decl_spec_t *decl_spec, var_list_t *names, attr_list_t *attrs);
504 static type_t *find_type2(char *name, int t);
505 static type_t *get_type(unsigned char type, char *name, int t);
506 static type_t *get_typev(unsigned char type, var_t *name, int t);
507 static int get_struct_type(var_list_t *fields);
508
509 static var_t *reg_const(var_t *var);
510
511 static void write_libid(const typelib_t *typelib);
512 static void write_clsid(type_t *cls);
513 static void write_diid(type_t *iface);
514 static void write_iid(type_t *iface);
515
516 static int compute_method_indexes(type_t *iface);
517 static char *gen_name(void);
518 static statement_t *process_typedefs(var_list_t *names);
519 static void check_arg(var_t *arg);
520 static void check_functions(const type_t *iface);
521 static void check_all_user_types(const statement_list_t *stmts);
522 static attr_list_t *check_iface_attrs(const char *name, attr_list_t *attrs);
523 static attr_list_t *check_function_attrs(const char *name, attr_list_t *attrs);
524 static attr_list_t *check_typedef_attrs(attr_list_t *attrs);
525 static attr_list_t *check_field_attrs(const char *name, attr_list_t *attrs);
526 static attr_list_t *check_library_attrs(const char *name, attr_list_t *attrs);
527 static attr_list_t *check_dispiface_attrs(const char *name, attr_list_t *attrs);
528 static attr_list_t *check_module_attrs(const char *name, attr_list_t *attrs);
529 static attr_list_t *check_coclass_attrs(const char *name, attr_list_t *attrs);
530 const char *get_attr_display_name(enum attr_type type);
531 static void add_explicit_handle_if_necessary(func_t *func);
532
533 static statement_t *make_statement(enum statement_type type);
534 static statement_t *make_statement_type_decl(type_t *type);
535 static statement_t *make_statement_reference(type_t *type);
536 static statement_t *make_statement_declaration(var_t *var);
537 static statement_t *make_statement_library(typelib_t *typelib);
538 static statement_t *make_statement_cppquote(const char *str);
539 static statement_t *make_statement_importlib(const char *str);
540 static statement_t *make_statement_module(type_t *type);
541 static statement_t *make_statement_import(const char *str);
542 static statement_list_t *append_statement(statement_list_t *list, statement_t *stmt);
543 static func_list_t *append_func_from_statement(func_list_t *list, statement_t *stmt);
544
545 #define tsENUM 1
546 #define tsSTRUCT 2
547 #define tsUNION 3
548
549
550
551 /* Enabling traces. */
552 #ifndef YYDEBUG
553 # define YYDEBUG 0
554 #endif
555
556 /* Enabling verbose error messages. */
557 #ifdef YYERROR_VERBOSE
558 # undef YYERROR_VERBOSE
559 # define YYERROR_VERBOSE 1
560 #else
561 # define YYERROR_VERBOSE 0
562 #endif
563
564 /* Enabling the token table. */
565 #ifndef YYTOKEN_TABLE
566 # define YYTOKEN_TABLE 0
567 #endif
568
569 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
570 #line 177 "parser.y"
571 typedef union YYSTYPE {
572 attr_t *attr;
573 attr_list_t *attr_list;
574 str_list_t *str_list;
575 expr_t *expr;
576 expr_list_t *expr_list;
577 array_dims_t *array_dims;
578 type_t *type;
579 var_t *var;
580 var_list_t *var_list;
581 declarator_t *declarator;
582 declarator_list_t *declarator_list;
583 func_t *func;
584 func_list_t *func_list;
585 statement_t *statement;
586 statement_list_t *stmt_list;
587 ifref_t *ifref;
588 ifref_list_t *ifref_list;
589 char *str;
590 UUID *uuid;
591 unsigned int num;
592 double dbl;
593 interface_info_t ifinfo;
594 typelib_t *typelib;
595 struct _import_t *import;
596 struct _decl_spec_t *declspec;
597 enum storage_class stgclass;
598 } YYSTYPE;
599 /* Line 196 of yacc.c. */
600 #line 601 "parser.tab.c"
601 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
602 # define YYSTYPE_IS_DECLARED 1
603 # define YYSTYPE_IS_TRIVIAL 1
604 #endif
605
606
607
608 /* Copy the second part of user declarations. */
609
610
611 /* Line 219 of yacc.c. */
612 #line 613 "parser.tab.c"
613
614 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
615 # define YYSIZE_T __SIZE_TYPE__
616 #endif
617 #if ! defined (YYSIZE_T) && defined (size_t)
618 # define YYSIZE_T size_t
619 #endif
620 #if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
621 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
622 # define YYSIZE_T size_t
623 #endif
624 #if ! defined (YYSIZE_T)
625 # define YYSIZE_T unsigned int
626 #endif
627
628 #ifndef YY_
629 # if YYENABLE_NLS
630 # if ENABLE_NLS
631 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
632 # define YY_(msgid) dgettext ("bison-runtime", msgid)
633 # endif
634 # endif
635 # ifndef YY_
636 # define YY_(msgid) msgid
637 # endif
638 #endif
639
640 #if ! defined (yyoverflow) || YYERROR_VERBOSE
641
642 /* The parser invokes alloca or malloc; define the necessary symbols. */
643
644 # ifdef YYSTACK_USE_ALLOCA
645 # if YYSTACK_USE_ALLOCA
646 # ifdef __GNUC__
647 # define YYSTACK_ALLOC __builtin_alloca
648 # else
649 # define YYSTACK_ALLOC alloca
650 # if defined (__STDC__) || defined (__cplusplus)
651 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
652 # define YYINCLUDED_STDLIB_H
653 # endif
654 # endif
655 # endif
656 # endif
657
658 # ifdef YYSTACK_ALLOC
659 /* Pacify GCC's `empty if-body' warning. */
660 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
661 # ifndef YYSTACK_ALLOC_MAXIMUM
662 /* The OS might guarantee only one guard page at the bottom of the stack,
663 and a page size can be as small as 4096 bytes. So we cannot safely
664 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
665 to allow for a few compiler-allocated temporary stack slots. */
666 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
667 # endif
668 # else
669 # define YYSTACK_ALLOC YYMALLOC
670 # define YYSTACK_FREE YYFREE
671 # ifndef YYSTACK_ALLOC_MAXIMUM
672 # define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
673 # endif
674 # ifdef __cplusplus
675 extern "C" {
676 # endif
677 # ifndef YYMALLOC
678 # define YYMALLOC malloc
679 # if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
680 && (defined (__STDC__) || defined (__cplusplus)))
681 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
682 # endif
683 # endif
684 # ifndef YYFREE
685 # define YYFREE free
686 # if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
687 && (defined (__STDC__) || defined (__cplusplus)))
688 void free (void *); /* INFRINGES ON USER NAME SPACE */
689 # endif
690 # endif
691 # ifdef __cplusplus
692 }
693 # endif
694 # endif
695 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
696
697
698 #if (! defined (yyoverflow) \
699 && (! defined (__cplusplus) \
700 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
701
702 /* A type that is properly aligned for any stack member. */
703 union yyalloc
704 {
705 short int yyss;
706 YYSTYPE yyvs;
707 };
708
709 /* The size of the maximum gap between one aligned stack and the next. */
710 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
711
712 /* The size of an array large to enough to hold all stacks, each with
713 N elements. */
714 # define YYSTACK_BYTES(N) \
715 ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
716 + YYSTACK_GAP_MAXIMUM)
717
718 /* Copy COUNT objects from FROM to TO. The source and destination do
719 not overlap. */
720 # ifndef YYCOPY
721 # if defined (__GNUC__) && 1 < __GNUC__
722 # define YYCOPY(To, From, Count) \
723 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
724 # else
725 # define YYCOPY(To, From, Count) \
726 do \
727 { \
728 YYSIZE_T yyi; \
729 for (yyi = 0; yyi < (Count); yyi++) \
730 (To)[yyi] = (From)[yyi]; \
731 } \
732 while (0)
733 # endif
734 # endif
735
736 /* Relocate STACK from its old location to the new one. The
737 local variables YYSIZE and YYSTACKSIZE give the old and new number of
738 elements in the stack, and YYPTR gives the new location of the
739 stack. Advance YYPTR to a properly aligned location for the next
740 stack. */
741 # define YYSTACK_RELOCATE(Stack) \
742 do \
743 { \
744 YYSIZE_T yynewbytes; \
745 YYCOPY (&yyptr->Stack, Stack, yysize); \
746 Stack = &yyptr->Stack; \
747 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
748 yyptr += yynewbytes / sizeof (*yyptr); \
749 } \
750 while (0)
751
752 #endif
753
754 #if defined (__STDC__) || defined (__cplusplus)
755 typedef signed char yysigned_char;
756 #else
757 typedef short int yysigned_char;
758 #endif
759
760 /* YYFINAL -- State number of the termination state. */
761 #define YYFINAL 3
762 /* YYLAST -- Last index in YYTABLE. */
763 #define YYLAST 2092
764
765 /* YYNTOKENS -- Number of terminals. */
766 #define YYNTOKENS 176
767 /* YYNNTS -- Number of nonterminals. */
768 #define YYNNTS 88
769 /* YYNRULES -- Number of rules. */
770 #define YYNRULES 309
771 /* YYNRULES -- Number of states. */
772 #define YYNSTATES 545
773
774 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
775 #define YYUNDEFTOK 2
776 #define YYMAXUTOK 406
777
778 #define YYTRANSLATE(YYX) \
779 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
780
781 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
782 static const unsigned char yytranslate[] =
783 {
784 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
785 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
786 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
787 2, 2, 2, 160, 2, 2, 2, 159, 152, 2,
788 171, 172, 157, 156, 147, 155, 167, 158, 2, 2,
789 2, 2, 2, 2, 2, 2, 2, 2, 149, 170,
790 153, 175, 154, 148, 2, 2, 2, 2, 2, 2,
791 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
792 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
793 2, 168, 2, 169, 151, 2, 2, 2, 2, 2,
794 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
795 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
796 2, 2, 2, 173, 150, 174, 161, 2, 2, 2,
797 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
798 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
799 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
800 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
801 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
802 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
803 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
804 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
805 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
806 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
807 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
808 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
809 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
810 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
811 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
812 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
813 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
814 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
815 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
816 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
817 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
818 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
819 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
820 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
821 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
822 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
823 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
824 145, 146, 162, 163, 164, 165, 166
825 };
826
827 #if YYDEBUG
828 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
829 YYRHS. */
830 static const unsigned short int yyprhs[] =
831 {
832 0, 0, 3, 5, 6, 9, 12, 16, 19, 22,
833 25, 28, 29, 32, 35, 39, 42, 45, 48, 51,
834 54, 55, 58, 59, 61, 63, 66, 69, 71, 74,
835 76, 78, 80, 85, 89, 93, 99, 102, 106, 111,
836 112, 114, 116, 118, 122, 124, 128, 131, 135, 139,
837 140, 142, 146, 148, 152, 157, 159, 163, 164, 166,
838 168, 170, 172, 174, 176, 181, 186, 188, 190, 192,
839 194, 196, 198, 203, 205, 207, 212, 214, 219, 224,
840 226, 228, 233, 238, 243, 248, 253, 255, 260, 262,
841 267, 269, 275, 277, 279, 284, 289, 291, 293, 295,
842 297, 299, 301, 303, 305, 307, 312, 314, 316, 318,
843 320, 327, 329, 331, 333, 335, 340, 342, 344, 346,
844 351, 356, 361, 366, 368, 370, 375, 380, 382, 384,
845 386, 388, 390, 392, 394, 395, 398, 403, 407, 408,
846 411, 413, 415, 419, 423, 425, 431, 433, 437, 438,
847 440, 442, 444, 446, 448, 450, 452, 454, 456, 458,
848 464, 468, 472, 476, 480, 484, 488, 492, 496, 500,
849 504, 508, 512, 516, 520, 524, 528, 532, 536, 539,
850 542, 545, 548, 551, 554, 558, 562, 567, 572, 577,
851 581, 583, 587, 589, 591, 592, 595, 600, 604, 607,
852 610, 611, 614, 617, 619, 623, 627, 631, 634, 635,
853 637, 638, 640, 642, 644, 646, 648, 650, 652, 655,
854 658, 660, 662, 664, 666, 668, 670, 672, 673, 675,
855 677, 680, 682, 685, 688, 690, 692, 695, 698, 701,
856 707, 708, 711, 714, 717, 720, 723, 726, 730, 733,
857 737, 743, 749, 750, 753, 756, 759, 762, 769, 778,
858 781, 784, 787, 790, 793, 796, 802, 804, 806, 808,
859 810, 812, 813, 816, 819, 823, 824, 826, 829, 832,
860 835, 839, 842, 844, 846, 850, 853, 858, 860, 864,
861 866, 870, 872, 874, 876, 882, 884, 886, 888, 890,
862 893, 895, 898, 900, 903, 908, 913, 919, 930, 932
863 };
864
865 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
866 static const short int yyrhs[] =
867 {
868 177, 0, -1, 178, -1, -1, 178, 243, -1, 178,
869 242, -1, 178, 229, 170, -1, 178, 231, -1, 178,
870 246, -1, 178, 190, -1, 178, 182, -1, -1, 179,
871 243, -1, 179, 242, -1, 179, 229, 170, -1, 179,
872 231, -1, 179, 246, -1, 179, 182, -1, 179, 187,
873 -1, 179, 190, -1, -1, 180, 182, -1, -1, 170,
874 -1, 184, -1, 183, 170, -1, 222, 170, -1, 186,
875 -1, 261, 170, -1, 208, -1, 259, -1, 262, -1,
876 45, 171, 8, 172, -1, 78, 8, 170, -1, 185,
877 179, 11, -1, 79, 171, 8, 172, 181, -1, 89,
878 3, -1, 197, 188, 173, -1, 189, 179, 174, 181,
879 -1, -1, 193, -1, 144, -1, 194, -1, 193, 147,
880 194, -1, 192, -1, 197, 251, 254, -1, 251, 254,
881 -1, 168, 210, 169, -1, 168, 157, 169, -1, -1,
882 197, -1, 168, 198, 169, -1, 200, -1, 198, 147,
883 200, -1, 198, 169, 168, 200, -1, 8, -1, 199,
884 147, 8, -1, -1, 21, -1, 23, -1, 24, -1,
885 26, -1, 27, -1, 29, -1, 32, 171, 225, 172,
886 -1, 34, 171, 212, 172, -1, 41, -1, 42, -1,
887 43, -1, 44, -1, 46, -1, 47, -1, 48, 171,
888 214, 172, -1, 49, -1, 50, -1, 52, 171, 8,
889 172, -1, 54, -1, 55, 171, 199, 172, -1, 56,
890 171, 214, 172, -1, 59, -1, 64, -1, 66, 171,
891 213, 172, -1, 67, 171, 8, 172, -1, 68, 171,
892 8, 172, -1, 69, 171, 213, 172, -1, 70, 171,
893 8, 172, -1, 71, -1, 73, 171, 213, 172, -1,
894 74, -1, 75, 171, 211, 172, -1, 76, -1, 77,
895 171, 65, 3, 172, -1, 80, -1, 83, -1, 88,
896 171, 209, 172, -1, 87, 171, 213, 172, -1, 90,
897 -1, 94, -1, 95, -1, 96, -1, 98, -1, 99,
898 -1, 100, -1, 101, -1, 102, -1, 104, 171, 258,
899 172, -1, 106, -1, 107, -1, 108, -1, 110, -1,
900 111, 171, 213, 147, 213, 172, -1, 112, -1, 115,
901 -1, 116, -1, 117, -1, 122, 171, 209, 172, -1,
902 125, -1, 128, -1, 129, -1, 132, 171, 211, 172,
903 -1, 133, 171, 260, 172, -1, 134, 171, 260, 172,
904 -1, 140, 171, 201, 172, -1, 141, -1, 142, -1,
905 143, 171, 263, 172, -1, 146, 171, 260, 172, -1,
906 258, -1, 10, -1, 8, -1, 35, -1, 62, -1,
907 103, -1, 127, -1, -1, 203, 204, -1, 34, 213,
908 149, 219, -1, 46, 149, 219, -1, -1, 206, 147,
909 -1, 206, -1, 207, -1, 206, 147, 207, -1, 225,
910 175, 213, -1, 225, -1, 57, 224, 173, 205, 174,
911 -1, 210, -1, 209, 147, 210, -1, -1, 211, -1,
912 5, -1, 6, -1, 7, -1, 61, -1, 97, -1,
913 135, -1, 8, -1, 9, -1, 3, -1, 211, 148,
914 211, 149, 211, -1, 211, 19, 211, -1, 211, 20,
915 211, -1, 211, 150, 211, -1, 211, 151, 211, -1,
916 211, 152, 211, -1, 211, 15, 211, -1, 211, 16,
917 211, -1, 211, 154, 211, -1, 211, 153, 211, -1,
918 211, 17, 211, -1, 211, 18, 211, -1, 211, 12,
919 211, -1, 211, 13, 211, -1, 211, 156, 211, -1,
920 211, 155, 211, -1, 211, 159, 211, -1, 211, 157,
921 211, -1, 211, 158, 211, -1, 160, 211, -1, 161,
922 211, -1, 156, 211, -1, 155, 211, -1, 152, 211,
923 -1, 157, 211, -1, 211, 14, 3, -1, 211, 167,
924 3, -1, 171, 260, 172, 211, -1, 123, 171, 260,
925 172, -1, 211, 168, 211, 169, -1, 171, 211, 172,
926 -1, 213, -1, 212, 147, 213, -1, 211, -1, 211,
927 -1, -1, 215, 216, -1, 196, 251, 256, 170, -1,
928 196, 262, 170, -1, 220, 170, -1, 197, 170, -1,
929 -1, 218, 217, -1, 220, 170, -1, 170, -1, 196,
930 251, 254, -1, 196, 251, 254, -1, 197, 251, 257,
931 -1, 251, 257, -1, -1, 225, -1, -1, 3, -1,
932 4, -1, 3, -1, 4, -1, 30, -1, 145, -1,
933 228, -1, 120, 228, -1, 139, 228, -1, 139, -1,
934 63, -1, 121, -1, 53, -1, 28, -1, 58, -1,
935 65, -1, -1, 84, -1, 84, -1, 119, 227, -1,
936 124, -1, 91, 227, -1, 72, 227, -1, 85, -1,
937 36, -1, 37, 3, -1, 37, 4, -1, 197, 229,
938 -1, 230, 173, 232, 174, 181, -1, -1, 232, 233,
939 -1, 196, 243, -1, 51, 3, -1, 51, 4, -1,
940 197, 234, -1, 105, 149, -1, 236, 220, 170, -1,
941 92, 149, -1, 237, 221, 170, -1, 235, 173, 236,
942 237, 174, -1, 235, 173, 240, 170, 174, -1, -1,
943 149, 4, -1, 86, 3, -1, 86, 4, -1, 197,
944 240, -1, 241, 239, 173, 180, 174, 181, -1, 241,
945 149, 3, 173, 186, 180, 174, 181, -1, 238, 181,
946 -1, 240, 170, -1, 234, 170, -1, 93, 3, -1,
947 93, 4, -1, 197, 244, -1, 245, 173, 180, 174,
948 181, -1, 60, -1, 126, -1, 114, -1, 82, -1,
949 40, -1, -1, 250, 249, -1, 260, 252, -1, 253,
950 260, 252, -1, -1, 253, -1, 249, 252, -1, 248,
951 252, -1, 247, 252, -1, 157, 250, 254, -1, 202,
952 254, -1, 255, -1, 225, -1, 171, 254, 172, -1,
953 255, 195, -1, 255, 171, 191, 172, -1, 254, -1,
954 256, 147, 254, -1, 254, -1, 254, 175, 214, -1,
955 113, -1, 138, -1, 109, -1, 130, 224, 173, 215,
956 174, -1, 144, -1, 4, -1, 226, -1, 208, -1,
957 57, 3, -1, 259, -1, 130, 3, -1, 262, -1,
958 137, 3, -1, 118, 171, 260, 172, -1, 136, 196,
959 251, 256, -1, 137, 224, 173, 218, 174, -1, 137,
960 224, 131, 171, 220, 172, 223, 173, 203, 174, -1,
961 5, -1, 5, 167, 5, -1
962 };
963
964 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
965 static const unsigned short int yyrline[] =
966 {
967 0, 349, 349, 358, 359, 360, 361, 365, 370, 373,
968 374, 377, 378, 379, 380, 381, 386, 387, 388, 389,
969 392, 393, 396, 397, 401, 402, 408, 411, 412, 416,
970 417, 418, 421, 423, 431, 438, 442, 444, 451, 459,
971 460, 463, 466, 467, 468, 472, 479, 487, 488, 491,
972 492, 496, 502, 503, 504, 507, 508, 511, 512, 513,
973 514, 515, 516, 517, 518, 519, 520, 521, 522, 523,
974 524, 525, 526, 527, 528, 529, 530, 531, 532, 533,
975 534, 535, 536, 537, 538, 539, 540, 541, 542, 543,
976 544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
977 554, 555, 556, 557, 558, 559, 560, 561, 562, 563,
978 564, 568, 569, 570, 571, 572, 573, 574, 575, 576,
979 577, 578, 579, 580, 581, 582, 583, 584, 588, 589,
980 594, 595, 596, 597, 600, 601, 604, 608, 614, 615,
981 616, 619, 623, 632, 636, 641, 650, 651, 664, 665,
982 668, 669, 670, 671, 672, 673, 674, 675, 676, 677,
983 678, 679, 680, 681, 682, 683, 684, 685, 686, 687,
984 688, 689, 690, 691, 692, 693, 694, 695, 696, 697,
985 698, 699, 700, 701, 702, 703, 704, 705, 706, 707,
986 710, 711, 714, 720, 726, 727, 730, 735, 742, 743,
987 746, 747, 751, 752, 755, 763, 772, 778, 784, 785,
988 788, 789, 790, 793, 795, 798, 799, 800, 801, 802,
989 818, 819, 820, 821, 822, 823, 824, 827, 828, 831,
990 832, 833, 834, 835, 836, 837, 840, 841, 847, 856,
991 863, 864, 868, 871, 872, 875, 889, 890, 893, 894,
992 897, 907, 917, 918, 921, 922, 925, 938, 952, 965,
993 969, 970, 973, 974, 977, 982, 990, 991, 992, 996,
994 1000, 1003, 1004, 1007, 1008, 1012, 1013, 1017, 1018, 1019,
995 1023, 1025, 1026, 1030, 1031, 1032, 1033, 1040, 1041, 1045,
996 1046, 1050, 1051, 1052, 1055, 1066, 1067, 1068, 1069, 1070,
997 1071, 1072, 1073, 1074, 1075, 1078, 1084, 1090, 1107, 1108
998 };
999 #endif
1000
1001 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1002 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1003 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1004 static const char *const yytname[] =
1005 {
1006 "$end", "error", "$undefined", "aIDENTIFIER", "aKNOWNTYPE", "aNUM",
1007 "aHEXNUM", "aDOUBLE", "aSTRING", "aWSTRING", "aUUID", "aEOF", "SHL",
1008 "SHR", "MEMBERPTR", "EQUALITY", "INEQUALITY", "GREATEREQUAL",
1009 "LESSEQUAL", "LOGICALOR", "LOGICALAND", "tAGGREGATABLE", "tALLOCATE",
1010 "tAPPOBJECT", "tASYNC", "tASYNCUUID", "tAUTOHANDLE", "tBINDABLE",
1011 "tBOOLEAN", "tBROADCAST", "tBYTE", "tBYTECOUNT", "tCALLAS", "tCALLBACK",
1012 "tCASE", "tCDECL", "tCHAR", "tCOCLASS", "tCODE", "tCOMMSTATUS", "tCONST",
1013 "tCONTEXTHANDLE", "tCONTEXTHANDLENOSERIALIZE", "tCONTEXTHANDLESERIALIZE",
1014 "tCONTROL", "tCPPQUOTE", "tDEFAULT", "tDEFAULTCOLLELEM", "tDEFAULTVALUE",
1015 "tDEFAULTVTABLE", "tDISPLAYBIND", "tDISPINTERFACE", "tDLLNAME",
1016 "tDOUBLE", "tDUAL", "tENDPOINT", "tENTRY", "tENUM", "tERRORSTATUST",
1017 "tEXPLICITHANDLE", "tEXTERN", "tFALSE", "tFASTCALL", "tFLOAT", "tHANDLE",
1018 "tHANDLET", "tHELPCONTEXT", "tHELPFILE", "tHELPSTRING",
1019 "tHELPSTRINGCONTEXT", "tHELPSTRINGDLL", "tHIDDEN", "tHYPER", "tID",
1020 "tIDEMPOTENT", "tIIDIS", "tIMMEDIATEBIND", "tIMPLICITHANDLE", "tIMPORT",
1021 "tIMPORTLIB", "tIN", "tIN_LINE", "tINLINE", "tINPUTSYNC", "tINT",
1022 "tINT64", "tINTERFACE", "tLCID", "tLENGTHIS", "tLIBRARY", "tLOCAL",
1023 "tLONG", "tMETHODS", "tMODULE", "tNONBROWSABLE", "tNONCREATABLE",
1024 "tNONEXTENSIBLE", "tNULL", "tOBJECT", "tODL", "tOLEAUTOMATION",
1025 "tOPTIONAL", "tOUT", "tPASCAL", "tPOINTERDEFAULT", "tPROPERTIES",
1026 "tPROPGET", "tPROPPUT", "tPROPPUTREF", "tPTR", "tPUBLIC", "tRANGE",
1027 "tREADONLY", "tREF", "tREGISTER", "tREQUESTEDIT", "tRESTRICTED",
1028 "tRETVAL", "tSAFEARRAY", "tSHORT", "tSIGNED", "tSINGLE", "tSIZEIS",
1029 "tSIZEOF", "tSMALL", "tSOURCE", "tSTATIC", "tSTDCALL",
1030 "tSTRICTCONTEXTHANDLE", "tSTRING", "tSTRUCT", "tSWITCH", "tSWITCHIS",
1031 "tSWITCHTYPE", "tTRANSMITAS", "tTRUE", "tTYPEDEF", "tUNION", "tUNIQUE",
1032 "tUNSIGNED", "tUUID", "tV1ENUM", "tVARARG", "tVERSION", "tVOID",
1033 "tWCHAR", "tWIREMARSHAL", "','", "'?'", "':'", "'|'", "'^'", "'&'",
1034 "'<'", "'>'", "'-'", "'+'", "'*'", "'/'", "'%'", "'!'", "'~'",
1035 "ADDRESSOF", "NEG", "POS", "PPTR", "CAST", "'.'", "'['", "']'", "';'",
1036 "'('", "')'", "'{'", "'}'", "'='", "$accept", "input", "gbl_statements",
1037 "imp_statements", "int_statements", "semicolon_opt", "statement",
1038 "typedecl", "cppquote", "import_start", "import", "importlib",
1039 "libraryhdr", "library_start", "librarydef", "m_args", "no_args", "args",
1040 "arg", "array", "m_attributes", "attributes", "attrib_list", "str_list",
1041 "attribute", "uuid_string", "callconv", "cases", "case", "enums",
1042 "enum_list", "enum", "enumdef", "m_exprs", "m_expr", "expr",
1043 "expr_list_int_const", "expr_int_const", "expr_const", "fields", "field",
1044 "ne_union_field", "ne_union_fields", "union_field", "s_field", "funcdef",
1045 "declaration", "m_ident", "t_ident", "ident", "base_type", "m_int",
1046 "int_std", "coclass", "coclasshdr", "coclassdef", "coclass_ints",
1047 "coclass_int", "dispinterface", "dispinterfacehdr", "dispint_props",
1048 "dispint_meths", "dispinterfacedef", "inherit", "interface",
1049 "interfacehdr", "interfacedef", "interfacedec", "module", "modulehdr",
1050 "moduledef", "storage_cls_spec", "function_specifier", "type_qualifier",
1051 "m_type_qual_list", "decl_spec", "m_decl_spec_no_type",
1052 "decl_spec_no_type", "declarator", "direct_declarator",
1053 "declarator_list", "init_declarator", "pointer_type", "structdef",
1054 "type", "typedef", "uniondef", "version", 0
1055 };
1056 #endif
1057
1058 # ifdef YYPRINT
1059 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1060 token YYLEX-NUM. */
1061 static const unsigned short int yytoknum[] =
1062 {
1063 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1064 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1065 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1066 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1067 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1068 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1069 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1070 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1071 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1072 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1073 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1074 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1075 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1076 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1077 395, 396, 397, 398, 399, 400, 401, 44, 63, 58,
1078 124, 94, 38, 60, 62, 45, 43, 42, 47, 37,
1079 33, 126, 402, 403, 404, 405, 406, 46, 91, 93,
1080 59, 40, 41, 123, 125, 61
1081 };
1082 # endif
1083
1084 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1085 static const unsigned short int yyr1[] =
1086 {
1087 0, 176, 177, 178, 178, 178, 178, 178, 178, 178,
1088 178, 179, 179, 179, 179, 179, 179, 179, 179, 179,
1089 180, 180, 181, 181, 182, 182, 182, 182, 182, 183,
1090 183, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1091 191, 192, 193, 193, 193, 194, 194, 195, 195, 196,
1092 196, 197, 198, 198, 198, 199, 199, 200, 200, 200,
1093 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
1094 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
1095 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
1096 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
1097 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
1098 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
1099 200, 200, 200, 200, 200, 200, 200, 200, 201, 201,
1100 202, 202, 202, 202, 203, 203, 204, 204, 205, 205,
1101 205, 206, 206, 207, 207, 208, 209, 209, 210, 210,
1102 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
1103 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
1104 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
1105 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
1106 212, 212, 213, 214, 215, 215, 216, 216, 217, 217,
1107 218, 218, 219, 219, 220, 221, 222, 222, 223, 223,
1108 224, 224, 224, 225, 225, 226, 226, 226, 226, 226,
1109 226, 226, 226, 226, 226, 226, 226, 227, 227, 228,
1110 228, 228, 228, 228, 228, 228, 229, 229, 230, 231,
1111 232, 232, 233, 234, 234, 235, 236, 236, 237, 237,
1112 238, 238, 239, 239, 240, 240, 241, 242, 242, 242,
1113 243, 243, 244, 244, 245, 246, 247, 247, 247, 248,
1114 249, 250, 250, 251, 251, 252, 252, 253, 253, 253,
1115 254, 254, 254, 255, 255, 255, 255, 256, 256, 257,
1116 257, 258, 258, 258, 259, 260, 260, 260, 260, 260,
1117 260, 260, 260, 260, 260, 261, 262, 262, 263, 263
1118 };
1119
1120 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1121 static const unsigned char yyr2[] =
1122 {
1123 0, 2, 1, 0, 2, 2, 3, 2, 2, 2,
1124 2, 0, 2, 2, 3, 2, 2, 2, 2, 2,
1125 0, 2, 0, 1, 1, 2, 2, 1, 2, 1,
1126 1, 1, 4, 3, 3, 5, 2, 3, 4, 0,
1127 1, 1, 1, 3, 1, 3, 2, 3, 3, 0,
1128 1, 3, 1, 3, 4, 1, 3, 0, 1, 1,
1129 1, 1, 1, 1, 4, 4, 1, 1, 1, 1,
1130 1, 1, 4, 1, 1, 4, 1, 4, 4, 1,
1131 1, 4, 4, 4, 4, 4, 1, 4, 1, 4,
1132 1, 5, 1, 1, 4, 4, 1, 1, 1, 1,
1133 1, 1, 1, 1, 1, 4, 1, 1, 1, 1,
1134 6, 1, 1, 1, 1, 4, 1, 1, 1, 4,
1135 4, 4, 4, 1, 1, 4, 4, 1, 1, 1,
1136 1, 1, 1, 1, 0, 2, 4, 3, 0, 2,
1137 1, 1, 3, 3, 1, 5, 1, 3, 0, 1,
1138 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
1139 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1140 3, 3, 3, 3, 3, 3, 3, 3, 2, 2,
1141 2, 2, 2, 2, 3, 3, 4, 4, 4, 3,
1142 1, 3, 1, 1, 0, 2, 4, 3, 2, 2,
1143 0, 2, 2, 1, 3, 3, 3, 2, 0, 1,
1144 0, 1, 1, 1, 1, 1, 1, 1, 2, 2,
1145 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
1146 2, 1, 2, 2, 1, 1, 2, 2, 2, 5,
1147 0, 2, 2, 2, 2, 2, 2, 3, 2, 3,
1148 5, 5, 0, 2, 2, 2, 2, 6, 8, 2,
1149 2, 2, 2, 2, 2, 5, 1, 1, 1, 1,
1150 1, 0, 2, 2, 3, 0, 1, 2, 2, 2,
1151 3, 2, 1, 1, 3, 2, 4, 1, 3, 1,
1152 3, 1, 1, 1, 5, 1, 1, 1, 1, 2,
1153 1, 2, 1, 2, 4, 4, 5, 10, 1, 3
1154 };
1155
1156 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1157 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1158 means the default is an error. */
1159 static const unsigned short int yydefact[] =
1160 {
1161 3, 0, 2, 1, 296, 224, 215, 235, 0, 270,
1162 0, 0, 223, 210, 225, 266, 221, 226, 227, 0,
1163 269, 229, 234, 0, 227, 268, 0, 227, 0, 222,
1164 231, 267, 210, 49, 210, 220, 295, 216, 57, 10,
1165 0, 24, 11, 27, 11, 9, 0, 298, 0, 297,
1166 217, 0, 0, 7, 0, 0, 22, 0, 252, 5,
1167 4, 0, 8, 275, 275, 275, 0, 0, 300, 275,
1168 0, 302, 236, 237, 0, 243, 244, 299, 212, 0,
1169 228, 233, 0, 254, 255, 232, 0, 230, 218, 301,
1170 0, 0, 50, 303, 0, 219, 58, 59, 60, 61,
1171 62, 63, 0, 0, 66, 67, 68, 69, 70, 71,
1172 0, 73, 74, 0, 76, 0, 0, 79, 80, 0,
1173 0, 0, 0, 0, 86, 0, 88, 0, 90, 0,
1174 92, 93, 0, 0, 96, 97, 98, 99, 100, 101,
1175 102, 103, 104, 0, 106, 107, 108, 293, 109, 0,
1176 111, 291, 112, 113, 114, 0, 116, 117, 118, 0,
1177 0, 0, 292, 0, 123, 124, 0, 0, 0, 52,
1178 127, 25, 0, 0, 0, 0, 0, 298, 238, 245,
1179 256, 264, 0, 300, 302, 26, 6, 240, 261, 0,
1180 23, 259, 260, 0, 0, 20, 279, 276, 278, 277,
1181 213, 214, 130, 131, 132, 133, 271, 0, 0, 283,
1182 289, 282, 207, 275, 273, 28, 0, 138, 33, 0,
1183 194, 0, 0, 200, 0, 0, 0, 0, 0, 0,
1184 0, 0, 0, 0, 0, 0, 0, 0, 0, 148,
1185 0, 0, 148, 0, 0, 0, 0, 0, 0, 57,
1186 51, 34, 0, 17, 18, 19, 0, 15, 13, 12,
1187 16, 22, 36, 262, 263, 37, 206, 49, 0, 49,
1188 0, 0, 253, 20, 0, 0, 0, 281, 0, 148,
1189 39, 285, 274, 32, 0, 140, 141, 144, 304, 49,
1190 287, 305, 49, 49, 0, 158, 150, 151, 152, 156,
1191 157, 153, 154, 0, 155, 0, 0, 0, 0, 0,
1192 0, 0, 192, 0, 190, 193, 0, 0, 55, 0,
1193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1194 0, 146, 149, 0, 0, 0, 0, 0, 0, 129,
1195 128, 0, 308, 0, 0, 53, 57, 0, 14, 38,
1196 22, 0, 241, 246, 0, 0, 0, 49, 0, 0,
1197 0, 22, 21, 0, 272, 280, 284, 290, 0, 0,
1198 295, 0, 44, 40, 42, 0, 0, 145, 139, 0,
1199 294, 0, 195, 0, 0, 306, 50, 201, 0, 64,
1200 0, 182, 181, 180, 183, 178, 179, 0, 0, 0,
1201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1203 0, 0, 65, 72, 75, 0, 77, 78, 81, 82,
1204 83, 84, 85, 87, 89, 0, 95, 148, 94, 105,
1205 0, 115, 119, 120, 121, 122, 0, 125, 126, 54,
1206 0, 239, 242, 248, 0, 247, 250, 0, 0, 251,
1207 20, 22, 265, 48, 47, 286, 0, 0, 46, 142,
1208 143, 0, 302, 288, 208, 199, 198, 0, 189, 0,
1209 171, 172, 184, 165, 166, 169, 170, 160, 161, 0,
1210 162, 163, 164, 168, 167, 174, 173, 176, 177, 175,
1211 185, 0, 191, 56, 91, 147, 0, 309, 22, 204,
1212 0, 249, 0, 257, 43, 45, 0, 197, 0, 209,
1213 187, 186, 0, 188, 110, 35, 205, 22, 196, 134,
1214 159, 258, 0, 0, 0, 307, 135, 0, 49, 49,
1215 203, 137, 0, 136, 202
1216 };
1217
1218 /* YYDEFGOTO[NTERM-NUM]. */
1219 static const short int yydefgoto[] =
1220 {
1221 -1, 1, 2, 172, 274, 191, 362, 40, 41, 42,
1222 43, 254, 176, 44, 255, 371, 372, 373, 374, 281,
1223 355, 92, 168, 319, 169, 341, 208, 532, 536, 284,
1224 285, 286, 177, 330, 331, 312, 313, 314, 316, 289,
1225 382, 387, 293, 541, 542, 458, 48, 518, 79, 209,
1226 49, 81, 50, 256, 52, 257, 267, 352, 54, 55,
1227 269, 357, 56, 194, 57, 58, 258, 259, 181, 61,
1228 260, 63, 64, 65, 275, 66, 196, 67, 210, 211,
1229 291, 212, 170, 183, 69, 70, 184, 343
1230 };
1231
1232 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1233 STATE-NUM. */
1234 #define YYPACT_NINF -271
1235 static const short int yypact[] =
1236 {
1237 -271, 69, 1074, -271, -271, -271, -271, -271, 58, -271,
1238 -62, 123, -271, 126, -271, -271, -271, -271, 53, 107,
1239 -271, -271, -271, 128, 53, -271, -26, 53, -17, -271,
1240 -271, -271, 130, -22, 132, -17, -271, -271, 1946, -271,
1241 -21, -271, -271, -271, -271, -271, 1708, -19, -10, -271,
1242 -271, -9, -25, -271, -4, -23, -1, 6, 4, -271,
1243 -271, -18, -271, -6, -6, -6, 35, 1821, 32, -6,
1244 37, 40, -271, -271, 156, -271, -271, -5, -271, 15,
1245 -271, -271, 41, -271, -271, -271, 1821, -271, -271, -5,
1246 39, 1751, -271, -96, -87, -271, -271, -271, -271, -271,
1247 -271, -271, 34, 43, -271, -271, -271, -271, -271, -271,
1248 44, -271, -271, 47, -271, 48, 51, -271, -271, 54,
1249 56, 57, 60, 61, -271, 62, -271, 63, -271, 65,
1250 -271, -271, 66, 73, -271, -271, -271, -271, -271, -271,
1251 -271, -271, -271, 74, -271, -271, -271, -271, -271, 77,
1252 -271, -271, -271, -271, -271, 78, -271, -271, -271, 79,
1253 80, 82, -271, 83, -271, -271, 85, 88, -105, -271,
1254 -271, -271, 979, 402, 205, 136, 67, -271, -271, -271,
1255 -271, -271, 35, -271, -271, -271, -271, -271, -271, -15,
1256 -271, -271, -271, 138, 89, -271, -271, -271, -271, -271,
1257 -271, -271, -271, -271, -271, -271, -271, 35, 35, -271,
1258 49, -70, -271, -6, -271, -271, 95, 140, -271, 96,
1259 -271, 35, 92, -271, 140, 443, 443, 252, 261, 443,
1260 443, 262, 265, 443, 269, 443, 443, 216, 443, 443,
1261 -57, 443, 443, 443, 1821, 1821, 111, 277, 1821, 1946,
1262 116, -271, 114, -271, -271, -271, 117, -271, -271, -271,
1263 -271, -1, -271, -271, -271, -271, -271, -123, 137, -68,
1264 118, 142, -271, -271, 497, 25, 147, -271, 443, 843,
1265 1149, -271, -271, -271, 115, 143, -271, 134, -271, -69,
1266 -271, 173, -22, -58, 153, -271, -271, -271, -271, -271,
1267 -271, -271, -271, 150, -271, 443, 443, 443, 443, 443,
1268 443, 782, 1444, -100, -271, 1444, 154, 155, -271, -97,
1269 162, 163, 166, 174, 175, 176, 177, 1283, 325, 178,
1270 -90, -271, 1444, 179, 190, -89, 1326, 184, 185, -271,
1271 -271, 187, 194, 191, 192, -271, 1946, 358, -271, -271,
1272 -1, -8, -271, -271, 218, 1751, 198, -56, 195, 292,
1273 592, -1, -271, 1751, -271, -271, -271, -271, 86, 202,
1274 -84, 200, -271, 226, -271, 1751, 35, -271, 140, 443,
1275 -271, 1751, -271, 35, 203, -271, 204, -271, 206, -271,
1276 1821, 27, 27, 27, 27, 27, 27, 1349, 207, 443,
1277 443, 374, 443, 443, 443, 443, 443, 443, 443, 443,
1278 443, 443, 443, 443, 443, 443, 443, 443, 443, 375,
1279 443, 443, -271, -271, -271, 372, -271, -271, -271, -271,
1280 -271, -271, -271, -271, -271, 210, -271, 443, -271, -271,
1281 443, -271, -271, -271, -271, -271, 378, -271, -271, -271,
1282 212, -271, -271, -271, 35, -271, -271, 1751, 215, -271,
1283 -271, -1, -271, -271, -271, -271, 1192, 35, -271, -271,
1284 -271, 35, 238, -271, 140, -271, -271, 237, -271, 443,
1285 149, 149, -271, 186, 186, 144, 144, 1551, 1474, 1394,
1286 1497, 1520, 1567, 144, 144, 165, 165, 27, 27, 27,
1287 -271, 1372, -271, -271, -271, -271, 239, -271, -1, -271,
1288 35, -271, 687, -271, -271, -271, -74, -271, 240, -271,
1289 -271, 27, 443, -271, -271, -271, -271, -1, -271, -271,
1290 1444, -271, -20, 443, 266, -271, -271, 267, -46, -46,
1291 -271, -271, 244, -271, -271
1292 };
1293
1294 /* YYPGOTO[NTERM-NUM]. */
1295 static const short int yypgoto[] =
1296 {
1297 -271, -271, -271, 344, -267, -244, 18, -271, -271, -271,
1298 59, -271, -271, -271, 408, -271, -271, -271, -49, -271,
1299 -28, -2, -271, -271, -233, -271, -271, -271, -271, -271,
1300 -271, 42, 2, 180, -270, -13, -271, -220, -193, -271,
1301 -271, -271, -271, -120, -189, -271, -271, -271, 91, -194,
1302 -271, 87, 31, 38, -271, 421, -271, -271, 379, -271,
1303 -271, -271, -271, -271, -24, -271, 424, 1, -271, -271,
1304 425, -271, -271, 158, -271, -45, -16, -32, -196, -271,
1305 -43, 247, 196, 5, -59, -271, 0, -271
1306 };
1307
1308 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1309 positive, shift that token. If negative, reduce the rule which
1310 number is the opposite. If zero, do what YYDEFACT says.
1311 If YYTABLE_NINF, syntax error. */
1312 #define YYTABLE_NINF -212
1313 static const short int yytable[] =
1314 {
1315 46, 182, 71, 60, 47, 91, 360, 68, 213, 369,
1316 321, 276, 277, 324, 533, 326, 345, 349, 329, 7,
1317 39, 334, 180, 287, 354, 290, 534, 219, 200, 201,
1318 294, 197, 197, 197, 9, -211, 320, 197, 200, 201,
1319 51, 401, 249, 11, 222, 38, 221, 421, 198, 199,
1320 425, 350, 147, 214, 15, 18, 151, 437, 437, 88,
1321 202, 72, 73, -41, 250, 9, 95, 21, 22, 3,
1322 202, 23, 422, 383, 24, 426, 20, -211, 23, 365,
1323 356, 162, 438, 441, 178, 367, 223, 203, -41, 295,
1324 268, 296, 297, 298, 299, 300, 528, 203, 279, 38,
1325 38, 280, 27, 384, 388, 380, 451, 30, 25, 74,
1326 38, 85, 38, 449, 87, 82, 385, 462, 456, 339,
1327 31, 340, 38, 90, 540, 94, 75, 76, 204, 77,
1328 78, 83, 84, 89, 78, 93, 78, 80, 204, 263,
1329 264, 271, 272, 200, 201, 86, 38, 301, 187, 171,
1330 189, -29, 205, 193, 535, 195, 399, 400, 401, 470,
1331 185, 186, 205, 401, 216, 270, 188, 505, -211, 190,
1332 46, 46, 71, 71, 47, 47, 192, 68, 68, 401,
1333 468, 197, 206, 302, 287, 337, 338, 473, 217, 344,
1334 253, 253, 206, 512, 419, 420, 207, 282, 399, 400,
1335 401, 502, -30, 404, 405, 224, 207, 215, 262, 303,
1336 -31, 218, 220, 315, 225, 226, 315, 513, 227, 228,
1337 506, 304, 229, 327, 278, 230, 332, 231, 232, 332,
1338 336, 233, 234, 235, 236, 376, 237, 238, 305, 351,
1339 265, 306, 307, 308, 239, 240, 309, 310, 241, 242,
1340 243, 244, 398, 245, 246, 463, 247, 311, 509, 248,
1341 317, 381, 273, 292, 525, 315, 332, 283, 288, 318,
1342 322, 515, 363, 323, 71, 290, 47, 325, 375, 68,
1343 519, 328, 342, 531, 346, 347, 353, 348, 358, 377,
1344 378, 386, 391, 392, 393, 394, 395, 396, 397, 414,
1345 415, 416, 417, 418, 414, 415, 416, 417, 418, 379,
1346 454, 419, 420, 537, 526, 359, 419, 420, 182, 366,
1347 383, 390, 416, 417, 418, 389, 423, 424, 435, 457,
1348 467, 477, 419, 420, 427, 428, 471, 440, 429, 412,
1349 413, 414, 415, 416, 417, 418, 430, 431, 432, 433,
1350 436, 439, 452, 419, 420, 394, 443, 444, 363, 445,
1351 71, 446, 47, 447, 448, 68, 450, 453, 455, 459,
1352 19, 464, 465, 466, 475, 474, 476, 482, 500, 479,
1353 503, 472, 504, 507, 508, 511, 480, 481, 173, 483,
1354 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
1355 494, 495, 496, 497, 498, 499, 4, 501, 517, 520,
1356 45, 524, 510, 529, 544, 538, 539, 514, 460, 543,
1357 469, 376, 335, 53, 332, 179, 59, 62, 516, 266,
1358 5, 0, 6, 364, 0, 0, 333, 0, 7, 8,
1359 0, 0, 9, 0, 0, 0, 295, 10, 296, 297,
1360 298, 299, 300, 11, 0, 12, 0, 0, 0, 13,
1361 14, 0, 15, 0, 375, 16, 521, 17, 0, 0,
1362 0, 0, 0, 0, 18, 0, 0, 0, 0, 0,
1363 19, 252, 0, 0, 20, 0, 21, 22, 23, 0,
1364 0, 0, 0, 24, 0, 0, 0, 0, 0, 0,
1365 0, 4, 0, 0, 301, 0, 0, 0, 0, 530,
1366 363, 0, 71, 0, 47, 0, 25, 68, 0, 0,
1367 26, 27, 28, 29, 0, 5, 30, 6, 31, 0,
1368 0, 0, 32, 7, 0, 0, 0, 9, 33, 34,
1369 302, 35, 10, 0, 0, 0, 36, 37, 0, 0,
1370 12, 0, 0, 0, 13, 14, 0, 15, 0, 0,
1371 16, 0, 17, 0, 0, 0, 303, 0, 0, 18,
1372 38, 0, 0, 0, 0, 19, 261, 0, 304, 20,
1373 0, 21, 22, 0, 0, 0, 0, 0, 24, 0,
1374 0, 0, 0, 0, 0, 305, 4, 0, 306, 307,
1375 308, 0, 0, 309, 310, 0, 0, 0, 0, 0,
1376 0, 25, 0, 0, 311, 26, 27, 28, 29, 0,
1377 5, 30, 6, 31, 0, 0, 0, 32, 7, 0,
1378 0, 0, 9, 33, 34, 0, 35, 10, 0, 0,
1379 0, 36, 37, 0, 0, 12, 0, 0, 0, 13,
1380 14, 0, 15, 0, 0, 16, 0, 17, 0, 0,
1381 0, 0, 0, 0, 18, 38, 0, 0, 0, 0,
1382 19, 361, 0, 0, 20, 0, 21, 22, 0, 0,
1383 0, 0, 0, 24, 0, 0, 0, 0, 0, 0,
1384 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
1385 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
1386 26, 27, 28, 29, 0, 5, 30, 6, 31, 0,
1387 0, 0, 32, 7, 0, 0, 0, 9, 33, 34,
1388 0, 35, 10, 0, 0, 0, 36, 37, 0, 0,
1389 12, 0, 0, 0, 13, 14, 0, 15, 0, 0,
1390 16, 0, 17, 0, 0, 0, 0, 0, 0, 18,
1391 38, 0, 0, 0, 0, 19, 461, 0, 0, 20,
1392 0, 21, 22, 0, 0, 0, 0, 0, 24, 0,
1393 0, 0, 0, 0, 0, 295, 4, 296, 297, 298,
1394 299, 300, 0, 0, 0, 0, 0, 0, 0, 0,
1395 0, 25, 0, 0, 0, 26, 27, 28, 29, 0,
1396 5, 30, 6, 31, 0, 0, 0, 32, 7, 0,
1397 0, 0, 0, 33, 34, 0, 35, 0, 0, 0,
1398 0, 36, 37, 0, 0, 12, 0, 0, 0, 13,
1399 14, 0, 0, 301, 0, 16, 295, 17, 296, 297,
1400 298, 299, 300, 0, 18, 38, 0, 0, 0, 0,
1401 0, 527, 0, 0, 0, 0, 21, 22, 0, 0,
1402 0, 0, 0, 24, 0, 0, 0, 0, 0, 302,
1403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1405 26, 27, 28, 29, 301, 303, 30, 0, 0, 0,
1406 0, 0, 32, 0, 0, 0, 0, 304, 0, 34,
1407 0, 35, 0, 0, 0, 0, 36, 37, 0, 0,
1408 0, 0, 0, 0, 305, 0, 0, 306, 307, 308,
1409 302, 0, 309, 310, 0, 0, 0, 0, 0, 0,
1410 0, 0, 0, 311, 0, 0, 0, 0, 0, 0,
1411 0, 0, 0, 0, 0, 0, 303, 0, 0, 0,
1412 0, 0, 0, 0, 0, 0, 0, 0, 304, 0,
1413 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
1414 251, 0, 0, 0, 0, 305, 0, 0, 306, 307,
1415 368, 0, 0, 309, 310, 0, 0, 5, 0, 6,
1416 0, 0, 0, 0, 311, 7, 8, 0, 0, 9,
1417 0, 0, 0, 0, 10, 0, 0, 0, 0, 0,
1418 11, 0, 12, 0, 0, 0, 13, 14, 0, 15,
1419 0, 0, 16, 0, 17, 0, 0, 0, 0, 0,
1420 0, 18, 0, 0, 0, 0, 0, 19, 252, 0,
1421 0, 20, 0, 21, 22, 23, 0, 0, 0, 0,
1422 24, 0, 0, 0, 0, 0, 0, 0, 4, 0,
1423 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1424 0, 0, 0, 25, 0, 0, 0, 26, 27, 28,
1425 29, 0, 5, 30, 6, 31, 0, 0, 0, 32,
1426 7, 8, 0, 0, 9, 33, 34, 0, 35, 10,
1427 0, 0, 0, 36, 37, 11, 0, 12, 0, 0,
1428 0, 13, 14, 0, 15, 0, 0, 16, 0, 17,
1429 0, 0, 0, 0, 0, 0, 18, 38, 0, 0,
1430 0, 0, 19, 4, 0, 0, 20, 0, 21, 22,
1431 23, 0, 0, 0, 0, 24, 0, 0, 0, 0,
1432 0, 0, 0, 0, 0, 0, 0, 5, 0, 6,
1433 0, 0, 0, 0, 0, 7, 0, 0, 25, 9,
1434 0, 0, 26, 27, 28, 29, 4, 0, 30, 0,
1435 31, 0, 12, 0, 32, 0, 13, 14, 0, 15,
1436 33, 34, 16, 35, 17, 0, 0, 0, 36, 37,
1437 5, 18, 6, 0, 0, 0, 0, 0, 7, 0,
1438 0, 20, 9, 21, 22, 0, 0, 0, 0, 0,
1439 24, 0, 38, 0, 0, 12, 0, 0, 0, 13,
1440 14, 0, 15, 0, 0, 16, 0, 17, 0, 0,
1441 0, 0, 0, 25, 18, 0, 0, 26, 27, 28,
1442 29, 0, 0, 30, 20, 31, 21, 22, 0, 32,
1443 0, 0, 0, 24, 0, 0, 34, 0, 35, 0,
1444 0, 0, 0, 370, 37, 399, 400, 401, 402, 403,
1445 404, 405, 406, 407, 0, 0, 25, 0, 0, 0,
1446 26, 27, 28, 29, 0, 0, 30, 38, 31, 0,
1447 0, 0, 32, 0, 0, 0, 0, 0, 0, 34,
1448 0, 35, 0, 0, 0, 0, 36, 37, 399, 400,
1449 401, 402, 403, 404, 405, 406, 407, 0, 0, 0,
1450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1451 38, 399, 400, 401, 402, 403, 404, 405, 406, 407,
1452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1453 0, 0, 0, 0, 399, 400, 401, 402, 403, 404,
1454 405, 406, 407, 0, 0, 0, 0, 0, 0, 0,
1455 0, 0, 0, 0, 0, 0, 399, 400, 401, 402,
1456 403, 404, 405, 406, 407, 0, 0, 0, 0, 0,
1457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1458 0, 408, 0, 409, 410, 411, 412, 413, 414, 415,
1459 416, 417, 418, 0, 0, 0, 0, 0, 0, 0,
1460 419, 420, 0, 0, 0, 434, 399, 400, 401, 402,
1461 403, 404, 405, 406, 407, 0, 0, 0, 0, 0,
1462 0, 0, 0, 0, 408, 0, 409, 410, 411, 412,
1463 413, 414, 415, 416, 417, 418, 399, 400, 401, 402,
1464 403, 404, 405, 419, 420, 0, 0, 408, 442, 409,
1465 410, 411, 412, 413, 414, 415, 416, 417, 418, 399,
1466 400, 401, 402, 403, 404, 405, 419, 420, 0, 0,
1467 408, 478, 409, 410, 411, 412, 413, 414, 415, 416,
1468 417, 418, 399, 400, 401, 402, 403, 404, 405, 419,
1469 420, 523, 408, 522, 409, 410, 411, 412, 413, 414,
1470 415, 416, 417, 418, 0, 0, 0, 0, 0, 0,
1471 0, 419, 420, 399, 400, 401, 402, 403, 404, 405,
1472 0, 407, 0, 0, 0, 0, 0, 0, 0, 399,
1473 400, 401, 402, 403, 404, 405, 0, 0, 0, 0,
1474 0, 0, 408, 0, 409, 410, 411, 412, 413, 414,
1475 415, 416, 417, 418, 0, 0, 0, 0, 0, 0,
1476 0, 419, 420, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, 0, 409, 410, 411, 412, 413, 414,
1478 415, 416, 417, 418, 0, 0, 0, 0, 0, 0,
1479 0, 419, 420, 0, 0, 0, 0, 0, 410, 411,
1480 412, 413, 414, 415, 416, 417, 418, 0, 0, 0,
1481 0, 0, 0, 0, 419, 420, 0, 0, 0, 0,
1482 0, 0, 411, 412, 413, 414, 415, 416, 417, 418,
1483 0, 0, 0, 0, 0, 0, 0, 419, 420, 0,
1484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1485 0, 409, 410, 411, 412, 413, 414, 415, 416, 417,
1486 418, 0, 4, 0, 0, 0, 0, 0, 419, 420,
1487 412, 413, 414, 415, 416, 417, 418, 0, 0, 0,
1488 0, 0, 0, 0, 419, 420, 5, 0, 6, 0,
1489 0, 0, 0, 0, 7, 8, 0, 0, 9, 0,
1490 0, 0, 0, 0, 0, 4, 0, 0, 0, 11,
1491 0, 12, 0, 0, 0, 13, 14, 0, 15, 0,
1492 0, 16, 0, 17, 0, 0, 0, 0, 0, 5,
1493 18, 6, 0, 0, 0, 0, 0, 7, 0, 0,
1494 20, 9, 21, 22, 23, 0, 0, 174, 0, 24,
1495 0, 175, 0, 0, 12, 0, 0, 0, 13, 14,
1496 0, 15, 0, 0, 16, 0, 17, 0, 0, 0,
1497 0, 0, 25, 18, 0, 4, 26, 27, 28, 29,
1498 0, 0, 30, 20, 31, 21, 22, 0, 32, 0,
1499 0, 0, 24, 0, 0, 34, 0, 35, 0, 5,
1500 0, 6, 36, 37, 0, 0, 0, 7, 0, 0,
1501 0, 0, 0, 0, 0, 25, 0, 0, 0, 26,
1502 27, 28, 29, 0, 12, 30, 0, 31, 13, 14,
1503 0, 32, 0, 0, 16, 0, 17, 0, 34, 0,
1504 35, 0, 0, 18, 0, 36, 37, 0, 0, 0,
1505 0, 0, 0, 0, 0, 21, 22, 0, 0, 0,
1506 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
1507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1508 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,
1509 27, 28, 29, 0, 0, 30, 0, 0, 0, 0,
1510 0, 32, 0, 0, 0, 0, 0, 0, 34, 0,
1511 35, 0, 0, 0, 0, 36, 37, 96, 0, 97,
1512 98, 0, 99, 100, 0, 101, 0, 0, 102, 0,
1513 103, 0, 0, 0, 0, 0, 0, 104, 105, 106,
1514 107, 0, 108, 109, 110, 111, 112, 0, 113, 0,
1515 114, 115, 116, 0, 0, 117, 0, 0, 0, 0,
1516 118, 0, 119, 120, 121, 122, 123, 124, 0, 125,
1517 126, 127, 128, 129, 0, 0, 130, 0, 0, 131,
1518 0, 0, 0, 132, 133, 0, 134, 0, 0, 0,
1519 135, 136, 137, 0, 138, 139, 140, 141, 142, 0,
1520 143, 0, 144, 145, 146, 147, 148, 149, 150, 151,
1521 0, 152, 153, 154, 0, 0, 0, 0, 155, 0,
1522 0, 156, 0, 0, 157, 158, 0, 0, 159, 160,
1523 161, 0, 0, 0, 162, 0, 163, 164, 165, 166,
1524 0, 0, 167
1525 };
1526
1527 static const short int yycheck[] =
1528 {
1529 2, 46, 2, 2, 2, 33, 273, 2, 67, 279,
1530 230, 207, 208, 233, 34, 235, 249, 261, 238, 36,
1531 2, 241, 46, 217, 92, 221, 46, 86, 3, 4,
1532 224, 63, 64, 65, 40, 131, 229, 69, 3, 4,
1533 2, 14, 147, 51, 131, 168, 91, 147, 64, 65,
1534 147, 174, 109, 69, 60, 72, 113, 147, 147, 28,
1535 35, 3, 4, 147, 169, 40, 35, 84, 85, 0,
1536 35, 86, 172, 147, 91, 172, 82, 173, 86, 275,
1537 269, 138, 172, 172, 46, 278, 173, 62, 172, 3,
1538 105, 5, 6, 7, 8, 9, 170, 62, 168, 168,
1539 168, 171, 119, 292, 293, 174, 350, 124, 114, 171,
1540 168, 24, 168, 346, 27, 8, 174, 361, 174, 8,
1541 126, 10, 168, 32, 170, 34, 3, 4, 103, 3,
1542 4, 3, 4, 3, 4, 3, 4, 84, 103, 3,
1543 4, 3, 4, 3, 4, 171, 168, 61, 173, 170,
1544 173, 170, 127, 149, 174, 173, 12, 13, 14, 379,
1545 170, 170, 127, 14, 8, 189, 170, 437, 173, 170,
1546 172, 173, 172, 173, 172, 173, 170, 172, 173, 14,
1547 376, 213, 157, 97, 378, 244, 245, 383, 173, 248,
1548 172, 173, 157, 460, 167, 168, 171, 213, 12, 13,
1549 14, 421, 170, 17, 18, 171, 171, 170, 3, 123,
1550 170, 170, 173, 226, 171, 171, 229, 461, 171, 171,
1551 440, 135, 171, 236, 175, 171, 239, 171, 171, 242,
1552 243, 171, 171, 171, 171, 280, 171, 171, 152, 267,
1553 173, 155, 156, 157, 171, 171, 160, 161, 171, 171,
1554 171, 171, 311, 171, 171, 169, 171, 171, 454, 171,
1555 8, 289, 173, 171, 508, 278, 279, 172, 172, 8,
1556 8, 467, 274, 8, 274, 471, 274, 8, 280, 274,
1557 474, 65, 5, 527, 168, 171, 149, 170, 170, 174,
1558 147, 293, 305, 306, 307, 308, 309, 310, 311, 155,
1559 156, 157, 158, 159, 155, 156, 157, 158, 159, 175,
1560 355, 167, 168, 533, 510, 173, 167, 168, 363, 172,
1561 147, 171, 157, 158, 159, 172, 172, 172, 3, 357,
1562 375, 390, 167, 168, 172, 172, 381, 147, 172, 153,
1563 154, 155, 156, 157, 158, 159, 172, 172, 172, 172,
1564 172, 172, 351, 167, 168, 368, 172, 172, 360, 172,
1565 360, 167, 360, 172, 172, 360, 8, 149, 170, 174,
1566 78, 169, 172, 147, 170, 172, 170, 3, 3, 172,
1567 8, 381, 172, 5, 172, 170, 399, 400, 44, 402,
1568 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
1569 413, 414, 415, 416, 417, 418, 4, 420, 170, 172,
1570 2, 172, 457, 173, 170, 149, 149, 466, 359, 539,
1571 378, 466, 242, 2, 437, 46, 2, 2, 471, 182,
1572 28, -1, 30, 275, -1, -1, 240, -1, 36, 37,
1573 -1, -1, 40, -1, -1, -1, 3, 45, 5, 6,
1574 7, 8, 9, 51, -1, 53, -1, -1, -1, 57,
1575 58, -1, 60, -1, 466, 63, 479, 65, -1, -1,
1576 -1, -1, -1, -1, 72, -1, -1, -1, -1, -1,
1577 78, 79, -1, -1, 82, -1, 84, 85, 86, -1,
1578 -1, -1, -1, 91, -1, -1, -1, -1, -1, -1,
1579 -1, 4, -1, -1, 61, -1, -1, -1, -1, 522,
1580 512, -1, 512, -1, 512, -1, 114, 512, -1, -1,
1581 118, 119, 120, 121, -1, 28, 124, 30, 126, -1,
1582 -1, -1, 130, 36, -1, -1, -1, 40, 136, 137,
1583 97, 139, 45, -1, -1, -1, 144, 145, -1, -1,
1584 53, -1, -1, -1, 57, 58, -1, 60, -1, -1,
1585 63, -1, 65, -1, -1, -1, 123, -1, -1, 72,
1586 168, -1, -1, -1, -1, 78, 174, -1, 135, 82,
1587 -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
1588 -1, -1, -1, -1, -1, 152, 4, -1, 155, 156,
1589 157, -1, -1, 160, 161, -1, -1, -1, -1, -1,
1590 -1, 114, -1, -1, 171, 118, 119, 120, 121, -1,
1591 28, 124, 30, 126, -1, -1, -1, 130, 36, -1,
1592 -1, -1, 40, 136, 137, -1, 139, 45, -1, -1,
1593 -1, 144, 145, -1, -1, 53, -1, -1, -1, 57,
1594 58, -1, 60, -1, -1, 63, -1, 65, -1, -1,
1595 -1, -1, -1, -1, 72, 168, -1, -1, -1, -1,
1596 78, 174, -1, -1, 82, -1, 84, 85, -1, -1,
1597 -1, -1, -1, 91, -1, -1, -1, -1, -1, -1,
1598 -1, 4, -1, -1, -1, -1, -1, -1, -1, -1,
1599 -1, -1, -1, -1, -1, -1, 114, -1, -1, -1,
1600 118, 119, 120, 121, -1, 28, 124, 30, 126, -1,
1601 -1, -1, 130, 36, -1, -1, -1, 40, 136, 137,
1602 -1, 139, 45, -1, -1, -1, 144, 145, -1, -1,
1603 53, -1, -1, -1, 57, 58, -1, 60, -1, -1,
1604 63, -1, 65, -1, -1, -1, -1, -1, -1, 72,
1605 168, -1, -1, -1, -1, 78, 174, -1, -1, 82,
1606 -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
1607 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
1608 8, 9, -1, -1, -1, -1, -1, -1, -1, -1,
1609 -1, 114, -1, -1, -1, 118, 119, 120, 121, -1,
1610 28, 124, 30, 126, -1, -1, -1, 130, 36, -1,
1611 -1, -1, -1, 136, 137, -1, 139, -1, -1, -1,
1612 -1, 144, 145, -1, -1, 53, -1, -1, -1, 57,
1613 58, -1, -1, 61, -1, 63, 3, 65, 5, 6,
1614 7, 8, 9, -1, 72, 168, -1, -1, -1, -1,
1615 -1, 174, -1, -1, -1, -1, 84, 85, -1, -1,
1616 -1, -1, -1, 91, -1, -1, -1, -1, -1, 97,
1617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1618 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1619 118, 119, 120, 121, 61, 123, 124, -1, -1, -1,
1620 -1, -1, 130, -1, -1, -1, -1, 135, -1, 137,
1621 -1, 139, -1, -1, -1, -1, 144, 145, -1, -1,
1622 -1, -1, -1, -1, 152, -1, -1, 155, 156, 157,
1623 97, -1, 160, 161, -1, -1, -1, -1, -1, -1,
1624 -1, -1, -1, 171, -1, -1, -1, -1, -1, -1,
1625 -1, -1, -1, -1, -1, -1, 123, -1, -1, -1,
1626 -1, -1, -1, -1, -1, -1, -1, -1, 135, -1,
1627 -1, -1, -1, 4, -1, -1, -1, -1, -1, -1,
1628 11, -1, -1, -1, -1, 152, -1, -1, 155, 156,
1629 157, -1, -1, 160, 161, -1, -1, 28, -1, 30,
1630 -1, -1, -1, -1, 171, 36, 37, -1, -1, 40,
1631 -1, -1, -1, -1, 45, -1, -1, -1, -1, -1,
1632 51, -1, 53, -1, -1, -1, 57, 58, -1, 60,
1633 -1, -1, 63, -1, 65, -1, -1, -1, -1, -1,
1634 -1, 72, -1, -1, -1, -1, -1, 78, 79, -1,
1635 -1, 82, -1, 84, 85, 86, -1, -1, -1, -1,
1636 91, -1, -1, -1, -1, -1, -1, -1, 4, -1,
1637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1638 -1, -1, -1, 114, -1, -1, -1, 118, 119, 120,
1639 121, -1, 28, 124, 30, 126, -1, -1, -1, 130,
1640 36, 37, -1, -1, 40, 136, 137, -1, 139, 45,
1641 -1, -1, -1, 144, 145, 51, -1, 53, -1, -1,
1642 -1, 57, 58, -1, 60, -1, -1, 63, -1, 65,
1643 -1, -1, -1, -1, -1, -1, 72, 168, -1, -1,
1644 -1, -1, 78, 4, -1, -1, 82, -1, 84, 85,
1645 86, -1, -1, -1, -1, 91, -1, -1, -1, -1,
1646 -1, -1, -1, -1, -1, -1, -1, 28, -1, 30,
1647 -1, -1, -1, -1, -1, 36, -1, -1, 114, 40,
1648 -1, -1, 118, 119, 120, 121, 4, -1, 124, -1,
1649 126, -1, 53, -1, 130, -1, 57, 58, -1, 60,
1650 136, 137, 63, 139, 65, -1, -1, -1, 144, 145,
1651 28, 72, 30, -1, -1, -1, -1, -1, 36, -1,
1652 -1, 82, 40, 84, 85, -1, -1, -1, -1, -1,
1653 91, -1, 168, -1, -1, 53, -1, -1, -1, 57,
1654 58, -1, 60, -1, -1, 63, -1, 65, -1, -1,
1655 -1, -1, -1, 114, 72, -1, -1, 118, 119, 120,
1656 121, -1, -1, 124, 82, 126, 84, 85, -1, 130,
1657 -1, -1, -1, 91, -1, -1, 137, -1, 139, -1,
1658 -1, -1, -1, 144, 145, 12, 13, 14, 15, 16,
1659 17, 18, 19, 20, -1, -1, 114, -1, -1, -1,
1660 118, 119, 120, 121, -1, -1, 124, 168, 126, -1,
1661 -1, -1, 130, -1, -1, -1, -1, -1, -1, 137,
1662 -1, 139, -1, -1, -1, -1, 144, 145, 12, 13,
1663 14, 15, 16, 17, 18, 19, 20, -1, -1, -1,
1664 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1665 168, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1667 -1, -1, -1, -1, 12, 13, 14, 15, 16, 17,
1668 18, 19, 20, -1, -1, -1, -1, -1, -1, -1,
1669 -1, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1670 16, 17, 18, 19, 20, -1, -1, -1, -1, -1,
1671 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1672 -1, 148, -1, 150, 151, 152, 153, 154, 155, 156,
1673 157, 158, 159, -1, -1, -1, -1, -1, -1, -1,
1674 167, 168, -1, -1, -1, 172, 12, 13, 14, 15,
1675 16, 17, 18, 19, 20, -1, -1, -1, -1, -1,
1676 -1, -1, -1, -1, 148, -1, 150, 151, 152, 153,
1677 154, 155, 156, 157, 158, 159, 12, 13, 14, 15,
1678 16, 17, 18, 167, 168, -1, -1, 148, 172, 150,
1679 151, 152, 153, 154, 155, 156, 157, 158, 159, 12,
1680 13, 14, 15, 16, 17, 18, 167, 168, -1, -1,
1681 148, 172, 150, 151, 152, 153, 154, 155, 156, 157,
1682 158, 159, 12, 13, 14, 15, 16, 17, 18, 167,
1683 168, 169, 148, 149, 150, 151, 152, 153, 154, 155,
1684 156, 157, 158, 159, -1, -1, -1, -1, -1, -1,
1685 -1, 167, 168, 12, 13, 14, 15, 16, 17, 18,
1686 -1, 20, -1, -1, -1, -1, -1, -1, -1, 12,
1687 13, 14, 15, 16, 17, 18, -1, -1, -1, -1,
1688 -1, -1, 148, -1, 150, 151, 152, 153, 154, 155,
1689 156, 157, 158, 159, -1, -1, -1, -1, -1, -1,
1690 -1, 167, 168, -1, -1, -1, -1, -1, -1, -1,
1691 -1, -1, -1, -1, 150, 151, 152, 153, 154, 155,
1692 156, 157, 158, 159, -1, -1, -1, -1, -1, -1,
1693 -1, 167, 168, -1, -1, -1, -1, -1, 151, 152,
1694 153, 154, 155, 156, 157, 158, 159, -1, -1, -1,
1695 -1, -1, -1, -1, 167, 168, -1, -1, -1, -1,
1696 -1, -1, 152, 153, 154, 155, 156, 157, 158, 159,
1697 -1, -1, -1, -1, -1, -1, -1, 167, 168, -1,
1698 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1699 -1, 150, 151, 152, 153, 154, 155, 156, 157, 158,
1700 159, -1, 4, -1, -1, -1, -1, -1, 167, 168,
1701 153, 154, 155, 156, 157, 158, 159, -1, -1, -1,
1702 -1, -1, -1, -1, 167, 168, 28, -1, 30, -1,
1703 -1, -1, -1, -1, 36, 37, -1, -1, 40, -1,
1704 -1, -1, -1, -1, -1, 4, -1, -1, -1, 51,
1705 -1, 53, -1, -1, -1, 57, 58, -1, 60, -1,
1706 -1, 63, -1, 65, -1, -1, -1, -1, -1, 28,
1707 72, 30, -1, -1, -1, -1, -1, 36, -1, -1,
1708 82, 40, 84, 85, 86, -1, -1, 89, -1, 91,
1709 -1, 93, -1, -1, 53, -1, -1, -1, 57, 58,
1710 -1, 60, -1, -1, 63, -1, 65, -1, -1, -1,
1711 -1, -1, 114, 72, -1, 4, 118, 119, 120, 121,
1712 -1, -1, 124, 82, 126, 84, 85, -1, 130, -1,
1713 -1, -1, 91, -1, -1, 137, -1, 139, -1, 28,
1714 -1, 30, 144, 145, -1, -1, -1, 36, -1, -1,
1715 -1, -1, -1, -1, -1, 114, -1, -1, -1, 118,
1716 119, 120, 121, -1, 53, 124, -1, 126, 57, 58,
1717 -1, 130, -1, -1, 63, -1, 65, -1, 137, -1,
1718 139, -1, -1, 72, -1, 144, 145, -1, -1, -1,
1719 -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
1720 -1, -1, 91, -1, -1, -1, -1, -1, -1, -1,
1721 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1722 -1, -1, -1, -1, -1, -1, -1, -1, -1, 118,
1723 119, 120, 121, -1, -1, 124, -1, -1, -1, -1,
1724 -1, 130, -1, -1, -1, -1, -1, -1, 137, -1,
1725 139, -1, -1, -1, -1, 144, 145, 21, -1, 23,
1726 24, -1, 26, 27, -1, 29, -1, -1, 32, -1,
1727 34, -1, -1, -1, -1, -1, -1, 41, 42, 43,
1728 44, -1, 46, 47, 48, 49, 50, -1, 52, -1,
1729 54, 55, 56, -1, -1, 59, -1, -1, -1, -1,
1730 64, -1, 66, 67, 68, 69, 70, 71, -1, 73,
1731 74, 75, 76, 77, -1, -1, 80, -1, -1, 83,
1732 -1, -1, -1, 87, 88, -1, 90, -1, -1, -1,
1733 94, 95, 96, -1, 98, 99, 100, 101, 102, -1,
1734 104, -1, 106, 107, 108, 109, 110, 111, 112, 113,
1735 -1, 115, 116, 117, -1, -1, -1, -1, 122, -1,
1736 -1, 125, -1, -1, 128, 129, -1, -1, 132, 133,
1737 134, -1, -1, -1, 138, -1, 140, 141, 142, 143,
1738 -1, -1, 146
1739 };
1740
1741 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1742 symbol of state STATE-NUM. */
1743 static const unsigned short int yystos[] =
1744 {
1745 0, 177, 178, 0, 4, 28, 30, 36, 37, 40,
1746 45, 51, 53, 57, 58, 60, 63, 65, 72, 78,
1747 82, 84, 85, 86, 91, 114, 118, 119, 120, 121,
1748 124, 126, 130, 136, 137, 139, 144, 145, 168, 182,
1749 183, 184, 185, 186, 189, 190, 197, 208, 222, 226,
1750 228, 229, 230, 231, 234, 235, 238, 240, 241, 242,
1751 243, 245, 246, 247, 248, 249, 251, 253, 259, 260,
1752 261, 262, 3, 4, 171, 3, 4, 3, 4, 224,
1753 84, 227, 8, 3, 4, 227, 171, 227, 228, 3,
1754 224, 196, 197, 3, 224, 228, 21, 23, 24, 26,
1755 27, 29, 32, 34, 41, 42, 43, 44, 46, 47,
1756 48, 49, 50, 52, 54, 55, 56, 59, 64, 66,
1757 67, 68, 69, 70, 71, 73, 74, 75, 76, 77,
1758 80, 83, 87, 88, 90, 94, 95, 96, 98, 99,
1759 100, 101, 102, 104, 106, 107, 108, 109, 110, 111,
1760 112, 113, 115, 116, 117, 122, 125, 128, 129, 132,
1761 133, 134, 138, 140, 141, 142, 143, 146, 198, 200,
1762 258, 170, 179, 179, 89, 93, 188, 208, 229, 234,
1763 240, 244, 251, 259, 262, 170, 170, 173, 170, 173,
1764 170, 181, 170, 149, 239, 173, 252, 253, 252, 252,
1765 3, 4, 35, 62, 103, 127, 157, 171, 202, 225,
1766 254, 255, 257, 260, 252, 170, 8, 173, 170, 260,
1767 173, 251, 131, 173, 171, 171, 171, 171, 171, 171,
1768 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
1769 171, 171, 171, 171, 171, 171, 171, 171, 171, 147,
1770 169, 11, 79, 182, 187, 190, 229, 231, 242, 243,
1771 246, 174, 3, 3, 4, 173, 257, 232, 105, 236,
1772 240, 3, 4, 173, 180, 250, 254, 254, 175, 168,
1773 171, 195, 252, 172, 205, 206, 207, 225, 172, 215,
1774 254, 256, 171, 218, 225, 3, 5, 6, 7, 8,
1775 9, 61, 97, 123, 135, 152, 155, 156, 157, 160,
1776 161, 171, 211, 212, 213, 211, 214, 8, 8, 199,
1777 214, 213, 8, 8, 213, 8, 213, 211, 65, 213,
1778 209, 210, 211, 258, 213, 209, 211, 260, 260, 8,
1779 10, 201, 5, 263, 260, 200, 168, 171, 170, 181,
1780 174, 196, 233, 149, 92, 196, 220, 237, 170, 173,
1781 180, 174, 182, 197, 249, 254, 172, 214, 157, 210,
1782 144, 191, 192, 193, 194, 197, 251, 174, 147, 175,
1783 174, 196, 216, 147, 220, 174, 197, 217, 220, 172,
1784 171, 211, 211, 211, 211, 211, 211, 211, 260, 12,
1785 13, 14, 15, 16, 17, 18, 19, 20, 148, 150,
1786 151, 152, 153, 154, 155, 156, 157, 158, 159, 167,
1787 168, 147, 172, 172, 172, 147, 172, 172, 172, 172,
1788 172, 172, 172, 172, 172, 3, 172, 147, 172, 172,
1789 147, 172, 172, 172, 172, 172, 167, 172, 172, 200,
1790 8, 181, 243, 149, 251, 170, 174, 196, 221, 174,
1791 186, 174, 181, 169, 169, 172, 147, 251, 254, 207,
1792 213, 251, 262, 254, 172, 170, 170, 260, 172, 172,
1793 211, 211, 3, 211, 211, 211, 211, 211, 211, 211,
1794 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
1795 3, 211, 213, 8, 172, 210, 213, 5, 172, 254,
1796 251, 170, 180, 181, 194, 254, 256, 170, 223, 225,
1797 172, 211, 149, 169, 172, 181, 254, 174, 170, 173,
1798 211, 181, 203, 34, 46, 174, 204, 213, 149, 149,
1799 170, 219, 220, 219, 170
1800 };
1801
1802 #define yyerrok (yyerrstatus = 0)
1803 #define yyclearin (yychar = YYEMPTY)
1804 #define YYEMPTY (-2)
1805 #define YYEOF 0
1806
1807 #define YYACCEPT goto yyacceptlab
1808 #define YYABORT goto yyabortlab
1809 #define YYERROR goto yyerrorlab
1810
1811
1812 /* Like YYERROR except do call yyerror. This remains here temporarily