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