c350d553c5465186d61bbe7d09780408e3d896d1
[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 2015
764
765 /* YYNTOKENS -- Number of terminals. */
766 #define YYNTOKENS 176
767 /* YYNNTS -- Number of nonterminals. */
768 #define YYNNTS 87
769 /* YYNRULES -- Number of rules. */
770 #define YYNRULES 308
771 /* YYNRULES -- Number of states. */
772 #define YYNSTATES 546
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 77, 80, 85, 89, 93, 99, 102, 106, 111, 112,
836 114, 116, 118, 122, 124, 128, 131, 135, 139, 140,
837 142, 146, 148, 152, 157, 159, 163, 164, 166, 168,
838 170, 172, 174, 176, 181, 186, 188, 190, 192, 194,
839 196, 198, 203, 205, 207, 212, 214, 219, 224, 226,
840 228, 233, 238, 243, 248, 253, 255, 260, 262, 267,
841 269, 275, 277, 279, 284, 289, 291, 293, 295, 297,
842 299, 301, 303, 305, 307, 312, 314, 316, 318, 320,
843 327, 329, 331, 333, 335, 340, 342, 344, 346, 351,
844 356, 361, 366, 368, 370, 375, 380, 382, 384, 386,
845 388, 390, 392, 394, 395, 398, 403, 407, 408, 411,
846 413, 415, 419, 423, 425, 431, 433, 437, 438, 440,
847 442, 444, 446, 448, 450, 452, 454, 456, 458, 464,
848 468, 472, 476, 480, 484, 488, 492, 496, 500, 504,
849 508, 512, 516, 520, 524, 528, 532, 536, 539, 542,
850 545, 548, 551, 554, 558, 562, 567, 572, 577, 581,
851 583, 587, 589, 591, 592, 595, 600, 604, 607, 610,
852 611, 614, 617, 619, 623, 627, 631, 634, 635, 637,
853 638, 640, 642, 644, 646, 648, 650, 652, 655, 658,
854 660, 662, 664, 666, 668, 670, 672, 673, 675, 677,
855 680, 682, 685, 688, 690, 692, 695, 698, 701, 707,
856 708, 711, 714, 717, 720, 723, 726, 730, 733, 737,
857 743, 749, 750, 753, 756, 759, 762, 769, 778, 781,
858 784, 787, 790, 793, 796, 802, 804, 806, 808, 810,
859 812, 813, 816, 819, 823, 824, 826, 829, 832, 835,
860 839, 842, 844, 846, 850, 853, 858, 860, 864, 866,
861 870, 872, 874, 876, 882, 884, 886, 888, 890, 893,
862 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, 242, -1, 178,
869 241, -1, 178, 228, 170, -1, 178, 230, -1, 178,
870 245, -1, 178, 189, -1, 178, 182, -1, -1, 179,
871 242, -1, 179, 241, -1, 179, 228, 170, -1, 179,
872 230, -1, 179, 245, -1, 179, 182, -1, 179, 186,
873 -1, 179, 189, -1, -1, 180, 182, -1, -1, 170,
874 -1, 183, -1, 207, 170, -1, 221, 170, -1, 185,
875 -1, 258, 170, -1, 260, 170, -1, 261, 170, -1,
876 45, 171, 8, 172, -1, 78, 8, 170, -1, 184,
877 179, 11, -1, 79, 171, 8, 172, 181, -1, 89,
878 3, -1, 196, 187, 173, -1, 188, 179, 174, 181,
879 -1, -1, 192, -1, 144, -1, 193, -1, 192, 147,
880 193, -1, 191, -1, 196, 250, 253, -1, 250, 253,
881 -1, 168, 209, 169, -1, 168, 157, 169, -1, -1,
882 196, -1, 168, 197, 169, -1, 199, -1, 197, 147,
883 199, -1, 197, 169, 168, 199, -1, 8, -1, 198,
884 147, 8, -1, -1, 21, -1, 23, -1, 24, -1,
885 26, -1, 27, -1, 29, -1, 32, 171, 224, 172,
886 -1, 34, 171, 211, 172, -1, 41, -1, 42, -1,
887 43, -1, 44, -1, 46, -1, 47, -1, 48, 171,
888 213, 172, -1, 49, -1, 50, -1, 52, 171, 8,
889 172, -1, 54, -1, 55, 171, 198, 172, -1, 56,
890 171, 213, 172, -1, 59, -1, 64, -1, 66, 171,
891 212, 172, -1, 67, 171, 8, 172, -1, 68, 171,
892 8, 172, -1, 69, 171, 212, 172, -1, 70, 171,
893 8, 172, -1, 71, -1, 73, 171, 212, 172, -1,
894 74, -1, 75, 171, 210, 172, -1, 76, -1, 77,
895 171, 65, 3, 172, -1, 80, -1, 83, -1, 88,
896 171, 208, 172, -1, 87, 171, 212, 172, -1, 90,
897 -1, 94, -1, 95, -1, 96, -1, 98, -1, 99,
898 -1, 100, -1, 101, -1, 102, -1, 104, 171, 257,
899 172, -1, 106, -1, 107, -1, 108, -1, 110, -1,
900 111, 171, 212, 147, 212, 172, -1, 112, -1, 115,
901 -1, 116, -1, 117, -1, 122, 171, 208, 172, -1,
902 125, -1, 128, -1, 129, -1, 132, 171, 210, 172,
903 -1, 133, 171, 259, 172, -1, 134, 171, 259, 172,
904 -1, 140, 171, 200, 172, -1, 141, -1, 142, -1,
905 143, 171, 262, 172, -1, 146, 171, 259, 172, -1,
906 257, -1, 10, -1, 8, -1, 35, -1, 62, -1,
907 103, -1, 127, -1, -1, 202, 203, -1, 34, 212,
908 149, 218, -1, 46, 149, 218, -1, -1, 205, 147,
909 -1, 205, -1, 206, -1, 205, 147, 206, -1, 224,
910 175, 212, -1, 224, -1, 57, 223, 173, 204, 174,
911 -1, 209, -1, 208, 147, 209, -1, -1, 210, -1,
912 5, -1, 6, -1, 7, -1, 61, -1, 97, -1,
913 135, -1, 8, -1, 9, -1, 3, -1, 210, 148,
914 210, 149, 210, -1, 210, 19, 210, -1, 210, 20,
915 210, -1, 210, 150, 210, -1, 210, 151, 210, -1,
916 210, 152, 210, -1, 210, 15, 210, -1, 210, 16,
917 210, -1, 210, 154, 210, -1, 210, 153, 210, -1,
918 210, 17, 210, -1, 210, 18, 210, -1, 210, 12,
919 210, -1, 210, 13, 210, -1, 210, 156, 210, -1,
920 210, 155, 210, -1, 210, 159, 210, -1, 210, 157,
921 210, -1, 210, 158, 210, -1, 160, 210, -1, 161,
922 210, -1, 156, 210, -1, 155, 210, -1, 152, 210,
923 -1, 157, 210, -1, 210, 14, 3, -1, 210, 167,
924 3, -1, 171, 259, 172, 210, -1, 123, 171, 259,
925 172, -1, 210, 168, 210, 169, -1, 171, 210, 172,
926 -1, 212, -1, 211, 147, 212, -1, 210, -1, 210,
927 -1, -1, 214, 215, -1, 195, 250, 255, 170, -1,
928 195, 261, 170, -1, 219, 170, -1, 196, 170, -1,
929 -1, 217, 216, -1, 219, 170, -1, 170, -1, 195,
930 250, 253, -1, 195, 250, 253, -1, 196, 250, 256,
931 -1, 250, 256, -1, -1, 224, -1, -1, 3, -1,
932 4, -1, 3, -1, 4, -1, 30, -1, 145, -1,
933 227, -1, 120, 227, -1, 139, 227, -1, 139, -1,
934 63, -1, 121, -1, 53, -1, 28, -1, 58, -1,
935 65, -1, -1, 84, -1, 84, -1, 119, 226, -1,
936 124, -1, 91, 226, -1, 72, 226, -1, 85, -1,
937 36, -1, 37, 3, -1, 37, 4, -1, 196, 228,
938 -1, 229, 173, 231, 174, 181, -1, -1, 231, 232,
939 -1, 195, 242, -1, 51, 3, -1, 51, 4, -1,
940 196, 233, -1, 105, 149, -1, 235, 219, 170, -1,
941 92, 149, -1, 236, 220, 170, -1, 234, 173, 235,
942 236, 174, -1, 234, 173, 239, 170, 174, -1, -1,
943 149, 4, -1, 86, 3, -1, 86, 4, -1, 196,
944 239, -1, 240, 238, 173, 180, 174, 181, -1, 240,
945 149, 3, 173, 185, 180, 174, 181, -1, 237, 181,
946 -1, 239, 170, -1, 233, 170, -1, 93, 3, -1,
947 93, 4, -1, 196, 243, -1, 244, 173, 180, 174,
948 181, -1, 60, -1, 126, -1, 114, -1, 82, -1,
949 40, -1, -1, 249, 248, -1, 259, 251, -1, 252,
950 259, 251, -1, -1, 252, -1, 248, 251, -1, 247,
951 251, -1, 246, 251, -1, 157, 249, 253, -1, 201,
952 253, -1, 254, -1, 224, -1, 171, 253, 172, -1,
953 254, 194, -1, 254, 171, 190, 172, -1, 253, -1,
954 255, 147, 253, -1, 253, -1, 253, 175, 213, -1,
955 113, -1, 138, -1, 109, -1, 130, 223, 173, 214,
956 174, -1, 144, -1, 4, -1, 225, -1, 207, -1,
957 57, 3, -1, 258, -1, 130, 3, -1, 261, -1,
958 137, 3, -1, 118, 171, 259, 172, -1, 136, 195,
959 250, 255, -1, 137, 223, 173, 217, 174, -1, 137,
960 223, 131, 171, 219, 172, 222, 173, 202, 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, 418,
970 419, 427, 429, 437, 444, 448, 450, 457, 465, 466,
971 469, 472, 473, 474, 478, 485, 493, 494, 497, 498,
972 502, 508, 509, 510, 513, 514, 517, 518, 519, 520,
973 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
974 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
975 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
976 551, 552, 553, 554, 555, 556, 557, 558, 559, 560,
977 561, 562, 563, 564, 565, 566, 567, 568, 569, 570,
978 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
979 584, 585, 586, 587, 588, 589, 590, 594, 595, 600,
980 601, 602, 603, 606, 607, 610, 614, 620, 621, 622,
981 625, 629, 638, 642, 647, 656, 657, 670, 671, 674,
982 675, 676, 677, 678, 679, 680, 681, 682, 683, 684,
983 685, 686, 687, 688, 689, 690, 691, 692, 693, 694,
984 695, 696, 697, 698, 699, 700, 701, 702, 703, 704,
985 705, 706, 707, 708, 709, 710, 711, 712, 713, 716,
986 717, 720, 726, 732, 733, 736, 741, 748, 749, 752,
987 753, 757, 758, 761, 769, 778, 784, 790, 791, 794,
988 795, 796, 799, 801, 804, 805, 806, 807, 808, 824,
989 825, 826, 827, 828, 829, 830, 833, 834, 837, 838,
990 839, 840, 841, 842, 843, 846, 847, 853, 862, 869,
991 870, 874, 877, 878, 881, 895, 896, 899, 900, 903,
992 913, 923, 924, 927, 928, 931, 944, 958, 971, 975,
993 976, 979, 980, 983, 988, 996, 997, 998, 1002, 1006,
994 1009, 1010, 1013, 1014, 1018, 1019, 1023, 1024, 1025, 1029,
995 1031, 1032, 1036, 1037, 1038, 1039, 1046, 1047, 1051, 1052,
996 1056, 1057, 1058, 1061, 1072, 1073, 1074, 1075, 1076, 1077,
997 1078, 1079, 1080, 1081, 1084, 1090, 1096, 1113, 1114
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 "cppquote", "import_start", "import", "importlib", "libraryhdr",
1039 "library_start", "librarydef", "m_args", "no_args", "args", "arg",
1040 "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, 182,
1090 182, 183, 184, 185, 186, 187, 188, 189, 190, 190,
1091 191, 192, 192, 192, 193, 193, 194, 194, 195, 195,
1092 196, 197, 197, 197, 198, 198, 199, 199, 199, 199,
1093 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
1094 199, 199, 199, 199, 199, 199, 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, 200, 200, 201,
1100 201, 201, 201, 202, 202, 203, 203, 204, 204, 204,
1101 205, 205, 206, 206, 207, 208, 208, 209, 209, 210,
1102 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
1103 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
1104 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
1105 210, 210, 210, 210, 210, 210, 210, 210, 210, 211,
1106 211, 212, 213, 214, 214, 215, 215, 216, 216, 217,
1107 217, 218, 218, 219, 220, 221, 221, 222, 222, 223,
1108 223, 223, 224, 224, 225, 225, 225, 225, 225, 225,
1109 225, 225, 225, 225, 225, 225, 226, 226, 227, 227,
1110 227, 227, 227, 227, 227, 228, 228, 229, 230, 231,
1111 231, 232, 233, 233, 234, 235, 235, 236, 236, 237,
1112 237, 238, 238, 239, 239, 240, 241, 241, 241, 242,
1113 242, 243, 243, 244, 245, 246, 246, 246, 247, 248,
1114 249, 249, 250, 250, 251, 251, 252, 252, 252, 253,
1115 253, 253, 254, 254, 254, 254, 255, 255, 256, 256,
1116 257, 257, 257, 258, 259, 259, 259, 259, 259, 259,
1117 259, 259, 259, 259, 260, 261, 261, 262, 262
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, 2,
1126 2, 4, 3, 3, 5, 2, 3, 4, 0, 1,
1127 1, 1, 3, 1, 3, 2, 3, 3, 0, 1,
1128 3, 1, 3, 4, 1, 3, 0, 1, 1, 1,
1129 1, 1, 1, 4, 4, 1, 1, 1, 1, 1,
1130 1, 4, 1, 1, 4, 1, 4, 4, 1, 1,
1131 4, 4, 4, 4, 4, 1, 4, 1, 4, 1,
1132 5, 1, 1, 4, 4, 1, 1, 1, 1, 1,
1133 1, 1, 1, 1, 4, 1, 1, 1, 1, 6,
1134 1, 1, 1, 1, 4, 1, 1, 1, 4, 4,
1135 4, 4, 1, 1, 4, 4, 1, 1, 1, 1,
1136 1, 1, 1, 0, 2, 4, 3, 0, 2, 1,
1137 1, 3, 3, 1, 5, 1, 3, 0, 1, 1,
1138 1, 1, 1, 1, 1, 1, 1, 1, 5, 3,
1139 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1140 3, 3, 3, 3, 3, 3, 3, 2, 2, 2,
1141 2, 2, 2, 3, 3, 4, 4, 4, 3, 1,
1142 3, 1, 1, 0, 2, 4, 3, 2, 2, 0,
1143 2, 2, 1, 3, 3, 3, 2, 0, 1, 0,
1144 1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
1145 1, 1, 1, 1, 1, 1, 0, 1, 1, 2,
1146 1, 2, 2, 1, 1, 2, 2, 2, 5, 0,
1147 2, 2, 2, 2, 2, 2, 3, 2, 3, 5,
1148 5, 0, 2, 2, 2, 2, 6, 8, 2, 2,
1149 2, 2, 2, 2, 5, 1, 1, 1, 1, 1,
1150 0, 2, 2, 3, 0, 1, 2, 2, 2, 3,
1151 2, 1, 1, 3, 2, 4, 1, 3, 1, 3,
1152 1, 1, 1, 5, 1, 1, 1, 1, 2, 1,
1153 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, 295, 223, 214, 234, 0, 269,
1162 0, 0, 222, 209, 224, 265, 220, 225, 226, 0,
1163 268, 228, 233, 0, 226, 267, 0, 226, 0, 221,
1164 230, 266, 209, 48, 209, 219, 294, 215, 56, 10,
1165 24, 11, 27, 11, 9, 0, 297, 0, 296, 216,
1166 0, 0, 7, 0, 0, 22, 0, 251, 5, 4,
1167 0, 8, 274, 274, 274, 0, 0, 299, 274, 0,
1168 301, 235, 236, 0, 242, 243, 298, 211, 0, 227,
1169 232, 0, 253, 254, 231, 0, 229, 217, 300, 0,
1170 0, 49, 302, 0, 218, 57, 58, 59, 60, 61,
1171 62, 0, 0, 65, 66, 67, 68, 69, 70, 0,
1172 72, 73, 0, 75, 0, 0, 78, 79, 0, 0,
1173 0, 0, 0, 85, 0, 87, 0, 89, 0, 91,
1174 92, 0, 0, 95, 96, 97, 98, 99, 100, 101,
1175 102, 103, 0, 105, 106, 107, 292, 108, 0, 110,
1176 290, 111, 112, 113, 0, 115, 116, 117, 0, 0,
1177 0, 291, 0, 122, 123, 0, 0, 0, 51, 126,
1178 0, 0, 0, 0, 0, 297, 237, 244, 255, 263,
1179 0, 299, 301, 25, 26, 6, 239, 260, 0, 23,
1180 258, 259, 0, 0, 20, 278, 275, 277, 276, 212,
1181 213, 129, 130, 131, 132, 270, 0, 0, 282, 288,
1182 281, 206, 274, 28, 272, 29, 30, 0, 137, 32,
1183 0, 193, 0, 0, 199, 0, 0, 0, 0, 0,
1184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1185 147, 0, 0, 147, 0, 0, 0, 0, 0, 0,
1186 56, 50, 33, 0, 17, 18, 19, 0, 15, 13,
1187 12, 16, 22, 35, 261, 262, 36, 205, 48, 0,
1188 48, 0, 0, 252, 20, 0, 0, 0, 280, 0,
1189 147, 38, 284, 273, 31, 0, 139, 140, 143, 303,
1190 48, 286, 304, 48, 48, 0, 157, 149, 150, 151,
1191 155, 156, 152, 153, 0, 154, 0, 0, 0, 0,
1192 0, 0, 0, 191, 0, 189, 192, 0, 0, 54,
1193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1194 0, 0, 145, 148, 0, 0, 0, 0, 0, 0,
1195 128, 127, 0, 307, 0, 0, 52, 56, 0, 14,
1196 37, 22, 0, 240, 245, 0, 0, 0, 48, 0,
1197 0, 0, 22, 21, 0, 271, 279, 283, 289, 0,
1198 0, 294, 0, 43, 39, 41, 0, 0, 144, 138,
1199 0, 293, 0, 194, 0, 0, 305, 49, 200, 0,
1200 63, 0, 181, 180, 179, 182, 177, 178, 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, 0, 64, 71, 74, 0, 76, 77, 80,
1204 81, 82, 83, 84, 86, 88, 0, 94, 147, 93,
1205 104, 0, 114, 118, 119, 120, 121, 0, 124, 125,
1206 53, 0, 238, 241, 247, 0, 246, 249, 0, 0,
1207 250, 20, 22, 264, 47, 46, 285, 0, 0, 45,
1208 141, 142, 0, 301, 287, 207, 198, 197, 0, 188,
1209 0, 170, 171, 183, 164, 165, 168, 169, 159, 160,
1210 0, 161, 162, 163, 167, 166, 173, 172, 175, 176,
1211 174, 184, 0, 190, 55, 90, 146, 0, 308, 22,
1212 203, 0, 248, 0, 256, 42, 44, 0, 196, 0,
1213 208, 186, 185, 0, 187, 109, 34, 204, 22, 195,
1214 133, 158, 257, 0, 0, 0, 306, 134, 0, 48,
1215 48, 202, 136, 0, 135, 201
1216 };
1217
1218 /* YYDEFGOTO[NTERM-NUM]. */
1219 static const short int yydefgoto[] =
1220 {
1221 -1, 1, 2, 170, 275, 190, 363, 40, 41, 42,
1222 255, 174, 43, 256, 372, 373, 374, 375, 282, 356,
1223 91, 167, 320, 168, 342, 207, 533, 537, 285, 286,
1224 287, 175, 331, 332, 313, 314, 315, 317, 290, 383,
1225 388, 294, 542, 543, 459, 47, 519, 78, 208, 48,
1226 80, 49, 257, 51, 258, 268, 353, 53, 54, 270,
1227 358, 55, 193, 56, 57, 259, 260, 179, 60, 261,
1228 62, 63, 64, 276, 65, 195, 66, 209, 210, 292,
1229 211, 169, 181, 68, 69, 182, 344
1230 };
1231
1232 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1233 STATE-NUM. */
1234 #define YYPACT_NINF -267
1235 static const short int yypact[] =
1236 {
1237 -267, 42, 1020, -267, -267, -267, -267, -267, 47, -267,
1238 -94, 86, -267, 144, -267, -267, -267, -267, 40, 137,
1239 -267, -267, -267, 150, 40, -267, -20, 40, 199, -267,
1240 -267, -267, 161, -7, 194, 199, -267, -267, 1869, -267,
1241 -267, -267, -267, -267, -267, 1631, -14, 4, -267, -267,
1242 10, -6, -267, 12, 21, 38, 43, 73, -267, -267,
1243 59, -267, -3, -3, -3, 52, 1744, 55, -3, 56,
1244 63, -267, -267, 226, -267, -267, 65, -267, 66, -267,
1245 -267, 70, -267, -267, -267, 1744, -267, -267, 65, 69,
1246 1674, -267, -110, -108, -267, -267, -267, -267, -267, -267,
1247 -267, 77, 78, -267, -267, -267, -267, -267, -267, 79,
1248 -267, -267, 81, -267, 82, 83, -267, -267, 87, 89,
1249 91, 93, 98, -267, 99, -267, 101, -267, 110, -267,
1250 -267, 115, 116, -267, -267, -267, -267, -267, -267, -267,
1251 -267, -267, 117, -267, -267, -267, -267, -267, 118, -267,
1252 -267, -267, -267, -267, 120, -267, -267, -267, 129, 130,
1253 131, -267, 138, -267, -267, 139, 140, -107, -267, -267,
1254 925, 403, 233, 203, 95, -267, -267, -267, -267, -267,
1255 52, -267, -267, -267, -267, -267, -267, -267, -12, -267,
1256 -267, -267, 208, 135, -267, -267, -267, -267, -267, -267,
1257 -267, -267, -267, -267, -267, -267, 52, 52, -267, 84,
1258 -42, -267, -3, -267, -267, -267, -267, 113, 212, -267,
1259 141, -267, 52, 151, -267, 212, 749, 749, 311, 313,
1260 749, 749, 316, 317, 749, 318, 749, 749, 262, 749,
1261 749, -79, 749, 749, 749, 1744, 1744, 97, 323, 1744,
1262 1869, 165, -267, 158, -267, -267, -267, 164, -267, -267,
1263 -267, -267, 38, -267, -267, -267, -267, -267, -114, 186,
1264 -65, 166, 174, -267, -267, 13, 32, 167, -267, 749,
1265 789, 1095, -267, -267, -267, 163, 201, -267, 175, -267,
1266 -82, -267, 202, -7, -46, 179, -267, -267, -267, -267,
1267 -267, -267, -267, -267, 181, -267, 749, 749, 749, 749,
1268 749, 749, 688, 1390, -103, -267, 1390, 185, 188, -267,
1269 -66, 190, 192, 193, 195, 196, 197, 198, 1229, 355,
1270 200, -64, -267, 1390, 204, 224, -63, 1272, 205, 206,
1271 -267, -267, 207, 213, 209, 211, -267, 1869, 365, -267,
1272 -267, 38, -22, -267, -267, 225, 1674, 214, -38, 215,
1273 297, 498, 38, -267, 1674, -267, -267, -267, -267, 444,
1274 216, -59, 237, -267, 239, -267, 1674, 52, -267, 212,
1275 749, -267, 1674, -267, 52, 238, -267, 241, -267, 242,
1276 -267, 1744, 25, 25, 25, 25, 25, 25, 1295, 243,
1277 749, 749, 410, 749, 749, 749, 749, 749, 749, 749,
1278 749, 749, 749, 749, 749, 749, 749, 749, 749, 749,
1279 413, 749, 749, -267, -267, -267, 409, -267, -267, -267,
1280 -267, -267, -267, -267, -267, -267, 246, -267, 749, -267,
1281 -267, 749, -267, -267, -267, -267, -267, 414, -267, -267,
1282 -267, 248, -267, -267, -267, 52, -267, -267, 1674, 251,
1283 -267, -267, 38, -267, -267, -267, -267, 1138, 52, -267,
1284 -267, -267, 52, 252, -267, 212, -267, -267, 254, -267,
1285 749, 148, 148, -267, 187, 187, 88, 88, 1497, 1420,
1286 1340, 1443, 1466, 864, 88, 88, 61, 61, 25, 25,
1287 25, -267, 1318, -267, -267, -267, -267, 255, -267, 38,
1288 -267, 52, -267, 593, -267, -267, -267, -102, -267, 256,
1289 -267, -267, 25, 749, -267, -267, -267, -267, 38, -267,
1290 -267, 1390, -267, -8, 749, 275, -267, -267, 279, -28,
1291 -28, -267, -267, 260, -267, -267
1292 };
1293
1294 /* YYPGOTO[NTERM-NUM]. */
1295 static const short int yypgoto[] =
1296 {
1297 -267, -267, -267, 389, -266, -252, 7, -267, -267, 74,
1298 -267, -267, -267, 433, -267, -267, -267, -31, -267, -27,
1299 -2, -267, -267, -235, -267, -267, -267, -267, -267, -267,
1300 58, 2, 219, -247, -13, -267, -220, -199, -267, -267,
1301 -267, -267, -99, -174, -267, -267, -267, 112, -193, -267,
1302 114, 90, 16, -267, 436, -267, -267, 397, -267, -267,
1303 -267, -267, -267, -25, -267, 442, 1, -267, -267, 443,
1304 -267, -267, 170, -267, -44, -16, 53, -194, -267, -17,
1305 277, 217, 5, -61, -267, 0, -267
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 -211
1313 static const short int yytable[] =
1314 {
1315 45, 180, 70, 59, 46, 212, 90, 67, 361, 39,
1316 350, 322, 277, 278, 325, 346, 327, 4, 50, 330,
1317 178, -210, 335, 223, 220, 288, 534, 355, 291, 11,
1318 146, 321, 295, 370, 150, 199, 200, 9, 535, 402,
1319 250, 5, 3, 6, 422, 384, 222, 197, 198, 7,
1320 71, 72, 214, 9, 38, 199, 200, 15, 10, 161,
1321 351, 176, 251, -210, 23, 224, 12, 201, 529, 423,
1322 13, 14, 9, 15, 23, 402, 16, 73, 17, 20,
1323 368, 426, 366, 438, 438, 18, 38, 201, -40, 74,
1324 75, 19, 381, 269, 202, 20, 357, 21, 22, 452,
1325 400, 401, 402, 38, 24, 340, 427, 341, 439, 442,
1326 463, 25, 450, -40, 202, 196, 196, 196, 87, 385,
1327 389, 196, 38, 31, 79, 94, 280, 25, 386, 281,
1328 38, 26, 27, 28, 29, 203, 457, 30, 84, 31,
1329 38, 86, 541, 32, 89, 81, 93, 76, 77, 33,
1330 34, 85, 35, 82, 83, 203, 183, 36, 37, 204,
1331 471, 38, 402, 271, 88, 77, 536, 186, 45, 45,
1332 70, 70, 46, 46, 184, 67, 67, 254, 254, 204,
1333 185, 38, 187, 469, 338, 339, 288, 362, 345, 205,
1334 474, 506, 420, 421, 188, 513, 283, 92, 77, 400,
1335 401, 402, 503, 206, 405, 406, 264, 265, 189, 205,
1336 514, 272, 273, 191, 316, 199, 200, 316, 417, 418,
1337 419, 507, 192, 206, 328, 213, 215, 333, 420, 421,
1338 333, 337, 194, 216, 217, 7, 263, 377, -210, 218,
1339 219, 352, 221, 415, 416, 417, 418, 419, 225, 226,
1340 227, 399, 228, 229, 230, 420, 421, 526, 231, 279,
1341 232, 510, 233, 382, 234, 196, 316, 333, 266, 235,
1342 236, 18, 237, 364, 516, 70, 532, 46, 291, 376,
1343 67, 238, 520, 21, 22, 284, 239, 240, 241, 242,
1344 24, 243, 387, 392, 393, 394, 395, 396, 397, 398,
1345 244, 245, 246, 415, 416, 417, 418, 419, 274, 247,
1346 248, 249, 455, 289, 538, 420, 421, 527, 27, 318,
1347 180, 319, 293, 30, 323, 324, 326, 329, 343, 348,
1348 478, 458, 468, 347, 349, 354, 359, 378, 472, 367,
1349 413, 414, 415, 416, 417, 418, 419, 360, 379, 384,
1350 380, 390, 391, 453, 420, 421, 395, 424, 436, 364,
1351 425, 70, 428, 46, 429, 430, 67, 431, 432, 433,
1352 434, 441, 437, 451, 454, 19, 440, 444, 445, 446,
1353 447, 448, 473, 449, 456, 465, 467, 481, 482, 460,
1354 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
1355 494, 495, 496, 497, 498, 499, 500, 4, 502, 466,
1356 475, 476, 477, 483, 511, 480, 501, 504, 505, 508,
1357 509, 512, 518, 377, 539, 333, 521, 525, 540, 530,
1358 545, 5, 171, 6, 461, 44, 515, 470, 52, 7,
1359 8, 544, 177, 9, 58, 61, 365, 296, 10, 297,
1360 298, 299, 300, 301, 11, 517, 12, 267, 334, 0,
1361 13, 14, 336, 15, 0, 376, 16, 522, 17, 0,
1362 0, 0, 0, 0, 0, 18, 0, 0, 0, 0,
1363 0, 19, 253, 0, 0, 20, 0, 21, 22, 23,
1364 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,
1365 0, 0, 4, 0, 0, 302, 0, 0, 0, 0,
1366 531, 364, 0, 70, 0, 46, 0, 25, 67, 0,
1367 0, 26, 27, 28, 29, 0, 5, 30, 6, 31,
1368 0, 0, 0, 32, 7, 0, 0, 0, 9, 33,
1369 34, 303, 35, 10, 0, 0, 0, 36, 37, 0,
1370 0, 12, 0, 0, 0, 13, 14, 0, 15, 0,
1371 0, 16, 0, 17, 0, 0, 0, 304, 0, 0,
1372 18, 38, 0, 0, 0, 0, 19, 262, 0, 305,
1373 20, 0, 21, 22, 0, 0, 0, 0, 0, 24,
1374 0, 0, 0, 0, 0, 0, 306, 4, 0, 307,
1375 308, 309, 0, 0, 310, 311, 0, 0, 0, 0,
1376 0, 0, 25, 464, 0, 312, 26, 27, 28, 29,
1377 0, 5, 30, 6, 31, 0, 0, 0, 32, 7,
1378 0, 0, 0, 9, 33, 34, 0, 35, 10, 0,
1379 0, 0, 36, 37, 0, 0, 12, 0, 0, 0,
1380 13, 14, 0, 15, 0, 0, 16, 0, 17, 0,
1381 0, 0, 0, 0, 0, 18, 38, 0, 0, 0,
1382 0, 19, 462, 0, 0, 20, 0, 21, 22, 0,
1383 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,
1384 0, 296, 4, 297, 298, 299, 300, 301, 0, 0,
1385 0, 0, 0, 0, 0, 0, 0, 25, 0, 0,
1386 0, 26, 27, 28, 29, 0, 5, 30, 6, 31,
1387 0, 0, 0, 32, 7, 0, 0, 0, 0, 33,
1388 34, 0, 35, 0, 0, 0, 0, 36, 37, 0,
1389 0, 12, 0, 0, 0, 13, 14, 0, 0, 302,
1390 0, 16, 296, 17, 297, 298, 299, 300, 301, 0,
1391 18, 38, 0, 0, 0, 0, 0, 528, 0, 0,
1392 0, 0, 21, 22, 0, 0, 0, 0, 0, 24,
1393 0, 0, 0, 0, 0, 303, 0, 0, 0, 0,
1394 0, 0, 296, 0, 297, 298, 299, 300, 301, 0,
1395 0, 0, 0, 0, 0, 0, 26, 27, 28, 29,
1396 302, 304, 30, 0, 0, 0, 0, 0, 32, 0,
1397 0, 0, 0, 305, 0, 34, 0, 35, 0, 0,
1398 0, 0, 36, 37, 0, 0, 0, 0, 0, 0,
1399 306, 0, 0, 307, 308, 309, 303, 0, 310, 311,
1400 302, 0, 0, 0, 0, 0, 0, 0, 0, 312,
1401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1402 0, 0, 304, 0, 0, 0, 400, 401, 402, 403,
1403 404, 405, 406, 0, 305, 0, 303, 0, 0, 0,
1404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1405 0, 306, 0, 0, 307, 308, 309, 0, 0, 310,
1406 311, 0, 304, 0, 0, 0, 0, 0, 0, 0,
1407 312, 0, 0, 0, 305, 0, 0, 0, 0, 4,
1408 0, 0, 0, 0, 0, 0, 252, 0, 0, 0,
1409 0, 306, 0, 0, 307, 308, 369, 0, 0, 310,
1410 311, 0, 0, 5, 0, 6, 0, 0, 0, 0,
1411 312, 7, 8, 0, 0, 9, 0, 0, 0, 0,
1412 10, 0, 0, 0, 0, 0, 11, 0, 12, 0,
1413 0, 0, 13, 14, 0, 15, 0, 0, 16, 0,
1414 17, 0, 0, 0, 0, 0, 0, 18, 0, 0,
1415 0, 0, 0, 19, 253, 0, 0, 20, 0, 21,
1416 22, 23, 0, 0, 0, 0, 24, 413, 414, 415,
1417 416, 417, 418, 419, 4, 0, 0, 0, 0, 0,
1418 0, 420, 421, 0, 0, 0, 0, 0, 0, 25,
1419 0, 0, 0, 26, 27, 28, 29, 0, 5, 30,
1420 6, 31, 0, 0, 0, 32, 7, 8, 0, 0,
1421 9, 33, 34, 0, 35, 10, 0, 0, 0, 36,
1422 37, 11, 0, 12, 0, 0, 0, 13, 14, 0,
1423 15, 0, 0, 16, 0, 17, 0, 0, 0, 0,
1424 0, 0, 18, 38, 0, 0, 0, 0, 19, 4,
1425 0, 0, 20, 0, 21, 22, 23, 0, 0, 0,
1426 0, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1427 0, 0, 0, 5, 0, 6, 0, 0, 0, 0,
1428 0, 7, 0, 0, 25, 9, 0, 0, 26, 27,
1429 28, 29, 4, 0, 30, 0, 31, 0, 12, 0,
1430 32, 0, 13, 14, 0, 15, 33, 34, 16, 35,
1431 17, 0, 0, 0, 36, 37, 5, 18, 6, 0,
1432 0, 0, 0, 0, 7, 0, 0, 20, 9, 21,
1433 22, 0, 0, 0, 0, 0, 24, 0, 38, 0,
1434 0, 12, 0, 0, 0, 13, 14, 0, 15, 0,
1435 0, 16, 0, 17, 0, 0, 0, 0, 0, 25,
1436 18, 0, 0, 26, 27, 28, 29, 0, 0, 30,
1437 20, 31, 21, 22, 0, 32, 0, 0, 0, 24,
1438 0, 0, 34, 0, 35, 0, 0, 0, 0, 371,
1439 37, 400, 401, 402, 403, 404, 405, 406, 407, 408,
1440 0, 0, 25, 0, 0, 0, 26, 27, 28, 29,
1441 0, 0, 30, 38, 31, 0, 0, 0, 32, 0,
1442 0, 0, 0, 0, 0, 34, 0, 35, 0, 0,
1443 0, 0, 36, 37, 400, 401, 402, 403, 404, 405,
1444 406, 407, 408, 0, 0, 0, 0, 0, 0, 0,
1445 0, 0, 0, 0, 0, 0, 38, 400, 401, 402,
1446 403, 404, 405, 406, 407, 408, 0, 0, 0, 0,
1447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1448 400, 401, 402, 403, 404, 405, 406, 407, 408, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 400, 401, 402, 403, 404, 405, 406, 407,
1451 408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1452 0, 0, 0, 0, 0, 0, 0, 409, 0, 410,
1453 411, 412, 413, 414, 415, 416, 417, 418, 419, 0,
1454 0, 0, 0, 0, 0, 0, 420, 421, 0, 0,
1455 0, 435, 400, 401, 402, 403, 404, 405, 406, 407,
1456 408, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1457 409, 0, 410, 411, 412, 413, 414, 415, 416, 417,
1458 418, 419, 400, 401, 402, 403, 404, 405, 406, 420,
1459 421, 0, 0, 409, 443, 410, 411, 412, 413, 414,
1460 415, 416, 417, 418, 419, 400, 401, 402, 403, 404,
1461 405, 406, 420, 421, 0, 0, 409, 479, 410, 411,
1462 412, 413, 414, 415, 416, 417, 418, 419, 400, 401,
1463 402, 403, 404, 405, 406, 420, 421, 524, 409, 523,
1464 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
1465 0, 0, 0, 0, 0, 0, 0, 420, 421, 400,
1466 401, 402, 403, 404, 405, 406, 0, 408, 0, 0,
1467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 0, 0, 0, 0, 409, 0,
1469 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
1470 0, 0, 0, 0, 0, 0, 0, 420, 421, 0,
1471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1472 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
1473 0, 0, 0, 0, 0, 0, 0, 420, 421, 0,
1474 0, 0, 0, 0, 411, 412, 413, 414, 415, 416,
1475 417, 418, 419, 0, 0, 0, 0, 0, 0, 0,
1476 420, 421, 0, 0, 0, 0, 0, 0, 412, 413,
1477 414, 415, 416, 417, 418, 419, 0, 0, 0, 0,
1478 0, 0, 0, 420, 421, 4, 0, 0, 0, 0,
1479 0, 0, 0, 0, 0, 0, 0, 410, 411, 412,
1480 413, 414, 415, 416, 417, 418, 419, 0, 0, 5,
1481 0, 6, 0, 0, 420, 421, 0, 7, 8, 0,
1482 0, 9, 0, 0, 0, 0, 0, 0, 4, 0,
1483 0, 0, 11, 0, 12, 0, 0, 0, 13, 14,
1484 0, 15, 0, 0, 16, 0, 17, 0, 0, 0,
1485 0, 0, 5, 18, 6, 0, 0, 0, 0, 0,
1486 7, 0, 0, 20, 9, 21, 22, 23, 0, 0,
1487 172, 0, 24, 0, 173, 0, 0, 12, 0, 0,
1488 0, 13, 14, 0, 15, 0, 0, 16, 0, 17,
1489 0, 0, 0, 0, 0, 25, 18, 0, 4, 26,
1490 27, 28, 29, 0, 0, 30, 20, 31, 21, 22,
1491 0, 32, 0, 0, 0, 24, 0, 0, 34, 0,
1492 35, 0, 5, 0, 6, 36, 37, 0, 0, 0,
1493 7, 0, 0, 0, 0, 0, 0, 0, 25, 0,
1494 0, 0, 26, 27, 28, 29, 0, 12, 30, 0,
1495 31, 13, 14, 0, 32, 0, 0, 16, 0, 17,
1496 0, 34, 0, 35, 0, 0, 18, 0, 36, 37,
1497 0, 0, 0, 0, 0, 0, 0, 0, 21, 22,
1498 0, 0, 0, 0, 0, 24, 0, 0, 0, 0,
1499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501 0, 0, 26, 27, 28, 29, 0, 0, 30, 0,
1502 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,
1503 0, 34, 0, 35, 0, 0, 0, 0, 36, 37,
1504 95, 0, 96, 97, 0, 98, 99, 0, 100, 0,
1505 0, 101, 0, 102, 0, 0, 0, 0, 0, 0,
1506 103, 104, 105, 106, 0, 107, 108, 109, 110, 111,
1507 0, 112, 0, 113, 114, 115, 0, 0, 116, 0,
1508 0, 0, 0, 117, 0, 118, 119, 120, 121, 122,
1509 123, 0, 124, 125, 126, 127, 128, 0, 0, 129,
1510 0, 0, 130, 0, 0, 0, 131, 132, 0, 133,
1511 0, 0, 0, 134, 135, 136, 0, 137, 138, 139,
1512 140, 141, 0, 142, 0, 143, 144, 145, 146, 147,
1513 148, 149, 150, 0, 151, 152, 153, 0, 0, 0,
1514 0, 154, 0, 0, 155, 0, 0, 156, 157, 0,
1515 0, 158, 159, 160, 0, 0, 0, 161, 0, 162,
1516 163, 164, 165, 0, 0, 166
1517 };
1518
1519 static const short int yycheck[] =
1520 {
1521 2, 45, 2, 2, 2, 66, 33, 2, 274, 2,
1522 262, 231, 206, 207, 234, 250, 236, 4, 2, 239,
1523 45, 131, 242, 131, 85, 218, 34, 92, 222, 51,
1524 109, 230, 225, 280, 113, 3, 4, 40, 46, 14,
1525 147, 28, 0, 30, 147, 147, 90, 63, 64, 36,
1526 3, 4, 68, 40, 168, 3, 4, 60, 45, 138,
1527 174, 45, 169, 173, 86, 173, 53, 35, 170, 172,
1528 57, 58, 40, 60, 86, 14, 63, 171, 65, 82,
1529 279, 147, 276, 147, 147, 72, 168, 35, 147, 3,
1530 4, 78, 174, 105, 62, 82, 270, 84, 85, 351,
1531 12, 13, 14, 168, 91, 8, 172, 10, 172, 172,
1532 362, 114, 347, 172, 62, 62, 63, 64, 28, 293,
1533 294, 68, 168, 126, 84, 35, 168, 114, 174, 171,
1534 168, 118, 119, 120, 121, 103, 174, 124, 24, 126,
1535 168, 27, 170, 130, 32, 8, 34, 3, 4, 136,
1536 137, 171, 139, 3, 4, 103, 170, 144, 145, 127,
1537 380, 168, 14, 188, 3, 4, 174, 173, 170, 171,
1538 170, 171, 170, 171, 170, 170, 171, 170, 171, 127,
1539 170, 168, 170, 377, 245, 246, 379, 174, 249, 157,
1540 384, 438, 167, 168, 173, 461, 212, 3, 4, 12,
1541 13, 14, 422, 171, 17, 18, 3, 4, 170, 157,
1542 462, 3, 4, 170, 227, 3, 4, 230, 157, 158,
1543 159, 441, 149, 171, 237, 170, 170, 240, 167, 168,
1544 243, 244, 173, 170, 8, 36, 3, 281, 173, 173,
1545 170, 268, 173, 155, 156, 157, 158, 159, 171, 171,
1546 171, 312, 171, 171, 171, 167, 168, 509, 171, 175,
1547 171, 455, 171, 290, 171, 212, 279, 280, 173, 171,
1548 171, 72, 171, 275, 468, 275, 528, 275, 472, 281,
1549 275, 171, 475, 84, 85, 172, 171, 171, 171, 171,
1550 91, 171, 294, 306, 307, 308, 309, 310, 311, 312,
1551 171, 171, 171, 155, 156, 157, 158, 159, 173, 171,
1552 171, 171, 356, 172, 534, 167, 168, 511, 119, 8,
1553 364, 8, 171, 124, 8, 8, 8, 65, 5, 171,
1554 391, 358, 376, 168, 170, 149, 170, 174, 382, 172,
1555 153, 154, 155, 156, 157, 158, 159, 173, 147, 147,
1556 175, 172, 171, 352, 167, 168, 369, 172, 3, 361,
1557 172, 361, 172, 361, 172, 172, 361, 172, 172, 172,
1558 172, 147, 172, 8, 149, 78, 172, 172, 172, 172,
1559 167, 172, 382, 172, 170, 169, 147, 400, 401, 174,
1560 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
1561 413, 414, 415, 416, 417, 418, 419, 4, 421, 172,
1562 172, 170, 170, 3, 458, 172, 3, 8, 172, 5,
1563 172, 170, 170, 467, 149, 438, 172, 172, 149, 173,
1564 170, 28, 43, 30, 360, 2, 467, 379, 2, 36,
1565 37, 540, 45, 40, 2, 2, 276, 3, 45, 5,
1566 6, 7, 8, 9, 51, 472, 53, 180, 241, -1,
1567 57, 58, 243, 60, -1, 467, 63, 480, 65, -1,
1568 -1, -1, -1, -1, -1, 72, -1, -1, -1, -1,
1569 -1, 78, 79, -1, -1, 82, -1, 84, 85, 86,
1570 -1, -1, -1, -1, 91, -1, -1, -1, -1, -1,
1571 -1, -1, 4, -1, -1, 61, -1, -1, -1, -1,
1572 523, 513, -1, 513, -1, 513, -1, 114, 513, -1,
1573 -1, 118, 119, 120, 121, -1, 28, 124, 30, 126,
1574 -1, -1, -1, 130, 36, -1, -1, -1, 40, 136,
1575 137, 97, 139, 45, -1, -1, -1, 144, 145, -1,
1576 -1, 53, -1, -1, -1, 57, 58, -1, 60, -1,
1577 -1, 63, -1, 65, -1, -1, -1, 123, -1, -1,
1578 72, 168, -1, -1, -1, -1, 78, 174, -1, 135,
1579 82, -1, 84, 85, -1, -1, -1, -1, -1, 91,
1580 -1, -1, -1, -1, -1, -1, 152, 4, -1, 155,
1581 156, 157, -1, -1, 160, 161, -1, -1, -1, -1,
1582 -1, -1, 114, 169, -1, 171, 118, 119, 120, 121,
1583 -1, 28, 124, 30, 126, -1, -1, -1, 130, 36,
1584 -1, -1, -1, 40, 136, 137, -1, 139, 45, -1,
1585 -1, -1, 144, 145, -1, -1, 53, -1, -1, -1,
1586 57, 58, -1, 60, -1, -1, 63, -1, 65, -1,
1587 -1, -1, -1, -1, -1, 72, 168, -1, -1, -1,
1588 -1, 78, 174, -1, -1, 82, -1, 84, 85, -1,
1589 -1, -1, -1, -1, 91, -1, -1, -1, -1, -1,
1590 -1, 3, 4, 5, 6, 7, 8, 9, -1, -1,
1591 -1, -1, -1, -1, -1, -1, -1, 114, -1, -1,
1592 -1, 118, 119, 120, 121, -1, 28, 124, 30, 126,
1593 -1, -1, -1, 130, 36, -1, -1, -1, -1, 136,
1594 137, -1, 139, -1, -1, -1, -1, 144, 145, -1,
1595 -1, 53, -1, -1, -1, 57, 58, -1, -1, 61,
1596 -1, 63, 3, 65, 5, 6, 7, 8, 9, -1,
1597 72, 168, -1, -1, -1, -1, -1, 174, -1, -1,
1598 -1, -1, 84, 85, -1, -1, -1, -1, -1, 91,
1599 -1, -1, -1, -1, -1, 97, -1, -1, -1, -1,
1600 -1, -1, 3, -1, 5, 6, 7, 8, 9, -1,
1601 -1, -1, -1, -1, -1, -1, 118, 119, 120, 121,
1602 61, 123, 124, -1, -1, -1, -1, -1, 130, -1,
1603 -1, -1, -1, 135, -1, 137, -1, 139, -1, -1,
1604 -1, -1, 144, 145, -1, -1, -1, -1, -1, -1,
1605 152, -1, -1, 155, 156, 157, 97, -1, 160, 161,
1606 61, -1, -1, -1, -1, -1, -1, -1, -1, 171,
1607 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1608 -1, -1, 123, -1, -1, -1, 12, 13, 14, 15,
1609 16, 17, 18, -1, 135, -1, 97, -1, -1, -1,
1610 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1611 -1, 152, -1, -1, 155, 156, 157, -1, -1, 160,
1612 161, -1, 123, -1, -1, -1, -1, -1, -1, -1,
1613 171, -1, -1, -1, 135, -1, -1, -1, -1, 4,
1614 -1, -1, -1, -1, -1, -1, 11, -1, -1, -1,
1615 -1, 152, -1, -1, 155, 156, 157, -1, -1, 160,
1616 161, -1, -1, 28, -1, 30, -1, -1, -1, -1,
1617 171, 36, 37, -1, -1, 40, -1, -1, -1, -1,
1618 45, -1, -1, -1, -1, -1, 51, -1, 53, -1,
1619 -1, -1, 57, 58, -1, 60, -1, -1, 63, -1,
1620 65, -1, -1, -1, -1, -1, -1, 72, -1, -1,
1621 -1, -1, -1, 78, 79, -1, -1, 82, -1, 84,
1622 85, 86, -1, -1, -1, -1, 91, 153, 154, 155,
1623 156, 157, 158, 159, 4, -1, -1, -1, -1, -1,
1624 -1, 167, 168, -1, -1, -1, -1, -1, -1, 114,
1625 -1, -1, -1, 118, 119, 120, 121, -1, 28, 124,
1626 30, 126, -1, -1, -1, 130, 36, 37, -1, -1,
1627 40, 136, 137, -1, 139, 45, -1, -1, -1, 144,
1628 145, 51, -1, 53, -1, -1, -1, 57, 58, -1,
1629 60, -1, -1, 63, -1, 65, -1, -1, -1, -1,
1630 -1, -1, 72, 168, -1, -1, -1, -1, 78, 4,
1631 -1, -1, 82, -1, 84, 85, 86, -1, -1, -1,
1632 -1, 91, -1, -1, -1, -1, -1, -1, -1, -1,
1633 -1, -1, -1, 28, -1, 30, -1, -1, -1, -1,
1634 -1, 36, -1, -1, 114, 40, -1, -1, 118, 119,
1635 120, 121, 4, -1, 124, -1, 126, -1, 53, -1,
1636 130, -1, 57, 58, -1, 60, 136, 137, 63, 139,
1637 65, -1, -1, -1, 144, 145, 28, 72, 30, -1,
1638 -1, -1, -1, -1, 36, -1, -1, 82, 40, 84,
1639 85, -1, -1, -1, -1, -1, 91, -1, 168, -1,
1640 -1, 53, -1, -1, -1, 57, 58, -1, 60, -1,
1641 -1, 63, -1, 65, -1, -1, -1, -1, -1, 114,
1642 72, -1, -1, 118, 119, 120, 121, -1, -1, 124,
1643 82, 126, 84, 85, -1, 130, -1, -1, -1, 91,
1644 -1, -1, 137, -1, 139, -1, -1, -1, -1, 144,
1645 145, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1646 -1, -1, 114, -1, -1, -1, 118, 119, 120, 121,
1647 -1, -1, 124, 168, 126, -1, -1, -1, 130, -1,
1648 -1, -1, -1, -1, -1, 137, -1, 139, -1, -1,
1649 -1, -1, 144, 145, 12, 13, 14, 15, 16, 17,
1650 18, 19, 20, -1, -1, -1, -1, -1, -1, -1,
1651 -1, -1, -1, -1, -1, -1, 168, 12, 13, 14,
1652 15, 16, 17, 18, 19, 20, -1, -1, -1, -1,
1653 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1654 12, 13, 14, 15, 16, 17, 18, 19, 20, -1,
1655 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1656 -1, -1, 12, 13, 14, 15, 16, 17, 18, 19,
1657 20, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1658 -1, -1, -1, -1, -1, -1, -1, 148, -1, 150,
1659 151, 152, 153, 154, 155, 156, 157, 158, 159, -1,
1660 -1, -1, -1, -1, -1, -1, 167, 168, -1, -1,
1661 -1, 172, 12, 13, 14, 15, 16, 17, 18, 19,
1662 20, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1663 148, -1, 150, 151, 152, 153, 154, 155, 156, 157,
1664 158, 159, 12, 13, 14, 15, 16, 17, 18, 167,
1665 168, -1, -1, 148, 172, 150, 151, 152, 153, 154,
1666 155, 156, 157, 158, 159, 12, 13, 14, 15, 16,
1667 17, 18, 167, 168, -1, -1, 148, 172, 150, 151,
1668 152, 153, 154, 155, 156, 157, 158, 159, 12, 13,
1669 14, 15, 16, 17, 18, 167, 168, 169, 148, 149,
1670 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1671 -1, -1, -1, -1, -1, -1, -1, 167, 168, 12,
1672 13, 14, 15, 16, 17, 18, -1, 20, -1, -1,
1673 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1674 -1, -1, -1, -1, -1, -1, -1, -1, 148, -1,
1675 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1676 -1, -1, -1, -1, -1, -1, -1, 167, 168, -1,
1677 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1678 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1679 -1, -1, -1, -1, -1, -1, -1, 167, 168, -1,
1680 -1, -1, -1, -1, 151, 152, 153, 154, 155, 156,
1681 157, 158, 159, -1, -1, -1, -1, -1, -1, -1,
1682 167, 168, -1, -1, -1, -1, -1, -1, 152, 153,
1683 154, 155, 156, 157, 158, 159, -1, -1, -1, -1,
1684 -1, -1, -1, 167, 168, 4, -1, -1, -1, -1,
1685 -1, -1, -1, -1, -1, -1, -1, 150, 151, 152,
1686 153, 154, 155, 156, 157, 158, 159, -1, -1, 28,
1687 -1, 30, -1, -1, 167, 168, -1, 36, 37, -1,
1688 -1, 40, -1, -1, -1, -1, -1, -1, 4, -1,
1689 -1, -1, 51, -1, 53, -1, -1, -1, 57, 58,
1690 -1, 60, -1, -1, 63, -1, 65, -1, -1, -1,
1691 -1, -1, 28, 72, 30, -1, -1, -1, -1, -1,
1692 36, -1, -1, 82, 40, 84, 85, 86, -1, -1,
1693 89, -1, 91, -1, 93, -1, -1, 53, -1, -1,
1694 -1, 57, 58, -1, 60, -1, -1, 63, -1, 65,
1695 -1, -1, -1, -1, -1, 114, 72, -1, 4, 118,
1696 119, 120, 121, -1, -1, 124, 82, 126, 84, 85,
1697 -1, 130, -1, -1, -1, 91, -1, -1, 137, -1,
1698 139, -1, 28, -1, 30, 144, 145, -1, -1, -1,
1699 36, -1, -1, -1, -1, -1, -1, -1, 114, -1,
1700 -1, -1, 118, 119, 120, 121, -1, 53, 124, -1,
1701 126, 57, 58, -1, 130, -1, -1, 63, -1, 65,
1702 -1, 137, -1, 139, -1, -1, 72, -1, 144, 145,
1703 -1, -1, -1, -1, -1, -1, -1, -1, 84, 85,
1704 -1, -1, -1, -1, -1, 91, -1, -1, -1, -1,
1705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1707 -1, -1, 118, 119, 120, 121, -1, -1, 124, -1,
1708 -1, -1, -1, -1, 130, -1, -1, -1, -1, -1,
1709 -1, 137, -1, 139, -1, -1, -1, -1, 144, 145,
1710 21, -1, 23, 24, -1, 26, 27, -1, 29, -1,
1711 -1, 32, -1, 34, -1, -1, -1, -1, -1, -1,
1712 41, 42, 43, 44, -1, 46, 47, 48, 49, 50,
1713 -1, 52, -1, 54, 55, 56, -1, -1, 59, -1,
1714 -1, -1, -1, 64, -1, 66, 67, 68, 69, 70,
1715 71, -1, 73, 74, 75, 76, 77, -1, -1, 80,
1716 -1, -1, 83, -1, -1, -1, 87, 88, -1, 90,
1717 -1, -1, -1, 94, 95, 96, -1, 98, 99, 100,
1718 101, 102, -1, 104, -1, 106, 107, 108, 109, 110,
1719 111, 112, 113, -1, 115, 116, 117, -1, -1, -1,
1720 -1, 122, -1, -1, 125, -1, -1, 128, 129, -1,
1721 -1, 132, 133, 134, -1, -1, -1, 138, -1, 140,
1722 141, 142, 143, -1, -1, 146
1723 };
1724
1725 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1726 symbol of state STATE-NUM. */
1727 static const unsigned short int yystos[] =
1728 {
1729 0, 177, 178, 0, 4, 28, 30, 36, 37, 40,
1730 45, 51, 53, 57, 58, 60, 63, 65, 72, 78,
1731 82, 84, 85, 86, 91, 114, 118, 119, 120, 121,
1732 124, 126, 130, 136, 137, 139, 144, 145, 168, 182,
1733 183, 184, 185, 188, 189, 196, 207, 221, 225, 227,
1734 228, 229, 230, 233, 234, 237, 239, 240, 241, 242,
1735 244, 245, 246, 247, 248, 250, 252, 258, 259, 260,
1736 261, 3, 4, 171, 3, 4, 3, 4, 223, 84,
1737 226, 8, 3, 4, 226, 171, 226, 227, 3, 223,
1738 195, 196, 3, 223, 227, 21, 23, 24, 26, 27,
1739 29, 32, 34, 41, 42, 43, 44, 46, 47, 48,
1740 49, 50, 52, 54, 55, 56, 59, 64, 66, 67,
1741 68, 69, 70, 71, 73, 74, 75, 76, 77, 80,
1742 83, 87, 88, 90, 94, 95, 96, 98, 99, 100,
1743 101, 102, 104, 106, 107, 108, 109, 110, 111, 112,
1744 113, 115, 116, 117, 122, 125, 128, 129, 132, 133,
1745 134, 138, 140, 141, 142, 143, 146, 197, 199, 257,
1746 179, 179, 89, 93, 187, 207, 228, 233, 239, 243,
1747 250, 258, 261, 170, 170, 170, 173, 170, 173, 170,
1748 181, 170, 149, 238, 173, 251, 252, 251, 251, 3,
1749 4, 35, 62, 103, 127, 157, 171, 201, 224, 253,
1750 254, 256, 259, 170, 251, 170, 170, 8, 173, 170,
1751 259, 173, 250, 131, 173, 171, 171, 171, 171, 171,
1752 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
1753 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
1754 147, 169, 11, 79, 182, 186, 189, 228, 230, 241,
1755 242, 245, 174, 3, 3, 4, 173, 256, 231, 105,
1756 235, 239, 3, 4, 173, 180, 249, 253, 253, 175,
1757 168, 171, 194, 251, 172, 204, 205, 206, 224, 172,
1758 214, 253, 255, 171, 217, 224, 3, 5, 6, 7,
1759 8, 9, 61, 97, 123, 135, 152, 155, 156, 157,
1760 160, 161, 171, 210, 211, 212, 210, 213, 8, 8,
1761 198, 213, 212, 8, 8, 212, 8, 212, 210, 65,
1762 212, 208, 209, 210, 257, 212, 208, 210, 259, 259,
1763 8, 10, 200, 5, 262, 259, 199, 168, 171, 170,
1764 181, 174, 195, 232, 149, 92, 195, 219, 236, 170,
1765 173, 180, 174, 182, 196, 248, 253, 172, 213, 157,
1766 209, 144, 190, 191, 192, 193, 196, 250, 174, 147,
1767 175, 174, 195, 215, 147, 219, 174, 196, 216, 219,
1768 172, 171, 210, 210, 210, 210, 210, 210, 210, 259,
1769 12, 13, 14, 15, 16, 17, 18, 19, 20, 148,
1770 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1771 167, 168, 147, 172, 172, 172, 147, 172, 172, 172,
1772 172, 172, 172, 172, 172, 172, 3, 172, 147, 172,
1773 172, 147, 172, 172, 172, 172, 172, 167, 172, 172,
1774 199, 8, 181, 242, 149, 250, 170, 174, 195, 220,
1775 174, 185, 174, 181, 169, 169, 172, 147, 250, 253,
1776 206, 212, 250, 261, 253, 172, 170, 170, 259, 172,
1777 172, 210, 210, 3, 210, 210, 210, 210, 210, 210,
1778 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
1779 210, 3, 210, 212, 8, 172, 209, 212, 5, 172,
1780 253, 250, 170, 180, 181, 193, 253, 255, 170, 222,
1781 224, 172, 210, 149, 169, 172, 181, 253, 174, 170,
1782 173, 210, 181, 202, 34, 46, 174, 203, 212, 149,
1783 149, 170, 218, 219, 218, 170
1784 };
1785
1786 #define yyerrok (yyerrstatus = 0)
1787 #define yyclearin (yychar = YYEMPTY)
1788 #define YYEMPTY (-2)
1789 #define YYEOF 0
1790
1791 #define YYACCEPT goto yyacceptlab
1792 #define YYABORT goto yyabortlab
1793 #define YYERROR goto yyerrorlab
1794
1795
1796 /* Like YYERROR except do call yyerror. This remains here temporarily
1797 to ease the transition to the new meaning of YYERROR, for GCC.
1798 Once GCC version 2 has supplanted version 1, this can go. */
1799
1800 #define YYFAIL goto yyerrlab
1801
1802 #define YYRECOVERING() (!!yyerrstatus)
1803
1804 #define YYBACKUP(Token, Value) \
1805 do \
1806 if (yychar == YYEMPTY && yylen == 1) \
1807 { \
1808 yychar = (Token); \
1809 yylval = (Value); \
1810 yytoken = YYTRANSLATE (yychar); \
1811 YYPOPSTACK; \
1812 goto yybackup; \
1813 } \
1814 else \
1815 { \
1816 yyerror (YY_("syntax error: cannot back up")); \
1817 YYERROR; \
1818 } \
1819 while (0)
1820
1821
1822 #define YYTERROR 1
1823 #define YYERRCODE 256
1824
1825
1826 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1827 If N is 0, then set CURRENT to the empty location which ends
1828 the previous symbol: RHS[0] (always defined). */
1829
1830 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1831 #ifndef YYLLOC_DEFAULT
1832 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1833 do \
1834 if (N) \
1835 { \
1836 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1837 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1838 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1839 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1840 } \
1841 else \
1842 { \
1843 (Current).first_line = (Current).last_line = \
1844 YYRHSLOC (Rhs, 0).last_line; \
1845 (Current).first_column = (Current).last_column = \
1846 YYRHSLOC (Rhs, 0).last_column; \
1847 } \
1848 while (0)
1849 #endif
1850
1851
1852 /* YY_LOCATION_PRINT -- Print the location on the stream.
1853 This macro was not mandated originally: define only if we know
1854 we won't break user code: when these are the locations we know. */
1855
1856 #ifndef YY_LOCATION_PRINT
1857 # if YYLTYPE_IS_TRIVIAL
1858 # define YY_LOCATION_PRINT(File, Loc) \
1859 fprintf (File, "%d.%d-%d.%d", \
1860 (Loc).first_line, (Loc).first_column, \
1861 (Loc).last_line, (Loc).last_column)
1862 # else
1863 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1864 # endif
1865 #endif
1866
1867
1868 /* YYLEX -- calling `yylex' with the right arguments. */
1869
1870 #ifdef YYLEX_PARAM
1871 # define YYLEX yylex (YYLEX_PARAM)
1872 #else
1873 # define YYLEX yylex ()
1874 #endif
1875
1876 /* Enable debugging if requested. */
1877 #if YYDEBUG
1878
1879 # ifndef YYFPRINTF
1880 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1881 # define YYFPRINTF fprintf
1882 # endif
1883
1884 # define YYDPRINTF(Args) \
1885 do { \
1886 if (yydebug) \
1887 YYFPRINTF Args; \
1888 } while (0)
1889
1890 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1891 do { \
1892 if (yydebug) \
1893 { \
1894 YYFPRINTF (stderr, "%s ", Title); \
1895 yysymprint (stderr, \
1896 Type, Value); \
1897 YYFPRINTF (stderr, "\n"); \
1898 } \
1899 } while (0)
1900
1901 /*------------------------------------------------------------------.
1902 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1903 | TOP (included). |
1904 `------------------------------------------------------------------*/
1905
1906 #if defined (__STDC__) || defined (__cplusplus)
1907 static void
1908 yy_stack_print (short int *bottom, short int *top)
1909 #else
1910 static void
1911 yy_stack_print (bottom, top)
1912 short int *bottom;
1913 short int *top;
1914 #endif
1915 {
1916 YYFPRINTF (stderr, "Stack now");
1917 for (/* Nothing. */; bottom <= top; ++bottom)
1918 YYFPRINTF (stderr, " %d", *bottom);
1919 YYFPRINTF (stderr, "\n");
1920 }
1921
1922 # define YY_STACK_PRINT(Bottom, Top) \
1923 do { \
1924 if (yydebug) \
1925 yy_stack_print ((Bottom), (Top)); \
1926 } while (0)
1927
1928
1929 /*------------------------------------------------.
1930 | Report that the YYRULE is going to be reduced. |
1931 `------------------------------------------------*/
1932
1933 #if defined (__STDC__) || defined (__cplusplus)
1934 static void
1935 yy_reduce_print (int yyrule)
1936 #else
1937 static void
1938 yy_reduce_print (yyrule)
1939 int yyrule;
1940 #endif
1941 {
1942 int yyi;
1943 unsigned long int yylno = yyrline[yyrule];
1944 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
1945 yyrule - 1, yylno);
1946 /* Print the symbols being reduced, and their result. */
1947 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
1948 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
1949 YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
1950 }
1951
1952 # define YY_REDUCE_PRINT(Rule) \
1953 do { \
1954 if (yydebug) \
1955 yy_reduce_print (Rule); \
1956 } while (0)
1957
1958 /* Nonzero means print parse trace. It is left uninitialized so that
1959 multiple parsers can coexist. */
1960 int yydebug;
1961 #else /* !YYDEBUG */
1962 # define YYDPRINTF(Args)
1963 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1964 # define YY_STACK_PRINT(Bottom, Top)
1965 # define YY_REDUCE_PRINT(Rule)
1966 #endif /* !YYDEBUG */
1967
1968
1969 /* YYINITDEPTH -- initial size of the parser's stacks. */
1970 #ifndef YYINITDEPTH
1971 # define YYINITDEPTH 200
1972 #endif
1973
1974 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1975 if the built-in stack extension method is used).
1976
1977 Do not make this value too large; the results are undefined if
1978 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1979 evaluated with infinite-precision integer arithmetic. */
1980
1981 #ifndef YYMAXDEPTH
1982 # define YYMAXDEPTH 10000
1983 #endif
1984
1985 \f
1986
1987 #if YYERROR_VERBOSE
1988
1989 # ifndef yystrlen
1990 # if defined (__GLIBC__) && defined (_STRING_H)
1991 # define yystrlen strlen
1992 # else
1993 /* Return the length of YYSTR. */
1994 static YYSIZE_T
1995 # if defined (__STDC__) || defined (__cplusplus)
1996 yystrlen (const char *yystr)
1997 # else
1998 yystrlen (yystr)
1999 const char *yystr;
2000 # endif
2001 {
2002 const char *yys = yystr;
2003
2004 while (*yys++ != '\0')
2005 continue;
2006
2007 return yys - yystr - 1;
2008 }
2009 # endif
2010 # endif
2011
2012 # ifndef yystpcpy
2013 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
2014 # define yystpcpy stpcpy
2015 # else
2016 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2017 YYDEST. */
2018 static char *
2019 # if defined (__STDC__) || defined (__cplusplus)
2020 yystpcpy (char *yydest, const char *yysrc)
2021 # else
2022 yystpcpy (yydest, yysrc)
2023 char *yydest;
2024 const char *yysrc;
2025 # endif
2026 {
2027 char *yyd = yydest;
2028 const char *yys = yysrc;
2029
2030 while ((*yyd++ = *yys++) != '\0')
2031 continue;
2032
2033 return yyd - 1;
2034 }
2035 # endif
2036 # endif
2037
2038 # ifndef yytnamerr
2039 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2040 quotes and backslashes, so that it's suitable for yyerror. The
2041 heuristic is that double-quoting is unnecessary unless the string
2042 contains an apostrophe, a comma, or backslash (other than
2043 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2044 null, do not copy; instead, return the length of what the result
2045 would have been. */
2046 static YYSIZE_T
2047 yytnamerr (char *yyres, const char *yystr)
2048 {
2049 if (*yystr == '"')
2050 {
2051 size_t yyn = 0;
2052 char const *yyp = yystr;
2053
2054 for (;;)
2055 switch (*++yyp)
2056 {
2057 case '\'':
2058 case ',':
2059 goto do_not_strip_quotes;
2060
2061 case '\\':
2062 if (*++yyp != '\\')
2063 goto do_not_strip_quotes;
2064 /* Fall through. */
2065 default:
2066 if (yyres)
2067 yyres[yyn] = *yyp;
2068 yyn++;
2069 break;
2070
2071 case '"':
2072 if (yyres)
2073 yyres[yyn] = '\0';
2074 return yyn;
2075 }
2076 do_not_strip_quotes: ;
2077 }
2078
2079 if (! yyres)
2080 return yystrlen (yystr);
2081
2082 return yystpcpy (yyres, yystr) - yyres;
2083 }
2084 # endif
2085
2086 #endif /* YYERROR_VERBOSE */
2087
2088 \f
2089
2090 #if YYDEBUG
2091 /*--------------------------------.
2092 | Print this symbol on YYOUTPUT. |
2093 `--------------------------------*/
2094
2095 #if defined (__STDC__) || defined (__cplusplus)
2096 static void
2097 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
2098 #else
2099 static void
2100 yysymprint (yyoutput, yytype, yyvaluep)
2101 FILE *yyoutput;
2102 int yytype;
2103 YYSTYPE *yyvaluep;
2104 #endif
2105 {
2106 /* Pacify ``unused variable'' warnings. */
2107 (void) yyvaluep;
2108
2109 if (yytype < YYNTOKENS)
2110 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2111 else
2112 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2113
2114
2115 # ifdef YYPRINT
2116 if (yytype < YYNTOKENS)
2117 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2118 # endif
2119 switch (yytype)
2120 {
2121 default:
2122 break;
2123 }
2124 YYFPRINTF (yyoutput, ")");
2125 }
2126
2127 #endif /* ! YYDEBUG */
2128 /*-----------------------------------------------.
2129 | Release the memory associated to this symbol. |
2130 `-----------------------------------------------*/
2131
2132 #if defined (__STDC__) || defined (__cplusplus)
2133 static void
2134 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2135 #else
2136 static void
2137 yydestruct (yymsg, yytype, yyvaluep)
2138 const char *yymsg;
2139 int yytype;
2140 YYSTYPE *yyvaluep;
2141 #endif
2142 {
2143 /* Pacify ``unused variable'' warnings. */
2144 (void) yyvaluep;
2145
2146 if (!yymsg)
2147 yymsg = "Deleting";
2148 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2149
2150 switch (yytype)
2151 {
2152
2153 default:
2154 break;
2155 }
2156 }
2157 \f
2158
2159 /* Prevent warnings from -Wmissing-prototypes. */
2160
2161 #ifdef YYPARSE_PARAM
2162 # if defined (__STDC__) || defined (__cplusplus)
2163 int yyparse (void *YYPARSE_PARAM);
2164 # else
2165 int yyparse ();
2166 # endif
2167 #else /* ! YYPARSE_PARAM */
2168 #if defined (__STDC__) || defined (__cplusplus)
2169 int yyparse (void);
2170 #else
2171 int